Replacing PulseAudio with Pipewire became much simpler recently with PipeWire 0.3.30 and requires less configuration. I’m going to go through the updated routine. You can read the original post for more explanations.
The new version is still only available in
experimental as of today.
$ sudo apt install -t experimental pipewire-pulse pipewire-audio-client-libraries libspa-0.2-bluetooth
pipewire-pulse package takes care of most of the configuration that was previously needed, like touching
with-pulseaudio or manually creating the systemd service files.
$ systemctl --user daemon-reload $ systemctl --user disable pulseaudio.socket pulseaudio.service $ systemctl --user stop pulseaudio.socket pulseaudio.service $ systemctl --user mask pulseaudio.service pulseaudio.socket $ systemctl --user enable --now pipewire pipewire-pulse pipewire-media-session
Don’t remove the PulseAudio packages yet. While not being used, some packages still depend specifically on PulseAudio and might break. See the original post for more details.
Enable mSBC and SBC XQ
One of the main advantages of PipeWire is proper support for better sounding bluetooth audio profiles, and specifically mSBC and SBC XQ. Copy
~/.config/pipewire/media-session.d/bluez-monitor.conf (or to
/etc/pipewire/media-session.d/bluez-monitor.conf) and in the
properties section add the following lines:
bluez5.msbc-support = true bluez5.sbc-xq-support = true