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.
You missed the absolute best part about pipewire over just using pulse + jack...built in rtkit support! The low latency passthrough means there's FINALLY a solution other than alsa+jack on a realtime kernel for pro audio setups on linux.Now what we need is the equivalent audio project like Blender is for 3D. There are a few really good audio programs for Linux, but there could be better ones.
You missed the absolute best part about pipewire over just using pulse + jack...built in rtkit support! The low latency passthrough means there's FINALLY a solution other than alsa+jack on a realtime kernel for pro audio setups on linux.Now what we need is the equivalent audio project like Blender is for 3D. There are a few really good audio programs for Linux, but there could be better ones.
Bitwig ? (not open source though)
Thank you for bringing this to my attention!
One ring to rule them all+ Click to view long quote
This is probably a stupid question, but…why is there a split in the first place? Why can't consumer audio be low latency too? Or is this massive overkill like providing the average office worker with a monitor with a 500 Hz refresh rate?
You don't want nor need that, the monitor example is vaild if the compositor needs to render the same image 500 times per second.
Pro audio often needs extremely low latency (maybe even high bit depths and samplerates) that taxes the cpu, because to achieve it, you need to continuously load very small chunks of audio data to the audio card and that thread needs to run with realtime privileges or you'll end with what is called XRUN (empty buffer == audio glitches).
For example if you need to hear a sound sampled as soon as possible, say with a latency of 5ms, if i'm doing the math right, you need to load at most 1000ms/5ms = 200chunks of audio per second with a thread running at realtime priority.
So, if you don't want to use too much cpu just to play a wav file, maybe it is better to use latencies in the order of 20..40 msecs.
With pipewire, you can have the best of both worlds when you need one thing or the other.
As a side bonus, it provides interoperability between jack,alsa (usespace) and pulseaudio without the need to switch between them, nor to load them, because it implements all of them natively, and that will allow to do and play with ease with all the pro-audio apps/effects/equalizers available in the jack domain, much better than just pulse/easyeffects.
For once, there is work to reduce fragmentation done the right way, imho.
Granted, the software is still not perfect, but is under active development and devs are fast in fixing bugs, but they need users to report them ofc.
I mean latency is one of the reasons that the Atari ST is still considered excellent for MIDI production. Granted there are less people who utilize MIDI these days, but they are excellent machines!
Nothing I change will play sound from PoE to my HDMI TV
PoE always plays sound out of my laptop speaker
Pipewire never switches audio to my TV via HDMI
I have to do it for every app
Yeah pipewire works great
Last edited by doctorx on 22 May 2022 at 12:37 am UTC
You are not forced to use it? Ubuntu 22.10 will have pw installed by default instead of pa. Others will follow. I am not sold. I will admit my bias, but after working with red hat since late 90s... I would rather not have any more "improvements" from red hat. (Gnome,systemd,ifconfig removal,etc.) I haven't had a problem with pa in years now. They are just m$ of linux. And before you say it, i talked to rh almost daily for several years on various things.
I suppose one can remove pw and use pa? Either way, nothing is perfect, I get other issues with macOS and Windows 10.
Last edited by FurbyOnSteroid on 7 Jun 2022 at 1:07 pm UTC
See more from me