Skip to content

Commit f2a548d

Browse files
authored
Merge pull request #62 from boostcampwm-snu-2026-1/docs/main-release-prep
docs: prepare develop for main release
2 parents 2055009 + e7bb7db commit f2a548d

17 files changed

Lines changed: 66 additions & 94 deletions

PLANS.md

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,34 +4,24 @@
44

55
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.
66

7-
## Current Milestone: M1 Hybrid Clip Editor
7+
## Current Milestone: Develop to Main Stabilization
88

9-
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.
9+
The current branch is being prepared for a `develop` to `main` PR. The goal is to make the repository easy to understand, verify, and review at its current prototype stage.
1010

11-
M1 should include:
11+
Focus:
1212

13-
- A Vite + React + TypeScript scaffold using CSS Modules.
14-
- A documented tick-based project model with PPQ 480.
15-
- Web Audio sample playback and sequenced lookahead scheduling.
16-
- A 16-step drum sequencer.
17-
- A basic piano roll.
18-
- Loop playback for the selected 1-bar clip.
19-
20-
## Active Preparation Tasks
21-
22-
- Establish repository instructions for coding agents.
23-
- Add product, architecture, data model, audio engine, UI, and testing documentation.
24-
- Add feature specs for the first five implementation tasks.
25-
- Add GitHub issue and PR templates.
26-
- Add a CI workflow that tolerates the repository before the scaffold exists.
13+
- Keep README, plans, and feature docs aligned with the implemented state.
14+
- Keep the GitHub Issue queue and `Active Issue Order` clean.
15+
- Verify the standard checks pass before opening release-prep PRs.
16+
- Avoid adding new product scope during stabilization unless the user explicitly asks for it.
2717

2818
## Active Issue Order
2919

30-
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.
20+
No active implementation issues are queued right now.
3121

32-
1. #59 Multi-project management -> `docs/features/22-multi-project-management.md`
22+
When new work is needed, create or update a feature spec under `docs/features/`, create a linked GitHub Issue, and add that issue here in priority order.
3323

34-
## Planned Milestones
24+
## Completed Milestones
3525

3626
1. Project scaffold.
3727
2. AudioContext and sample playback.
@@ -55,8 +45,14 @@ Use this section as the current execution order for agent work. Feature document
5545
20. Adjustable arrangement length.
5646
21. Arrangement WAV export.
5747
22. Multi-project management.
58-
23. Project JSON export/import.
59-
24. Basic effects.
48+
49+
## Planned Milestones
50+
51+
1. Project JSON export/import.
52+
2. Basic effects.
53+
3. Custom project-management dialogs to replace browser prompt/confirm flows.
54+
4. Browser-driven smoke tests with Playwright or an equivalent e2e tool.
55+
5. Broader manual/audio QA pass before treating the prototype as a stable release.
6056

6157
## Backlog
6258

@@ -69,6 +65,8 @@ Use this section as the current execution order for agent work. Feature document
6965
- Quantize utilities.
7066
- Swing or groove timing after strict timing is reliable.
7167
- MIDI file import or export.
68+
- Improved sampler sustain authoring and tuning UI.
69+
- More complete effect slots and effect parameter persistence.
7270

7371
## Frozen / Not Now
7472

README.md

Lines changed: 31 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,56 @@
11
# mini-web-daw-Jaewan-Park
22

3-
A Web Audio API-based mini DAW for sequencing synthesized and sampled instruments in the browser.
4-
5-
## Description
6-
7-
This project is an early browser-first mini DAW for creating electronic music with short clips. The planned first experience is a 1-bar hybrid clip editor that combines drum step sequencing, basic piano roll editing, and loop playback.
3+
A browser-first mini DAW prototype for creating electronic music with clips, step sequencing, piano-roll notes, arrangement playback, and local project persistence.
84

95
## Product Goal
106

117
Build a practical clip-based music creation tool that can grow beyond a demo while staying focused, serializable, and timing-conscious. React renders the interface, but exact audio scheduling belongs to the Web Audio engine.
128

