summaryrefslogtreecommitdiff
path: root/TODO.md
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 /TODO.md
parent8cd444af4f3094257bea3626da809400a5e01f7a (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.md17
1 files changed, 17 insertions, 0 deletions
diff --git a/TODO.md b/TODO.md
index aecc06a..71fc3bc 100644
--- a/TODO.md
+++ b/TODO.md
@@ -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)