Commit 6d9c9ef6 by PLN (Algolia)

feat(gig-up): put the mix back on every launch — the faders are not state

PLN, asked whether a `Tidal 12` parked at -inf was a mistake or intent:
"tidal 12 -inf is random i might turn on/off any fader its not signal
throughout perf it mioves always and i save random". So the question was wrong.
Whatever gain Ardour saved is wherever a hand left it mid-set; a session's
at-rest mix is noise, and there is nothing to diagnose.

Which is why the readiness gate could only ever REPORT it. Measured just now,
the drift is not one fader but NINE of twelve, five of them at -inf: 02 03 04
05 08 12 fully silent, 06 07 10 down 40+ dB. A mix that scatters every set
needs a mechanism, not a warning.

So restore it, in the window the source sweep already owns — Ardour closed.
fader-baseline REFUSES while Ardour runs (writing under a live session desyncs
it from the desk, and the desk wins on next touch), which makes "post-close"
and "pre-launch" the same safe moment. Full restore to the 2026-08-02 baseline
per PLN's call, not just a rescue of dead faders: it keeps a .prefader.bak, is
idempotent, and holds a 0.5 dB tolerance so it never churns.

Verified both branches against the live rig: --check reports the 9-fader drift,
and --restore correctly refuses with Ardour open.
parent 0824a277
...@@ -311,6 +311,43 @@ sweep_session(){ ...@@ -311,6 +311,43 @@ sweep_session(){
} }
sweep_session sweep_session
# The faders are NOT state. PLN, 2026-09-06: "throughout perf it moves always
# and i save random" — whatever gain Ardour saved is wherever his hand left it,
# so a session's at-rest mix is noise, not intent. Which is exactly why the
# readiness gate further down could only ever REPORT a `Tidal 12` parked at
# -inf: the report was correct and useless, because there was nothing to
# diagnose. A mix that drifts every set needs a mechanism, not a warning.
#
# So put it back, in the SAME window the source sweep uses — Ardour closed.
# fader-baseline REFUSES while Ardour runs, and for a good reason: writing the
# file underneath a live session desyncs it from the physical desk, and the desk
# wins on next touch. That refusal means "post-close" and "pre-launch" are the
# same safe moment, and this is it.
#
# FULL restore, per PLN's call: every launch starts from the baseline captured
# 2026-08-02, not just a rescue of dead faders. It keeps a .prefader.bak, is
# idempotent, and holds a 0.5 dB tolerance so it never churns.
restore_faders(){
local tool="$DIR/tools/fader-baseline.py"
[ -f "$ARDOUR_SESSION" ] && [ -f "$tool" ] || return 0
if ardour_up; then
info "faders: skipped — Ardour is already open (it owns the desk)."
return 0
fi
local out
if out=$(python3 "$tool" --session "$ARDOUR_SESSION" --restore 2>&1); then
if printf '%s' "$out" | grep -q "nothing to restore"; then
ok "faders: already at baseline."
else
ok "faders: $(printf '%s' "$out" | head -1)"
printf '%s\n' "$out" | sed -n '2,13p' | sed 's/^/ /'
fi
else
warn "faders: declined — $(printf '%s' "$out" | tail -1)"
fi
}
restore_faders
# 3) Ardour — now safe to open (SuperDirt already holds the controller) # 3) Ardour — now safe to open (SuperDirt already holds the controller)
if ardour_up; then if ardour_up; then
ok "Ardour already running — skipping." ok "Ardour already running — skipping."
......
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