Hacker News new | ask | show | jobs
by upofadown 3031 days ago
I have been using a OpenBSD system as my living room "media" computer for a while. Before that it was a Linux system. I have to discuss sndiod (the mixer daemon) as that is the interface that is normally used and it has the same API as the underlying sound drivers.

Comments:

1. There was a learning curve. You put all your default configuration in the /etc/mixerctl.conf file. After boot you use the mixerctl command to change anything you need to change. In my case I never use the mixerctl command as everything just works by using the per application volume controls. I have the master volume mapped to some function keys but I never use them.

2. The Sndio drivers, at least for my hardware, simplify the interface. That had good and bad results over the previous ALSA interface. The bad was that there were missing features. The good is that it was possible to actually figure out how to use regular audio. I was never able to figure out how to configure 5.1 audio properly on ALSA due to the ridiculous complexity of the onboard HD audio exposed through ALSA. When I moved to OpenBSD I was able to get rid of the extra sound card (which OpenBSD did not support).

3. The addition of sndiod (the mixer daemon) is for all practical purposes transparent. You get a single volume control per app and that is that. The hardware mixer controls are effectively hidden in a useful way. There is nothing like the separate ALSA hardware controls you have to mess with when you use Pulseaudio.

4. Once you set up your audio inputs (which are also done in a transparent way through sndiod) you are done. So when I pick up the mic to talk on mumble I expect that I will be heard, even if I have rebooted. Compared to my experience on Linux, this feels like witchcraft.

5. Sndio through sndiod has network transparency that is done in a fairly transparent way. You just add on a server name when specifying the device name. I use this functionality for a whole house audio system where the target is a sndiod running on a Linux system using ALSA as the backend. Debian has a sndiod package now.