FreeBSD Sound: ALSA & Qt
Sound in FreeBSD is somewhat complicated because of the various portability and compatibility shims. Last week, I hit an annoying to diagnose situation: I plugged in a USB sound card and while the kernel and some applications detected it just fine, other applications didn’t seem to notice it at all.
At first, I thought it was a Qt issue since only Qt applications appeared broken. But then, mere minutes before emailing a FreeBSD mailing list, I managed to find a hint that it was likely an ALSA on FreeBSD issue. Some searching later, I learned that in order for ALSA to see the device, it needed a mapping to the actual OSS device.
So, after adding the following to ~/.asoundrc, any ALSA application (and therefore any Qt application) that tries to list the sound devices will see a “ft991a” device:
pcm.ft991a { type oss device /dev/dsp3 }
To make it more explicit, without adding the above stanza to .asoundrc:
- OSS applications work fine.
- PortAudio applications work fine.
- ALSA applications did not see the device.
With the stanza, everything seems to work.