Commit 0a7475b2 by PLN (Algolia)

docs(board): end-of-session state, with the six resume points written for a cold reader

Eleven threads closed, six resume points with exact commands. The first one is
load-bearing and gets said plainly: tools/lcxl3-driver.py has never run against a
live SuperCollider, because sclang, scsynth and Ardour were all at zero when it
was written. Every claim about PLN playing his corpus on the new surface rests on
that one untested step, so it is resume point 1 rather than a footnote.

Also records what is deliberately left running (the audition server, plus the
firewall holes its LAN access needs and the ?set= key that cost PLN a listening
session), and what is parked because it is not mine to commit — four uncommitted
www files from a prior session's CosmicFest page work.
parent 588d0a41
...@@ -855,3 +855,81 @@ teaching. Being in an official *course* pack establishes **provenance, not licen ...@@ -855,3 +855,81 @@ teaching. Being in an official *course* pack establishes **provenance, not licen
tracks is **substitution** — upstream's real snare bank is `sn` (52 files tracked tracks is **substitution** — upstream's real snare bank is `sn` (52 files tracked
in `tidalcycles/Dirt-Samples`), not `snare`. That changes the sound, so it is in `tidalcycles/Dirt-Samples`), not `snare`. That changes the sound, so it is
PLN's taste call, not a chore. PLN's taste call, not a chore.
---
## BOARD STATE — end of session 2026-08-29 (pre-compact)
Branch `claude/lcxl3-surface`, 17 commits, all pushed. Working tree clean except
PLN's own `live/collab/raph/piment_bresilien.tidal` edit (his `|- note 12` on d4
bassWarsaw — not mine to commit). Narrative logs 032/033/034 written.
### ✅ CLOSED this session
| thread | outcome |
|---|---|
| LCXL v3 OLED question (12 days open) | **arbitrary 128x64 bitmaps**, ACKed per frame. [[reference_lcxl3_protocol]] |
| Paint: DAW mode or not | **DAW-mode only**, tested in 3 steps. Corpus will NOT be renumbered — the driver translates |
| #11 LED bypass brightness | no longer a taste call: CC 111, non-volatile |
| Both rig reconcilers dead since 23 Aug | `203/EXEC` from 644 + `core.fileMode=false`. Fixed both halves |
| midi-autoconnect deaf to v3 | resolves the name now, prefers the driver's port |
| gig-log missing from the rig | in the inventory, 7 units 0 problems, HARD gate proved able to fail |
| HUD `scene-off` undone by ctrl+save | `_userOff` latch + regression spec (HUD repo, `claude/scene-off-latch`) |
| CosmicFest tracklist | recovered, **12/14 correct**, ear-truth in `judge_specs/` |
| Boundary lab dropped skip notes | fixed, recovers notes already in localStorage |
| `noise` mark | shipped (`n` / `N`) |
| A4 `snare` provenance | yaxu's course pack; **un-clears `kick`** rather than clearing snare |
### 🔴 RESUME POINTS — the exact next steps
**1. The driver has never met a live SuperCollider.** This is the single highest
priority: everything about "PLN can play on the new surface" rests on it, and
sclang/scsynth/ardour were all at 0 when it was written.
# boot the rig, then:
python3 tools/lcxl3-driver.py --show-map # sanity, no device needed
python3 tools/lcxl3-driver.py -v # enables DAW mode, publishes
# 'ParVagues LCXL3', reconciles
# move fader 1 -> expect "fader 1 v3 #5 -> v2 #77 = <val>"
# then in Tidal, a track using ^77 should respond.
Known-stale and NOT yet fixed: `tools/bridge/surface.py:51`
`SURFACE_NAME = "Launch Control XL"` will not match `LCXL3 1`, and it prefers the
LOWEST port number, which on v3 is `MIDI In` while DAW is port 1.
**2. Custom-mode fallback (optional, no driver needed).**
`armada/tide-table/lcxl3_custom_mode_v2map.md` lists the 40 of 48 controls to
change in Components so a custom mode emits v2 numbers. Plays the corpus with
nothing running; no paint. Firmware 1.1's Mode-held-momentary makes it a live
fallback. Reproducible-from-repo needs the undocumented custom-mode SysEx —
prior art is `audiocontrol-org/audiocontrol`, and Components can Save→Download a
`.syx` PLN could hand over.
**3. `b5ad8b6` (169-file column migration) still unmerged.** Now decided in
principle: translate, don't renumber, so the branch merges on its own merits after
a play-through. Blocked by resume point 1.
**4. Render every track once.** The cheapest large win available. All five
CosmicFest "ghosts" and both mislabels come from crossmatch being unable to name a
track it holds no render of. One render per track fixes the class and compounds
across every future set recovery.
**5. 17 tracks that do not compile.** Untouched all session. Still gig blockers —
a parse error silences the whole do-block. `tools/silent-eval.py --seeded` in
halves of ~85.
**6. `kick` may need un-clearing** in `rights_ledger.json`: same course pack, same
absent licence as `snare`. One question to yaxu settles six banks.
### 🟡 RUNNING / PARKED
* `systemctl --user is-active bounds-serve` — the audition server on :8742, left
up deliberately. **LAN needs a firewall hole** (this box runs firewalld AND ufw):
`sudo ufw allow from 192.168.1.0/24 to any port 8742 proto tcp` and
`sudo firewall-cmd --add-port=8742/tcp`. Correct URL uses **`?set=`**, not `?gig=`.
* `../Web/www` has uncommitted changes on `claude/self-host` from a PRIOR session
(4 files, CosmicFest page work). Not mine; not committed.
* HUD branch `claude/scene-off-latch` pushed, unmerged.
* CosmicFest www metadata (`content/lives/2026/cosmicfest.md` + `tracks.json`)
still needs PLN's venue/date/lineup. Never backfill from a commit message.
Now unblocked on content: the 14-track ear-truth setlist exists.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment