OptionalonOptionalonOptionalonA channel's head-amp became actuable: the adapter can now reach a real preamp for it,
because the physical input it is patched to only just DECLARED itself (a stagebox that
establishes mid-show, or — the common case — a box whose transport node the adapter observes
AFTER sessions.autoload has already replayed the saved head-amp into the strips).
This is a capability push, NOT a state push: the adapter is reporting that a path opened,
and knows nothing about what should travel down it. The engine answers by re-asserting the
channel's STORED phantom / pad / SENS onto the device (see MixerEngine.reassertHeadAmp),
which is what stops a strip from showing 48 V ON while the box sits OFF. Without it a
late-declaring box gets a capability re-advertisement (the surface renders the controls) and
nothing on the wire — the strip would LIE about phantom, a safety bug on a live desk.
Optional + awaitable: a receiver that carries no canonical head-amp state simply omits it, and an adapter that never heals never fires it.
the channel whose physical input just became head-amp actuable
OptionalonThe head-amp GAIN in dB pushed by the device (mirrors MixerAdapter.setHeadAmpGain).
Consumed by MixerEngine.onHeadAmpGain, which mirrors it into the strip's gain display on a
sens-capable
channel. As with onPad, no adapter pushes it yet.
Optionalloudness: LoudnessReadoutOptionalonOptionalon−20 dB analog pad state pushed by the device (mirrors MixerAdapter.setPad).
Consumed by MixerEngine.onPad. No adapter pushes it yet — the REAC path currently only
WRITES pad; this is the landing point for a box that reports its own.
Optionalon48 V phantom pushed BY the device — the desk reporting what it already did, either after
subscribe or because someone turned it at the console. Fired today by the Midas adapter
(every phantom node change) and consumed by MixerEngine.onPhantom, which records it on
the strip and fans it out WITHOUT writing back.
Optional on the interface so a receiver that does not care stays valid — but note that a receiver which owns operator-visible state and skips this will show the last value IT wrote over a device that has since moved, which on phantom is a safety lie, not cosmetic drift.
OptionalonOptionalonOptionalonOptionalon
Reads are a push observer (not promises): desks stream state after subscribe. One fat interface -- anything wanting fader updates wants mute/name/meter too.