PulseAudio to bring earcandy to Linux

PulseAudio is a cross-platform, open source sound server that is designed to …

PulseAudio is a cross-platform, open source sound server that supports advanced software mixing capabilities and network transparency. PulseAudio is designed to be a drop-in replacement for the Esound daemon and uses a pluggable Esound module for backwards compatibility.

PulseAudio provides the infrastructure needed to bring a next-generation audio experience to the Linux desktop. PulseAudio will make it possible to independently control the volume of individual applications, support moving audio streams between devices on the fly, output audio on multiple devices simultaneously, and provide compatibility with GNOME's fast user switching functionality.

There are also some subtle and compelling ways in which PulseAudio improves the overall user experience. PulseAudio will pave the way for intelligent audio hotplugging functionality—making it possible for the system to automatically redirect VoIP program audio streams when users plug in or remove USB headsets, for instance. PulseAudio's support for network transparency will also facilitate some impressive functionality. For instance, users will be able to use Zeroconf to detect other computers on the local network that are running audio servers and then dynamically redirect audio output to any of those computers.

Another possible feature is support for conditional dynamic volume adjustment. For instance, PulseAudio would make it possible for a VoIP program to automatically reduce the volume of music programs when a call starts. The software could also be used to automatically reduce the audio volume of all windows that aren't in the foreground so that if you are playing two movies simultaneously, for instance, the movie in the active window would have higher volume. PulseAudio could also be used for more esoteric "earcandy" like making it so that system event sounds play out of the left or right speaker depending the side of the screen on which the event took place.

In a lengthy e-mail to the GNOME development mailing list, PulseAudio maintainer Lennart Poettering explains the value of PulseAudio and responds to some concerns expressed by members of the GNOME community. He also discusses the path for integrating PulseAudio into the GNOME desktop environment.

Rather than making PulseAudio an official part of GNOME, Poettering believes that the proper solution is to make GNOME no longer treat Esound as a hard-coded dependency so that PulseAudio can optionally be adopted by Linux distributors and users. For GNOME, this will involve creating a lightweight, cross-platform abstraction layer called libcanberra that will be used instead of hard calls to libesd from within libgnome. This solution will remove GNOME's hard dependency on Esound without adding a hard dependency on PulseAudio, thus maximizing user choice.

Fedora 8 already uses PulseAudio by default, and Poettering says that OpenSUSE is planning to do the same. The Ubuntu development community is also considering PulseAudio, but hasn't made any decisions yet. As PulseAudio becomes the standard in mainstream distributions, the GNOME audio experience should improve considerably.