summaryrefslogtreecommitdiff
path: root/assets/final/shaders/ellipse.wgsl
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-07 10:46:43 +0100
committerskal <pascal.massimino@gmail.com>2026-02-07 10:46:43 +0100
commit0f79b532c886f338ab80d506d4b06048e1784056 (patch)
tree28639cc355c91e294ced1dd1d3491b822c3e45b8 /assets/final/shaders/ellipse.wgsl
parent858f9d5e765bfc8f8f13b38fa0fab790139a0740 (diff)
refactor(audio): Remove tempo logic from WavDumpBackend
Fixed design flaw where WavDumpBackend had hardcoded tempo curves duplicating logic from main.cc. Backend should be passive and just write audio data, not implement simulation logic. Changes: - WavDumpBackend.start() is now non-blocking (was blocking simulation loop) - Added write_audio() method for passive audio writing - Removed all tempo scaling logic from backend (lines 62-97) - Removed tracker_update() and audio_render_ahead() calls from backend - Removed set_duration() (no longer needed, frontend controls duration) Frontend (main.cc): - Added WAV dump mode loop that drives simulation with its own tempo logic - Reads from ring buffer and calls wav_backend.write_audio() - Tempo logic stays in one place (no duplication) - Added ring_buffer.h include for AudioRingBuffer access Test (test_wav_dump.cc): - Updated to use frontend-driven approach - Test manually drives simulation loop - Calls write_audio() after each frame - Verifies passive backend behavior Design: - Backend: Passive file writer (init/start/write_audio/shutdown) - Frontend: Active simulation driver (tempo, tracker, rendering) - Zero duplication of tempo/simulation logic - Clean separation of concerns All 27 tests pass. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Diffstat (limited to 'assets/final/shaders/ellipse.wgsl')
0 files changed, 0 insertions, 0 deletions