summaryrefslogtreecommitdiff
path: root/tools/timeline_editor/timeline-playback.js
AgeCommit message (Collapse)Author
9 hoursrefactor(timeline-editor): complete variable unit renames in modulesskal
- newPixelsPerSecond → newPixelsPerBeat - maxTime → maxTimeBeats (in waveform render) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
9 hoursfix(timeline-editor): disable waveform tooltip when no audio loadedskal
- Add audioBuffer check before showing tooltip/cursor in viewport controller - Sync variable renames in module files (pixelsPerBeat, audioDurationSeconds) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
9 hoursrefactor(timeline-editor): centralize BPM calculationsskal
Replace repeated 60.0/bpm calculations with precomputed secondsPerBeat and beatsPerSecond properties. Add computeBPMValues helper and updateBPM function for consistency. Also prevent wheel events on time markers. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
9 hoursdocs: document audio WAV drift bug investigationskal
Root cause: audio_render_ahead() over-renders by 366ms per 10s, causing progressive timing drift in WAV files. Events appear early in viewer. Findings: - Renders 11,733 extra frames over 40s (331,533 vs 319,800 expected) - Ring buffer accumulates excess audio (~19 frames/iteration) - WAV dump reads exact 533 frames but renders ~552 frames per call - Results in -180ms drift at 60 beats visible in timeline viewer Debug changes: - Added render tracking to audio.cc to measure actual vs expected - Added drift printf to tracker.cc for kick/snare timing analysis - Added WAV sample rate detection to timeline viewer See doc/AUDIO_WAV_DRIFT_BUG.md for complete analysis and proposed fixes. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
11 hoursrefactor(timeline-editor): extract viewport and playback to ES6 modulesskal
Extract zoom/scroll/playback code from monolithic index.html into separate modules for better code organization: - timeline-viewport.js: Zoom, scroll sync, indicator positioning (133 lines) - timeline-playback.js: Audio loading, playback, waveform rendering (303 lines) - index.html: Reduced from 1093 to 853 lines (-22%) Requires HTTP server for ES6 module imports. Updated README with usage. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>