-
fix(boot): bake the live-validated prelude into BootTidal.hs — disarm the gF mute-bomb permanently · 98d073f2
The problem: `gF1/gF2/gF3` in BootTidal.hs sent a value into `djfbus`, which is NOT a registered SuperDirt effect. The LCXL faders REST AT 0, so every gF-wrapped stream shipped an extreme value into a missing bus the moment it was launched — sound muted mid-set with no way back. Every mature ParVagues track wraps its streams in gF1/gF2/gF3, so this was armed on essentially the whole set. It was fixed and live-confirmed on 2026-07-25 ("f123 djfs seem to work great overall") — but only as a shadow-eval from live/lib/prelude.tidal. That fix lived in the running ghci and nowhere else: one SuperCollider reboot before OPAL and the footgun rearmed itself silently. J-10 is the wrong time to depend on remembering to eval a file. Approach — three blocks promoted from prelude.tidal into the boot file: 1. SAFE-AT-REST global filters. Swap the phantom djfbus for CORE params that are always registered, mapped so fader-rest(0) == BYPASS: gHPF = range 20 8000 (rest ⇒ hpf 20, effectively open) gLPF = range 20000 180 (rest ⇒ lpf 20k, effectively open) gF3 is now literally `id` — a spare fader that cannot touch sound at all. Untouched ⇒ no effect, ever. Fader up ⇒ the filter sweeps in. Cannot mute you. 2. DEFAULT-XFADE dN launches. d1-d12 become `xfade N . (|< orbit N-1)`. The orbit composition is the load-bearing part: a naive `xfade N` DROPS the orbit that dN bakes in, so transitions landed on the wrong LCXL column and the wrong Ardour stem. Added an orbit-correct `jumpTo N` for hard cuts. d13-d16 deliberately stay plain `p` — orbit 13 is the tidal-ears capture vsink and must not blend. 3. gPanic — the ^93 gate the start_and_midi.scd panic-chord (73+74+91+92) flips. Validation: type-checked in a throwaway ghci against the real tidal-1.9.5 install. All signatures resolve as intended — gF1/gF2 :: Pattern ValueMap -> Pattern ValueMap, gF3 :: a -> a (proving the safe identity), d1 keeps its original Pattern ValueMap -> IO () shape so no track file needs an edit, d13 stays ControlPattern -> IO (), jumpTo :: ID -> Pattern ValueMap -> IO (). prelude.tidal is demoted from "source of truth we forgot to promote" to an explicit RESCUE SHEET: it now documents the stale-boot symptom (push fader 49, sound mutes instead of sweeping) and stays evaluable as an in-session hot-patch. One source of truth, one less thing to remember mid-set.PLN (Algolia) authored98d073f2
×