Looking for a full-featured, production-ready experience? Try ACE Studio — our professional AI music creation platform.
A browser-based Digital Audio Workstation powered by ACE-Step 1.5 for AI music generation. Tracks are generated sequentially in a "LEGO-style" pipeline — each new instrument layer is musically aware of everything generated before it.
- LEGO Pipeline — Sequential generation with cumulative context (drums → bass → guitar → vocals)
- Cover Generation — AI-powered cover creation from existing audio
- Repaint/Edit — Selective regeneration of specific time ranges
- Vocal2BGM — Generate accompaniment from vocal tracks
- Audio Analysis — AI-powered BPM, key, and genre detection
- 16 Generation Presets — Pop, Rock, Jazz, Electronic, Hip-Hop, Classical, Lo-Fi, Ambient
- Model Selector — Choose DiT and LM models, LoRA support
- Multi-Track Timeline — Arrangement view with clip-based editing
- 4 Track Types — Stems (AI-generated), Sample (imported audio), Sequencer (step-based drums), Piano Roll (MIDI)
- Piano Roll Editor — Canvas-based MIDI note editor with explicit tool modes, velocity lane, slide notes, and grid snap
- Step Sequencer — FL Studio-inspired drum pattern editor with beat pads
- Effect Chain — 6 built-in effects (EQ3, Compressor, Reverb, Delay, Distortion, Filter) with per-effect UI
- Mixer Panel — Per-track volume, pan, mute, solo, channel strips
- 6 Synth Presets — Piano, Strings, Pad, Lead, Bass, Organ (Tone.js)
- 16 Drum Sounds — Synthesized kicks, snares, hi-hats, claps, toms, cymbals (4 kit presets)
- Loop Browser — 15 built-in synthesized loops with search, filter, and drag-to-timeline
- Recording Engine — Microphone input, real-time waveform, count-in, input level metering
- Automation — Breakpoint envelopes with interpolation for volume and pan
- Smart Controls — Per-track parameter panels
- Project Persistence — Save/load projects via IndexedDB
- WAV Export — Bounce mix to stereo WAV file
- Keyboard Shortcuts — Comprehensive shortcut system
- Node.js 18+
- ACE-Step 1.5 API server running on
localhost:8001(default), or use cloud API
npm install
npm run devOpens at http://localhost:5174. The dev server proxies /api requests to the ACE-Step 1.5 backend at localhost:8001.
To use the ACE-Step cloud API instead of a local server, configure the backend URL in Settings → API URL: https://api.acemusic.ai
npm run build
npm run preview- React 19 + TypeScript + Vite
- Tailwind CSS v4
- Zustand (state management)
- Tone.js (synth engine, effects, drum synthesis)
- Web Audio API (playback, recording, rendering)
- IndexedDB via idb-keyval (audio blob storage)
src/
components/
assets/ # Loop browser, assets panel
controls/ # Smart controls panel
dialogs/ # New project, settings, export, instrument picker
generation/ # AI generation panels (cover, repaint, vocal2bgm, analysis)
layout/ # App shell, toolbar, status bar
mixer/ # Mixer panel, effect chain
pianoroll/ # Piano roll MIDI editor
sequencer/ # Step sequencer, beat pads
timeline/ # Timeline view, track lanes, clip blocks
tracks/ # Track list, track headers
transport/ # Transport bar, tempo/time display
ui/ # Shared UI components (knob, fader, slider)
constants/ # Defaults, track definitions, generation presets
engine/ # Audio engine, synth/effects/drum/recording/automation engines
hooks/ # React hooks (audio, transport, keyboard shortcuts)
services/ # ACE-Step API, generation pipeline, project storage
store/ # Zustand stores (project, transport, UI, generation)
types/ # TypeScript interfaces (API, project, audio)
utils/ # WAV encoding, waveform peaks, color, time helpers
See AGENTS.md for the complete development workflow, rules, and required skills.
See docs/dev-process.md for competitive research index and system test checklists.
For story-driven QA planning and release runlists:
npm run qa:runlist
npm run qa:runlist -- --status=release-critical,core-regression
npm run qa:validate| Key | Action |
|---|---|
Space |
Play / Pause |
Enter |
Stop (return to start) |
R |
Toggle recording |
L |
Toggle loop |
K |
Toggle metronome |
N |
Toggle snap to grid |
Z |
Zoom to fit project |
Home / End |
Seek to start / end |
← / → |
Nudge playhead ±5s |
X |
Toggle mixer |
B |
Toggle smart controls |
O |
Toggle loop browser |
Y |
Toggle library |
E |
Edit selected clip |
S |
Split clip at playhead |
Q |
Quantize selected notes |
Delete |
Delete selected clip/notes |
Cmd+Z / Cmd+Shift+Z |
Undo / Redo |
Cmd+A |
Select all clips |
Cmd+D |
Duplicate clip |
Cmd+Scroll |
Zoom timeline |
Cmd+Shift+I |
Add track |
Cmd+Shift+E |
Export WAV |
? |
Keyboard shortcuts dialog |
| Metric | Value |
|---|---|
| Source code | ~24,000 LOC |
| Unit tests | 94 |
| E2E tests | 21 |
| Test suites | 18 |
| Components | 60+ |
| Keyboard shortcuts | 25+ |
| CI pipeline | type-check → unit-test → build → e2e-test → Copilot review |
Frontend (React 19 + TypeScript)
├── Store (Zustand) — projectStore, transportStore, uiStore, generationStore
├── Engine (Web Audio + Tone.js) — AudioEngine, SynthEngine, DrumEngine, EffectsEngine
├── Components — Timeline, Mixer, PianoRoll, Sequencer, EffectChain
├── Hooks — useTransport, useRecording, useEffectsSync, useKeyboardShortcuts
└── Utils — dragMath, chords, dawStateSummary, time, wav, waveformPeaks
Agent-friendly: Every feature accessible via window.__store.getState().actionName() and window.__dawSummary().
ACE-Step DAW is licensed under GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later).
Why this repository is no longer MIT-only:
- The current DAW bundles and executes multiple
@strudel/*packages. - Those Strudel packages are published as
AGPL-3.0-or-later. - Because the Strudel feature is integrated as part of the shipped app runtime, the safest compliance path is to distribute ACE-Step DAW under AGPL-compatible terms as a whole.
If you need an MIT-only distribution, do not ship the current bundled Strudel integration as-is. Use a clean-room replacement, remove the Strudel feature from the shipped app, or obtain an alternative license from the Strudel copyright holders.
For hosted deployments, make the corresponding source code available to network users. The in-app status bar includes a visible source/license notice, and you can override its links with:
VITE_SOURCE_CODE_URLVITE_LICENSE_URLVITE_COPYRIGHT_NOTICE
See THIRD_PARTY_NOTICES.md for bundled Strudel attribution details.
ACE-Step DAW is an open-source project. For professional music production with higher quality models, real-time collaboration, and a polished workflow, visit ACE Studio.