This article has multiple issues. Please help improve it or discuss these issues on the talk page . (Learn how and when to remove these template messages)
|
Developer(s) |
|
---|---|
Initial release | 17 July 2004 [1] |
Stable release | 17.0 [2] / 12 January 2024 |
Repository | gitlab |
Written in | C [3] |
Operating system | FreeBSD, NetBSD, OpenBSD, Linux, Illumos, Solaris, macOS, and Microsoft Windows (not maintained) |
Platform | ARM, PowerPC, x86 / IA-32, x86-64, and MIPS |
Type | Sound server |
License | LGPL-2.1-or-later [4] |
Website | pulseaudio.org |
PulseAudio is a network-capable sound server program distributed via the freedesktop.org project. It runs mainly on Linux, including Windows Subsystem for Linux on Microsoft Windows and Termux on Android; various BSD distributions such as FreeBSD, OpenBSD, and macOS; as well as Illumos distributions and the Solaris operating system. It serves as a middleware in between applications and hardware and handles raw PCM audio streams. [5]
PulseAudio is free and open-source software, and is licensed under the terms of the LGPL-2.1-or-later. [4]
It was created in 2004 under the name Polypaudio but was renamed in 2006 to PulseAudio. [6]
PulseAudio competes with newer 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. [7] [8] [9]
On Microsoft Windows, PulseAudio runs in Windows Subsystem for Linux.
The NT kernel was previously supported via MinGW (an implementation of the GNU toolchain, which includes various tools such as GCC and binutils). The NT kernel port has not been updated since 2011, however. [10]
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). [11]
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 is an abstract API for desktop event sounds and a total replacement for the "PulseAudio sample cache API":
libSydney is a total replacement for the "PulseAudio streaming API", and plans have been made for libSydney to eventually become the only audio API used in PulseAudio. [15]
The main PulseAudio features include: [11]
PulseAudio first appeared for regular users in Fedora Linux, starting with version 8, [18] then was adopted by major Linux distributions such as Ubuntu, Debian, [19] Mandriva Linux, and openSUSE. There is support for PulseAudio in the GNOME project, and also in KDE, as it is integrated into Plasma Workspaces, adding support to Phonon (the KDE multimedia framework) and KMix (the integrated mixer application) as well as a "Speaker Setup" GUI to aid the configuration of multi-channel speakers. PulseAudio is also available in the Illumos distribution OpenIndiana, and enabled by default in its MATE desktop environment.
Various Linux-based mobile devices, including Nokia N900, Nokia N9 and the Palm Pre [20] use PulseAudio.
Tizen, an open-source mobile operating system, which is a project of the Linux Foundation and is governed by a Technical Steering Group (TSG) composed of Intel and Samsung, uses PulseAudio.
JACK is a sound server that provides real-time, low-latency (i.e. 5 milliseconds or less) audio performance and, since JACK2, supports efficient load balancing by utilizing symmetric multiprocessing; that is, the load of all audio clients can be distributed among several processors. JACK is the preferred sound server for professional audio applications such as Ardour, ReZound, and LinuxSampler; multiple free audio-production distributions use it as the default audio server.
It is possible for JACK and PulseAudio to coexist: while JACK is running, PulseAudio can automatically connect itself as a JACK client, allowing PulseAudio clients to make and record sound at the same time as JACK clients. [36]
PipeWire is an audio and video server that "aims to support the use cases currently handled by both PulseAudio and Jack". [37] [38]
Before JACK and PulseAudio, sound on these systems was managed by multi-purpose integrated audio solutions. These solutions do not fully cover the mixing and sound streaming process, but they are still used by JACK and PulseAudio to send the final audio stream to the sound card.
A Linux distribution is an operating system made from a software collection that includes the Linux kernel and often a package management system. Linux users usually obtain their operating system by downloading one of the Linux distributions, which are available for a wide variety of systems ranging from embedded devices and personal computers to powerful supercomputers.
Advanced Linux Sound Architecture (ALSA) is a software framework and part of the Linux kernel that provides an application programming interface (API) for sound card device drivers.
The Open Sound System (OSS) is an interface for making and capturing sound in Unix and Unix-like operating systems. It is based on standard Unix devices system calls. The term also sometimes refers to the software in a Unix kernel that provides the OSS interface; it can be thought of as a device driver for sound controller hardware. The goal of OSS is to allow the writing of sound-based applications that are agnostic of the underlying sound hardware.
JACK Audio Connection Kit is a professional sound server API and pair of daemon implementations to provide real-time, low-latency connections for both audio and MIDI data between applications. JACK was developed by a community of open-source developers led by Paul Davis and has been a key piece of infrastructure and the de facto standard for professional audio software on Linux since its inception in 2002. The server is free software, licensed under GPL-2.0-or-later, while the library is licensed under LGPL-2.1-or-later.
freedesktop.org (fd.o), formerly X Desktop Group (XDG), is a project to work on interoperability and shared base technology for free-software desktop environments for the X Window System (X11) and Wayland on Linux and other Unix-like operating systems. Although freedesktop.org produces specifications for interoperability, it is not a formal standards body.
A sound server is software that manages the use of and access to audio devices. It commonly runs as a background process.
Planet CCRMA is a collection of Red Hat packages to help set up and optimize a Red Hat-based workstation for audio work.
The Linux kernel provides multiple interfaces to user-space and kernel-mode code that are used for varying purposes and that have varying properties by design. There are two types of application programming interface (API) in the Linux kernel:
HAL is a software subsystem for UNIX-like operating systems providing hardware abstraction.
Upstart is a discontinued event-based replacement for the traditional init daemon—the method by which several Unix-like computer operating systems perform tasks when the computer is started. It was written by Scott James Remnant, a former employee of Canonical Ltd. In 2014, Upstart was placed in maintenance mode, and other init daemons, such as systemd, were recommended in place of Upstart. Ubuntu moved away from Upstart with the release of version 15.04 in favor of migrating to systemd. As of March 2023, there have been no updates released for Upstart since September 2014.
nouveau is a free and open-source graphics device driver for Nvidia video cards and the Tegra family of SoCs written by independent software engineers, with minor help from Nvidia employees.
Ubuntu Studio is a recognized flavor of the Ubuntu Linux distribution, which is geared to general multimedia production. The original version, based on Ubuntu 7.04, was released on 10 May 2007.
Plymouth is an application which provides a graphical boot experience for Linux. Plymouth supports animations using Direct Rendering Manager (DRM) and the KMS driver. Plymouth is bundled with an initial ramdisk which allows it to run before the file system is mounted. Some sources claim that Plymouth is named after Plymouth Rock, symbolizing the program's role as the first thing a user sees, but this has not been confirmed in any official capacity.
systemd is a software suite that provides an array of system components for Linux operating systems. The main aim is to unify service configuration and behavior across Linux distributions. Its primary component is a "system and service manager" – an init system used to bootstrap user space and manage user processes. It also provides replacements for various daemons and utilities, including device management, login management, network connection management, and event logging. The name systemd adheres to the Unix convention of naming daemons by appending the letter d. It also plays on the term "System D", which refers to a person's ability to adapt quickly and improvise to solve problems.
Criticism of desktop Linux is a history of comment on the perceived shortcomings of the Linux operating system when installed on desktop computers. These criticisms have been aimed at the plethora of issues and lack of consistency between Linux distributions, their usefulness and ease of use as desktop systems for general end users, driver support and issues with multi-media playback and audio development.
Lennart Poettering is a German software engineer working for Microsoft and the original author of PulseAudio, Avahi and systemd.
Windows Subsystem for Linux (WSL) is a feature of Windows that allows developers to run a Linux environment without the need for a separate virtual machine or dual booting. There are two versions of WSL: WSL 1 and WSL 2. WSL 1 was first released on August 2, 2016, and acts as a compatibility layer for running Linux binary executables by implementing Linux system calls on the Windows kernel. It is available on Windows 10, Windows 10 LTSB/LTSC, Windows 11, Windows Server 2016, Windows Server 2019 and Windows Server 2022.
LDAC is a proprietary audio coding technology developed by Sony, which allows streaming high-resolution audio over Bluetooth connections at up to 990 kbps at 32 bits/96 kHz. It is used by various products, including headphones, earphones, smartphones, portable media players, active speakers, and home theaters.
PipeWire is a server for handling audio, video streams, and hardware on Linux. It was created by Wim Taymans at Red Hat. It handles multimedia routing and pipeline processing.
OSS is available not only for Linux but also for BSD OSes and other Unixes. That may be its only advantage, because this system is not very powerful and was officially replaced by ALSA in 2.5 kernels...