diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-05 23:02:59 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-05 23:02:59 +0100 |
| commit | 3581fa88300f0208c83f0f687b18479979dad035 (patch) | |
| tree | 3d95e65ee8b2689a5b2316d9e36f4e20e5310a31 /TODO.md | |
| parent | 8cd444af4f3094257bea3626da809400a5e01f7a (diff) | |
milestone(timeline-editor): Task #57 Phase 1 Complete - Production-Ready Editor
═══════════════════════════════════════════════════════════════════
🎉 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 'TODO.md')
| -rw-r--r-- | TODO.md | 17 |
1 files changed, 17 insertions, 0 deletions
@@ -120,6 +120,23 @@ This file tracks prioritized tasks with detailed attack plans. - [x] **Enhanced Procedural Noise:** Implemented a multi-octave Value Noise generator for higher-quality skybox textures. - [x] **Scene Integrity:** Restored proper object indexing and removed redundant geometry, ensuring the floor grid and objects render correctly. +- [x] **Task #57: Interactive Timeline Editor (Phase 1 Complete)** 🎉 + - [x] **Core Parser & Renderer**: Implemented demo.seq parser with BPM, beat notation, priority modifiers. Gantt-style timeline rendering with dynamic sequence/effect positioning. + - [x] **Drag & Drop**: Sequences and effects draggable along timeline with proper offset calculation. Fixed critical e.target vs e.currentTarget bug preventing erratic jumping. + - [x] **Resize Handles**: Left/right handles on selected effects. Allow negative relative times (effects extend before sequence start). + - [x] **Snap-to-Beat**: Checkbox toggle with beat markers. Automatic snapping when dragging in beat mode. + - [x] **Properties Panel**: Floating, collapsible panel with auto-apply (no Apply button). Properties update on input change. + - [x] **Stack-Order Priority**: Up/Down buttons to reorder effects within sequence. Stack position determines rendering priority (higher index = rendered later = on top). + - [x] **Priority Modifiers**: Toggle button for "Same as Above" (= modifier) vs "Increment" (+ modifier). Visual feedback in button text. + - [x] **Diagonal Scroll**: Mouse wheel navigation with 10% viewport slack. Smooth following to time-ordered sequence cascade. Flash animation on active sequence change. + - [x] **Dynamic Bounds**: Sequence visual bounds calculated from min/max effect times. Cumulative Y positioning prevents overlap. + - [x] **Waveform Visualization**: Load WAV files (via Web Audio API) and display waveform above timeline. Scales with zoom (pixels per second). Documented integration with `--dump_wav` flag. + - [x] **UI Polish**: Hoverable sequence names (large centered text, fades on hover). No scrollbars (hidden CSS). Clean, minimal interface. + - [x] **File I/O**: Load/save demo.seq files with proper serialization. BPM parsing and display. Re-order sequences by time. + - [x] **Delete & Add**: Delete sequences/effects. Add new sequences (at time 0, priority 0). + - **Result**: Fully functional timeline editor ready for production use. Phase 1.1 complete (basic editing, snap-to-beat, waveform). Phase 1.2 (Add Effect button) and Phase 2.5 (music.track visualization) documented in ROADMAP.md. + - **Files**: `tools/timeline_editor/index.html` (~1200 lines), `README.md`, `ROADMAP.md` (3 phases, 117-161 hour estimate). + ## Priority 2: 3D System Enhancements (Task #18) **Goal:** Establish a pipeline for importing complex 3D scenes to replace hardcoded geometry. - [ ] **Task #18.0: Basic OBJ Asset Pipeline** (New) |
