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.
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| at | Loading commit data... | |
| bridge | Loading commit data... | |
| foundry | Loading commit data... | |
| pulsar-parvagues-hud | Loading commit data... | |
| pvlint | Loading commit data... | |
| tests | Loading commit data... | |
| README.md | Loading commit data... | |
| analyze_samples.py | Loading commit data... | |
| ardour-drop-missing-sources.py | Loading commit data... | |
| ardour-tidal-live.desktop | Loading commit data... | |
| ardour_session.py | Loading commit data... | |
| audio-lens.py | Loading commit data... | |
| bank-check.py | Loading commit data... | |
| button-column-audit.py | Loading commit data... | |
| button_roles.py | Loading commit data... | |
| cheat-sheet.py | Loading commit data... | |
| check-audio-graph.sh | Loading commit data... | |
| check-boot-blocks.py | Loading commit data... | |
| check-boot.sh | Loading commit data... | |
| check-drift.sh | Loading commit data... | |
| check-mix.py | Loading commit data... | |
| check-preload.sh | Loading commit data... | |
| check-tracks.sh | Loading commit data... | |
| control-lens.py | Loading commit data... | |
| deshadow-helpers.py | Loading commit data... | |
| fader-baseline.py | Loading commit data... | |
| fan_check.sh | Loading commit data... | |
| fix-button-roles.py | Loading commit data... | |
| fix-mute-roles.py | Loading commit data... | |
| fold-orbits.py | Loading commit data... | |
| gen_setlist.py | Loading commit data... | |
| gen_tokens.py | Loading commit data... | |
| gen_ts_types.py | Loading commit data... | |
| gig-log.py | Loading commit data... | |
| gig-log.service | Loading commit data... | |
| gig-metadata.py | Loading commit data... | |
| gig-preflight.py | Loading commit data... | |
| gig-up.sh | Loading commit data... | |
| gig_record.sh | Loading commit data... | |
| install-protect.sh | Loading commit data... | |
| latency-lens.py | Loading commit data... | |
| lcxl-init.py | Loading commit data... | |
| lcxl-leds-watch.service | Loading commit data... | |
| lcxl-leds.py | Loading commit data... | |
| lcxl-path.py | Loading commit data... | |
| lcxl3-driver.py | Loading commit data... | |
| lcxl3-driver.service | Loading commit data... | |
| lcxl3-probe-display.py | Loading commit data... | |
| lcxl3.py | Loading commit data... | |
| lcxl3_language.py | Loading commit data... | |
| lcxl_grid.json | Loading commit data... | |
| lcxl_grid.py | Loading commit data... | |
| master-out.py | Loading commit data... | |
| midi-autoconnect.service | Loading commit data... | |
| midi-autoconnect.sh | Loading commit data... | |
| midiviz.desktop | Loading commit data... | |
| midiviz.service | Loading commit data... | |
| migrate-columns.py | Loading commit data... | |
| mock-lcxl.py | Loading commit data... | |
| mute.tidal | Loading commit data... | |
| orphan-orbits.py | Loading commit data... | |
| parvagues-gear | Loading commit data... | |
| parvagues-protect.service | Loading commit data... | |
| parvagues-protect.sh | Loading commit data... | |
| parvagues-rig.target | Loading commit data... | |
| parvagues-samples.service | Loading commit data... | |
| parvagues-sc-watchdog.service | Loading commit data... | |
| probe-chain.py | Loading commit data... | |
| pvbanks.py | Loading commit data... | |
| rig-doctor.py | Loading commit data... | |
| rig-install.sh | Loading commit data... | |
| rig-pulse.py | Loading commit data... | |
| rig_units.py | Loading commit data... | |
| sample-pack.py | Loading commit data... | |
| sample-watcher.py | Loading commit data... | |
| sample_tfidf.py | Loading commit data... | |
| sc-watchdog.sh | Loading commit data... | |
| set-coherence.py | Loading commit data... | |
| setlist.py | Loading commit data... | |
| setlist_samples.py | Loading commit data... | |
| shipowiz.py | Loading commit data... | |
| silent-eval.py | Loading commit data... | |
| solo.tidal | Loading commit data... | |
| surface-columns.py | Loading commit data... | |
| sweep_state.py | Loading commit data... | |
| take-lens.py | Loading commit data... | |
| take-master.py | Loading commit data... | |
| take-segments.py | Loading commit data... | |
| tempo-lens.py | Loading commit data... | |
| tidal-ardour-autoroute.service | Loading commit data... | |
| tidal-ardour-autoroute.sh | Loading commit data... | |
| tidal-remote.py | Loading commit data... | |
| tools.png | Loading commit data... | |
| unmute.tidal | Loading commit data... | |
| unsolo.tidal | Loading commit data... |