openmixer — generated API reference
    Preparing search index...

    Interface FieldTravel

    One field's travel BEFORE any instance is named — the desk-wide half of FieldCapability.

    capabilities(id) answers for an instance and so needs one: it resolves an address and reads a live station cell. That makes it the wrong door for a client BOOTING, which needs every travel it will draw with before it has drawn anything, and cannot afford a request per (row, instance) — 125 strips over ~30 rows is thousands of round trips for numbers that do not change.

    So this is the same declaration read at the other cardinality: what the ROW declares, once, regardless of which instance is addressed.

    interface FieldTravel {
        limit?: ControlLimit;
        perInstance?: true;
        taper?: Taper;
        values?: readonly (string | number)[];
    }
    Index
    limit?: ControlLimit

    What values are legal on EVERY instance of this row — absent when perInstance.

    The absence is the load-bearing part. A field whose travel depends on the instance has a codec-level fallback sitting right there, and publishing it here would hand a booting client a plausible number for a control whose real travel is a property of the device behind it — wrong in exactly the way nothing downstream can detect, which is the defect class this whole door exists to close. Omitted, a client has nothing to bind but the instance's own OPTIONS.

    perInstance?: true

    Present when this field's travel is a property of the INSTANCE — a preamp's gain span, an EQ band's Q — so a client must ask OPTIONS at the instance's own URL and may bind nothing here.

    taper?: Taper

    The curve, when the row declares one that does not vary by instance.

    values?: readonly (string | number)[]

    The closed VOCABULARY this field accepts, when its domain is a discrete set rather than a span — the enum's members, as the codec that refuses them holds them.

    A menu is a declaration exactly as a travel is: a client that composes its own options can offer one the desk refuses (which reads as a broken control) or miss one the desk added (which reads as a missing feature, and ships a client to fix). Both are the defect class the travel half of this door already closes; a field whose legal values are a list was simply never asked.

    Row-wide by construction: the members are fixed when the codec is built, so unlike a travel there is no per-instance case to withhold.