2022-11-28

I have been an OpenBSD desktop user since May. In my blog post, I mentioned I was having some audio woes with OpenBSD. Namely, when running Firefox on OpenBSD it wouldn’t take long for the audio to sound like someone was taking a hammer to my ears. Now that may be an exaggeration, but someone might as well have because the stuttering frustrated me to no end. I tried a handful of solutions:

  1. Reducing core usage in Firefox

  2. Switching Firefox cache to use an mfs filesystem

  3. Handful of knobs to reduce as much I/O to disk as possible

No luck.

The Trouble

After (likely) annoying people too much on the OpenBSD Matrix channel (sorry!), I have concluded a couple things:

  1. USB on OpenBSD sucks

  2. Audio on OpenBSD sucks

Now in many ways I most certainly feel like an outsider to OpenBSD. The community is great, but because of the way the OpenBSD dev community operates, it is perhaps unlikely to get anywhere with any sort of audio bugs. After perusing the bugs and misc mailing lists, there seems to be a lot of unanswered and unresolved threads relating to audio issues.

I get it. OpenBSD is a small group, basically all donation based, and there are so many hands. So on one hand I feel my complaint is valid, but my expectation to have something fixed simply should not be an expectation. I have pretty well learned that a lot of OpenBSD is by and for the developers. If you aren’t one, then, well, you probably aren’t going to get what you want. I don’t fault the project with this. In fact, even if there are some things that frustrate me, such as this audio issue, I really appreciate what the project has become because of their approach to who contributes what.

USB on OpenBSD Sucks

At first, I pointed my fingers at Firefox. After Firefox 91 ESR these problems ensued. But this seems to only be a problem because (as the devs tell me) USB is far from perfect on OpenBSD, and yes, apparently the stack is flimsy enough that a (heavy) browser can thrash the crap out of it.

New Hardware Time

Since I pretty well decided I won’t be using chromium browsers anytime soon, and there’s probably no way I could expect USB to get to a place I want (maybe if I had donation money and someone who would take up the work), I decided to try out S/PDIF audio.

I bought an AudioEngine D1 DAC deciding that if USB audio sucks hardcore, then maybe using the S/PDIF out on my motherboard could bypass that and I’ll get good sound.

Boy, I didn’t think it could possibly get worse. It seems this issue has been mentioned in the past at least twice

No resolution. Basically, not too long after use, whatever is playing constantly loops the last second of audio until finally sndiod just says "NOPE" and now nothing else will play. Restarting sndiod doesn’t work. In fact, the daemon successfully runs, and running in debug mode shows nothing once this happens. You have to restart your computer.

I’ve had a 1 hour session of no issues, and a session last half a song. It is unpredictable.

Audio on OpenBSD Sucks

So, USB audio stutters, the azalia drivers seems to just blow up over S/PDIF, and standard headphone jack may be usable, but I want good sounding audio darn it!

So…​What Now?

Well, my previous DAC was a FiiO E10k. Stuttered horribly on OpenBSD. SO FAR this AudioEngine D1 does not seem to exhibit this behavior over USB. I am REALLY hoping this continues to function okay.

This seems to be a very hardware-specific issue over USB then for audio. So in conclusion, I will +1 the AudioEngine D1 for OpenBSD. It sounds good, is fairly compact, and does not stutter when running Firefox on OpenBSD.