First release with the netJACK2 multicast-interface pin in place. Required for the direct-cable pi-stomp setup.
Install
Download and install both .pkg files, jack2 first:
jack2-1.9.22+sastraxi.5.pkg— JACK2 fork we depend on. Stockjackaudio/jack21.9.22 is missing the multicast-interface pin; without this fork, netJACK2's discovery times out on hosts with both wifi and a direct-cable NIC. Installs to/usr/local.JackBridge-0.2.0.pkg— the HAL driver, theJackBridgeddaemon, the LaunchAgents, the route watcher, and thejackd-launchwrapper. Double-click and run. Trust the unsigned package (Right-click > Open) on first install.
Re-running the same JackBridge-*.pkg is safe — the postinstall preserves a hand-edited config.plist and only re-bootstraps the LaunchAgents.
What's in this release
jack2 fork (3 commits on top of v1.9.22 + WAF backport from 1.9.23)
3a2f2488— netadapter PI controller integrator reset on ringbuffer reset719d833a—IP_ADD_MEMBERSHIP/IP_BOUND_IFpin on the master's multicast group join viaJACK_NETJACK_MULTICAST_IFb3bfc408— mirror pin on the slave's outgoing multicastsendto()
Built with sastraxi/jack2/build-macos-pkg.sh. Source at https://github.com/sastraxi/jack2.
JackBridge (v0.1.x → v0.2.0)
- jackd-launch sources
JACK_NETJACK_MULTICAST_IFfrom/var/run/jackbridge-route.iface, so netmanager's setsockopt pin gets the right interface name without hardcoding in the LaunchAgent plist. - jackbridge-route-watcher actively manages the two LaunchAgents (bootout+disable on disconnect, enable+bootstrap on wired) instead of relying on
KeepAlive+PathState. Pairs bootout's SIGTERM with an explicit jackd pkill so the next install doesn't fail on "text file busy". - jb-is-wifi-iface: extracted single source of truth for wifi classification; both
jb-detect-net-ifaceand the route watcher source it. - LaunchAgent plists:
KeepAlive=true,ThrottleInterval=2,WatchPathsonconfig.plist.RunAtLoadintentionally absent. - pi/bin/jackbridge-pi-up: reads
/run/jackbridge.iface(set byjackbridge-pin-route'sExecStartPre) as the source of truth for the iface name. Fixes the hardcodedeth0bug on boards with multiple wired NICs. Falls back to$JACKBRIDGE_IFACEtheneth0. - pi/bin/jackbridge-pi-down: iterates all
netadapter*clients (not justnetadapter), so stale instances from failed prior runs don't pile up and choke the audio thread. - installer/build-pkg.sh:
ARCHSenv var to build a single-arch dev .pkg when the host'sJACK_PREFIXis arm64-only. Universal release builds need a universal libjack atJACK_PREFIX. - jack-rebuild-mac.sh: root-level dev script — rebuild jack2 from the fork and reinstall over the host's
/usr/localinstall.
v0.1.x worked on single-NIC hosts by accident; v0.2.0+ is required for the direct-cable setup that drives the pi-stomp use case.