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
  • tools
  • compact-orbits.py
Find file
BlameHistoryPermalink
  • PLN (Algolia)'s avatar
    feat(surface): no d7 while d6 sits empty — 150 orbits compacted · f6be5205
    PLN: "part of the migration also: no d7 when d6 is free. d7 often was sefcond
    melo, should be a d6 now d6 ids not a shitty mapped knob, but a proper column
    like others".
    
    That is the history exactly. d6's knob used to be somewhere useless, so a
    second melody went to d7 and d6 was left empty; since the column remap every
    one of d4-d8 owns a fader, a B knob and a C knob, so the reason is gone and
    only the habit remains. A set with a hole at d6 wastes a whole column.
    
    150 moves in 133 files. `d7 -> d6` is most of it; a lone melody with both
    slots free compacts to d5.
    
    THE BAND IS {5, 6, 7} AND IT IS DERIVED, NOT DECREED. An orbit number decides
    which family DJ filter and which family mute the part answers to. From the
    authored grid, d5/d6/d7 share both maps, so a move between them changes
    nothing about the sound — while d4 is the bass (gF2) and d8 is percussion
    (gF1/gM2), so compacting into or out of those would silently re-assign which
    filter sweeps the part and which button drops it. The tool computes the band by
    asking lcxl_grid which orbits agree with d6 on both families, so if the grid
    ever changes, the band follows instead of rotting.
    
    It refuses rather than guesses: 7 orbits carry an explicit `# orbit N`, which
    overrides the output orbit independently of the `dN` name, so renaming the
    declaration alone would move the pattern's identity and leave its AUDIO behind.
    Comments are never rewritten — a commented `-- d7 $ …` is an alternative to
    re-enable mid-set. Bus slots (`crushbus 71`) and `cut` groups stay put: a bus
    id is an audio-graph edit and a cut group is a choke group, not an orbit.
    
    VERIFIED: re-plan reports 0 moves left. silent-eval --seeded re-run over all
    703 files and diffed per-file against the pre-migration baseline — zero verdict
    changes, 703/703 joined. And the declaration multiset of every one of the 133
    files is a pure permutation inside the band, with nothing outside it touched:
    no pattern was dropped and no orbit was declared twice where it was not
    already. That last check exists because a naive compaction fusing two blocks'
    melodies onto one orbit would be silent, not loud — the later declaration wins.
    PLN (Algolia) authored Sep 22, 2026
    f6be5205
compact-orbits.py 6.8 KB
EditWeb IDE
×

Replace compact-orbits.py

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.