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
  • tidal-remote.py
Find file
BlameHistoryPermalink
  • PLN (Algolia)'s avatar
    feat(rig): the boot now LIGHTS the controller — gig-up and tidal-remote both paint it · 90f20cf7
    The painter existed as of the previous commit but nothing called it, which is exactly
    how the surface went dark in the first place: the only LED path was the Pulsar HUD, so
    the board was lit only when the editor happened to be open AND its frame pipeline was
    healthy. #57 says that pipeline latches an early empty frame. A rig whose feedback
    depends on an editor being up is a rig with no feedback.
    
    So both boot paths paint now:
    
    * tools/tidal-remote.py boot becomes a 5-step dance — reboot, wait for BootTidal, seed
      the surface (lcxl-init), PAINT it (lcxl-leds --map <track>), eval. Order matters and
      is unchanged in spirit: the seed gives every `^NN` a value instead of `silence`, and
      the paint makes that state visible. Per-track, so the board is a map of the file
      about to play: dark = this track does not bind that control.
    * gig-up.sh paints at step 2b, the moment the rig owns MIDI — BEFORE Ardour and Pulsar
      are even launched, using the no-track CONVENTION paint so there is always something
      to look at. GIG_LEDS=watch additionally starts the touch-reactive daemon (log →
      gig-leds.log, gitignored); GIG_LEDS=off skips the whole thing.
    
    Both call sites are NON-FATAL on failure and say so out loud. LEDs are feedback, not
    sound: a dark board is annoying, a boot that aborts because of a dark board is a lost
    gig. gig-up additionally names the one thing software cannot fix — if input works but
    the board stays dark, that is a USB OUT endpoint stall and only a REPLUG clears it.
    
    Both messages refuse to claim success: "a clean exit is not a lit LED". amidi/aseqsend
    returning 0 means the bytes left the machine, nothing more.
    
    Validation: bash -n on gig-up.sh, ast.parse on tidal-remote.py, and the paint command
    itself run against the live device (rc=0, 40 LEDs in one 89-byte SysEx write). NOT run:
    tidal-remote boot, deliberately — PLN is measuring audio in this same rig right now and
    a reboot would trash his results. The 5-step path is verified structurally, not live.
    PLN (Algolia) authored Jul 28, 2026
    90f20cf7
tidal-remote.py 7.93 KB
EditWeb IDE
×

Replace tidal-remote.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.