summaryrefslogtreecommitdiff
path: root/tools/timeline_editor
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-15 16:41:08 +0100
committerskal <pascal.massimino@gmail.com>2026-02-15 16:41:08 +0100
commit3a3eca975f15d1e025d6c46c6de253d2abaa7170 (patch)
tree766b9684a4075681c571b06caae1262f30910381 /tools/timeline_editor
parent6e7aa374b6e0e5ebda2f3525c130ce0cc1cd72cb (diff)
fix(audio): WAV dump drift improvements, acceptable state
WAV dump changes: - Bypass ring buffer, render directly with synth_render() - Frame accumulator eliminates truncation errors - Skip pre-fill and fix seek for WAV dump mode - Result: No glitches, -150ms drift at 64b (acceptable) Timeline editor: - Fix waveform tooltip position calculation - Increase beat bar visibility (0.5 opacity) Cleanup: - Remove all drift debugging code from audio.cc and tracker.cc Status: Acceptable for now, further investigation needed. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Diffstat (limited to 'tools/timeline_editor')
-rw-r--r--tools/timeline_editor/index.html4
-rw-r--r--tools/timeline_editor/timeline-playback.js2
2 files changed, 3 insertions, 3 deletions
diff --git a/tools/timeline_editor/index.html b/tools/timeline_editor/index.html
index bc7f2a0..9768343 100644
--- a/tools/timeline_editor/index.html
+++ b/tools/timeline_editor/index.html
@@ -45,7 +45,7 @@
.timeline { position: relative; min-height: 100%; }
.sticky-header { position: sticky; top: 0; background: var(--bg-medium); z-index: 100; padding: 20px 20px 10px 20px; border-bottom: 2px solid var(--bg-light); flex-shrink: 0; }
- .waveform-container { position: relative; height: 80px; overflow: hidden; background: rgba(0, 0, 0, 0.3); border-radius: var(--radius); cursor: crosshair; }
+ .waveform-container { position: relative; height: 80px; overflow: hidden; background: rgba(0, 0, 0, 0.5); border-radius: var(--radius); cursor: crosshair; }
#cpuLoadCanvas { position: absolute; left: 0; bottom: 0; height: 10px; display: block; z-index: 1; }
#waveformCanvas { position: absolute; left: 0; top: 0; height: 80px; display: block; z-index: 2; }
.waveform-cursor { position: absolute; top: 0; bottom: 0; width: 1px; background: rgba(78, 201, 176, 0.6); pointer-events: none; z-index: 3; display: none; }
@@ -56,7 +56,7 @@
.time-markers { position: relative; height: 30px; margin-top: var(--gap); border-bottom: 1px solid var(--bg-light); }
.time-marker { position: absolute; top: 0; font-size: 12px; color: var(--text-muted); }
.time-marker::before { content: ''; position: absolute; left: 0; top: 20px; width: 1px; height: 10px; background: var(--bg-light); }
- .time-marker::after { content: ''; position: absolute; left: 0; top: 30px; width: 1px; height: 10000px; background: rgba(60, 60, 60, 0.2); pointer-events: none; }
+ .time-marker::after { content: ''; position: absolute; left: 0; top: 30px; width: 1px; height: 10000px; background: rgba(100, 100, 60, 0.9); pointer-events: none; }
.sequence { position: absolute; background: #264f78; border: 2px solid var(--accent-blue); border-radius: var(--radius); padding: 8px; cursor: move; min-height: 40px; transition: box-shadow 0.2s; }
.sequence:hover { box-shadow: 0 0 10px rgba(14, 99, 156, 0.5); }
diff --git a/tools/timeline_editor/timeline-playback.js b/tools/timeline_editor/timeline-playback.js
index 8c84877..a1c50ab 100644
--- a/tools/timeline_editor/timeline-playback.js
+++ b/tools/timeline_editor/timeline-playback.js
@@ -168,7 +168,7 @@ export class PlaybackController {
ctx.stroke();
// Beat markers
- ctx.strokeStyle = 'rgba(255, 255, 255, 0.15)';
+ ctx.strokeStyle = 'rgba(255, 255, 255, 0.50)';
ctx.lineWidth = 1;
for (let beat = 0; beat <= maxTimeBeats; beat++) {
const x = beat * this.state.pixelsPerBeat;