|
|
Log in / Subscribe / Register

PipeWire: The Linux audio/video bus

PipeWire: The Linux audio/video bus

Posted Mar 3, 2021 15:07 UTC (Wed) by clump (subscriber, #27801)
Parent article: PipeWire: The Linux audio/video bus

I'd be curious if PipeWire really could replace JACK right now. JACK has been dragged through the ringer to get latency extremely low, for quite a long time. While mentioned in the article, it's not just low latency that a JACK-based workflow enables. JACK's workflow enables extremely flexible signal routing. It's quite easy with command line or GUI tools to take a guitar signal from an external capture device and route it through an effects stack like Guitarix and into a DAW like Ardour. What if you'd like to keep the dry signal at the same time? Simply route the raw signal into a new track in a DAW. What if you want one signal or the other to be played through certain speakers? Simply adjust accordingly in JACK's tools. And so on.

Some of the early discussion on Linux Musicians is promising, however: https://linuxmusicians.com/viewtopic.php?f=27&t=22150


to post comments

PipeWire: The Linux audio/video bus

Posted Mar 3, 2021 17:43 UTC (Wed) by jsmith45 (guest, #125263) [Link] (4 responses)

My understanding is that basically all the routing flexibility of JACK is fully present, and works. From what I've read, not only does it work, but the existing tools you use to manage the JACK graph will let you re-configure the audio graph for PulseAudio API applications too, as though they had magically became JACK apps. This is a very different experience from the nearly impossible to set up PulseAudio over JACK, where you could not configure each individual PulseAudio stream.

PipeWire: The Linux audio/video bus

Posted Mar 3, 2021 20:22 UTC (Wed) by andresfreund (subscriber, #69562) [Link]

In the bug tracker for pipewire there were people using it for pretty complex jack setups. Seems perf / latency unsurprisingly isn't on par yet, but improving.

PipeWire: The Linux audio/video bus

Posted Mar 3, 2021 22:16 UTC (Wed) by Wol (subscriber, #4433) [Link]

But that's rather irrelevant. As I understood it, the PRIMARY motivation behind Jack was the minimal latency. If you haven't got that, you won't even be considered as a Jack replacement, whatever else you may offer.

Cheers,
Wol

PipeWire: The Linux audio/video bus

Posted Mar 3, 2021 23:24 UTC (Wed) by nyanpasu64 (guest, #135579) [Link] (1 responses)

QjackCtl fails to start on pipewire-jack because qjackctl uses the JACK session API. If you override the .so file (eg. using pipewire-jack-dropin), you get a dynamic linking error when running qjackctl (missing symbol jack_session_commands_free). Fixing this requires rebuilding qjackctl without the deprecated session API (https://github.com/NixOS/nixpkgs/issues/102547#issuecomme...).

Additionally, looking at https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/FAQ (which may or may not be up-to-date):

- "Does Desktop Audio Interfere With Pro-Audio Using PipeWire?" talks as if they haven't picked, implemented, and debugged an approach yet.

> This does not include extra buffering in the resamplers (~50 samples). There is a resampler in each stream and sink/source. There is not yet an option to remove the resampler latency while inactive.
- I hope they remove it before 1.0.

I've experienced audio xruns and high CPU usage (possibly linked to Pipewire) when attempting to use Pipewire's Pulse API on my laptop (Pipewire 0.3 non-Git on Arch Linux, a few weeks ago) (though without a realtime kernel). Maybe my system can't handle the latency I picked, though I forgot what it was. I ended up erasing/resetting my Pipewire config files, when debugging Pipewire causing Minecraft and Telegram Desktop to hang upon startup.

PipeWire: The Linux audio/video bus

Posted Mar 4, 2021 5:47 UTC (Thu) by darwi (subscriber, #131202) [Link]

> QjackCtl fails to start on pipewire-jack because qjackctl uses the JACK session API

No, that's an artifact of NixOS building QjackCtl in an obsolete manner. QjackCtl works out of the box with PipeWire, in both Arch Linux and Fedora (didn't try other distributions).

PipeWire: The Linux audio/video bus

Posted Mar 3, 2021 18:17 UTC (Wed) by dbnichol (subscriber, #39622) [Link] (1 responses)

I'm not a JACK user, but https://feaneron.com/2020/12/07/switching-to-pipewire/ shows a JACK application in action on pipewire.

PipeWire: The Linux audio/video bus

Posted Mar 4, 2021 6:05 UTC (Thu) by darwi (subscriber, #131202) [Link]

Indeed. Check this cool PipeWire audio pipeline. It shows Carla, a JACK application, controlling the audio pipeline routing of multiple PulseAudio applications like Firefox, and GNOME Settings.

It also shows Spotify, a PulseAudio application, having its audio streams passed through Calf Bass Enhancer, a JACK plugin, then routed to the system's default ALSA sink.


Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds