-
feat(surface): column-align the whole OPAL set — 54 knobs move onto their own orbit's column · 346c6529
PLN gave the go and accepted the trade in his own words: "i agree for the trade and change of knobs. i accept the fate! and truthful leds will help quick learn". The faders were remapped this afternoon; doing the tracks now means his hands relearn the surface ONCE, with four days to drill it, instead of learning an interim layout this week and the real one after the gig. 12 tracks, 54 substitutions, 5 gSel FIXMEs, 0 collisions Each of d1-d8 now has its effect on its own B knob (and a second on its C knob for d4-d8), directly above the fader that levels it. bombe_dj landed separately in fdde0924 as the proof track. == WHAT MADE THIS SAFE, AND IT IS NOT THE DIFF SIZE == The migrator computes each track's WHOLE permutation, prints it, then writes once. That is not tidiness, it is correctness: * desire.tidal needs two genuine SWAPS — d7 ^55<->^35 and d8 ^56<->^36. Applied sequentially, the first move would overwrite the second's source and both controls would end up on one knob. Applied simultaneously they just exchange. * the same property dissolved the 34 "destination taken" clashes the naive costing reported: the corpus is uniformly off by one column, so every orbit wants the slot of the orbit below it, free only once that one moves too. Genuine collisions across all 13 tracks: zero. * the rewrite is scoped PER ORBIT. desire had ^19 driving both d7 and d9, which migrate to different destinations; a file-wide replace would have fused two gestures into one, silently. * commented-out ^NN refs are never touched — they are alternatives PLN re-enables mid-set, and rewiring them would break weeks from now with no trace. == THE 5 OVERFLOWS, LEFT IN PLACE ON PURPOSE == perfect d4 ^17, perfect d5 ^18, mafia_sans_serif d7 ^19, the_revolution_will_be_sampled d7 ^55, desire d3 ^52. These orbits have three or more effect knobs; the grid honestly offers two (one for d1-d3, whose C knob is a family DJ filter). Rather than spill them into a neighbouring column and call the board aligned, each carries a FIXME(#54) pointing at gSel. PLN: "if we have two effects, we consolidate via gSel indeed." == VERIFICATION, AND ONE HONEST GAP == pvlint 13 tracks, 0 errors, 9 warnings (all pre-existing: duplicate d5 declarations, one out-of-range sample index — none introduced here) silent-eval --seeded every BUILDABLE track's every declared orbit still emits events, cold, against the seeded control map. This is the check that would catch a renumber having quietly emptied an orbit, and it is clean. surface-columns --knobs 77 knob renumbers -> 5 (exactly the gSel overflows) THE GAP: the silent-eval harness cannot BUILD 3 of the 13 tracks — overlapping IsString instances on chord literals, and an ambiguous `cutoff` between Tidal.Context and Tidal.Params. I re-ran two of them from HEAD and they fail identically there, so this migration did not cause it. But it means three tracks' orbits are UNVERIFIED, and a harness that cannot build a track must never be read as a pass. Filed separately. Also fixed one stale comment of my own in desire.tidal: after the d7 swap the NANANA knob is B7, not C7. A comment that lies about the layout is worse than none when you are relearning the board. Not committed here, deliberately: backlog.md and tools/at/fixtures/claude.tidal carry PLN's own uncommitted edits.PLN (Algolia) authored346c6529
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| looper | Loading commit data... | |
| nova | Loading commit data... | |
| zelda | Loading commit data... | |
| _init.scd | Loading commit data... | |
| ambient_space.tidal | Loading commit data... | |
| ams_companion.tidal | Loading commit data... | |
| beats.tidal | Loading commit data... | |
| break_metal.tidal | Loading commit data... | |
| bruit_hiver.tidal | Loading commit data... | |
| dub.tidal | Loading commit data... | |
| dubmini.tidal | Loading commit data... | |
| dusty_cypres.tidal | Loading commit data... | |
| dusty_marcia.tidal | Loading commit data... | |
| frerot.tidal | Loading commit data... | |
| hello_world.tidal | Loading commit data... | |
| jazz.tidal | Loading commit data... | |
| jazz_tech_piano.tidal | Loading commit data... | |
| toyota.tidal | Loading commit data... |