The de facto Linux sound-mixing system

Manage Your Audio Life

© Photo by Kelly Sikkema on Unsplash

© Photo by Kelly Sikkema on Unsplash

Article from Issue 299/2025
Author(s):

PipeWire lets you transparently handle ALSA, JACK, and PulseAudio applications, making it useful for both general and professional audio users.

PipeWire [1] is a software layer that handles audio mixing on a GNU/Linux-powered computer. Chances are, you are running PipeWire on your Linux PC right now, although you might not be aware of it because PipeWire transparently emulates the three most important audio systems: ALSA, JACK, and PulseAudio. For this reason, you can take advantage of PipeWire's facilities while still continuing to run your existing software.

PipeWire attempts to balance the needs of professional audio users, such as musicians, with the needs of general users such as gamers and general desktop users. If desired, you can simply sit back and benefit from what PipeWire is doing behind the scenes. But if you're a more advanced audio user, you can also get into the details of PipeWire's configuration and routing capabilities.

This article breaks down what PipeWire is and what it can do, along with some examples of how to handle some common audio scenarios.

Understanding the Ecosystem

Before trying to understand PipeWire, I need to explain the other sound system layers that work alongside PipeWire: ALSA, PulseAudio, and JACK.

Advanced Linux Sound Architecture (ALSA) is the layer that works with the kernel to talk directly to the sound hardware. It has a major limitation in that only one application can access it at a time.

PulseAudio, which began to appear in major Linux distributions around 2008, is a sound server that can mix simultaneous audio streams from different applications and pass them on to ALSA. PulseAudio does a good job of managing multiple audio streams for typical desktop applications, but it comes with some limitations. In particular, it's not the first choice for musicians, because it doesn't offer low latency. That is, it can't guarantee a reliably fast response for audio work. It's not much fun for a keyboard player if there is a delay between hitting the key and the sound coming out of the speakers.

JACK Audio Connection Kit (JACK) carries out a similar function to PulseAudio, but it's aimed at professional audio users because it offers more complex routing options with lower latency at the cost of higher CPU usage. JACK can also handle sound mixing in an advanced manner. For example, if you have a sound interface with multiple inputs and outputs, JACK can route the audio between them. It can even take the output of one audio application and route it into another.

Most of the major desktop Linux distributions run PipeWire these days, but there are a few exceptions (e.g., Slackware). For those cases, consult your distribution's documentation to install PipeWire.

Enter PipeWire

Where does PipeWire fit into this ecosystem, particularly as there seems to be some overlap between its functions and those of the other standards? PipeWire emulates the JACK and PulseAudio servers. Before PipeWire, if you wanted to use PulseAudio and JACK at the same time, you would have to allow JACK to take over ALSA and then configure PulseAudio to connect to JACK as a client. It was complicated to set up, and you'd need this setup if you wanted to, for example, watch a piano tutorial on YouTube while simultaneously playing the piano within a music program. Generally speaking, you can launch JACK and PulseAudio applications and utilities, and PipeWire will manage the setup and routing issues for you.

PipeWire also emulates ALSA. Applications can think that they are taking over the soundcard, but they are really being routed by PipeWire.

Managing Your Sound System

The PipeWire design aims to meet the needs of regular users as well as professionals. Managing your sound device for normal desktop use is a good example of this approach. The official advice from the PipeWire developers is to use the PulseAudio utilities to control things like the volume and output selection of the audio outputs of your sound device, such as a soundcard.

PulseAudio features an audio utility called PulseAudio Volume Control (sometimes called pavucontrol or simply Volume Control, Figure 1). You can use pavucontrol to control your soundcard's overall sound output, but you can also use it to control the volume of individual applications such as your web browser.

Figure 1: PulseAudio's GUI can control the inputs and outputs of sound hardware and running applications.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • PipeWire

    In the coming year, PipeWire will replace PulseAudio, resulting in better audio on Linux. If you can't wait, here's what you need to know to get started with PipeWire.

  • PipeWire 1.0 Officially Released

    PipeWire was created to take the place of the oft-troubled PulseAudio and has finally reached the 1.0 status as a major update with plenty of improvements and the usual bug fixes.

  • This Month's DVD

    Ubuntu 21.04 and Fedora 34 Workstation

  • Reaper

    Linux users looking for a professional digital audio workstation can now take advantage of Reaper's large feature set.

  • FOSSPicks

    This month Graham looks at Ardour, FluffyChat, PlugData, Cameractrls, hiSHtory, CadQuery Editor, and more!

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More

News