Hi Fons,
As far as I know pipewire can not currently meet all 8 of your
requirements, but I best leave this to Wim to answer.
On 2024-08-13 15:39, Fons Adriaensen wrote:
1. Jack2 and some clients are started manually after I
login,
So you finally made the switch to jack2?
and will be running all the time.
just a sidenote. doing that killed the battery on my old laptop.
3. PW will be started manually when required, and I
don't expect
that will happen very often. It may remain running when no longer
needed but shouldn't interfere. It will be used to connect apps
to Jack as in (2), or those that even don't support ALSA, or
maybe to route audio from Jack to Bluetooth etc.
I do occasionally run pipewire, and do so from its source tree by just
calling `make run`.
Then I use the following script to launch applications that i want to
test with pipewire:
```
#!/bin/bash
PW_SRC=$HOME/src/pipewire/
export SPA_PLUGIN_DIR=$PW_SRC/builddir/spa/plugins
export SPA_DATA_DIR=$PW_SRC/spa/plugins
export PIPEWIRE_MODULE_DIR=$PW_SRC/builddir/src/modules
export PIPEWIRE_CONFIG_DIR=$PW_SRC/builddir/src/daemon
export ACP_PATHS_DIR=$PW_SRC/spa/plugins/alsa/mixer/paths
export ACP_PROFILES_DIR=$PW_SRC/spa/plugins/alsa/mixer/profile-sets
export LD_LIBRARY_PATH=$PW_SRC/builddir/pipewire-jack/src/
export
PATH=$PW_SRC/builddir/pipewire-jack/src/:$PW_SRC/builddir/src/tools:$PATH
exec "$@"
```
e.g pw-src-env pw-jack Ardour8
The downside compared to using the JACK/ALSA bridge is that a already
running applications will not connect to pipewire after the fact.
Maybe you already knew this, if not I'll take 1/8th of your eternal
admiration and gratitude :)
4. All Jack ports created by PW should be permanent
and exist
as soon as PW is started, so they can be manually connected
and remain connected even when not in active use.
[...]
7. I do not expect anything 'automatic' to
happen when things
are plugged in or out.
This is something where macOS' Coreaudio/MIDI shines. Unlike macOS
Linux/ALSA has no persistent unique IDs for soundcards or MIDI devices.
ALSA supports hotplug, and first come first server sequential numeric
IDs. The best you^Wpipewire can do is keep track of cards by name.
So this is not something pipewire can reliably address, until ALSA get
support to identify cards by vendor and serial-number, and provide a UUID.
Cheers!
robin