openmixer — generated API reference
    Preparing search index...

    Function boundsOf

    • Follow ChannelFactDecl.range for one fact (and, where the source is a table, one field) to the bounds a control draws with.

      field is read by the TABLE sources (catalogLimits, coreLimits), whose travels are per field; the others bound the fact as a whole and ignore it.

      Total: every fact resolves to one of the five outcomes and none of them throws, so a caller cannot reach a number by accident.

      Parameters

      • fact:
            | "fader"
            | "gain"
            | "pan"
            | "divergence"
            | "trim"
            | "polarity"
            | "align"
            | "name"
            | "colour"
            | "instrument"
            | "hrp"
            | "eq"
            | "gate"
            | "dynamics"
            | "drive"
            | "delay"
            | "reverb"
            | "width"
            | "order"
            | "chain"
            | "sends"
            | "mute"
            | "soloSafe"
            | "link"
            | "gateKey"
            | "fbs"
            | "record"
            | "toMain"
            | "sources"
            | "sourceRef"
            | "sourceStereo"
            | "solo"
            | "headAmp"
            | "inserts"
            | "meter"
            | "rta"
            | "recallSafe"
            | "members"
            | "parents"
            | "clip"
            | "source"
      • field: string | undefined
      • ctx: BoundsContext
      • availability: ControlAvailability = {}
      • contract: Readonly<Record<ChannelFact, ChannelFactDecl>> = CHANNEL_CONTRACT

        the table to resolve against (defaults to CHANNEL_CONTRACT) — the same injection point featureMatrixOf and persistedFactsOf carry, and it exists for one reason: unsourced is the outcome for a fact the real contract no longer produces, so the only way to prove the switch can still REACH it is to drive this same switch with a declaration shaped like the gap. Without that a resolver that stopped returning unsourced would look exactly like a contract with no gaps (control-bounds.test.ts, the shrink-only ledger's control).

      Returns BoundsResolution