On 2022-01-25 16:02:29 (-0700), Paul Davis wrote:
Again, PipeWire *is* JACK and it is also PulseAudio.
It it not a
replacement for PulseAudio, it is a replacement for both of them. Once
you are using PipeWire, everything you've read about JACK bridging
etc. becomes incorrect and irrelevant.
That is technically not necessarily true, as it depends on how the build
of pipewire is configured (e.g. by default its JACK libraries are
configured to be installed to a pipewire internal location and it does
not install the header files) and how packages for a given distribution
are created from it.
On Arch Linux we have switched to a scenario where pipewire-jack (the
JACK implementation of pipewire, which depends on pipewire) is a virtual
provider of "jack". On Arch that also includes the headers, as we do not
really split for -dev packages.
The jack2 package also provides "jack" and therefore the two
implementations conflict with one another and can not be installed side
by side anymore.
Switching between the implementations has become a bit easier now that
we have jack-example-tools [1].
Pipewire can be installed without also having to install pipewire-jack
or pipewire-pulse (the pulseaudio implementation of pipewire). This
means that pipewire may be used on top of a different JACK
implementation (e.g. jack2), which apparently is possible [2].
From a user's perspective I believe this gives the highest amount of
flexibility to choose what they like.
It is true though, that some statements in regards to workflows with
JACK tooling might not hold when using pipewire-jack (e.g. pipewire-jack
does not currently implement internal clients or dbus support). This is
why I started a comparison table [3] for users to give a rough overview
at least.
Best,
David
[1]
https://github.com/jackaudio/jack-example-tools
[2]
https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/JACK
[3]
https://wiki.archlinux.org/title/JACK_Audio_Connection_Kit#Comparison_of_JA…
--
https://sleepmap.de