openmixer — generated API reference
    Preparing search index...

    Interface ReacSegmentConfigJson

    One REAC segment's DESIRED config as the session carries it — EXACTLY the writable set of /reac/segment/{name} (2026-08-26-reac-runtime-config.md §4), under that row's own address.

    The SESSION owns desired config, because the session owns the console definition (§3): the daemon persists nothing, comes back autodetecting after a restart, and the console re-asserts intent over reac.cfg.* — so this block is the ONE home of "what the operator asked this segment to be". Before it existed the desire lived only in reac-pw's --rate cmdline, and killing the daemon silently dropped the S-0808 from an asserted 96 kHz to 48 kHz with the row following the wire down (measured 2026-08-29).

    NOTHING OBSERVED LIVES HERE. pace, masterState, paceSource, linkState, model, rateState… are facts the wire publishes and the row derives on every read; writing one into this document would create a second, stale declaration of a fact that already has an owner. A field is ABSENT when the operator asserted nothing about it — the daemon's best-drivable default then stands, which is not the same as asserting that default.

    interface ReacSegmentConfigJson {
        name: string;
        rate?: number;
        role?: "auto" | "mixer" | "recorder" | "tap";
    }
    Index
    name: string

    The segment's own address key — the {name} of /reac/segment/{name} (default, s1608).

    rate?: number

    The asserted REAC pace, Hz. Absent = nothing asserted; never a hardcoded 48000.

    role?: "auto" | "mixer" | "recorder" | "tap"

    The console's asserted role on this segment, in the PRODUCT's words (master-arbitration §8a, ruled 2026-09-01): mixer is the master end of the desk<->stagebox pairing, recorder the box end, auto observes and takes whichever end the segment leaves open, and tap (§8, eighth amendment, 2026-09-13) serves what it hears and TRANSMITS NOTHING — no announce, no join, no grant, no seglock. The INTENT is what a show carries — the wire's master/slave numeral is an actuation of it, re-derived on every announce — and neither auto nor tap has a wire value: auto has none YET, tap has none EVER.

    tap IS PART OF THE SHOW, which is why it lives here rather than in a host-local setting: "this console is listening on this wire" is a fact about the venue the operator is working in, and a show carried to a rehearsal room without the desk must not silently start driving a segment it was told to tap.

    Absent = nothing asserted, which the row reads as auto — §8b's default, not a fallback.