summaryrefslogtreecommitdiff
path: root/src/audio/synth.cpp
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-05 23:02:59 +0100
committerskal <pascal.massimino@gmail.com>2026-02-05 23:02:59 +0100
commit3581fa88300f0208c83f0f687b18479979dad035 (patch)
tree3d95e65ee8b2689a5b2316d9e36f4e20e5310a31 /src/audio/synth.cpp
parent8cd444af4f3094257bea3626da809400a5e01f7a (diff)
milestone(timeline-editor): Task #57 Phase 1 Complete - Production-Ready EditorHEADmain
═══════════════════════════════════════════════════════════════════ 🎉 MILESTONE: Interactive Timeline Editor - Phase 1 Complete 🎉 ═══════════════════════════════════════════════════════════════════ Task #57 Phase 1 delivers a fully functional web-based timeline editor for demo.seq files, eliminating manual text editing and enabling visual sequence placement with audio waveform reference. ─────────────────────────────────────────────────────────────────── IMPLEMENTED FEATURES (Phase 1.1) ─────────────────────────────────────────────────────────────────── Core Editing: ✅ Load/save demo.seq files with BPM, beat notation, priority modifiers ✅ Gantt-style visual timeline with dynamic sequence/effect positioning ✅ Drag & drop sequences and effects along timeline ✅ Resize effects with left/right handles (allow negative relative times) ✅ Snap-to-beat mode with checkbox toggle and beat markers ✅ Delete sequences/effects, add new sequences ✅ Re-order sequences by start time Properties & Priority: ✅ Floating, collapsible properties panel with auto-apply ✅ Stack-order based priority system (Up/Down buttons) ✅ Priority modifier toggle: "Same as Above" (=) vs "Increment" (+) ✅ Editable sequence names and effect parameters ✅ Real-time statistics display Navigation & UX: ✅ Diagonal mouse wheel scroll with 10% viewport slack ✅ Smooth following to time-ordered sequence cascade ✅ Flash animation on active sequence change ✅ Hoverable sequence names (large centered, fades on hover) ✅ Hidden scrollbars (mouse wheel navigation only) ✅ Dynamic sequence bounds calculation ✅ Cumulative Y positioning (no overlap) Audio Visualization: ✅ Load WAV files via Web Audio API ✅ Waveform display above timeline (80px height, cyan color) ✅ Scales with zoom (pixels per second) ✅ Integration with --dump_wav flag documented ✅ Min/max amplitude visualization ✅ Crosshair cursor for precision ─────────────────────────────────────────────────────────────────── CRITICAL BUG FIXES ─────────────────────────────────────────────────────────────────── 🐛 e.target vs e.currentTarget drag offset bug (erratic jumping) 🐛 Sequence overlap with dynamic Y positioning 🐛 Effect relative time calculation errors 🐛 Left handle constraint preventing negative times 🐛 Properties panel not triggering re-render ─────────────────────────────────────────────────────────────────── TECHNICAL IMPLEMENTATION ─────────────────────────────────────────────────────────────────── Files: • tools/timeline_editor/index.html (~1200 lines) - Pure HTML/CSS/JavaScript, no dependencies - Works offline, no backend required - Web Audio API for waveform decoding - Event delegation for nested DOM elements • tools/timeline_editor/README.md - Usage guide and keyboard shortcuts - WAV file generation with --dump_wav integration - Format specification reference (doc/SEQUENCE.md) • tools/timeline_editor/ROADMAP.md - 3-phase development plan (117-161 hour estimate) - Phase 1.2: Add Effect button (next priority) - Phase 2.5: music.track visualization overlay Key Patterns: • Effect times stored RELATIVE to parent sequence startTime • Sequence visual bounds calculated from min/max effect times • Stack order determines priority (array index) • Snap-to-beat: Math.round(time / beatDuration) * beatDuration • Dynamic cumulative Y positioning prevents overlap • e.currentTarget vs e.target for proper event delegation ─────────────────────────────────────────────────────────────────── DOCUMENTATION UPDATES ─────────────────────────────────────────────────────────────────── TODO.md: • Added Task #57 to Recently Completed section • Comprehensive feature list and bug fix summary PROJECT_CONTEXT.md: • Added Milestone: Interactive Timeline Editor (February 5, 2026) • Documented integration with --dump_wav workflow • Next steps: Phase 1.2 and Phase 2.5 ─────────────────────────────────────────────────────────────────── NEXT STEPS ─────────────────────────────────────────────────────────────────── Phase 1.2: Add Effect Button (Priority: HIGH) - Create effects within sequences via UI - Modal dialog for effect class/timing/args Phase 2.5: Music.track Visualization (Priority: MEDIUM) - Parse music.track file format - Overlay tracker patterns/samples on timeline - Align visual sequences with audio events ─────────────────────────────────────────────────────────────────── IMPACT ─────────────────────────────────────────────────────────────────── ✨ Visual timeline editing now production-ready ✨ Eliminates manual text editing for sequence placement ✨ WAV waveform integration enables precise audio-visual alignment ✨ Snap-to-beat ensures musical timing accuracy ✨ Stack-order priority system simplifies effect layering ─────────────────────────────────────────────────────────────────── handoff(Claude): Timeline editor Phase 1 milestone complete. All core editing features working correctly. Waveform visualization integrated with --dump_wav workflow. Ready for Phase 1.2 (Add Effect button) or Phase 2 productivity enhancements (undo/redo, multi-select, templates). No known bugs. Production-ready for demo.seq editing workflow.
Diffstat (limited to 'src/audio/synth.cpp')
0 files changed, 0 insertions, 0 deletions