openmixer — generated API reference
    Preparing search index...

    Interface PatchbayLinksMessage

    Broadcast after any crosspoint change (PATCH /patch/input/{kind}/{index}): the FULL set of input endpoints now feeding a channel's head — the crosspoint patchbay's multi-in state. Multiple endpoints sum natively at the head; a UI renders one cell per (source, channel) pair, and flags a source feeding more than one channel. So every client converges on the complete source → channel crosspoint.

    interface PatchbayLinksMessage {
        channel: ChannelRef;
        endpoints: readonly {
            deferred?: boolean;
            l: string;
            partial?: boolean;
            r?: string;
        }[];
        stereo: boolean;
        type: "patchbay.links";
    }
    Index
    channel: ChannelRef
    endpoints: readonly {
        deferred?: boolean;
        l: string;
        partial?: boolean;
        r?: string;
    }[]

    The ordered source endpoints feeding the channel ([primary, ...extras]). Each carries at most ONE honesty mark about this patch (issue #154, refined by #194) — absent = every leg of the patch is live and carrying audio:

    • deferred: true — the patch carries NO audio at all: either the SOURCE is absent from the live graph (a stopped stream, an unplugged stagebox) or every one of its legs is still waiting on this channel's head input. A surface ghosts the cell.
    • partial: true — the source is PRESENT and at least one leg is live, but at least one OTHER leg is still waiting on an absent destination port: a stereo source running on one leg (the #193 half-widened strip, a channel mid stereo-width reconfigure). Half-connected is a real operating condition and gets its own mark, because both of the alternatives lie — drawn live it hides a dead leg, ghosted it claims a source that IS feeding the desk is gone (the #194 report). A surface renders it distinctly from both.

    The marks describe the PATCH, not the device: the device-presence read is patchbay.io's per-node deferred, which stays strictly "this node's ports do not resolve". Sourced from the #168 deferral ledger + the live-graph mirror; never false.

    stereo: boolean

    The channel's semantic source width: true when the patch made it stereo — a stereo pair (FL/FR) was assigned, or any summed crosspoint source is a pair. Patching Firefox makes the channel stereo; a mono mic keeps it mono; unpatching reverts it. Channel LINKING is deliberately not folded in (it rides /channel/{kind}/{index}/link): the surface renders a strip stereo when it is linked OR source-stereo, so the two cues never fight.

    type: "patchbay.links"