README.md

March 27, 2026 · View on GitHub

ACE-Step DAW

ACE-Step DAW

The AI-native DAW where every instrument knows what came before it.

CI License React 19 Tone.js TypeScript

Quick StartWhat Makes It DifferentFeaturesArchitectureContributing


Want a production-ready experience today? Try ACE Studio — our professional AI music creation platform with higher quality models and real-time collaboration.

What Makes It Different

Most AI music tools generate a full song in one shot. ACE-Step DAW takes a fundamentally different approach — it builds songs layer by layer, where each new instrument is musically aware of everything generated before it.

LEGO Pipeline — Context-Aware Sequential Generation

Generate drums first. Then bass that grooves with the drums. Then guitar that complements both. Then vocals that sit perfectly in the mix. Each layer "hears" the cumulative result of all previous layers through the ACE-Step 1.5 model.

Drums → Bass (hears drums) → Guitar (hears drums+bass) → Vocals (hears everything)

This isn't post-hoc mixing — the AI composes each part knowing the full musical context, producing arrangements that are coherent from the ground up.

Strudel Live Coding — Algorithmic Composition as a Track Type

Write s("[bd <hh oh>]*2, [~ cp]*2") and hear it instantly. ACE-Step DAW integrates Strudel as a first-class track type alongside traditional timeline clips. Switch between visual editing and code-based pattern generation without leaving the DAW. Convert between MIDI and Strudel patterns freely.

Agent-Native Architecture

Every feature is accessible via window.__store.getState().actionName(). The entire DAW state is scriptable, testable, and automatable. Built for a future where AI agents and humans collaborate on music production side by side.

Quick Start

Requirements: Node.js 18+ and an ACE-Step 1.5 API server (local or cloud).

git clone https://github.com/ace-step/ACE-Step-DAW.git
cd ACE-Step-DAW
npm install
npm run dev

Opens at http://localhost:5174. The dev server proxies /api to the ACE-Step 1.5 backend at localhost:8001.

Cloud API: Configure the backend URL in Settings → API URL: https://api.acemusic.ai

Production build:

npm run build && npm run preview

Features

AI Generation

FeatureDescription
LEGO PipelineSequential generation with cumulative context — drums → bass → guitar → vocals
Text-to-MusicDescribe what you want, get audio — 16 genre presets (Pop, Rock, Jazz, Electronic, Hip-Hop, Classical, Lo-Fi, Ambient)
Cover GenerationReimagine existing audio in a new style with controllable deviation strength
RepaintSelectively regenerate a time range — conservative, balanced, or aggressive modes
Vocal2BGMFeed in vocals, generate matching accompaniment automatically
Audio AnalysisAI-powered BPM, key, and genre detection
Model SelectorChoose DiT/LM models, adjust inference steps, LoRA support

DAW Core

FeatureDescription
Multi-Track TimelineClip-based arrangement with drag, resize, split, fade handles, and snap-to-grid
5 Track TypesStems (AI), Sample (imported audio), Sequencer (step drums), Piano Roll (MIDI), Strudel (live code)
Piano RollCanvas-based MIDI editor with velocity lane, slide notes, ghost notes, chord stamps, and quantize
Step SequencerFL Studio-inspired 16-step drum pattern editor with 16 synthesized drum sounds and 4 kit presets
Effect ChainPer-track effect rack — EQ3, Compressor, Reverb, Delay, Distortion, Chorus, Flanger, Phaser, Filter, Sidechain
MixerChannel strips with volume, pan, mute, solo, and per-track metering
6 Synth PresetsPiano, Strings, Pad, Lead, Bass, Organ (Tone.js polyphonic synthesis)
Loop Browser15 built-in synthesized loops with search, filter, and drag-to-timeline
RecordingMicrophone input with real-time waveform, count-in, and input level metering
AutomationBreakpoint envelopes with interpolation for volume, pan, and effect parameters
Project PersistenceSave/load via IndexedDB with auto-save
WAV ExportOffline render to stereo WAV
Undo/Redo55+ undoable actions covering virtually every operation
25+ Keyboard ShortcutsFull keyboard-driven workflow — see full list

Architecture

┌──────────────────────────────────────────────────────────────┐
│                   React 19 Components (60+)                  │
│   Timeline │ PianoRoll │ Sequencer │ Mixer │ Strudel Editor │
└──────────────────────────┬───────────────────────────────────┘

