diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-09 12:57:22 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-09 12:57:22 +0100 |
| commit | 807c6f5097897fac92428b939df020cdb70aae77 (patch) | |
| tree | e79322ab6a62b08a95cb3ecc7c7a24a962808f6c /src/audio/audio.cc | |
| parent | 655d0a627c17b598562616a269e53bf06124d43f (diff) | |
fix: Audio startup hiccup - use fill_audio_buffer for pre-fill
- Added target_fill parameter to audio_render_ahead() for explicit control
- Pre-fill now uses fill_audio_buffer() (same logic as main loop)
- Ensures consistent tempo scaling and time advancement
- Reduced pre-fill from 400ms to 100ms (was blocking visuals)
- All 33 tests passing
handoff(Claude): Fixed audio startup silence/suspension issue
Diffstat (limited to 'src/audio/audio.cc')
| -rw-r--r-- | src/audio/audio.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/audio/audio.cc b/src/audio/audio.cc index 2f485a6..c5bd3d9 100644 --- a/src/audio/audio.cc +++ b/src/audio/audio.cc @@ -65,9 +65,11 @@ void audio_start() { g_audio_backend->start(); } -void audio_render_ahead(float music_time, float dt) { +void audio_render_ahead(float music_time, float dt, float target_fill) { // Target: maintain look-ahead buffer - const float target_lookahead = (float)RING_BUFFER_LOOKAHEAD_MS / 1000.0f; + const float target_lookahead = (target_fill < 0.0f) + ? (float)RING_BUFFER_LOOKAHEAD_MS / 1000.0f + : target_fill; // Render in small chunks to keep synth time synchronized with tracker // Chunk size: one frame's worth of audio (~16.6ms @ 60fps) |
