Once upon a time (and it wasn't that long ago), if you wanted to do real, low-latency work with audio on Linux, you faced serious trouble. That's no longer true. PipeWire 1.0, an audio/video software streaming bus, is finally here after 15 years of development.
The problem PipeWire solves is that, for years, Linux has had three different -- and sometimes conflicting -- ways to deal with audio: Advanced Linux Sound Architecture (ALSA), PulseAudio, and JACK Audio Connection Kit (JACK).
Also: Ultramarine Linux Flagship is a contender for desktop of the year
ALSA provides kernel-driven sound card drivers and userspace libraries for application developers. PulseAudio provides an audio-routing and control level on top of ALSA. Both of these programs have had problems, especially in their early years. JACK, meanwhile, is a sound server API and daemon for supporting real-time, audio-low-latency connections between applications.
ALSA is an essential tool for all Linux audio work. PulseAudio is aimed more at consumers. When you're listening to YouTube Music, Spotify, or Pandora on your Linux desktop, you're almost certainly using PulseAudio. But, if you're a professional musician or audio engineer, you need JACK. PipeWire, however, works for both ordinary users who want to listen to their music and for people mixing 24-track audio sessions.
That dual role isn't how PipeWire started, though. At the start, PipeWire was all about sharing video streams between processes. The rise of Flatpak containerized applications and Wayland, the X11 window system replacement, meant PipeWire's developers realized that it could do much more.
Also: This is my new favorite default email client for Linux
In particular, the developers believed PipeWire could address PulseAudio and JACK's conflicts and limitations. Yet PipeWire isn't just seeking to replace these tools. As Wim Taymans, a Red Hat principal software engineer, and PipeWire's creator, explained in a Fedora Magazine interview: "The message is still to use the PulseAudio and JACK APIs. They are proven, and they work, and they are fully supported."
Indeed, Taymans continued: "We've also not seen applications use the WirePlumber library yet. I think this is partly because the PulseAudio compatibility is so good that there is no need for native applications yet."
Today, PipeWire serves as a bridge between applications and devices. It provides a universal method for applications to establish media streams. These streams can be routed to any device or application for playback or recording. Additionally, to facilitate stream exchange, PipeWire incorporates a system to determine the connections between applications and devices, specifying the linkage, manner, and timing of these connections.
Also: How openSUSE Tumbleweed makes a great case for rolling release Linux distributions
PipeWire is already the default audio server for the newer desktop Linux distributions, Fedora Linux, Pop! OS, Ubuntu, and openSUSE. I have no doubt that PipeWire will soon be in every Linux distro.
To help you use PipeWire, Collabora, the Linux and open-source support and consulting company, supplies WirePlumber as a session manager for PipeWire's media pipelines. For deeper information on how to make the most of PipeWire, check out the LinuxMusicians site and the LinuxAudio Reddit forum.