Create a browser-first, clip-oriented mini DAW that is useful for making electronic music. The app should favor correct timing, serializable project data, and focused workflows over broad full-DAW scope.
M1 is a 1-bar hybrid clip editor. A hybrid clip may contain drum step sequencer events and piano roll note events in the same clip.
M1 should include:
- A Vite + React + TypeScript scaffold using CSS Modules.
- A documented tick-based project model with PPQ 480.
- Web Audio sample playback and sequenced lookahead scheduling.
- A 16-step drum sequencer.
- A basic piano roll.
- Loop playback for the selected 1-bar clip.
- Establish repository instructions for coding agents.
- Add product, architecture, data model, audio engine, UI, and testing documentation.
- Add feature specs for the first five implementation tasks.
- Add GitHub issue and PR templates.
- Add a CI workflow that tolerates the repository before the scaffold exists.
Use this section as the current execution order for agent work. Feature document numbering describes the planned product sequence, but actual issue order may change as dependencies, review feedback, or implementation risks become clearer.
- #49 Adjustable arrangement length ->
docs/features/20-adjustable-arrangement-length.md - #50 Arrangement WAV export ->
docs/features/21-arrangement-wav-export.md
- Project scaffold.
- AudioContext and sample playback.
- Lookahead scheduler.
- Drum step sequencer.
- Basic piano roll.
- Transport pause/resume and editor playhead.
- Pitched instrument selection and Iowa Piano one-shot playback.
- Tempo control and live BPM updates.
- Arrangement view UI shell.
- Sampler advanced sustain.
- Sidebar clip and instrument management.
- Drum step subdivisions.
- Arrangement mixer panel UI shell.
- Hybrid clip loop playback.
- WAV file import as audio clip.
- Arrangement clip placement and playback.
- Mixer audio routing and track controls.
- IndexedDB project persistence.
- Variable hybrid clip length.
- Adjustable arrangement length.
- Arrangement WAV export.
- Project JSON export/import.
- Basic effects.
- Keyboard shortcuts for transport and editing.
- Basic undo and redo.
- Velocity editing for drum and note events.
- Clip duplication.
- Starter project template.
- Metronome.
- Quantize utilities.
- Swing or groove timing after strict timing is reliable.
- MIDI file import or export.
- Realtime audio recording.
- VST/plugin support.
- Cloud sync.
- Multiplayer collaboration.
- Advanced audio mastering.
- Full DAW replacement scope.