Sunday, December 27, 2009

computers: the heck of Linux audio, the hell of documenting it

For no apparent reason sound stopped playing in certain applications on my computer.

I'm running the Kubuntu flavor (incorporating the KDE Plasma Desktop) of the Ubuntu distribution of Linux, which makes certain decisions about how sound should be configured. But I've also installed latest Firefox and Thunderbird and the Flash plug-in and the VLC media player; these make their own decisions about how to play sounds. Kubuntu appears to provide an audio "software stack" consisting of the following layers: hardware audio drivers, the ALSA low-level Linux interface to audio, the PulseAudio server to mix audio streams and talk to different hardware, and KDE's Phonon audio abstraction. That's complicated enough, but great minds can and do disagree if this is the best approach to audio; some people think audio should be simpler, some think it should support playing across the network to your Bluetooth headset when you walk into the garden and automatically switch to 5.1 surround sound if you login to your friend's home PC. Those disagreements result in multiple software packages and approaches to audio. So somehow some piece of software additionally installed the GStreamer multimedia framework and the esound daemon on my computer. And each of these layers can be configured to talk to, bypass, or emulate the other layers, so maybe I have an emulation of OSS or JACK or some other software approach. Each program tries to detect what's available and use the right approach, but each program and layer can be configured to use different layers. Who knows where the problem is? Who knows what the right solution is?

Each one of these programs and packages has sound-related documentation. But each doesn't know how my system is configured, so their instructions are inadequate, incomplete, or wrong.

So I search for "ubuntu sound problems". One of the results is "Comprehensive Sound Problem Solutions Guide", even though it was written in 2006! And it has 1,680 follow-up comments! Another search result confidently instructs you to remove the PulseAudio sound engine altogether, even though it's what Kubuntu uses. Another tells you how to compile source programs to add sound support, even though Kubuntu came with dozens of sound packages and other programs have installed many more. Most instructions tell you to make unexplained undocumented changes to configuration files, even though there are configuration dialog boxes in Kubuntu and it attempts to configure itself correctly without these files.

The documentation is spread everywhere; Google rewards the oldest most out-of-date information; reasonable people don't agree on how it should work. I'm probably screwed. If and when I figure out how to fix my problem I would love to improve the "Linux sound documentation", but in what form (bug report, forum post, wiki page, web page, built-in help) for which component or layer or distribution? Agggggghh.

Labels: ,