For those of you dead set against using PA, you may want to look into this project to emulate PulseAudio support for ALSA: https://github.com/i-rinat/apulse
Nice. I dread having to do any audio configuration on linux. I originally hoped that pulse audio would move linux in the right direction, but in my experience things are as messy as ever with one more ugly wart to worry about. It's made me seriously consider purchasing a mac.
FreeBSD audio has been amazing for as long as I've used it.
You can also set these sysctl's:
hw.snd.latency_profile=0
hw.snd.latency=3
And then in your OSS code, use this ioctl:
int cooked = 0;
ioctl(fd, SNDCTL_DSP_COOKEDMODE, &cooked);
The result is that I have lower latency with multiple audio streams on FreeBSD than I do on Windows using WASAPI exclusive mode (where your application takes sole control of the sound card.) Pulseaudio on Linux ... doesn't even come close to either in terms of latency. Easily a 60+ ms latency penalty, which is definitely noticeable in video games.
And the code to output OSS audio is way simpler and easier than WASAPI, ALSA, and Pulse. Even easier than Pulse's simple API wrapper.
I hadn't even considered any of the BSDs (it's for servers in my mind - a stereotype :) ). I'm definitely going to give it a go. I have a small recording setup in a spare room to play with which is currently running linux.