You've successfully subscribed to Castopod Blog
Great! Next, complete checkout for full access to Castopod Blog
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.
Success! Your billing info is updated.
Billing info update failed.

Using PipeWire with Ubuntu 21.10 “Impish Indri”

PipeWire is a multimedia framework that replaces Jack Audio, Pulse Audio and ALSA. It also works with video streams. Althought Ubuntu 21.10 comes with PipeWire, it is not enabled by default. Let's see how we can do that in 3mn.

Benjamin Bellamy
Benjamin Bellamy

Many thanks to Ji Mingkui (“How to Enable PipeWire Audio Service to Replace PulseAudio in Ubuntu 21.10 & 21.04”), Unfa (“I've replaced JACK and PulseAudio with PipeWire and this is what happened”) and Alecks Gates for showing the way. 🙏

The beauty of switching to PipeWire is that, although it replaces ALSA, Jack Audio Connection Kit and PulseAudio, it is compatible with them: your usual application (such as Ardour…) will probably not see any difference and think, for instance, that it is connected to Jack Audio server. 🪄

Pipewire has many advantages over Alsa / Jack Audio / PulseAudio:

  • It works for both audio and video (Hello OBS!).
  • It is supposed to be more consistent.
  • It provides lower latency.
  • It works with sandboxed Flatpak applications.
  • It natively allows you to work with several sound cards simultaneously! 🥳

Please note that PipeWire is still experimental and unstable. 👶
⚠️ Use at your own risks.

Let's do the switch!

(Take me by my little hand)

First make sure that your computer is up-to-date:

$ sudo apt-get update
$ sudo apt-get upgrade

Reboot if necessary.

We will use the Personal Package Archives to get the latest ready-to-use and available version:

$ sudo add-apt-repository ppa:pipewire-debian/pipewire-upstream

Now we will install PipeWire's latest version:

sudo apt-get install pipewire

Now execute the following command in order to get GStreamer, JACK and Bluetooth support:

$ sudo apt install gstreamer1.0-pipewire libpipewire-0.3-{0,dev,modules} libspa-0.2-{bluetooth,dev,jack,modules} pipewire{,-{audio-client-libraries,pulse,media-session,bin,locales,tests}}

Rince and reboot. 🚿

Now run:

$ pactl info

PipeWire
You should see PipeWire.

That's it!

Install Helvum

Helvum is a GTK-based patchbay for pipewire. 🎛️

From a Terminal run the following:

$ git clone https://gitlab.freedesktop.org/ryuukyu/helvum.git
$ sudo apt-get install flatpak-builder
$ flatpak install org.freedesktop.Sdk.Extension.rust-stable//21.08
$ flatpak install org.freedesktop.Sdk.Extension.llvm12
$ flatpak-builder --install flatpak-build/ build-aux/org.freedesktop.ryuukyu.Helvum.json --user

You are now ready to plug some streams!
Helvum

Of course you can still use QJackCtl or Carla (as they will think Jack Audio is up & running):
QJackCtl-with-PipeWire
Carla-with-PipeWire

Now you can easily record from several sound cards:
Ardour-with-PipeWire

Tips & Tricks

Benjamin Bellamy

Podcasts, e-commerce & open-source. Father of Castopod. CEO of Ad Aures.