SIGN IN SIGN UP

fix audiospeed.SpeedChanger direct playback, fixes #11020

Fix by setting "single_buffer = false".
When single_buffer = true, the DMA driver sets up a hardware loop that
resets the read address back to buffer[0] at full DMA speed, never calling
get_buffer again. This caused SpeedChanger to replay its first 128-frame
output buffer indefinitely when connected directly to audioio/audiobusio.

Setting single_buffer = false enables the double-buffering path w/ DMA
interrupts, which keeps calling get_buffer() so the phase accumulator can
advance through the source audio correctly.

Using AudioMixer as an intermediary masks the bug since
Mixer/mix_down_one_voice() calls get_buffer() on its voices directly,
bypassing the single_buffer optimization.
T
Tod Kurt committed
f1a360fff56b359ffe0e329960daec2e92a74eb7
Parent: 0ec323a