On 2023-02-08 04:03, Lorenzo Sutton wrote:
I recently reinstalled my uses Manjaro (Arch-based)
and I see I _do_
have a 'pipewire' package installed, but it looks like I'm actually
running pulseaudio (?) and am able to run jack and use my
jack-pulseaudio sink _if_ needed - as I have usually done since years.
Yes, however, the packaging is ever changing so what I have to say may
be true for some people and not for others. At some point (ubuntu 22.04
here but already different in for 23.04) both pulse and pipewire are
installed and set up in systemd so that if pulse is enabled, it takes
the resources first and pipewire fails to start. So disabling pulse with
systemctl (as a user not root) will switch to pipewire at least for
desktop use. If the right (wrong?) pipewire-jack (not sure the right
package name and it is changing anyway) package is installed, a file is
created in /etc/ld.so.conf.d/ that basically tells the system that
libjack is located in /usr/lib/*/pipewire*/jack/. This means that any
jack client will use this lib and connect to pw instead of jack. This
includes jackd(bus), jack_control, etc. To start jackd(bus) one must
first remove /etc/ld.so.conf.d/*pipewire* and do an ldcoonfig (both as
root of course). Then there is a pw configuration change that should
make pw bridge to jackd... I haven't got so far as seeing how that
works.
I can (via script) change between a system that runs pulse/jack and a
system that runs pipewire so far. However life has been busy and I have
not played with it enough to say more.
pactl load-module module-jack-sink
pactl load-module module-jack-source
This does not seem possible. There is some sort of pw/jack bridge but
there can only ever be one (that I can tell) and it will only ever have
a number of ports automatically determined by PW rather than the very
flexible modules listed above. Hopefully that changes.
It is supposed to be possible to either: use pw for desktop with a
bridge to jack for deterministic audio or use pw as jack and use jackd
as a device. The second would require running jackd(bus) from a script
that points jackd(bus) at the right libjack.
so far PW has been reasonably good for desktop and jack functions for me
except for Ardour exports where freerun is required. I am running it at
1024 buffer size only though because... the ALSA FW stack seems limited
compared to ffado. ALSA fw seems limited to 256/2 and above where ffado
will run reliably at 16/2. When I say limited to 256/2 I mean that jackd
using the alsa fw stack with crash if the latency is set lower.
As such, I have an interest in being able to use jackd in a PW
environment, not so I can run at 16/2 but at least low enough to use my
computer as a guitar effect in real time which pw does not allow.
--
Len Ovens
www.OvenWerks.net