Skip to content

AppsYogi-com/ComposeYogi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

47 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ComposeYogi

ComposeYogi Logo

The open-source Ableton-style music composer for the web.

A free, open-source music composition tool for beat-making, loops, and arrangements β€” built with Web Audio, WASM, and modern web tech.

GitHub Stars Docker Pulls License: MIT Patreon

Open Source PRs Welcome Discord

Live Demo Β· Report Bug Β· Request Feature

ComposeYogi in Action

Why ComposeYogi?

ComposeYogi Traditional DAWs
Open source Closed source
Runs in browser Heavy desktop installs
Free forever Paid subscriptions
Community-driven Vendor-controlled
Hackable & extensible Locked ecosystems

Features

  • 🎹 Multi-track Timeline β€” Audio, MIDI, and Drum tracks with drag-and-drop clips
  • 🎼 Piano Roll Editor β€” Full-featured MIDI note editor with scale lock
  • πŸ₯ Drum Sequencer β€” Step sequencer with pattern presets (Four on Floor, Hip Hop, Trap, etc.)
  • 🎸 Built-in Instruments β€” Synths, bass, keys, leads, and pads powered by Tone.js
  • πŸ“Š Real-time Visualizer β€” Frequency bars and waveform display
  • 🎚️ Mixer Controls β€” Volume, pan, mute, and solo per track
  • ⏺️ Audio Recording β€” Record directly from your microphone with latency calibration
  • πŸ’Ύ Local-first Storage β€” Auto-save to IndexedDB, works offline
  • 🎡 MIDI Export β€” Export your compositions to MIDI files
  • ⌨️ Keyboard Shortcuts β€” Professional workflow with hotkeys
  • πŸŒ™ Dark/Light Theme β€” Easy on the eyes
  • 🌍 Internationalization β€” English and Spanish supported

Screenshots

ComposeYogi Main Interface

One-Click Deploy

Deploy with Vercel Deploy to Netlify Deploy on Railway Deploy to Render

Quick Start

Prerequisites

  • Node.js 18.17 or later
  • npm, yarn, or pnpm

Installation

# Clone the repository
git clone [email protected]:AppsYogi-com/ComposeYogi.git
cd ComposeYogi

# Install dependencies
npm install

# Start development server
npm run dev

Open http://localhost:3000 in your browser.

Production Build

npm run build
npm start

Docker

Using Docker Compose (Recommended)

# Clone the repository
git clone [email protected]:AppsYogi-com/ComposeYogi.git
cd ComposeYogi

# Start with Docker Compose
docker-compose up -d

# Access at http://localhost:3000

Using Docker directly

# Build the image
docker build -t composeyogi .

# Run the container
docker run -p 3000:3000 composeyogi

Pull from Docker Hub

docker pull appsyogi/composeyogi:latest
docker run -p 3000:3000 appsyogi/composeyogi:latest

Tech Stack

Category Technology
Framework Next.js 15 with App Router
Language TypeScript
Audio Engine Tone.js
State Management Zustand + Zundo
Styling Tailwind CSS
UI Components Radix UI
Drag & Drop @dnd-kit
Persistence IndexedDB via idb
i18n next-intl

Project Structure

composeyogi.com/
β”œβ”€β”€ app/                    # Next.js App Router
β”‚   └── [locale]/           # i18n routing
β”‚       β”œβ”€β”€ compose/        # Main DAW page
β”‚       └── page.tsx        # Landing page
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ compose/            # DAW components
β”‚   β”‚   β”œβ”€β”€ editors/        # Clip editors (DrumSequencer, PianoRoll, WaveformEditor)
β”‚   β”‚   β”œβ”€β”€ AudioVisualizer.tsx
β”‚   β”‚   β”œβ”€β”€ BrowserPanel.tsx
β”‚   β”‚   β”œβ”€β”€ EditorPanel.tsx
β”‚   β”‚   β”œβ”€β”€ Inspector.tsx
β”‚   β”‚   β”œβ”€β”€ TrackList.tsx
β”‚   β”‚   └── Transport.tsx
β”‚   └── ui/                 # Reusable UI primitives
β”œβ”€β”€ lib/
β”‚   β”œβ”€β”€ audio/              # Tone.js wrappers, recording, export
β”‚   β”œβ”€β”€ store/              # Zustand stores
β”‚   β”œβ”€β”€ persistence/        # IndexedDB operations
β”‚   └── canvas/             # Canvas renderers
β”œβ”€β”€ hooks/                  # Custom React hooks
β”œβ”€β”€ types/                  # TypeScript definitions
└── messages/               # i18n translation files

Keyboard Shortcuts

Action Shortcut
Play/Pause Space
Stop (Return to start) Enter
Toggle Record R
Toggle Metronome M
Toggle Loop L
Undo Cmd/Ctrl + Z
Redo Cmd/Ctrl + Shift + Z
Duplicate Clip Cmd/Ctrl + D
Delete Selection Delete / Backspace
Toggle Browser B
Toggle Editor E
Toggle Inspector I
Toggle Visualizer V
Zoom In + / =
Zoom Out -

Development Roadmap

πŸ“ See our detailed roadmap for the full picture of what's coming next!

Phase 1.0 β€” MVP (Complete)

  • Core DAW with multi-track timeline
  • Audio engine with Tone.js (play, stop, seek, loop)
  • MIDI and Drum clip editors
  • Recording with latency calibration
  • IndexedDB persistence with auto-save
  • MIDI export
  • Keyboard shortcuts
  • Dark/Light theme
  • i18n (English, Spanish)

Phase 1.5 β€” Cloud Sync (Planned)

  • User authentication (Firebase/supabase)
  • Cloud project sync
  • Share links for projects
  • WAV export
  • Additional templates

Phase 2.0 β€” Pro Features (Future)

  • Multi-take recording with comping
  • Automation lanes
  • Collaboration features
  • Remix/fork system
  • Time-stamped comments

Contributing

Contributions are welcome! Please read our Contributing Guide and Code of Conduct before submitting a Pull Request.

Development Commands

npm run dev          # Start dev server with Turbopack
npm run build        # Production build
npm run start        # Start production server
npm run lint         # Run ESLint
npm run type-check   # TypeScript type checking

License

This project is licensed under the MIT License - see the LICENSE file for details.

Open Source First

ComposeYogi is built on the belief that creative tools should be:

  • Open and inspectable
  • Free from lock-in
  • Community-driven
  • Accessible to everyone

We welcome contributors, musicians, designers, and developers.

Support

If you find ComposeYogi useful, please consider:

Acknowledgments

  • Tone.js for the amazing Web Audio framework
  • Radix UI for accessible UI primitives
  • Vercel for hosting
  • The open source community πŸ’œ

Made with ❀️ by AppsYogi

Releases

Sponsor this project

Packages

Contributors

Languages