MIDI configuration
Installation#
Since version 1.7.0
, Open Stage Control comes bundled with built-in MIDI support if you're using the 64bit package for Linux, OSX or Windows.
Enabling MIDI support on other systems or when building Open Stage Control from sources requires additional softwares to be installed on the server's system:
- python 3
- python package python-rtmidi
Linux
- Install
python3
andpython3-pip
from your distribution's package repository - Install
python-rtmidi
from a terminal by executing this commandpython3 -m pip install python-rtmidi --upgrade
Mac
- Download and install Python 3 for Mac OS
- Open a terminal
- Install
pip
(package installer for python) by executing these commandscurl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python get-pip.py
- Install
python-rtmidi
by executing this commandpython -m pip install python-rtmidi --upgrade
Windows
- Download and install Python 3 for Windows
- make sure to check the option "Add Python 3.x to PATH"
- Open a terminal (Win+R)
- Install
pip
(package installer for python) by executing these commandscurl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python get-pip.py
- Install
python-rtmidi
by executing this commandpython -m pip install python-rtmidi --upgrade
Configuration#
The server's midi
option accepts the following parameters, separated by spaces.
If an option contains space characters, it must be enquoted.
list
Print the available MIDI ports to the console when the server starts. This action is also available in the launcher's menu.
device_name:input,output
Create a virtual MIDI device that will translate OSC messsages to MIDI messages
device_name
is an arbitrary identifier that can be used as a target by widgets (see Widget setup). It doesn't have to match any device's real name.input
/output
can be port numbers or strings (as reported by thelist
action). If a string is specified, the first port whose name contains the string will be used (comparison is case-insensitive).
sysex
Enable parsing of system exclusive messages (disabled by default).
mtc
Enable parsing of midi time code messages (disabled by default).
pc_offset
Send program changes with a -1
offset to match some software/hardware implementations
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.
path=/path/to/python
Indicates where to find python binary in case open stage control doesn't (Error: spawn python3 ENOENT
). Only use this if you know what you are doing.
Widget setup#
In order to send MIDI messages, a widget must have at least one target
formatted as follows:
midi:device_name
(where device_name
is one of the declared midi devices)
Its address
and preArgs
properties must be set according to Open Stage Control's midi messages specification.
Warning
Messages received from a MIDI port only affect widgets that send to this port.
Debug#
Enabling the server's debug
options will print some extra informations (sent/received midi messages, midi setup informations, etc)
Example configuration#
Setting the server's midi
option as follows:
sysex synth:1,2 daw:3,3
- enables sysex support (sysex messages will not be ignored)
- creates a midi device "synth" connected with input 1 and output 2
- creates a midi device "daw" connected with input 3 and output 3
If a widget has its target
set to midi:synth
, it will receive MIDI from port 1 and send MIDI to port 2.