The PulseAudio Sound Server

A Presentation by Lennart Poettering

PulseAudio is a sound server for Unix/Linux and Windows systems. As such
it is a proxy for audio applications, handling mixing of multiple
audio streams and network transparency of audio output and input.

PulseAudio is intended to be a compatible drop-in replacement for the
GNOME sound server EsounD. To the functionality of Esound it adds some
new features, such as an extensible plug-in architecture, a better low
latency behaviour, a greater variety of supported sampling formats and
more accurate timing. It features a modern zero-copy memory manager
which reduces CPU and memory load. An extensive set of GUI tools for
configuration and management are available. In addition to the almost
complete compatibility with the EsounD protocol the sound server can
be accessed through the ALSA and the traditional OSS APIs, thus
reaching compatibility with 90% of the Linux audio applications.

The scope of application for the PulseAudio sound server is large and
diverse, ranging from embedded devices for networked audio, to thin
client audio, to normal user desktop audio.

PulseAudio is part of a few commercial products. It is our intention
to replace Esound as default GNOME sound server in the near future.

The sound server is available as part of a range of major distributions,
such as Fedora, Gentoo, Mandriva, OpenSUSE. By the time of
linux.conf.au it is very likely that it will be available in Debian
GNU/Linux and Ubuntu, too.

The presentation that I am proposing will be an introduction into this
sound server and its possibilities. It will include a more extensive
overview of the feature set mentioned above, a quick presentation of
the currently available plug-in modules and a list of third-party
applications which currently support PulseAudio natively.

I will demonstrate a few tricks which the sound server can do for the
user. In particular I plan to show hot-plugging of sound devices,
gap-free switching of active audio streams between multiple audio
devices, synchronous playback of a single stream on multiple devices
with differing crystals, Avahi/Zeroconf functionality, RTP multicast
streaming, X11 and GNOME integration, the GUI tools, the "Window
Manager for Sound".

I plan to compare PulseAudio's possibilities with the upcoming
Microsoft Vista sound architecture and PulseAudio's relation to the
GStreamer GSmartMix project. Subsequently I will talk about comparing
PulseAudio do other Free sound servers, which are arRts, JACK, and of
course Esound.

Then I would like to give an outlook on the near-time future of
PulseAudio, including upcoming new features and adoption by
third-party applications, distributions and other projects.

Finally - and only if time permits - I plan to give a quick
introduction on the PulseAudio configuration language which can be
used to adapt the sound server to the personal needs.

More information about the PulseAudio project is available on:

http://pulseaudio.org/

Direct link to video