-
feat(monitor): headphones mode — every orbit in your ears, no Ardour · 5818b2b0
The rig is multichannel by design: orbit k is the pair (out_{2k-1}, out_{2k}), wired to its own Ardour track at a gig. Away from the stage that design means d1 is the only orbit that can reach a sink — and on a freshly booted laptop (2026-09-07) not even that: scsynth had NO links to any sink, so the whole box was silent with every check green. - tools/fold-orbits.py: fold all orbit pairs onto one stereo sink, summed at unity. Idempotent, and it VERIFIES — pw-link exits 0 for "File exists" and for a port that vanished mid-call, so its exit status proves nothing. The channel count is discovered from the graph (28 today, 12 in an older comment, 2 on stock SuperDirt), never assumed. Refuses while Ardour runs, which owns the mix and prunes SC->hardware links every 2 s. - gig-up.sh --headphones: SuperDirt -> fold -> Pulsar. No Ardour, no fader restore; the fold becomes the readiness gate, because it IS the whole monitoring path. - gig-preflight: `monitor path` check — stage (Ardour receiving on N tracks) or headphones (fold present), and it asks fold-orbits rather than re-deriving the port math. - 18 tests, fixtures captured from the real graph: `pw-link -lo` marks links by INDENTATION only, so a grep of it fabricates relationships, and a source port printed with no indented child is the exact state this tool fixes. Measured, not assumed: 14/14 orbits arrive at the sink (bd swept d1-d14, peak per orbit), and the links survive 32 s of autoroute reconciling.PLN (Algolia) authored5818b2b0
×