after updating to 1.1.62, I was greeted with "Audio Error" - "Couldn't initialize audio. Audio is disabled." It worked fine right before the upgrade.
tl;dr: it looks like the switch to sdl_mixer changed the default audio backend from pulseaudio to alsa, which broke on my system due to a missing configuration file.
Though I managed to solve it for me, I'm posting this anyway because
- this is an undocumented change, and a regression for some. Whether that's an acceptable side effect or not, the devs should be aware that it's happening.
- documenting it may help the next person running into this issue.
- as always, the error messages could be improved.
- Twinsen asked us to
When I change the audio backend to allegro in the hidden settings it works. default, allegro-via-sdl and sdl do not.0.178 Warning SoundInterfaceSDL.cpp:37: Installing audio failed (backend:sdl, depth:16, freq:44100) retrying...
0.679 Warning SoundInterfaceSDL.cpp:37: Installing audio failed (backend:sdl, depth:16, freq:44100) retrying...
1.181 Warning SoundInterfaceSDL.cpp:37: Installing audio failed (backend:sdl, depth:16, freq:44100) retrying...
1.683 Warning SoundInterfaceSDL.cpp:37: Installing audio failed (backend:sdl, depth:16, freq:44100) retrying...
2.185 Warning SoundInterfaceSDL.cpp:37: Installing audio failed (backend:sdl, depth:16, freq:44100)
Reading the changelog, I tried installing the packages sdl_mixer and sdl2_mixer (arch linux), but those didn't help.
More or less by accident, I managed to find some additional output on stderr (which didn't appear in the log files):
While it doesn't give a reason for the failure (device busy? device not found?), this looked suspicious - is it trying to connect to a hardware pcm instead of pulseaudio? It looks like it does - installing the pulseaudio-alsa package would configure the default alsa device to use pulseaudio. Now audio works again with all backends.ALSA lib pcm_dmix.c:999:(snd_pcm_dmix_open) unable to open slave
Not sure if this is PEBKAC for my broken alsa configuration or a legitimate regression for changing the default backend. You decide.