Three rounds of screen fixes were hypotheses dressed as patches: the lap clock is frozen at 0:00 on glass while our ghost ticks, and the DJF Hz readout "refresh maybe every 1s, not smooth at all". Both point at one unproven rule — that a field write to an ALREADY-VISIBLE display target does not repaint without a bring-up — and the protocol offers no display readback, so the only instrument that can settle it is PLN's eyes, asked precise questions in order. So: a guided probe. Each step prints an instruction, sends a minimal distinguishing sequence, and records what he saw; the run ends with a table and a verdict naming the surviving hypothesis, plus JSON in the scratchpad so the answers outlive the session. --dry-run prints every byte with the hypothesis it tests, so the whole thing is reviewable without hardware. It distinguishes: bring-up NONE/AFTER/BEFORE/RECONFIG on the stationary target; the same on the temporary target plus a 20/10/5-per-second rate ladder (which directly decides the DJF smoothness fix); whether per-control targets can be driven while untouched; which auto bit actually summons; and an arrangement census with a SENTINEL, so an arrangement the firmware IGNORES reads as "still the sentinel" instead of masquerading as a real layout — without that, "ignored" and "renders like the previous one" are the same observation and the census would invent arrangements that do not exist. Two things it found by reading our code, before touching the device. The targets showing both symptoms are on arrangement 2, not the 4 we describe in our own notes (4 is only label_control's default). And CFG_BRING_UP = 0x7F is arithmetically ARR_TRIGGER | AUTO_TOUCH | AUTO_CHANGE, so every bring-up may RE-ARM the auto-display bits we deliberately clear on the three DJF knobs — which would explain, mechanically, why the firmware's number keeps reappearing over "HPF 3.4kHz !!". That became its own probe step. Safety, since the rig is live: display and config SysEx only, enforced by an AST check that there are zero cc/note/rgb/feature call sites plus raisers installed over those methods at open time; it refuses to run while the driver is up (printing the pid, the kill, and the restart line); and it restores the arrangement the driver expects from a finally block. NOT YET RUN ON HARDWARE — committed so the work is not parked in a scratchpad.
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| at | Loading commit data... | |
| bridge | Loading commit data... | |
| foundry | Loading commit data... | |
| pulsar-parvagues-hud | Loading commit data... | |
| pvlint | Loading commit data... | |
| tests | Loading commit data... | |
| README.md | Loading commit data... | |
| analyze_samples.py | Loading commit data... | |
| audio-lens.py | Loading commit data... | |
| bank-check.py | Loading commit data... | |
| button-column-audit.py | Loading commit data... | |
| button_roles.py | Loading commit data... | |
| cheat-sheet.py | Loading commit data... | |
| check-audio-graph.sh | Loading commit data... | |
| check-boot-blocks.py | Loading commit data... | |
| check-boot.sh | Loading commit data... | |
| check-drift.sh | Loading commit data... | |
| check-mix.py | Loading commit data... | |
| check-preload.sh | Loading commit data... | |
| check-tracks.sh | Loading commit data... | |
| control-lens.py | Loading commit data... | |
| deshadow-helpers.py | Loading commit data... | |
| fader-baseline.py | Loading commit data... | |
| fan_check.sh | Loading commit data... | |
| fix-button-roles.py | Loading commit data... | |
| fix-mute-roles.py | Loading commit data... | |
| gen_tokens.py | Loading commit data... | |
| gen_ts_types.py | Loading commit data... | |
| gig-log.py | Loading commit data... | |
| gig-log.service | Loading commit data... | |
| gig-metadata.py | Loading commit data... | |
| gig-up.sh | Loading commit data... | |
| gig_record.sh | Loading commit data... | |
| install-protect.sh | Loading commit data... | |
| lcxl-init.py | Loading commit data... | |
| lcxl-leds-watch.service | Loading commit data... | |
| lcxl-leds.py | Loading commit data... | |
| lcxl-path.py | Loading commit data... | |
| lcxl3-driver.py | Loading commit data... | |
| lcxl3-probe-display.py | Loading commit data... | |
| lcxl3.py | Loading commit data... | |
| lcxl3_language.py | Loading commit data... | |
| lcxl_grid.json | Loading commit data... | |
| lcxl_grid.py | Loading commit data... | |
| master-out.py | Loading commit data... | |
| midi-autoconnect.service | Loading commit data... | |
| midi-autoconnect.sh | Loading commit data... | |
| migrate-columns.py | Loading commit data... | |
| mock-lcxl.py | Loading commit data... | |
| mute.tidal | Loading commit data... | |
| orphan-orbits.py | Loading commit data... | |
| parvagues-protect.service | Loading commit data... | |
| parvagues-protect.sh | Loading commit data... | |
| parvagues-rig.target | Loading commit data... | |
| parvagues-samples.service | Loading commit data... | |
| parvagues-sc-watchdog.service | Loading commit data... | |
| probe-chain.py | Loading commit data... | |
| pvbanks.py | Loading commit data... | |
| rig-pulse.py | Loading commit data... | |
| rig_units.py | Loading commit data... | |
| sample-watcher.py | Loading commit data... | |
| sample_tfidf.py | Loading commit data... | |
| sc-watchdog.sh | Loading commit data... | |
| set-coherence.py | Loading commit data... | |
| setlist.py | Loading commit data... | |
| setlist_samples.py | Loading commit data... | |
| shipowiz.py | Loading commit data... | |
| silent-eval.py | Loading commit data... | |
| solo.tidal | Loading commit data... | |
| surface-columns.py | Loading commit data... | |
| take-lens.py | Loading commit data... | |
| take-master.py | Loading commit data... | |
| take-segments.py | Loading commit data... | |
| tempo-lens.py | Loading commit data... | |
| tidal-ardour-autoroute.service | Loading commit data... | |
| tidal-ardour-autoroute.sh | Loading commit data... | |
| tidal-remote.py | Loading commit data... | |
| tools.png | Loading commit data... | |
| unmute.tidal | Loading commit data... | |
| unsolo.tidal | Loading commit data... |