┌──────────────────────────▼───────────────────────────────────┐
│                   Zustand Stores (7)                          │
│   project │ transport │ generation │ ui │ model │ shortcuts  │
└──────────────────────────┬───────────────────────────────────┘

┌──────────────────────────▼───────────────────────────────────┐
│                   Services Layer                             │
│   Generation Pipeline │ ACE-Step API │ Audio File Manager    │
│   Strudel Conversion  │ Project Storage                      │
└──────────────────────────┬───────────────────────────────────┘

┌──────────────────────────▼───────────────────────────────────┐
│              Audio Engine (Tone.js + Web Audio API)           │
│   AudioEngine │ SynthEngine │ DrumEngine │ EffectsEngine     │
│   AutomationEngine │ RecordingEngine │ StrudelEngine         │
└──────────────────────────┬───────────────────────────────────┘

                     ┌─────▼─────┐
                     │  Speaker / │
                     │  WAV File  │
                     └───────────┘

Signal chain per track:

Source → Input Gain → Pan → EQ3 → Effect Chain → Compressor → Volume → Analyser → Master

Project Structure

src/
  components/       # 60+ React components by domain
    timeline/       #   Arrangement view, clip blocks, track lanes
    pianoroll/      #   Canvas MIDI editor, velocity lane
    sequencer/      #   Step grid, beat pads
    mixer/          #   Channel strips, effect chain
    strudel/        #   Live code editor
    generation/     #   AI generation panels
    transport/      #   Transport bar, tempo/time
  engine/           # Audio engine (Tone.js + Web Audio wrappers)
  services/         # Business logic (API, generation pipeline, storage)
  store/            # Zustand stores
  hooks/            # React hooks (transport, recording, shortcuts)
  types/            # TypeScript interfaces
  utils/            # Pure helpers (WAV, waveform, color, time)
  constants/        # Defaults, presets, track definitions

Tech Stack

LayerTechnology
UIReact 19 + TypeScript 5.7 + Vite 6
StylingTailwind CSS v4
StateZustand 5
AudioTone.js 15 + Web Audio API
Live CodingStrudel (core, mini, webaudio, soundfonts)
StorageIndexedDB via idb-keyval
TestingVitest + Playwright

Keyboard Shortcuts

KeyActionKeyAction
SpacePlay / PauseXToggle mixer
EnterStopBToggle smart controls
RRecordOToggle loop browser
LToggle loopEEdit selected clip
KToggle metronomeSSplit clip at playhead
NToggle snapQQuantize notes
ZZoom to fitDeleteDelete selection
Home/EndSeek start/endCmd+ZUndo
/Nudge ±5sCmd+Shift+ZRedo
Cmd+ScrollZoom timelineCmd+DDuplicate clip
Cmd+Shift+IAdd trackCmd+Shift+EExport WAV
?Show all shortcutsCmd+ASelect all

Development

npm run dev            # Dev server at http://127.0.0.1:5174
npm test               # Unit tests (Vitest)
npm run test:e2e       # E2E tests (Playwright)
npm run test:all       # Unit + E2E
npm run test:coverage  # Coverage report
npm run build          # Type-check + production build
MetricValue
Source code~24,000 LOC
Components60+
Unit tests94
E2E tests21
CI pipelinetype-check → unit-test → build → e2e → review

See AGENTS.md for the complete development workflow and agent conventions.

Contributing

We welcome contributions! Whether it's a bug fix, new feature, or documentation improvement:

  1. Find or create an issue — check open issues or create one with a feat:, fix:, or docs: prefix
  2. Fork and branchfeat/issue-NUMBER or fix/issue-NUMBER
  3. Write tests first — we follow TDD (red → green → refactor)
  4. Pass quality gatesnpx tsc --noEmit + npm test + npm run build must all succeed
  5. Open a PR — include Closes #NUMBER in the body

See AGENTS.md for detailed conventions on commits, testing, and code style.

License

AGPL-3.0-or-later — ACE-Step DAW bundles Strudel packages (AGPL-3.0-or-later), so the project is distributed under AGPL-compatible terms as a whole.

If you need an MIT-only distribution, remove the Strudel integration or obtain an alternative license from the Strudel copyright holders. See THIRD_PARTY_NOTICES.md for details.

For hosted deployments, make source code available to network users. Override branding with: VITE_SOURCE_CODE_URL, VITE_LICENSE_URL, VITE_COPYRIGHT_NOTICE


ACE-Step DAW is an open-source project by ACE Studio.
For professional production with higher quality models and real-time collaboration, visit acestudio.ai.