JACK-PLUMBING(1)

πŸ“¦
this version Β· 5 versions
, in ubuntu resolute, ubuntu stonking

πŸ’– JACK-PLUMBING(1) πŸ’–

okay bestie, so this is the manual page for jack-plumbing, which lives in section 1 of the manual, and it is literally the JACK Plumbing Daemon. sit down, grab a strawberry, we're doing ports today πŸ“βœ¨


✨ NAME ✨

jack-plumbing β€” JACK Plumbing Daemon 🫢


πŸŽ€ SYNOPSIS πŸŽ€

jack-plumbing [options] [rule-files]

πŸ’… OPTIONS πŸ’…

  • -d β€” do NOT operate as a daemon. just... vibes in the foreground, i guess 😌
  • -o β€” do NOT load ordinary rule files. skipping the usual lineup, periodt.
  • -q β€” quiet operation. no yapping 🀫
  • -u β€” set the time, in micro-seconds, that must elapse after a connection notification to indicate the end of a notification set (default=30000). this is an optimization switch, so it's giving ✨performance✨ not ✨personality✨.

🌸 DESCRIPTION 🌸

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. yes bestie, regex, we're doing this 😭

there are four rules: connect, disconnect, also-connect and connect-exclusive. four girls, one clipboard πŸ’…

(connect "SuperCollider:out_(.*)" "system:playback_\1")

this connect rule 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. no duplicates, we don't do that here πŸ‘‘

(also-connect "system:playback_1" "jack-udp-[0-9]*:in_1")

this also-connect rule 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. both hands, both sides, iconic 🌈

(connect-exclusive "SuperCollider:out_(.*)" "ardour:sc3_in_\1/in 1")

this connect-exclusive rule 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. she's exclusive, she's committed, no side quests πŸ’œ


πŸ¦‹ why this slaps (advantages) πŸ¦‹

this type of connection daemon has the following advantages over both environment variables and command line arguments:

  • it does not require any client connection support or logic at all
  • it provides a uniform user interface to all clients
  • it has a somewhat declarative style

🧚 the non-intrusive part 🧚

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. lowkey the politest daemon alive πŸ₯Ή


⭐ when it re-reads stuff ⭐

when a set of port registrations is made it checks the modification time of the rule set files, /etc/jack-plumbing and ~/.jack-plumbing, and any files specified by the user, rereads the rule set if it has been updated, then makes the JACK graph obey the rules. she checks receipts. she updates. she enforces. main character energy fr fr πŸ”₯


πŸ’€ little rules that matter πŸ’€

any lines beginning with a semi-colon are ignored. ; = not today, bestie πŸ™ˆ

the rule set is sorted, disconnect rules are applied first, then connect rules, then connect-exclusive rules. order matters, the pipeline is sacred πŸŽ€


🌈 FILES 🌈

  • /etc/jack-plumbing
  • ~/.jack-plumbing

πŸ‘‘ AUTHOR πŸ‘‘

written by Rohan Drape http://slavepianos.org/rd/


πŸ’– SEE ALSO πŸ’–

jackd(1)


πŸ’œ AUTHOR πŸ’œ

Rohan Drape <rd@slavepianos.org>

  • Author.

and that's the whole thing, bestie 🫢 this page is dated 10/04/2025, it belongs to the JACK-PLUMBING(1) manual, and if you got all the way down here you get a gold star and a forehead kiss β­πŸ’– mwah, now go plumb those ports ✨

πŸ“¦ where this page comes from