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
  • gig-up.sh
Find file
BlameHistoryPermalink
  • PLN (Algolia)'s avatar
    feat(gig): one command says GO or NO-GO — and it caught two bugs on its first run (#44) · 1219c704
    A fortnight of debugging produced a shelf of good checks: check-boot,
    check-mix, silent-eval, fix-mute-roles, pvlint, orphan-orbits. Every one of
    them worked. Every one of them was also a command PLN would have to REMEMBER —
    and on Sat 8 Aug at ~19:00 he is in a field, alone, with a soundcheck window
    and no assistant. A check you have to remember under pressure is a check you
    do not run.
    
    So gig-up.sh contains no new checking logic at all. It is a running order, an
    exit code, and a decision about which failures are GO-BLOCKING. Its whole value
    is that there is now one thing to type.
    
    WHAT IS HARD vs SOFT, and why the line is drawn there
      HARD  boot helpers    one parse error in BootTidal.hs silences EVERY track
                            at once, invisibly, while a stale ghci holds the old
                            definitions. First check for that reason.
      HARD  ardour faders   earned it three sessions running, a DIFFERENT set of
                            tracks each time: 07-28 had 05/06/08/10 at -inf,
                            07-30 had 06/10/12, 07-31 had 10. Three recurrences is
                            not bad luck, it is a property of MIDI-learned faders
                            that drift from the saved session in both directions.
      HARD  compiles / mute map / pvlint
      SOFT  transition ghosts   real (#77) and known-open. A gate that goes red for
                                work you have consciously deferred is a gate that
                                gets ignored.
      SOFT  LCXL present        legitimately unplugged at a kitchen table. At the
                                venue, a warn here means the set has no hands.
    
    TWO BUGS FOUND BY THE FIRST RUN — which is the argument for building it
      1. check-boot.sh and check-tracks.sh were mode 644. NOT EXECUTABLE. The
         pre-gig audio gate has never once been runnable as `tools/check-tracks.sh`
         since it was written; it only ever ran when someone typed `zsh tools/...`.
         Every green memory of it is a green memory of a different invocation.
      2. pvlint's `--setlist` is a MODIFIER ("these paths are ordered"), not a
         mode — it still requires paths. `python3 -m pvlint --setlist` exits 2 on
         an argparse error, which from the outside looks exactly like a lint
         failure. gig-up now borrows set-coherence's setlist_tracks() rather than
         teaching a fourth file to parse the setlist.
    
    Both are the same shape and it is this rig's signature failure: a thing that
    was verified once, in a context that no longer holds. Assembling the checks
    into one caller is what re-executed them under fresh conditions.
    
    DESIGN NOTES
      * Cold by default. Makes no sound, sends no MIDI, writes no .tidal. Safe to
        run mid-set, at 3am, or backstage. The audio gate is --audio, and it skips
        itself if the cold gate is already red — booting 13 tracks to confirm what
        a typecheck just told you is 10 wasted minutes at a venue.
      * Never touches CC 77-84 (Ardour track gains; 77 down is total silence) and
        never sweeps 93 (gPanic).
      * Scope is the SETLIST, not the corpus. 14 corpus tracks do not compile
        (#112) and must never make the gig gate red.
      * Failures print FIRST and carry their fix command inline, because the read
        order in a field is "what is broken / what do I type".
      * GO states its own limit every time: check-mix reads the SAVED session, so
        green means "Ardour will BOOT with this fader up", never "the mixer IS
        correct". Saying it in those words is how the -inf bug stops hiding behind
        a clean report.
    
    Verified: NO-GO path observed for real (2 failures, both genuine, both fixed);
    GO path 7/7 green; --help, --quiet and unknown-flag paths exercised.
    PLN (Algolia) authored Jul 31, 2026
    1219c704
gig-up.sh 9.92 KB
EditWeb IDE
×

Replace gig-up.sh

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.