PulseAudio is a network-capable sound server program distributed via the freedesktop.org project. It runs mainly on Linux, various BSD distributions such as FreeBSD and OpenBSD, macOS, as well as Illumos distributions and the Solaris operating system. PulseAudio is free and open-source software, and is licensed under the terms of the LGPL-2.1-or-later. It was created in 2004 under the name Polypaudio but was renamed in 2006 to PulseAudio. PulseAudio has since been succeeded by PipeWire, which provides a compatible PulseAudio server (known as pipewire-pulse), and PipeWire is now used by default on many Linux distributions, including Fedora Linux, Ubuntu, and Debian. History Microsoft Windows was previously supported via MinGW (an implementation of the GNU toolchain, which includes various tools such as GCC and binutils). The Windows port has not been updated since 2011, however. Software architecture In broad terms ALSA is a kernel subsystem that provides the sound hardware driver, and PulseAudio is the interface engine between applications and ALSA. However, its use is not mandatory and audio can still be played and mixed together without PulseAudio. PulseAudio acts as a sound server, where a background process accepting sound input from one or more sources (processes, capture devices, etc.) is created. The background process then redirects these sound sources to one or more sinks (sound cards, remote network PulseAudio servers, or other processes). One of the goals of PulseAudio is to reroute all sound streams through it, including those from processes that attempt to directly access the hardware (like legacy OSS applications). PulseAudio achieves this by providing adapters to applications using other audio systems, like aRts and ESD. In a typical installation scenario under Linux, the user configures ALSA to use a virtual device provided by PulseAudio. Thus, applications using ALSA will output sound to PulseAudio, which then uses ALSA itself to access the real sound card. PulseAudio also provides its own native interface to applications that want to support PulseAudio directly, as well as a legacy interface for ESD applications, making it suitable as a drop-in replacement for ESD. For OSS applications, PulseAudio provides the padsp utility, which replaces device files such as /dev/dsp, tricking the applications into believing that they have exclusive control over the sound card. In reality, their output is rerouted through PulseAudio. libcanberra libcanberra is an abstract API for desktop event sounds and a total replacement for the "PulseAudio sample cache API": Complies with the XDG