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
  • collab
  • raph
  • meshuggah.tidal
Find file
BlameHistoryPermalink
  • PLN (Algolia)'s avatar
    refactor(corpus): BootTidal is now the ONLY definition of the global helpers —… · daf074f2
    refactor(corpus): BootTidal is now the ONLY definition of the global helpers — 1705 local shadows removed
    
    PLN loaded bombe_dj to test the new surface and found ^41 still chopping every
    bar, two days after gMask was "retired". He asked the right question: "why so
    many let gMask in bombe dj? did you do the edits yet?"
    
    THE BUG WAS ARCHITECTURAL, NOT A MISSED EDIT
    Every track opened with a copy-pasted stanza:
    
        let gMask  = (midiOn "^41" (mask "t . <f t f <f t>> <t f f <t f>>"))
        let gMute1 = (midiOn "^73" (mask "f*16"))
        let gM1    = gMask . gMute
        let gF1    = (# djfbus 1 (range 0.05 0.95 "^49"))
    
    A local `let` SHADOWS the boot definition, so for years every central fix
    stopped at the door of 254 files. Two consequences, both live on stage:
    
      * gMask was retired in BootTidal.hs (`gMask = id`) and still masked on the
        237 tracks that redefined it. The retirement reached 5 of 13 setlist tracks.
      * gF1/2/3 were rewritten to the two-sided gDJF (centre = bypass, left = lpf,
        right = hpf, and 0 = a 180 Hz lowpass = silence). 333 local defs kept the
        OLD one-directional `(# djfbus N (range 0.05 0.95 "^49"))`. So the DJ-filter
        fix that took a whole afternoon to get right was invisible in performance.
    
    Two tracks even carried `let midiGGlobal = "^77" * 1.5` — reading fader ^77,
    which is now MIDI-learned to Ardour's Tidal 01 gain. That is bug #53 alive: an
    accidental nudge of fader 1 would attenuate every midiG-using stream.
    
    WHAT LANDED
    tools/deshadow-helpers.py, --plan/--apply, two passes:
    
      pass 1  1551 deletions of exact boilerplate, so boot's definition takes over
      pass 2   154 deletions of defs pass 1 ORPHANED (a local `let gMute` whose only
               user was the `let gM1 = gMask . gMute` just removed). BootTidal has no
               `gMute`, so pass 1 cannot touch it, and half a stanza reads like it
               still does something. Referenced nowhere = zero events change.
        11  COMMENTED OUT, not deleted, with a DESHADOW(#96) marker
    
    The safety property is that direction: a def is deleted ONLY if its body
    positively matches a known boilerplate regex. Anything unrecognised is
    commented, so a bad regex leaves a comment instead of deleting PLN's music. It
    earned that immediately — the 11 include real composition that only worked
    BECAUSE it shadowed:
    
        let gF2 = (whenmod 64 48 (# djf (slow 16 $ range 0.5 0.2 saw))) -- Parts DJF
        let gF1 = (someCyclesBy "<f!10 t!6 f!112>" (# djfbus 1 ...))    -- Intro DJF
        let gMask = mask "t t <t <t f> t <f [f t]>>"    -- a fixed compositional mask
    
    and one latent build error, `let gF1 = (y# djfbus 1 ...)`, which cannot compile.
    
    DELIBERATELY NOT TOUCHED
      * gDJF (65 files). Local is `let gDJF = …` (0 args); boot's is `gDJF ch`
        (1 arg). Removing the shadow is a TYPE ERROR, not a global. Own pass, #96.
      * gMute/gM/gF/gM'/gDJF1/gMaskEnd16/… (315 defs) — names BootTidal does not
        define at all. Deleting breaks the build.
    
    VALIDATION — verdict equality, not "it looks fine"
    silent-eval over the 13-track OPAL setlist, before vs after, with an EMPTY
    control map. Every single line of the diff is a line NUMBER shifting by 7, the
    height of the deleted stanza. Same tracks, same orbits, same counts:
    
        before: 9 tracks with a silent orbit, 4 unbuildable by the harness (#93)
        after:  9 tracks with a silent orbit, 4 unbuildable by the harness
        -> VERDICTS IDENTICAL
    
      check-boot        OK — all g* helpers audible with an untouched controller
      check-boot-blocks OK — 32 blocks, each still one statement
      pytest            471 passed
      surface-columns   5 knob misalignments at HEAD -> 4 now (desire's borrowed ^52
                        is gone). No regression; the remaining 4 pre-date this.
    
    Also in desire.tidal, on PLN's call ("just simplify to make it finish the job,
    losing nothing, leaving FIXMEs"): d3's ^52 was borrowing d4's column because the
    grid gives d3 exactly one knob (B3, already used; C3 is the gF3 family filter).
    Parked as a static `# legato 0.55` with the knob form one line above in a
    comment, and the d7/d9 open question closed as a FIXME rather than left
    blocking. Nothing deleted, everything re-enableable by removing two dashes.
    
    Excluded from this commit: live/midi/nova/lounge/ouais_je_funk.tidal, which was
    already in PLN's modified set. The deshadow is applied on disk there; his to
    commit.
    PLN (Algolia) authored Jul 29, 2026
    daf074f2
meshuggah.tidal 1.47 KB
EditWeb IDE
×

Replace meshuggah.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.