Earned during the phase-2 button remap (5910aacc). The migrator left an over-budget control where it was, which LOOKS conservative and is the opposite: once ^42 became d2's button, d1's surviving reference to ^42 meant one press fired both orbits. perfect.tidal shipped that way until a hand-written check found it — and that check then existed only in a terminal scrollback, which is not a gate. WHY IT DESERVES TO BE AN ERROR, NOT A WARNING Nothing errors. Nothing goes silent. The extra layer only appears while a specific button is held. On stage that reads as "the track is broken today" rather than as a mapping bug, which is the exact signature of the failures this rig keeps losing evenings to. Same family as the orphan-orbit ghost: audible, plausible, and invisible to every static check we had. WHAT IT DOES NOT FLAG — the cry-wolf cases, each a real line from the corpus * gF1-3 and gMute1-3 (and gPanic) are per-FAMILY BY DESIGN — measured, not assumed: gF1 -> d1/d2/d3/d8, gF2 -> d4, gF3 -> leads. Flagging those would fire on every track in the set and the rule would be switched off within a day. * one orbit referencing a button three times is ONE gesture, not three collisions (bombe_dj's kick does exactly that) — findings are per ORBIT, as in PV004. * COMMENTED-OUT gestures. This matters more than it looks: commenting the surplus is precisely how #94 parks an over-budget control, so a rule that counted comments would fail every track the migrator just fixed. * knobs. Knob sharing is a columns question, not a button collision. VALIDATION OPAL setlist 0 PV008 findings — clean, as of 5910aacc whole corpus 136 findings across 56 of 792 files pvlint tests 38 passed (5 new: the real perfect.tidal case, plus one negative per cry-wolf class above) The corpus number is history, not exposure: those are old-world tracks that predate the column grid, and per the measure-the-set-not-the-corpus lesson the number that matters before a gig is the setlist's, which is zero. The corpus gets fixed when it gets migrated (#64 / post-gig), and now there is a rule that will prove it.
| 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... | |
| 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-tracks.sh | Loading commit data... | |
| control-lens.py | Loading commit data... | |
| deshadow-helpers.py | Loading commit data... | |
| fan_check.sh | Loading commit data... | |
| gen_tokens.py | Loading commit data... | |
| gen_ts_types.py | Loading commit data... | |
| gig-log.py | Loading commit data... | |
| gig_record.sh | Loading commit data... | |
| lcxl-init.py | Loading commit data... | |
| lcxl-leds-watch.service | Loading commit data... | |
| lcxl-leds.py | 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... | |
| probe-chain.py | Loading commit data... | |
| sample_tfidf.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... | |
| tempo-lens.py | Loading commit data... | |
| tidal-remote.py | Loading commit data... | |
| tools.png | Loading commit data... | |
| unmute.tidal | Loading commit data... | |
| unsolo.tidal | Loading commit data... |