13-
## Planned Stack
9+
## Stack
1410

1511
- Vite
1612
- React
1713
- TypeScript
1814
- CSS Modules
1915
- Web Audio API
20-
- npm scripts for development, checks, tests, and production builds
16+
- IndexedDB for browser-local project and imported sample persistence
17+
- ESLint, Vitest, and Vite build checks
2118

2219
## Current Status
2320

24-
The project has an initial Vite + React + TypeScript scaffold and early DAW UI/audio features under active development. Arrangement placement, arrangement playback, persistence, and broader song-building workflows are still planned work.
21+
The app is an early browser-based DAW prototype, not a full DAW replacement. Current develop-branch functionality includes:
2522

26-
## Getting Started
23+
- Main DAW shell with transport, sidebar, clip editor, and arrangement mode.
24+
- Drum step sequencer with lane sample selection, lane ordering, and step subdivisions.
25+
- Piano roll note editing with Default Synth and Iowa Piano playback paths.
26+
- Pattern and song transport playback with pause/resume, playhead, BPM control, and loop ranges.
27+
- Clip sidebar workflows for creating, renaming, deleting, importing WAV files, and adding/removing instruments.
28+
- Arrangement view for placing clips, moving/deleting clip instances, looped arrangement playback, adjustable arrangement length, mixer controls, and WAV export.
29+
- Browser-local IndexedDB persistence, imported audio blob persistence, and multiple local projects.
30+
31+
Known limits:
2732

28-
These are the intended commands after the scaffold is added:
33+
- Project storage is local to the current browser profile.
34+
- There is no cloud sync, account system, realtime recording, plugin support, or advanced mastering workflow.
35+
- Some UI flows still use simple browser dialogs while the core behavior is being stabilized.
36+
37+
## Getting Started
2938

3039
```bash
3140
npm install
3241
npm run dev
42+
```
43+
44+
Useful checks:
45+
46+
```bash
3347
npm run typecheck
3448
npm run lint
3549
npm run test
3650
npm run build
3751
```
3852

39-
The scaffold provides these scripts. Feature-specific behavior will be added in later milestones.
40-
41-
## Documentation Map
53+
## Documentation
4254

