LinuxConf.Au: The PulseAudio Sound Server
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.