The steps on this askubuntu answer https://askubuntu.com/a/1340029 were almost complete but I had to do a little bit of config file setup with extra instructions from the Arch wiki (https://wiki.archlinux.org/title/PipeWire).
Tested on Ubuntu 21.04+
Steps:
sudo add-apt-repository ppa:pipewire-debian/pipewire-upstream
sudo apt update
sudo apt install pipewire
sudo apt install libspa-0.2-bluetooth
sudo apt install pipewire-audio-client-libraries
systemctl --user daemon-reload
systemctl --user --now disable pulseaudio.service pulseaudio.socket
systemctl --user mask pulseaudio
systemctl --user --now enable pipewire-media-session.service pipewire-pulse.socket
sudo cp /usr/share/pipewire/pipewire-pulse.conf /etc/pipewire/
sudo cp /usr/share/pipewire/client.conf /etc/pipewire/
systemctl --user restart pipewire.service pipewire-pulse.socket
You: you should be able to switch back to pulseaudio if anything goes wrong with:
systemctl --user --now disable pipewire-media-session.service pipewire-pulse.socket
systemctl --user mask pipewire
systemctl --user unmask pulseaudio
systemctl --user --now enable pulseaudio.service pulseaudio.socket
Restart pipewire with:
systemctl --user restart pipewire.service pipewire-pulse.socket