openmixer — generated API reference
    Preparing search index...

    Interface MixerReceiver

    Reads are a push observer (not promises): desks stream state after subscribe. One fat interface -- anything wanting fader updates wants mute/name/meter too.

    interface MixerReceiver {
        onConnected(topology: MixerTopology): void;
        onDcaAssign?(dca: ChannelId, member: ChannelId, assigned: boolean): void;
        onDelay?(channel: ChannelId, ms: number): void;
        onDisconnected(reason: string): void;
        onDynamics(channel: ChannelId, value: DynamicsState): void;
        onEqBand(channel: ChannelId, band: number, value: EqBand): void;
        onFader(channel: ChannelId, level: FaderLevel): void;
        onGain(channel: ChannelId, gain: GainLevel): void;
        onHeadAmpAvailable?(channel: ChannelId): void | Promise<void>;
        onHeadAmpGain?(channel: ChannelId, gainDb: number): void;
        onInsert(
            channel: ChannelId,
            slot: number,
            value: PluginInsert | null,
        ): void;
        onMeters(
            levels: readonly { channel: ChannelId; level: MeterLevel }[],
            loudness?: LoudnessReadout,
        ): void;
        onMute(channel: ChannelId, muted: boolean): void;
        onMuteGroupAssign?(
            group: ChannelId,
            member: ChannelId,
            assigned: boolean,
        ): void;
        onName(channel: ChannelId, name: string | null): void;
        onPad?(channel: ChannelId, on: boolean): void;
        onPan(channel: ChannelId, pan: number): void;
        onPhantom?(channel: ChannelId, on: boolean): void;
        onPolarity?(channel: ChannelId, inverted: boolean): void;
        onSend(input: ChannelId, output: ChannelId, level: FaderLevel): void;
        onSendEnable?(input: ChannelId, output: ChannelId, enabled: boolean): void;
        onSendTap?(input: ChannelId, output: ChannelId, tap: SendTap): void;
        onSolo(channel: ChannelId, soloed: boolean): void;
        onStereoLink?(channel: ChannelId, linked: boolean): void;
    }

    Implemented by

    Index
    • Parameters

      Returns void

    • Parameters

      • reason: string

      Returns void

    • A 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.

      Parameters

      • channel: ChannelId

        the channel whose physical input just became head-amp actuable

      Returns void | Promise<void>

    • The 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.

      Parameters

      Returns void

    • Parameters

      Returns void

    • Parameters

      Returns void

    • −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.

      Parameters

      Returns void

    • Parameters

      Returns void

    • 48 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.

      Parameters

      Returns void

    • Parameters

      Returns void

    • Parameters

      Returns void

    • Parameters

      Returns void