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
  • migrate-columns.py
Find file
BlameHistoryPermalink
  • PLN (Algolia)'s avatar
    feat(set): the remap was never systemic — it read the STALE setlist (#46, #123) · 71bb9bc2
    PLN, mid-run: 'wait bass was also on 89 not yet 76 whyyy i thought we were
    systemic :((' — and he was right to be annoyed. The answer is embarrassing and
    exactly the bug we already fixed one layer up.
    
    tools/migrate-columns.py hardcoded SETLIST = armada/setlist_opal2026.txt. That
    .txt was 13 tracks while backlog.md was 15. So when the remap ran, the two
    tracks PLN had just added were the only two it never saw — ouais_je_funk and
    lime_tacos kept their pre-remap CCs and he found out by reaching for a control
    that wasn't there. Same shape as #120/#121: a generated artifact consumed as if
    it were the source. resolve() now calls setlist.tracks(), i.e. backlog.md.
    
    Re-planned against the real set: 22 pending moves across 4 tracks, 11 of 15
    already clean. Then PLN cut lime_tacos ('actually weak, will have more fun on
    ouais funk and perfect') — removed from backlog.md, and the 14-track setlist
    plus the plan regenerated themselves from it. That is the pipe working.
    
    Applied, 10 moves:
      wap        d4  octer/octersubsub  ^52 -> ^32 (B4)
      piment     d7  modIndex/octersub  swapped onto B7/C7 in declaration order
      ouais      d3  snare gate         ^44 -> ^43 (E3)
      ouais      d4  crush ^53->^52 (C4), octersub -> ^32 (B4)
      ouais      d5  width/crush        swapped onto B5/C5
      ouais      d5  superimpose        ^57 -> ^89 (F5, gestures live on row F)
      ouais      d7  UPDOWN             ^55 -> ^35 (B7)
    
    d4's 'ply 2' had been authored on a KNOB (^56) and the migrator dutifully gave
    it d4's B4 slot, which pushed the octersub into an overflow FIXME. But PLN had
    just asked for exactly the opposite layout — 'd4 52 a crush? 32 a octersub
    maybe?' — so ply moved to ^44 (E4, a gate on the gate row, free now that d3's
    snare vacated it) and both effects got their proper knobs. No FIXME left.
    
    Verified: migrate-columns --plan reports 0 moves, silent-eval --seeded 14/14 ok.
    PLN (Algolia) authored Aug 02, 2026
    71bb9bc2
migrate-columns.py 21.8 KB
EditWeb IDE
×

Replace migrate-columns.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.