MIDI Bridge

The MIDI Bridge is a standalone service. It receives MIDI messages from a connected MIDI device and forwards them to the Director.

Control Change, Note, and Pitch Wheel messages become variable updates. Use physical faders, knobs, buttons, and pitch wheels for real-time control of show parameters.

Opening the MIDI Bridge

Open the MIDI Bridge from the Nodes window (Window > Nodes). Click the MIDI Bridge button on a node that has MIDI input hardware or a virtual MIDI port.

The MIDI Bridge opens a configuration window. Select the device, set the Director target, and adjust settings.

Configuration

The configuration window has the following settings:

  • Device — Lists all MIDI input ports on the node. Select the device to receive messages from. The selection is saved and restored on restart.
  • Director IP — The IP address of the Director. Defaults to 127.0.0.1 for single-node setups. Change this when the Director runs on another node.
  • Normalize values — When enabled, MIDI values are scaled to 0.0–1.0. Control Change and Note values (0–127) are divided by 127. Pitch Wheel values (0–16383) are divided by 16383. When disabled, raw values are forwarded.
  • MSC Device ID — Filters incoming MSC messages. Only messages matching this Device ID, or the all-call ID 127, are processed.

Supported message types

The MIDI Bridge handles the following MIDI message types:

Control Change (CC) — The common type for faders and knobs. Each CC message uses the key midi.ch({channel}).cc({control}). For example, CC 7 on channel 0 produces midi.ch(0).cc(7).

Note On — Button or key presses. The velocity is the value. The key is midi.ch({channel}).note({note}).

Note Off — Button or key releases. The value is 0 for the same key as the Note On.

Pitch Wheel — The pitch bend wheel. A 14-bit value (0–16383) uses the key midi.ch({channel}).pitch.

MIDI Show Control (MSC) — SysEx messages are forwarded as show-control commands. See MIDI Show Control.

Other message types are not processed. The bridge handles only Note On, Note Off, Control Change, Pitch Wheel, and MSC SysEx. Program Change and Aftertouch are ignored.

How it works

When a MIDI message arrives, the bridge parses it into a key/value pair.

For Control Change, Note, and Pitch Wheel messages, the bridge posts the values to the Director's /v0/inputs endpoint. No interpolation time is set, so the Director applies its default 50 ms interpolation.

For MSC messages, the bridge posts the command to the Director's /v0/msc endpoint on port 3019.

Rapid changes on the same control are coalesced. Only the latest value per key is sent on each 10 ms flush. This avoids overwhelming the Director.

The window shows a Latest Value monitor with the most recent message. Click the key to copy it to the clipboard.

Hardware requirements

The node running the MIDI Bridge needs one of the following:

  • A MIDI input device connected (USB MIDI interface, controller, or keyboard).
  • A virtual MIDI port for receiving MIDI from software on the same node.

The bridge lists all MIDI input ports on the node. If no ports appear, check that your MIDI device drivers are installed.

Use cases

  • Fader-based control — Map physical faders to opacity, volume, or position variables.
  • Button-triggered scenes — Use note buttons to switch variable presets or trigger timeline actions.
  • Controller integration — Use MIDI controller knobs, faders, and jog wheels to control visual parameters.
  • Show control via MSC — Receive GO, STOP, and RESET commands from a show control system.