Look at sndio if you want to see how sound should be done. Excusing the horrible mess pulseaudio is with the horrible state of Linux Audio doesn't cut it, when OpenBSD has been offering a superior and simpler alternative for years!
It doesn't reinvent the wheel and for anything more complex you can always use JACK, like if you really want to go low-latency.
> Excusing the horrible mess pulseaudio is with the horrible state of Linux Audio doesn't cut it,
The problem is that most people complaining about Pulseaudio don't offer realistic alternatives. Saying Pulseaudio sucks and that everyone should use ALSA is a joke. Pulseaudio does a plethora of things that ALSA does not handle. Not to mention that ALSA is a low-level system, and PA actually sits on top of ALSA.
In all of the vitriol that people spew about Pulseaudio, this is the first time that I've seen anyone point to sndio. I think that says something about the "pulseaudio complainers" crowd.
That said does sndio provide the following features:
- Support for bluetooth audio devices
- Support for streaming audio over a network.
- Support for user-land mixing of audio sources (i.e. don't need root).
- Mixing of multiple audio streams at the same time (e.g. Can your system play an alert sound without interrupting your music?)
I realize I'm replying to a 2 weeks old comment, so nobody will read this ever, but from your list sndio supports: streaming audio over a network, user-land mixing of audio sources, mixing of multiple audio streams at the same time,
and per application volume settings.
> Per application input/output source settings
No, but the input/output device is selectable per application via the AUDIODEVICE environment variable.
> bluetooth audio devices
OpenBSD has no bluetooth support, so no. I'm also wondering why the kernel wouldn't create audio devices from these that the userland daemon can then just transparently use? Does an audio daemon need special support for bluetooth audio devices?
It doesn't reinvent the wheel and for anything more complex you can always use JACK, like if you really want to go low-latency.