openmixer — generated API reference
    Preparing search index...

    Type Alias OutputLegDelayMs

    OutputLegDelayMs: { readonly [K in ChannelRole as `delayMs${K}`]?: number }

    A destination's TIME-ALIGNMENT DELAY, in ms, PER SIDE — one optional field per channel role.

    ONE WORD AND ONE SPELLING, because a leg's delay is per side everywhere it appears: the engine store, the persisted route, the leg row's fields, the native route params (operator ruling 2026-09-09, 2026-07-16-per-leg-output-routing.md amendment 2026-09-09, issue #845). Two boxes at two distances hang off one leg's two ports and the room job needs them to arrive together.

    FLAT SIBLING FIELDS, not a nested delayMs: {L, R, C}, for the reason the leg row's own PORTS are flat: a field is what carries a declared travel (OPTIONS) and a writable refusal, and a C that only an lcr bus may write has to be declarable on its own (#176). It is also why the key cannot simply be the role: L already names the PORT on the same object.

    A leg's mute and trimDb are NOT per side and do not become so — muting or trimming half a destination is the MAIN L incident of 2026-09-07, a control whose write is wider than its caption. What is per side is FLIGHT TIME, because that is a fact of where each box stands.

    An ABSENT side reads as 0 (no delay), never a fabricated default; a value is never negative — a destination can only be pushed LATER, never advanced.