Remote Control: Audio Mixers (Output and Matrix)

Last updated 7 August 2026

How to set audio levels and mutes from outside Backstage — master volume, per-channel volume, and mute, for both kinds of audio mixer.

Two mixers, one action set

Backstage has two audio mixer types, and they answer identical commands. Only the domain differs, so a control system written for one works for the other by swapping the domain name.

Mixer

Domain

What it is

Output Mixer

output

Represents an audio device — the mixer that feeds a physical output

Matrix Mixer

mixer

A routing matrix between audio sources and destinations

Before you start

  • The mixer exists — an Output Mixer needs its audio device present and initialised
  • Its name is settled — every route addresses it by name
  • You know how many channels it has, if you intend to address them individually
  • For the protocol: Settings > Remote Control > Enable Show-Control Protocol is on (off by default)

JSON protocol — domains output and mixer

Send newline-delimited JSON to TCP 7400 (or UDP 7401 if enabled), with target set to the mixer's exact name, case-sensitive.

Actions

Action

Args

Effect

list

Every mixer of that kind, each as a status object. Use it to discover names and channel counts

status

The status object for one mixer

volume

{"volume": <linear>, "channel": <0-based, optional>}

Set level. Omit channel for the master; give it to set one output channel

mute

{"mute": true|false}

Mute or unmute the mixer

{"domain":"output","action":"list"}
{"domain":"output","action":"volume","target":"Main Out","args":{"volume":0.8}}
{"domain":"output","action":"volume","target":"Main Out","args":{"volume":0.5,"channel":2}}
{"domain":"mixer","action":"mute","target":"FOH Matrix","args":{"mute":true}}

Volume is linear, not decibels, and 1.0 is unity. A fader position from a control system usually is not — sending a 0–100 fader value straight through asks for a gain of 100. Convert on the control system side.

Status

Field

Meaning

name

The mixer's name — the sole identifier

inputs / outputs

Channel counts. outputs is the bound on a valid channel index

volume

The master level — equivalently channel 0's master

channelVolumes

Per-output-channel master volume, as an array

muted

Whether the mixer is muted

Live status

{"domain":"sys","action":"subscribe","args":{"domains":["output","mixer"]}}

Subscribe to both domains if a control surface shows all the audio in one place. Backstage pushes an immediate snapshot, an event on every change, and a heartbeat roughly every 3 seconds — so motorised faders or level readouts stay in step even if a frame is lost.

Subscribing is also how you keep two controllers consistent. Because levels can change from the Backstage UI, a Web Console page and a control system at the same time, an event feed is the only reliable picture of the current level — the last value you sent is not.

Web Console — the Output and Matrix Mixer blocks

Drop an Output block onto a Web Console page for a master fader, optional per-channel faders and a mute, pre-bound to that output mixer. Matrix Mixer does the same for a matrix mixer.

This is the practical route for a wall tablet in a foyer or a level check from the room rather than the rack.

Node editor

Audio levels can also be driven from the graph — the usual pattern being a labelled Datatype:Float node wired into audio control, which additionally exposes it through the node domain. Reach for that when a level should follow show logic rather than an operator, or when you want to apply your own curve between a controller's fader and Backstage's linear gain.

Common Mistakes

  • Everything is suddenly far too loud — a fader value was sent as if it were a percentage. 1.0 is unity; 100 is a hundredfold gain.

  • Wrong domain for the mixer — an Output Mixer answers on output, a Matrix Mixer on mixer. Same names in the wrong domain give a 404, not a silent miss.

  • A per-channel volume does nothingchannel is 0-based and must be below the mixer's outputs count. Read the status to check what exists.

  • Master and channel levels confused — omitting channel sets the master, which scales everything. Setting channel 0 is not the same as setting the master on a multi-channel mixer.

  • An Output Mixer is missing from list — its audio device is not present on this machine. A project can name a device the machine does not have; the mixer is not there to control.

Remote Control — the three routes, and every other controllable element

Audio Routing Window — setting up and routing audio outputs

Enable and Configure the Show-Control Protocol — the protocol in full: transports, auth, allowlist, the reference client

Remote Control: Sequencers — sequence fades, which scale audio independently of mixer level