For context, check the files project.md and mvp.md
- Capture the project vision and high-level architecture in
project.md - Define the first playable product scope in
mvp.md - Create a progress tracker for the work ahead
- Decide the initial song data model and file/version format
- Define the app information architecture and main screen layout
- Create the audio engine foundation in
apps/web - Initialize
AudioContextfrom a user gesture - Add AudioWorklet-based transport and scheduling
- Implement pulse voice 1
- Build the transport bar with play, stop, BPM, and loop length
- Add per-voice analysers for waveform capture
- Build a reusable waveform canvas component
- Build five sequencer rows with one row per voice
- Implement pulse voice 2
- Implement triangle voice
- Implement noise voice
- Implement PCM sample voice
- Add note entry UI for pulse and triangle voices
- Add trigger UI for noise and PCM voices
- Add per-voice mute and volume controls
- Add duty cycle controls for pulse voices
- Add noise rate or mode controls
- Add microphone permission and recording flow
- Add sample preview and trim controls
- Connect recorded PCM samples to the sample lane
- Decide
Inspired modePCM behavior, including whether samples can be mapped to musical notes - Define
Authentic modePCM/DPCM constraints and how they differ fromInspired mode - Save and load songs from a shareable URL hash
- Test playback timing under normal UI interaction
- Polish the editor UI for desktop and mobile