Cleaning Up The Linux Desktop Audio MessLennart Poettering (email@example.com)
Desktop audio on Linux is a mess. There are just too many competing, incompatible sound systems around. Most current audio applications have to support every sound system in parallel and thus ship with sound abstraction layers with a more or less large number of backend plugins. JACK clients are incompatible with ALSA clients, which in turn are incompatible with OSS clients, which in turn are incompatible with ESD clients, and so on. "Incompatible" usually means "exclusive", i.e. if an OSS application gets access to the audio hardware, all ALSA applications cannot access it.
MacOSX has CoreAudio, Win XP has a new userspace audio layer, both manage to provide comprehensive APIs that make almost every user happy, ranging from desktop users to pro audio people. Both systems provide fairly modern, easy-to-use audio APIs, and a vast range of features including desktop audio "bling".
On Linux we should be able to provide the same: a common solution that works on the desktop, in networked thin-client setups and in pro audio environments, scaling from mobile phones to desktop PCs and high-end audio hardware.
I want to discuss what we can do about this, how a real-time, low-latency userspace sound system should look like, how we need to deal with the special requirements of networked audio and pro-audio stuff, how we should expose the sound system to desktop applications for allowing Compiz-style desktop "bling" for audio. I will introduce the PulseAudio sound server as an attempt to fix the Linux audio mess, already providing compatibility with 90% of all current Linux audio software, low-latency and network transparency in an extensible desktop sound server.