Commit ddc34912 by PLN (Algolia)

docs(evening): tomorrow is not a morning — the tent brief for J-4

PLN: "so tomorrow its not a MORNING.md note its an EVENING.md one :P" — he
travels at dawn, so the next time he and the rig are both awake it is evening, in
a tent, on headphones. MORNING.md's whole frame (the KRKs, the room, the last
speaker day) is spent.

Written for that context specifically: what needs ears vs what needs the room,
and §1 first because it is the only item that can destroy work — Pulsar is
probably still holding the broken desire.tidal buffer, and it already clobbered
this fix once tonight.

Carries forward the two things he has not heard yet (1-cycle xfade with the -6 dB
cut-group explanation, desire's repaired midiOn bass), the fact that NOTHING from
tonight was recorded and why that promotes #37 to a blocker, the unchanged ghost
list with the paste-at-top remedy, and the rig health numbers measured mid-set.

Also records the MIDI fork he diagnosed himself, because it is the kind of thing
that reads as impossible the second time it happens: Tidal hears the LCXL over
ALSA seq (24:0 -> SuperCollider in4), Ardour hears it over PipeWire's Midi-Bridge
into `ardour:MIDI Control In` via Midi Through. Break either and the other stays
perfect — which is exactly why "midi passes to midiOn/off but no fader moves"
was a real, coherent symptom and not a contradiction.
parent 70048d46
# 🌙 Tuesday 2026-08-04 — J-4. The tent brief.
Not a morning file. You travel at dawn, so the next time you and the rig are both
awake it is **evening, in a tent, on headphones**. Supersedes `MORNING.md`.
`master` clean, **everything pushed** (`70048d4`). The KRKs stayed home.
**Read §1 before you open Pulsar.** It is the only thing here that can destroy work.
---
## 1. ⚠️ Reload Pulsar before you touch `desire.tidal`
Tonight I fixed `desire.tidal` on disk, you quit and reopened Pulsar, and Pulsar
**wrote its stale buffer back over the fix**. I had to redo it. The file on disk is
now correct and committed — your editor may still be holding the broken version.
Window: Reload (or just close the desire tab before opening it again)
Then, and only then, evaluate it. This is #95 and it is not theoretical any more.
---
## 2. Two changes you have not heard yet 🎧
### `xfade` is 1 cycle, not 4 — `15695de`
Every `dN` now crossfades over **one** cycle. This is why "I change a `# gain` and
the whole track swells down-and-up for four bars" is over.
Why it dipped at all, since you asked the right question: the envelopes are
equal-power (`g² + g² = 1`) but SuperDirt's law is `amp = gain⁴`, so at the
midpoint each side lands on amp **0.500** exactly — and `overlay` fires the sample
twice, so on any orbit with `# cut N` the second voice *kills* the first and you
hear one voice at half amplitude: **−6 dB**. Without `cut`, incoherent sum: −3 dB.
Shortening it makes the dip a blip, not a fade. It does not remove it.
**Verbs for the tent** — all already defined, nothing to type twice:
| want | type |
|---|---|
| instant, orbit-correct (adjusting a value) | `jumpTo 4 $ …` |
| instant via xfade | `xfadeIn 4 0 $ …` |
| the old long dissolve, one launch only | `xfadeIn 4 4 $ …` |
`xfadeIn N 0` used to give you **silence**, not instant — Tidal guards
`_slow 0 = silence` and `q \|* gain silence` empties the incoming pattern. Guarded
now, so 0 is real.
🎧 **Listen for:** one track→track seam at 1 cycle. It is faster than everything you
rehearsed. If it feels abrupt for the set, `xfadeIn N 2` per launch, or flip the
literal back in `BootTidal.hs` — it is one token.
### `desire`'s bass compiles now — `70048d4`
**The version you saved tonight did not compile.** The bass you liked existed only
in the running ghci, in a take that was never recorded.
`midiOn`/`midiOff` pass their argument straight to `someCyclesBy`, so it must be a
**function** — that is why every working call in your corpus looks like
`(# crush 6)`. Both note figures are now left sections: `((note (scale …)) #)`.
`^44` ON = the moving arp, OFF = the grounded root. That was the intent; verify by
ear that it is the *sound*.
`"Claude's Weight"` is commented out — when its figure moved into Gesture's
`midiOff` it was left with a `midiOn` and nothing to apply it to, which is what
broke the file. The last `d4` wins, and that was never this block, so nothing
musical is lost.
🎧 **Test in the tent:** `^44` off → on → off on `desire`, headphones. Does the
grounded↔moving flip land where you want it.
---
## 3. Nothing from tonight was recorded
Measured, not assumed: 120 wavs in `Tidal Live`, newest **2026-08-02** (Take95),
zero files today, no open write fds. The desire bass, the mafia d7 fix, the
Sunshine→Vague work — code only.
**#37 is now a gig blocker, not a nice-to-have.** Big red blinking dot when
recording, big red triangle when not, notification on first eval with no rec.
Watching *bytes landing on disk*, not the record button — the button, the saved
session and the GUI have each lied to us this month.
Not built yet. Until it is: **arm Ardour before you play anything you'd miss.**
---
## 4. Ghost list — the seams, unchanged
`#77` is not fixed. An orbit the incoming track does not *declare* never gets
evaluated, so it never transitions, so it keeps playing. Unrelated to the xfade
work — opposite mechanism.
Mafia -> Sunshine GHOST d7
Sunshine -> Vague GHOST d9, d11 ← you hit this one tonight
Vague -> Desire clean ✓
Desire -> REVOLUTION GHOST d6
REVOLUTION -> Hammer GHOST d7, d8, d12 ← worst seam in the set
Paste at the **top** of the incoming file, own block. Now a 1-cycle fade:
d9 $ silence
d11 $ silence
Under pressure: `hush`.
---
## 5. Tent-appropriate, and not
**Do 🎧**`^44` on desire; one seam at the new 1-cycle xfade; `jumpTo` as your
adjusting verb; read `LAST_THIRD.md` cold; the three untested tracks (#127:
desire / REVOLUTION / electric_hammer).
**Don't** — gain staging or level work on headphones (#17, #91 need the room);
loud seam checks; anything that needs the UMC if it is packed. And do not quit
Pulsar with patterns running until #140 lands — that is why you had to reopen it
tonight just to `hush`.
---
## 6. Rig state, verified tonight
Measured mid-rehearsal, read-only:
pulsar renderer 5.0 / 5.5 / 5.0 % (was ~82% idle before #7)
scsynth 1.0 / 0.5 / 1.0 %
load average 2.97 (7.17 during Sunday's dropout)
UMC202HD ~48k frames/s, 0 restarts, 0 xruns while Ardour ran
The graph prune and #7 both held under a real recording load. This is the
healthiest the rig has measured.
**Two known-live oddities, neither urgent:**
- Four orphaned `aseqdump` taps still alive (#129). Read-only subscribers, cost
nothing, but they are the thing to reap when you next restart the gear.
- Ardour's control-surface input had come unwired from Midi Through — you found
it, and the fork is now understood: **Tidal hears the LCXL over ALSA seq
(`24:0 → SuperCollider`), Ardour hears it over PipeWire's Midi-Bridge.** Kill
either and the other stays flawless, which is why "MIDI works" and "the faders
are dead" were both true. `gig-up.sh:410` only ever checked the SuperCollider
half — a check for the Ardour half is the next thing I owe you.
---
## 7. Before the tent: unplug order
1. `hush`
2. **Save the Ardour session** — deliberately. Tonight's faders are correct, and
the *saved* session has shipped 9-of-12 faders at `-inf` three times (#124).
3. Quit Ardour (it holds the UMC through PipeWire).
4. Then MIDI → UMC → USB-powered.
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