Ubuntu 22.04 has better support for the low latency PipeWire multimedia framework. Here’s how to setup it for PulseAudio, ALSA, JACK and Bluetooth output.
Firstly, Pipewire is pre-installed out-of-the-box, and runs as background service automatically. You may check it out by running command below in terminal:
systemctl --user status pipewire pipewire-session-manager
Step 1: install client libraries
Though available out-of-the-box, it’s not in use by default for audio output. To get start, first press Ctrl+Alt+T on keyboard to open terminal, and run command to install client libraries:
sudo apt install pipewire-audio-client-libraries libspa-0.2-bluetooth libspa-0.2-jack
Step 2: install wireplumber to replace pipewire-media-session
The project maintainer now recommends more advanced “wireplumber” session manager when to use Pipewire as system sound server.
To install the package and remove “pipewire-media-session”, run the command below in terminal:
sudo apt install wireplumber pipewire-media-session-
NOTE: there’s a ‘-‘ in the end of the command indicates to remove the package. The command will also install the required pipewire-pulse automatically.
Step 3: Copy configuration files:
wireplumber makes things quite easy! If you just want to replace PulseAudio with Pipewire, enable the media session service and restart and that’s all!!
For ALSA clients to be configured to output via PipeWire, run command to copy the configure file:
sudo cp /usr/share/doc/pipewire/examples/alsa.conf.d/99-pipewire-default.conf /etc/alsa/conf.d/
For JACK client, run command:
sudo cp /usr/share/doc/pipewire/examples/ld.so.conf.d/pipewire-jack-*.conf /etc/ld.so.conf.d/
And then sudo ldconfig
.
For Bluetooth, just remove the pulseaudio-module-bluetooth package via command:
sudo apt remove pulseaudio-module-bluetooth
And, finally enable the media session by running command:
systemctl --user --now enable wireplumber.service
Step 4: Verify
After restarted Ubuntu 22.04, run the command below in terminal.
pactl info
It should output Sound server: PulseAudio (on PipeWire x.x.x) indicates Pipewire is in use as sound ouput.