Audio crackling with Pipewire(possibly also Pulseaudio?) on Raspberry Pi
megatog615 opened this issue · 3 comments
Describe the bug
On Raspberry Pi (in my case a CM4), when using the default SDL_AUDIODRIVER, audio is incredibly crackly. When setting SDL_AUDIODRIVER to "alsa" (SDL_AUDIODRIVER=alsa ./sm64.us.f3dex2e.arm) audio quality is restored.
To Reproduce
SDL will default to using pulse/pipewire (from what I can tell) and will have crackly audio. Launching the game using SDL_AUDIODRIVER=alsa should result in correct audio.
Expected behavior
From what I understand, even using alsa will still have the audio routed to the pipewire daemon. It should produce the same audio on both.
Desktop:
You will need a Raspberry Pi using Raspberry Pi OS with pipewire installed as a sound daemon.
Wow, I see Pulse hasn't changed at all in 10 years. Anyway, I don't think I can do anything about this other than maybe provide a setting for which audiodriver to use.
Pulse is a piece of shit. Simply avoid it as much as you can. There's no way around it.
It's not a problem of the engine, indeed: sm64-ex is fantastic and sounds perfectly well on a sane audio stack like plain Alsa.
Pulse is one of those projects that seemed to be tailored to destroy the GNU/Linux ecosystem from inside, and probably it was. His creator is still at it, he's now openly working for Microsoft.
Wow, I see Pulse hasn't changed at all in 10 years. Anyway, I don't think I can do anything about this other than maybe provide a setting for which audiodriver to use.
This is a good solution. I'm guessing this would be done with SDL_SetHint?
In any case it is strange that setting the variable to alsa sounds correct even though Pipewire is still intercepting it.