PLN, setting up: "ill often unplug replug another port a controler when setting up, it needs to resist that, atm i unplugged replugged lost the led" — and then, with the surface dark, "movign faders dont move sound for now". A replug destroys the kernel's sequencer client and rebuilds it, dropping every subscription on it. rtmidi is never told, so the driver kept its handles, kept printing "translating", and kept painting into a void: 129:0 had no "Connecting To" and the input leg no "Connected From", while the board sat there dark and deaf. reconcile() reported healthy all the way through, because the leg it watches — the virtual port into SuperCollider — is virtual-to-virtual and survives the event untouched. The half that breaks was the half nobody checked. Names cannot detect this and that is the trap: the board came back as client 24, the SAME number, so find_ports() answered, in_name still matched, and every string looked right. Only the subscription knows. So the reconcile tick now checks the board link first and relinks on loss: reopen the Surface, re-assert DAW mode and the relative rows, repaint, relabel. Board before SC, because a dark surface is the louder failure. Two things learned by testing it rather than trusting it: - ANY-subscription is not a health signal. The first cut asked "does the DAW port have a subscriber?" and answered True on the exact state it exists to catch — a replug leaves DEBRIS, and aconnect went on printing the board wired to clients 132/133 that no longer existed while our own ports sat detached. It now matches aconnect's pid= against os.getpid() and requires OUR client on both ends: no input is a dead controller, no output is a dark one. - A relink does not re-seed. Seeding pushes values downstream, and downstream is the one path that never broke — SC already holds them. Verified by cutting both legs with `aconnect -d` (what the replug does to the subscriptions) and watching it come back within one tick.
| Name |
Last commit
|
Last update |
|---|---|---|
| .gitea/workflows | Loading commit data... | |
| armada | Loading commit data... | |
| blocks | Loading commit data... | |
| blog | Loading commit data... | |
| config/wireplumber | Loading commit data... | |
| copycat | Loading commit data... | |
| docs | Loading commit data... | |
| gifts | Loading commit data... | |
| lib-parvagues | Loading commit data... | |
| live | Loading commit data... | |
| mix | Loading commit data... | |
| output | Loading commit data... | |
| releases | Loading commit data... | |
| sandbox | Loading commit data... | |
| study | Loading commit data... | |
| test | Loading commit data... | |
| tools | Loading commit data... | |
| utils | Loading commit data... | |
| visuals | Loading commit data... | |
| viz | Loading commit data... | |
| .gitignore | Loading commit data... | |
| BootTidal.hs | Loading commit data... | |
| BootTidal.hs.broken | Loading commit data... | |
| BootTidal.visuals.broken.hs | Loading commit data... | |
| CLAUDE.md | Loading commit data... | |
| EVENING.md | Loading commit data... | |
| FOH_MASTER.md | Loading commit data... | |
| LAST_THIRD.md | Loading commit data... | |
| LICENSE | Loading commit data... | |
| Logo.xcf | Loading commit data... | |
| MORNING.md | Loading commit data... | |
| PatchBay_MultiChannel.xml | Loading commit data... | |
| PatchBay_Perf.xml | Loading commit data... | |
| PatchBay_Perf5.1.xml | Loading commit data... | |
| README.md | Loading commit data... | |
| RUNBOOK.md | Loading commit data... | |
| SETUP.md | Loading commit data... | |
| SHOPPING_LIST.md | Loading commit data... | |
| TASKS_DUMP.md | Loading commit data... | |
| backlog.md | Loading commit data... | |
| bullet_train.tidal | Loading commit data... | |
| collide.sh | Loading commit data... | |
| conftest.py | Loading commit data... | |
| debug.tidal | Loading commit data... | |
| didacticpatternvisualizer.pde | Loading commit data... | |
| gig-up.sh | Loading commit data... | |
| gpu-mode.sh | Loading commit data... | |
| hello.sc | Loading commit data... | |
| init_midi.sh | Loading commit data... | |
| install_superdirt.sclang | Loading commit data... | |
| intro.md | Loading commit data... | |
| library.txt | Loading commit data... | |
| link_jack.sh | Loading commit data... | |
| link_samples.sh | Loading commit data... | |
| link_samples_all.txt | Loading commit data... | |
| main_fairbanks.scd | Loading commit data... | |
| notes.md | Loading commit data... | |
| parvagues-sc.service | Loading commit data... | |
| perf-audio.sudoers | Loading commit data... | |
| perf-tray.py | Loading commit data... | |
| perf-tray.service | Loading commit data... | |
| perf.sh | Loading commit data... | |
| process-palette.json | Loading commit data... | |
| realtime.tidal | Loading commit data... | |
| sample-manifest.json | Loading commit data... | |
| sample_watch.scd | Loading commit data... | |
| samples.txt | Loading commit data... | |
| setlist_opal2026.txt | Loading commit data... | |
| sketch.properties | Loading commit data... | |
| start_and_midi.scd | Loading commit data... | |
| test.tidal | Loading commit data... |