refactor(corpus): 917 lines move the kick onto its own mute button — every track, not just the set (#105, #70)
PLN, mid-migration, when I had scoped this to the 13 setlist tracks:
"good, and not only in the set am i right? did we not do the whole refact on the
other .tidal files on my repo?"
He is right, and the reason is muscle memory: his fingers do not know which folder a
track lives in. A half-migrated corpus is worse than either extreme, because it makes
the surface unpredictable exactly when he reaches for an old track mid-set.
## What moved
913 lines across 213 files, plus 7 orbits given a mute they never had:
505+4 gM1 -> gM2 percs vacating the kick's button (the BULK of the work —
not the kick itself, which is only 133 lines)
127+1 gM2 -> gM1 the kick, arriving
66+4 gMute2 -> gM1 same, in the legacy long spelling
64 gM1 -> gM3
58 gMute3 -> gM3 spelling normalisation only
41+2 gM2 -> gM3
12+2 gMute2 -> gM2 / gMute1 -> gM2 / gMute1 -> gM1 / gM3 -> gM2 the tail
7 FILL orbits with NO mute at all, in the SET only
Only the setlist was filled. PLN: "ensure we have that consistently in all set, and
flag in other non-set tracks for me to see." Outside the set a missing gate may be a
composition choice, so docs/2026-07-30-orbits-without-a-mute.md REPORTS the rest and
writes nothing — split into the cut that makes 2397 findings actionable:
A · partial 110 files 321 blocks uses family mutes but missed some
<- the oversight he meant
B · never 354 files 2076 blocks no orbit has one; predates the convention
<- a style era, not a mistake
## Also, in this diff: #70
`live/midi/nova/dnb/liquid/you_my_sunshine.tidal` had d5 (the voice) and d11
(`no_sunshine:4/4` chopped) both on `# cut 5`. A cut group is monophonic, so every
d11 event killed the vocal mid-word. That is ALSO the `-- FIXME VOICE OFF` PLN had
left on d5 line 59: one root cause wearing two labels, found by pvlint PV004 on
2026-07-28 and confirmed by reading the file today. d11 moves to `# cut 11`, matching
the group-N-equals-orbit-N convention d3/d6/d8/d9 already follow. The comment says
how to revert in one line if the vocal was meant to be monophonic across both layers.
## How this was verified, given it touches 213 files PLN has to play in 7 days
1. **Convergence** — `--apply` twice; second pass proposes 0 rewrites and 0 fills.
2. **Structural proof, not spot-checks** — diffed every changed line against HEAD and
asserted the two sides are identical once mute tokens and whitespace are stripped.
908 of 917 changed lines are provably mute-plumbing-only; the other 9 are listed
and each accounted for (4 fills onto head lines with no `$`, 3 trailing-whitespace,
1 FIXME annotation, 1 the cut 5->11 fix). Nothing else in the corpus moved.
3. **Compile-invariance argument** — gM1/gM2/gM3 are the same type and arity in
BootTidal, so substituting one for another cannot change whether a file compiles.
Only the 7 fills alter expression structure, and all 7 are in the set.
4. **silent-eval --seeded on the set: 13/13 ok**, before and after.
5. Suite: 222 passed.
THE HONEST LIMIT, stated because a green check here is misleading: every button CC
seeds to 0 at boot and gMute<N> is `midiOn "^7N" (mask "f*16")`, so all three mutes
are equally inert until pressed. silent-eval therefore proves nothing got silenced at
boot and NOTHING about behaviour under a press — which is the only thing this change
alters. The real gate is PLN's ear, or pv-at (#74).
NOTE FOR PLN: 213 files changed on disk. Anything open in Pulsar now has a stale
buffer, and Pulsar saves the BUFFER — reload before evaluating or your next Ctrl-S
silently reverts the migration in that file.
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| comete | Loading commit data... | |
| latin | Loading commit data... | |
| morning | Loading commit data... | |
| acid_jazz.tidal | Loading commit data... | |
| acide_guitar.tidal | Loading commit data... | |
| anthropocene.tidal | Loading commit data... | |
| b2p.tidal | Loading commit data... | |
| batterie.tidal | Loading commit data... | |
| blue_party.tidal | Loading commit data... | |
| bogdanerie.tidal | Loading commit data... | |
| bottled_baby.tidal | Loading commit data... | |
| camille.tidal | Loading commit data... | |
| castle.tidal | Loading commit data... | |
| confine.tidal | Loading commit data... | |
| crapeau_russe.tidal | Loading commit data... | |
| cuba_space_program.tidal | Loading commit data... | |
| dessin.tidal | Loading commit data... | |
| dimitri.tidal | Loading commit data... | |
| doux.tidal | Loading commit data... | |
| drunk_beat.tidal | Loading commit data... | |
| du_code.tidal | Loading commit data... | |
| dub_night.tidal | Loading commit data... | |
| faites_de_la_musique.tidal | Loading commit data... | |
| hipofunk.tidal | Loading commit data... | |
| josephine.tidal | Loading commit data... | |
| kaalamite.tidal | Loading commit data... | |
| lucy_sky.tidal | Loading commit data... | |
| mad_piano.tidal | Loading commit data... | |
| minuit.tidal | Loading commit data... | |
| moog_hat.tidal | Loading commit data... | |
| orleans_les_bains.tidal | Loading commit data... | |
| ploink.tidal | Loading commit data... | |
| sel_marin.tidal | Loading commit data... | |
| you_may.tidal | Loading commit data... |