Commit acdaacf1 by PLN (Algolia)

docs: board state + log 036 — the night the surface learned to speak

Pre-compact ritual: 11 threads closed tonight, 8 resume points with exact
next commands. The theme of the night was identity bugs — a port's name is
not the port, a device's saved identity is not the device — written up in
log 036 and banked to memory (ardour9 generic midi, worktree roots,
34-display-targets protocol update).
parent ac8ed14d
...@@ -933,3 +933,41 @@ absent licence as `snare`. One question to yaxu settles six banks. ...@@ -933,3 +933,41 @@ absent licence as `snare`. One question to yaxu settles six banks.
* CosmicFest www metadata (`content/lives/2026/cosmicfest.md` + `tracks.json`) * CosmicFest www metadata (`content/lives/2026/cosmicfest.md` + `tracks.json`)
still needs PLN's venue/date/lineup. Never backfill from a commit message. still needs PLN's venue/date/lineup. Never backfill from a commit message.
Now unblocked on content: the 14-track ear-truth setlist exists. Now unblocked on content: the 14-track ear-truth setlist exists.
## BOARD STATE — end of session 2026-08-29b (pre-compact, the LCXL3-plays night)
Branch `claude/lcxl3-surface` @ ac8ed14, all pushed. Driver RUNNING the merged
build (labels on per-control targets). Ardour reopened on the FIXED session.
### CLOSED tonight
- Driver ↔ live SC: 4 defects fixed, end-to-end verified (fa22bb8, 9b48246)
- v3 visual language + driver-owned values/latches/paint (857de5b, ca173ae)
- OLED war won: 34 per-control targets, labels fed to native overlay (78ba7fc)
- midiviz shipped + Bridge button swapped (30a704e); RIG UP ordering (b30715b)
- Ardour path: webcam eviction + numeric-address autoconnect (63f5320) +
session config= fix applied on disk; edge-button census authored (ca173ae)
### RESUME points (exact)
1. **PLN confirm**: fader 1 → Tidal 01 rises from −inf (fix applied, untested
by ears). Then eye-test list from log 035 (labels, DJF Hz overlay, B1 dark).
2. **Iterate queue from PLN (next session's step 1):**
a. fader labels: drop constant "level [ard]" → orbit SAMPLE identity
("d8 jungle_breaks") parsed from the track's dN block; fallback "d8 lvl".
b. multi-button states: several gates/mutes inside ~1.5 s → aggregate
overlay (glyph row per column + last change), not last-touch-wins.
c. OLED latency pass: ~100-200 ms knob→display; hot path = oled_touch
throttle 50 ms + summon logic + 3×set_text; profile then cut.
3. Edge layers build: Track◀▶ setlist cursor (backlog.md/tracks.json source),
Page▲▼ OLED pages (HOME/STATE), Solo/Arm=rec-arm, Mute/Select=gPanic.
Census table = EDGE_BUTTONS in tools/lcxl3.py.
4. SC feed (OSC tap): true beat-phase glow + orbit-activity meters page +
silent-orbit alarm. One feed, three features.
5. Ardour hardening: ParVagues_LCXL3.map (wipe-proof bindings — see
reference_ardour9_generic_midi); the 12 gains stored at −inf again.
6. v2 setlist eval-from-controller (Track▶ confirm → send .tidal to :6010) —
design session; transitions are the risk (xfade_cut_ghost).
7. b5ad8b6 migration merge — tonight WAS the start of the play-through.
8. Small: midimon transport-parse gap (test pinned); midiviz d13/14 homes +
KWin always-on-top rule; 3 corpus labels still combinator soup;
Midi Through→SC re-add tug-of-war (harmless, unexplained);
tools/sweep_state.py untracked (other session's? triage).
# 036 — The night the surface learned to speak (2026-08-29)
**Goal:** play rose_rouge on the just-arrived LCXL3, then design its visual
language live, PLN's hands on the hardware the whole way.
**What shipped** (branch `claude/lcxl3-surface`, `fa22bb8..ac8ed14`):
the driver met a live SuperCollider and needed FOUR defects fixed before one
fader passed (aconnect direction trap, port-name identity ×2, add-only
reconcile); the v3 visual language (role hue × value lightness, DJF
blue→breathing-green-zero→red at the track's BPM); driver-owned truths
(offset-64 relative values, row-E latches, paint reasserted every 2 s); OLED
context in PLN's own words ("Le Delay rose!!!", "HANDS IN THE AIR"); the
34-display-targets discovery that ended the overlay war (log 035); midiviz,
the wordless purple glyph-rain monitor (Opus worker, 999923c); the Ardour
saga — a webcam squatting the control input, then Ardour 9's silent
`config=` load gate, bindings wiped and restored twice (log-worthy on its
own); RIG UP reordered around the SuperDirt-owns-MIDI-first constraint; the
nine-press edge-button census.
**The theme, three times over:** identity bugs. A port's NAME is not the
port (aconnect client vs port name, twice in our code, once in
midi-autoconnect, once independently rediscovered by the midiviz worker), and
a device's saved identity is not the device (Ardour's control input bound to
"C922 Pro Stream Webcam"). Identity is the numeric address; names are
decoration.
**BC invariant, stated and kept:** the corpus speaks v2 forever. Everything
v3 lives in one process; unplug it and the classic LCXL still plays every
track — PLN: "we need to be BC always."
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