Does anybody have any experience with switching to pipewire?
I'm considering making the switch to pipewire, as my current setup involving a bridge between JACK and PulseAudio is growing frustrating. Even on a fresh boot, Spotify won't play until Pulse has been killed and restarted, and the same goes for games through Steam. All the while, Firefox audio works perfectly without doing so, and I can jump straight into recording with reaper without any issues from the get-go.
I've been reading through the Arch wiki to get a feel for what the process should be like, and it seems like it'll be relatively straightforward, but given that I do a lot of music recording on my computer, I don't want to experience a total breakage of my sound setup. I'm planning to make a full backup of my system before making any changes, so I can roll it back if need be, but if anybody has any experience with switching to pipewire on a production system, I'd be grateful to hear about any pitfalls or problems that you ran into which I should be aware of in advance!
Yep. Switched on NixOS. Was as effortless as could get. I don't have any specialized use case (no JACK or audio creativity stuff), just normal consumer use. Videos, video games, built in laptop speakers, wired headphones, Bluetooth sound system. Zero issues after switch. Highly recommended.
I switched my KDE Neon desktop over, maybe a year or two back, and it was pretty straightforward; I haven't had any issues with it since.
In my case it was just a matter of installing the appropriate pipewire packages and swapping out the systemd services.
If you need any help with the specifics I can go run down the notes I took, but if you're on Arch already it should be pretty manageable. As long as you have the pipewire-pulse adapter, it should be totally transparent to all your PA-using applications.
I'm on Gentoo. I haven't used JACK in maybe a year or so. I do quite a lot of audio work (in ardour), but have been able to accomplish all I need with strictly ALSA for ardour, and PulseAudio for everything else.
I realize none of that answers your main question, but I ask myself: What do I need PipeWire for if things are mostly working for me right now?
I recently built a new desktop and used Pipewire right off the bat on my initial install (Void Linux). Was impressed enough that it prompted me to make the switch on my other machines (mostly Arch Linux installs) and it all went pretty smoothly. Installing the relevant packages on Arch and swapping out the user services was all that was necessary to replace both pulseaudio and jack. You can mostly use the same applications and utilities that you used before since there are compatibility layers, but there are also an increasing number of tools built specifically for pipewire to replace some of them.
On my desktop I regularly do all of the following without any problems:
pw-link
to set up virtual sources and sinks and relatively complex audio routing between themqpwgraph
GUI to manually set up audio routing (very similar to Catarina in jack)guitarix
as a virtual ampThe only gotchas I ran into so far are:
When I installed it on Arch Linux ARM running on a Raspberry Pi 3B+ with an Adafruit voice bonnet, the microphone would occasionally stop working until I restarted. I use it as a Mycroft AI voice assistant and it would simply stop responding (even though I could SSH in and play audio, the microphone was simply dead). I rebuilt the whole thing in Void Linux instead, also using Pipewire, and the microphone has new been fine for several days, so I have no idea what the problem was under Arch (the voice bonnet is pretty niche hardware running through the I2C interface with its own DKMS modules, so it could be anything).
On Void Linux pipewire is automatically configured to run
pipewire-media-session
, which I didn't realize, so I followed the Arch Wiki and installed and enabledwireplumber
without realizing that both of those were now running at the same time. I was experiencing occasional application freezes when audio started playing until I realized those were both fighting to control the configuration and manually disabledpipewire-media-session
in the pw config. Once I did that it became smooth sailing.Prompted by this, I just switched my laptop install using this person's writeup on how they did it 5 days ago.
I'll run some tests and edit this post.
Distro: OpenSUSE Tumbleweed
DE: KDE
Audio devices tested:
With this setup, I played a video in Firefox, a radio stream in VLC, and connected a zoom meeting. I randomly swapped the audio devices around for each application, both via KDE and the respective applications. It was flawless. Using PulseAudio, Firefox was always a crapshoot to know if it'd work smoothly after a device swap.
As the final test (for now), I yanked out the dock, removing 3 active devices. After a second or so all the audio was routed to the remaining 2 devices. Plugged dock back in, and after all devices initialized, all the audio was routed back to the previously configured devices.
I'm quite impressed so far.
Fairly simple on both Ubuntu and Fedora, rather straightforward, which was surprising considering its audio drivers.
I'm using an external audio card with my system and I've always had to deal with various issues stemming from PulseAudio. I even have a section specifically dedicated to audio issues on my technical docs.
But ever since I switched to Fedora (which uses Pipewire), I've had zero issues. It was plug and play. I don't know how my experience would translate to yours since your process seems infinitely more complex compared to mine, but I just wanted to give another thumbs up for Pipewire.
Fedora switched to Pipewire and uses the pipewire-pulse compatibility layer. No issues on my end, only improvements.