openmixer — generated API reference
    Preparing search index...

    Interface SurfaceEntityWrites

    interface SurfaceEntityWrites {
        correction(report: CorrectionReport): Promise<SurfaceWriteOutcome>;
        digitalGain(channel: ChannelId, db: number): Promise<SurfaceWriteOutcome>;
        divergence(
            channel: ChannelId,
            divergence: number,
        ): Promise<SurfaceWriteOutcome>;
        fader(channel: ChannelId, position: number): Promise<SurfaceWriteOutcome>;
        gain(channel: ChannelId, db: number): Promise<SurfaceWriteOutcome>;
        mute(channel: ChannelId, muted: boolean): Promise<SurfaceWriteOutcome>;
        pan(channel: ChannelId, pan: number): Promise<SurfaceWriteOutcome>;
        phantom(channel: ChannelId, on: boolean): Promise<SurfaceWriteOutcome>;
        select(channel: ChannelId): Promise<SurfaceWriteOutcome>;
        solo(channel: ChannelId, soloed: boolean): Promise<SurfaceWriteOutcome>;
        touch(channel: ChannelId, touched: boolean): Promise<SurfaceWriteOutcome>;
    }
    Index
    • One corrected row → the /telemetry/convergence/corrections log's own create door — the report a surface's ConvergenceClient makes when a re-read found a row it had wrong. The same door a browser POSTs to, so an in-process surface's discovery lands as an entry every client reads, never as a log line.

      Parameters

      Returns Promise<SurfaceWriteOutcome>

    • DIGITAL gain in dB → the channel's /gain row. The counterpart to gain: that one is the ANALOG head-amp's SENS, this is the desk's own coarse stage, and the two are genuinely different facts on genuinely different rows (the 2026-07-30 ownership decision). A surface calls this exactly where gain answered unowned.

      Parameters

      Returns Promise<SurfaceWriteOutcome>

    • LCR divergence 0..1 → the SAME pan row's divergence field (2026-09-08-lcr-mains.md §8.1: one strip-scoped row carries both). Meaningful only where the strip's tap lands on an lcr bus; the row accepts the write regardless (an unused value on a stereo tap is the row's own declared "inert, not refused" semantics) — the SURFACE is what gates the gesture (§8.4).

      Parameters

      Returns Promise<SurfaceWriteOutcome>

    • Head-amp GAIN in dB → the head-amp entity's gainDb, in the same unit and with no conversion at all since #165. Answers unowned where the channel declares no writable SENS — that is the DIGITAL stage's fact, and the caller hands it to digitalGain instead of this door inventing a second one. Ownership is decided before the write, so the unowned answer never waits on a landing.

      Parameters

      Returns Promise<SurfaceWriteOutcome>

    • +48 V → the head-amp entity's phantom. Where the channel sources no physical preamp (or the input cannot supply 48 V) the entity refuses — there is no pretend fallback, because powering a preamp that does not exist can only ever be a lie on the wire.

      Parameters

      Returns Promise<SurfaceWriteOutcome>

    • The console-global SELECT (one selected strip per mixer) → the /surface/selection singleton row. A refusal (unknown channel) moves nothing; a success broadcasts selection.state to every client, including the writer, so all SELECT LEDs converge on the same strip from that one frame — never from local hope.

      Parameters

      Returns Promise<SurfaceWriteOutcome>

    • The cue/solo latch → the solo row's solo. The row's sink re-drives the engine's ONE solo door, so the cue mirror's console-wide anySolo and the solo-safe bit travel exactly as they do for the verb path — SIP semantics unchanged.

      Parameters

      Returns Promise<SurfaceWriteOutcome>

    • The physical fader-TOUCH flag → /surface/touch/{kind}/{index}. Surface state, not console state: ephemeral, outside sessions and scenes, and with no audio consequence — which is why it is a row of its own rather than a field of the strip.

      Parameters

      Returns Promise<SurfaceWriteOutcome>