Linux and audio have never entirely gotten along well together, when PulseAudio came along it actually solved a lot of problems but it's PipeWire that's the real future.
Truthfully, I was hesitent to switch my own PC over from PulseAudio to PipeWire for fear of breakage, especially with the Steam Deck — I needed things to continue working smoothly. However, I also sometimes tend to just "YOLO" for the fun of it and so I did. I'm now running PipeWire and I have to tell you how happy I am with it.
PipeWire is a project that aims to greatly improve handling of audio and video under Linux. It provides a low-latency, graph based processing engine on top of audio and video devices that can be used to support the use cases currently handled by both pulseaudio and JACK. PipeWire was designed with a powerful security model that makes interacting with audio and video devices from containerized applications easy, with supporting Flatpak applications being the primary goal. Alongside Wayland and Flatpak we expect PipeWire to provide a core building block for the future of Linux application development.
Not only is it powerful, it's also surprisingly easy to use and assorted applications have sprung up around it to support it. Software like Helvum and qpwgraph have absolutely blown my mind on how ridiculously simple they make messing with audio inputs and outputs.
Something I've wanted to do for a long time, but Pulse didn't really help and I didn't like the complexity of JACK was to get different inputs and outputs going for OBS Studio for my livestreams. Things like only having very specific audio go to certain places. Now, it's ridiculously easy.
With the aforementioned applications, you just drag wires between things and…done. That's it. How is Linux audio now this easy?!
For example, grabbing the audio from my shiny Capture Card that's attached between the Steam Deck and my PC, with a drag of a wire I can now have it going to OBS Studio and also have it so only that goes to my Wireless headset. How about music playing that only I can hear? It's a small thing but PipeWire makes everything like that simple. Duplicating and moving audio streams with the drag of a wire. I like simplicity, it makes me happy. There's a huge amount this enables without diving into confusing configuration files, and there's no terminal needed - it's all in the UI. Lovely.
Linux audio is really going places with this. If you also haven't tried PipeWire yet, you're missing out.
It mostly stays out of my way which is where I like it.
Haven't seen that with pipewire.
I don't have a complicated audio setup nor i use any extra features that Pipewire might bring to table but even with just switching change was noticable.
I was in need of using `PULSE_LATENCY_MSEC=60` on Pulse for some games, lately on God Of War ( lip sync issue(. With Pipewire it is not needed anymore, works out of the box without issues.
Last edited by Leopard on 28 February 2022 at 9:39 pm UTC
Liam, what are you using for music playback that allows for persistent connections in the patchbay? VLC, clementine, and all the other stuff I've tried creates a new source whenever the track changes. VLC (in JACK mode) allows automatic connection to sinks matching a given pattern, but that's no patchbay simplicity.
Quoting: RaabenMaybe once a month it will manage to die and need to be restarted.
That's bit too much Pulseaudio compatibility for my taste
Pulse is amazing too you know problem is that it lacks Jack-like patchbay UI, everything needs to be done via CLI.
t. uses midi controller to control separate master/game/music/voip/browser volumes
t. uses networked pa to share mic and speakers between desktop and laptop
t. uses networked pa to stream music from mpd device to desktop laptop (and headless pulseaudio to bluetooth speakers)
See more from me