- Extract WAV assembly (buildWav, mergeFloat32Arrays, decodeFloat32Chunk,
SAMPLE_RATE) into web/lib/audio/wav.ts so it can be reused by the
Studio playback engine and library waveform previews
- Add server/waveform.py with compute_peaks() / write_peaks() — reads
any WAV, mixes to mono, returns min/max peak arrays matching the
WaveformPeaks TypeScript type
- Add server/ids.py with prefixed URL-safe ID helpers (gen_id, proj_id,
asset_id, etc.) using stdlib secrets — no new dependency
- Add docs/studio-build-plan.md — full execution spec covering stack
decisions, data models, API contract, component hierarchy, phase
breakdown and acceptance criteria
- Ignore data/ directory (generated audio, waveforms, SQLite DB)