Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
  • This project
    • Loading...
  • Sign in / Register
T
Tidal
  • Overview
    • Overview
    • Details
    • Activity
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 0
    • Issues 0
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Charts
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • PLN
  • Tidal
  • Repository

Switch branch/tag
  • Tidal
  • live
  • midi
  • nova
  • lofi
  • premiere_grillade.tidal
Find file
BlameHistoryPermalink
  • PLN (Algolia)'s avatar
    fix(corpus): 81 button cells move onto the row their ROLE belongs to · 2c178c96
    Applies the convention from the previous commit across the corpus: gates onto the
    latching row, gestures onto the momentary one. 34 files here contain nothing but
    `"^NN"` token changes — verified mechanically by normalising every changed line and
    checking the -/+ pair is identical once the CC is masked.
    
    ## What moved
    
      52  corpus-wide repairs (tools/fix-button-roles.py, three converging passes)
      29  setlist permutations (tools/migrate-columns.py --apply)
    
    The two tools do different jobs and both are needed. fix-button-roles only MOVES a
    control to a free cell, so it declines a case where the target is occupied.
    migrate-columns plans a whole column at once, so it can SWAP — which is what the
    remaining cases needed: d5's `ply` and d5's take-chooser both wanted a cell, and
    exchanging them puts the held flourish on the momentary button while the chooser
    (a state: which take plays) takes the latching one. That reading was not designed,
    it fell out of role-first assignment with a positional fallback, and it is right.
    
    ## Proof it changed no sound
    
    `tools/silent-eval.py --seeded` before and after, twice (after the corpus pass and
    again after the permutation): **byte-identical verdicts** both times, including the
    same 3 harness build failures (#93). Every button CC seeds to 0 in BootTidal's
    `_seed`, so permuting CCs *between two calls in the same block* cannot change
    either call's default branch — `midiOn` stays never-applied and `midiOff` stays
    always-applied. The edit is event-neutral at boot by construction; the harness run
    confirms the construction.
    
    `tools/surface-columns.py` still reports 83/83 orbits column-aligned with 0
    renumbers needed — the swaps stay inside each orbit's own column, so the property
    phase 2 established is preserved.
    
    ## Still open, deliberately
    
    12 sites where ONE orbit drives two gestures. Only one momentary cell exists per
    column, so the second has to sit on the latching row. Reported as PV010 `info` and
    not repaired: the real fix is gSel (#54), folding a pair of gestures onto one
    control. Naming it beats hiding it.
    PLN (Algolia) authored Jul 29, 2026
    2c178c96
premiere_grillade.tidal 2.29 KB
EditWeb IDE
×

Replace premiere_grillade.tidal

Attach a file by drag & drop or click to upload


Cancel
A new branch will be created in your fork and a new merge request will be started.