jack.plumbing - JACK Plumbing Daemon
jack.plumbing maintains a set of port connection rules and manages
these as clients register ports with JACK. Port names are implicitly
bounded regular expressions and support sub-expression patterns.
There are three rules: connect, also-connect and connect-exclusive.
(connect "SuperCollider:out_(.*)" "alsa_pcm:playback_\1")
ensures that whenever scsynth(1) is running any output ports it
registers are connected to appropriate ALSA playback ports. The
connect rule only makes a connection if none already exist.
(also-connect "alsa_pcm:playback_1" "jack.udp-[0-9]*:in_1")
ensures that when jack.udp(1) is running in send mode all signals that
are ordinarily sent to the local audio interface will also be sent to
the network destination. The also-connect aliasing applies to both the
left and right hand side of connect rules.
(connect-exclusive "SuperCollider:out_(.*)" "ardour:sc3_in_\1/in 1")
ensures that if SuperCollider and an ardour(1) session with appropriate
tracks are both running that SuperCollider gets connected to ardour and
disconnected from everything else.
This type of connection daemon has the following advantages over both
environment variables and command line arguments: 1. it does not
require any client connection support or logic at all, 2. it provides a
uniform user interface to all clients, and 3. it has a somewhat
This type of daemon is very lightweight and non-intrusive: it requires
no arguments, it runs from an unprivileged thread, if the rule set is
empty it is a no-op, it does not write any files, it does not require
any modification to clients or to how clients are started.
When a set of port registrations is made it checks the modification
time of the rule set files, /etc/jack.plumbing and ~/.jack.plumbing,
re-reads the rule set if it has been updated, then makes the JACK graph
obey the rules.
Any lines beginning with a semi-colon are ignored.
The present implementation does not sort the rule set, rules must be
written in sequence, that is connect-exclusive rules must come after