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.
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
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!
Of course you can still use QJackCtl or Carla (as they will think Jack Audio is up & running):
Now you can easily record from several sound cards: