STAGEVIS

Docs — control API

Control API

Everything the on-screen controls can do, an external controller can do — from a MIDI surface, a lighting desk, or your own software. Four ways in, one stable protocol.

Transports

TransportWhereNotes
MIDI Virtual destination StageVis Control CC, Note, Program and Clock. Hardware controllers connect automatically; MIDI-learn mapping is built in and persists.
OSC UDP port 57824 Address patterns mirror the addressing scheme below.
HTTP + WebSocket Port 57823 REST: GET /health, GET /discover, GET /state, POST /command. Live updates over WebSocket at /ws.
Data channel Topic stagevis-control For controllers that already sit in the camera session.

Locked by default

The control ports bind to the Mac itself (localhost). Control from another device on the LAN is an explicit opt-in in Settings and requires a bearer token that you hand to the controller — nobody on the venue Wi-Fi can touch your show uninvited.

Addressing

Every tunable parameter has a stable address:

Don't guess IDs: ask the running app. GET /discover returns the live catalog — every unit and parameter the app accepts, with ranges and defaults. That reply is the source of truth.

Show safety

The panic command resets the pipeline to a clean passthrough — the picture, untouched. BLACKOUT and FREEZE remain available on-screen no matter what a controller is doing.

Stability

The wire format is versioned and stable: integrations built today keep working across updates. Unknown fields are ignored rather than rejected.

Building a deeper integration? The full wire contract — versioning, atomic batches, error semantics, plus a JSON schema for every command — is available on request: [email protected].

STAGEVIS · [email protected] · stagevis.app