![]() So far I’ve found two killer hacks that PipeWire makes possible, that we’ll get to in a moment. Any application that supports Pulse now supports PipeWire, and at the same time it can pull all the clever tricks that JACK can. PipeWire is a drop-in replacement for Pulseaudio and JACK at the same time. That may sound like a whole lot of feature creep, starting from a simple video transport system, and ending up re-implementing both JACK and PulseAudio. PipeWire would just implement the JACK API. Convincing every project to add support for yet another Linux audio server was going to be an uphill battle, so they cheated. If PipeWire could satisfy the needs of pro audio users, it could feasibly replace JACK as the go-to audio backend for digital audio workstations like Ardour. ![]() If PulseAudio was going to be rebuilt from the ground up, then it might as well address pro audio. In other words, any application that can talk to PulseAudio automatically has PipeWire support. To make this a seamless transition, PipeWire was built to be fully compatible with the PulseAudio server. Once that decision was made, it became obvious that PipeWire could replace PulseAudio altogether. While doing the initial protocol design, it became apparent that AV synchronization would be a devilish problem if audio and video were routed over separate systems, so it was decided that PipeWire would include audio handling as well. He had been working on making PulseAudio play nicely with containerized applications, and started thinking about how to solve the problem for video streams, too. The story told is that was contemplating applications distributed as Flatpaks, and realized that this would be problematic for video input and output. To let the cat out of the bag, PipeWire is that new system, and it has the potential to be the solution for nearly everyone. I’m loathe to suggest that yet another audio system could solve the world’s audio problems, but it would be nice to have the best of both worlds. PulseAudio isn’t usable for pro audio, and JACK is too complicated for everything else. It’s the conundrum faced by Linux users for years now. For example, all of the Pulse streams get mixed together, and show up as a single device on the JACK graph, so you can’t route them around or treat them seapartely. Yes, but it’s just a bit of a pain, to get the PulseAudio plugin to work with JACK. You may wonder if there is any way to use PulseAudio and JACK together. JACK lets you almost arbitrarily route audio streams, and is very much intended for a professional audio audience. If you’ve used Ardour, or done much with Firewire audio interfaces, you’re probably familiar with the JACK Audio Connection Kit - recursive acronyms are fun. The other side of the Linux audio coin is JACK. PulseAudio brought some really nice features to Linux, like moving sound streams between devices and dynamically resampling streams as needed. My experience was that after a couple years of fixing bugs, the experience got to be quite stable and useful. It’s probably the case that a number of distros switched to Pulse before it was quite ready. ![]() For quite a few years, the standard answer for any audio problem on Linux was to uninstall PulseAudio, and just use ALSA. Raise your hand if you remember when PulseAudio was famous for breaking audio on Linux for everyone.
0 Comments
Leave a Reply. |