MIDI support requires additional software 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 compilation that cannot be automated within Open Stage Control's current packaging workflow. Using a python addon seems to be the best compromise so far : the core app remains easy to build, and the extra dependency is easy to install.
When running the app, the
-m / --midi switch must be set and accepts the following options, separated by spaces.
If an option contains space characters, it must be enquoted.
Print the available MIDI ports to the console when the server starts. This action is also available in the launcher's menu.
Create a virtual MIDI device that will translate OSC messsages to MIDI messages
device_nameis an arbitrary identifier that can be used as a target by widgets (see Widget setup)
outputcan be port numbers or strings (as reported by the
listaction). If a string is specified, the first port whose name contains the string will be used (comparison is case-insensitive).
Enable parsing of system exclusive messages (disabled by default).
Enable parsing of midi time code messages (disabled by default). These will be received as raw sysex messages.
Send program changes with a
-1 offset to match some software/hardware implementations
Indicates where to find python binary in case open stage control doesn't (
Error: spawn python3 ENOENT)
device_name:virtual (Linux / Mac only): creates a virtual midi device with one input port and one output port
jack (Linux only): use JACK MIDI instead of ALSA.
python-rtmidi must be compiled with jack support for this to work.
In order to send MIDI messages, a widget must have at least one
target formatted as follows:
device_name is one of the declared midi devices)
Messages received from a MIDI port only affect widgets that send to this port.
Enabling the server's
debug options will print some extra informations (sent/received midi messages, midi setup informations, etc)