openmixer — generated API reference
    Preparing search index...

    Interface DemoTopology

    The result of buildDemoTopology: the software options + node handles + routing.

    interface DemoTopology {
        busOutputs: readonly DemoBusOutput[];
        nodes: DemoNodes;
        options: {
            adaptiveQuantum?: {
                ceiling?: number;
                floor: number;
                maxLoadToLower?: number;
                settleTicks?: number;
            };
            allocation?: {
                buses: {
                    aux: number;
                    dca: number;
                    fxReturn: number;
                    group: number;
                    main: number;
                    matrix: number;
                    mixMinus: number;
                };
                inputChannels: number;
                inputWidths?: ("mono" | "stereo")[];
                name?: string;
            };
            channels: {
                index: number;
                inserts?: string[];
                kind: | "matrix"
                | "input"
                | "fxReturn"
                | "aux"
                | "mix"
                | "main"
                | "fxSend"
                | "dca"
                | "muteGroup"
                | "mixMinus";
                source?: { l: string; r?: string };
            }[];
            consoleProfile?: string;
            main: { input: { l: string; r?: string } };
            modHost: { host: string; port: number };
        };
        teardown(): void;
    }
    Index
    busOutputs: readonly DemoBusOutput[]

    The output-bus → output-node routing to apply live once the buses exist.

    nodes: DemoNodes

    The created nodes (for logging + inspection).

    options: {
        adaptiveQuantum?: {
            ceiling?: number;
            floor: number;
            maxLoadToLower?: number;
            settleTicks?: number;
        };
        allocation?: {
            buses: {
                aux: number;
                dca: number;
                fxReturn: number;
                group: number;
                main: number;
                matrix: number;
                mixMinus: number;
            };
            inputChannels: number;
            inputWidths?: ("mono" | "stereo")[];
            name?: string;
        };
        channels: {
            index: number;
            inserts?: string[];
            kind: | "matrix"
            | "input"
            | "fxReturn"
            | "aux"
            | "mix"
            | "main"
            | "fxSend"
            | "dca"
            | "muteGroup"
            | "mixMinus";
            source?: { l: string; r?: string };
        }[];
        consoleProfile?: string;
        main: { input: { l: string; r?: string } };
        modHost: { host: string; port: number };
    }

    The software-mixer options wiring channels + main over the demo nodes (with the allocation seeded).

    Type Declaration

    • OptionaladaptiveQuantum?: {
          ceiling?: number;
          floor: number;
          maxLoadToLower?: number;
          settleTicks?: number;
      }

      Optional adaptive-quantum policy (the auto half of the latency lever). Off when absent.

    • Optionalallocation?: {
          buses: {
              aux: number;
              dca: number;
              fxReturn: number;
              group: number;
              main: number;
              matrix: number;
              mixMinus: number;
          };
          inputChannels: number;
          inputWidths?: ("mono" | "stereo")[];
          name?: string;
      }

      An explicit allocation to seed (buses / DCAs / matrices), even alongside declared channels.

    • channels: {
          index: number;
          inserts?: string[];
          kind:
              | "matrix"
              | "input"
              | "fxReturn"
              | "aux"
              | "mix"
              | "main"
              | "fxSend"
              | "dca"
              | "muteGroup"
              | "mixMinus";
          source?: { l: string; r?: string };
      }[]

      The channels this mixer presents.

    • OptionalconsoleProfile?: string

      The console appliance this deployment declares (a ConsoleProfileId, default openmixer). It CAPS the seeded allocation and GATES what the console can build, so a restricted desk is enforced even without the UI: a declared allocation that violates the appliance is rejected, and every seed is clamped through capAllocation. An unknown id falls back to the unrestricted openmixer profile.

    • main: { input: { l: string; r?: string } }

      The main mix bus sink ports the channels sum into.

    • modHost: { host: string; port: number }

      mod-host endpoint for the plugin inserts. Defaults to the standard 127.0.0.1:5555. .prefault({}), not .default({}) — see config.ts's note: Zod 4's .default() would hand back {} verbatim on an omitted modHost, skipping the nested host/port defaults; .prefault({}) re-runs {} through the inner schema so they still resolve.

    • Tear every created node down (kills its pw-loopback process). Idempotent-safe.

      Returns void