Sending / Receiving MIDI

Open Stage Control can send and receive midi messages using pyo / portmidi.


MIDI support requires additionnal softwares to be installed on the server's system:

Why an additionnal dependency ?

Providing cross-platform midi support is not trivial, as it requires os-specific compilations that cannot be automated within Open Stage Control's current packaging workflow. Using a python addon seems the best compromise so far : the core app remains easy to build, and the extra dependency is easy to install.

Note: pyo doesn't support Windows 64bit.


When running the app, the -m / -midi switch must be set; it accepts the following arguments (separated by spaces):

Linux only

Multiple devices can be declared (multiple virtual devices as well).

Widget settings

In order to send midi messages, a widget must have at least one target formatted as follow;

midi:device_name (where device_name is one of the declared midi devices (see previous section))

Supported commands

Here are the supported commands. One must use the preArgs option to make sure the correct number of arguments is sent.

address args note
/note channel note velocity (if velocity is 0, a note off will be sent)
/control channel cc value
/program channel program
/pitch channel LSB MSB