4355
- [Product definition](docs/product.md)
4456
- [Architecture](docs/architecture.md)
@@ -49,48 +61,10 @@ The scaffold provides these scripts. Feature-specific behavior will be added in
4961
- [Code conventions](docs/code-conventions.md)
5062
- [Project plans](PLANS.md)
5163
- [Agent instructions](AGENTS.md)
64+
- [Feature specs](docs/features/)
65+
66+
Course-facing planning and workflow notes are maintained in the [GitHub Wiki](https://github.com/boostcampwm-snu-2026-1/mini-web-daw-Jaewan-Park/wiki).
67+
68+
## Development Workflow
5269

53-
Feature task specs:
54-
55-
- [01 Project Scaffold](docs/features/01-project-scaffold.md)
56-
- [02 AudioContext and Sample Playback](docs/features/02-audio-context-and-sample-playback.md)
57-
- [03 Lookahead Scheduler](docs/features/03-lookahead-scheduler.md)
58-
- [04 Drum Step Sequencer](docs/features/04-drum-step-sequencer.md)
59-
- [05 Basic Piano Roll](docs/features/05-basic-piano-roll.md)
60-
- [06 Main DAW UI Shell](docs/features/06-main-daw-ui-shell.md)
61-
- [07 Transport Pause and Playhead](docs/features/07-transport-pause-and-playhead.md)
62-
- [08 Pitched Instruments and Sustain](docs/features/08-pitched-instruments-and-sustain.md)
63-
- [09 Sampler Advanced Sustain](docs/features/09-sampler-advanced-sustain.md)
64-
- [10 Tempo Control and BPM Slider](docs/features/10-tempo-control-and-bpm-slider.md)
65-
- [11 Arrangement View UI Shell](docs/features/11-arrangement-view-ui-shell.md)
66-
- [12 Sidebar Clip and Instrument Management](docs/features/12-sidebar-clip-instrument-management.md)
67-
- [13 Drum Step Subdivisions](docs/features/13-drum-step-subdivisions.md)
68-
- [14 Arrangement Mixer Panel UI Shell](docs/features/14-arrangement-mixer-panel-ui-shell.md)
69-
- [15 WAV File Import as Audio Clip](docs/features/15-wav-file-import-as-audio-clip.md)
70-
- [16 Arrangement Clip Placement and Playback](docs/features/16-arrangement-clip-placement-and-playback.md)
71-
- [17 Mixer Audio Routing and Track Controls](docs/features/17-mixer-audio-routing-and-track-controls.md)
72-
- [18 IndexedDB Project Persistence](docs/features/18-indexeddb-project-persistence.md)
73-
- [19 Variable Hybrid Clip Length](docs/features/19-variable-hybrid-clip-length.md)
74-
- [20 Adjustable Arrangement Length](docs/features/20-adjustable-arrangement-length.md)
75-
- [21 Arrangement WAV Export](docs/features/21-arrangement-wav-export.md)
76-
- [22 Multi-project Management](docs/features/22-multi-project-management.md)
77-
78-
## Initial Roadmap
79-
80-
1. Create the Vite + React + TypeScript scaffold.
81-
2. Add Web Audio `AudioContext` setup and one-shot sample playback.
82-
3. Add a lookahead scheduler for tick-based loop playback.
83-
4. Build a 16-step drum sequencer.
84-
5. Build a basic 1-bar piano roll.
85-
6. Combine drum and note events into hybrid clip loop playback.
86-
7. Import local WAV files as audio clips.
87-
8. Place clips on the arrangement timeline and play the arranged song.
88-
9. Connect mixer faders, mute, solo, and meters to real audio routing.
89-
10. Add browser-local project persistence with IndexedDB.
90-
11. Support longer hybrid clips and adjustable arrangement length.
91-
12. Render the arrangement to a downloadable WAV file.
92-
13. Manage multiple browser-local projects.
93-
94-
## Notes
95-
96-
The project should not overclaim working functionality while it is in planning and scaffolding. Future changes should keep project data serializable, store musical time in ticks, and keep React UI separate from exact audio timing.
70+
Feature work is planned through GitHub Issues and feature specs under `docs/features/`. Implementation PRs target `develop` by default. Changes should stay small, keep project data serializable, store musical time in ticks, and keep React UI separate from exact audio scheduling.

docs/features/01-project-scaffold.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Feature: 01 Project Scaffold
22

33
## Status
4-
Complete
4+
Done
55

66
## Goal
77

docs/features/02-audio-context-and-sample-playback.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Feature: 02 AudioContext and Sample Playback
22

33
## Status
4-
Complete
4+
Done
55

66
## Goal
77

docs/features/03-lookahead-scheduler.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Feature: 03 Lookahead Scheduler
22

33
## Status
4-
In Review
4+
Done
55

66
## Goal
77

docs/features/07-transport-pause-and-playhead.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Feature: 07 Transport Pause and Playhead
22

33
## Status
4-
In Review
4+
Done
55

66
## Goal
77

docs/features/09-sampler-advanced-sustain.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Feature: 09 Sampler Advanced Sustain
22

33
## Status
4-
In Review
4+
Done
55

66
## Goal
77

docs/features/12-sidebar-clip-instrument-management.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Feature: 12 Sidebar Clip and Instrument Management
22

33
## Status
4-
In Review
4+
Done
55

66
## Goal
77

docs/features/13-drum-step-subdivisions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Feature: 13 Drum Step Subdivisions
22

33
## Status
4-
In Review
4+
Done
55

66
## Goal
77

docs/features/15-wav-file-import-as-audio-clip.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Feature: 15 WAV File Import as Audio Clip
22

33
## Status
4-
In Review
4+
Done
55

66
## Goal
77

0 commit comments

Comments
 (0)