You can control the audio, serial and MIDI matrix using standard MIDI commands. You can also switch the GPOs via MIDI. This way you can control the M.1k2 from consoles or MIDI controllers easily.
The MIDI daemon is always active and listening on the destination labeled Controller in the MIDI matrix. To use the MIDI daemon, route the source of your MIDI commands to this sink.
HEX | MIDI Command | Function |
---|---|---|
C0 | Program Change | Load system snapshot |
B0, B1 | Controller | Set audio channel routing |
B2 | Controller | Set port routing |
B3 | Controller | Set MIDI routing |
B4 | Controller | Set serial routing |
B5 | Controller | Switch GPOs |
B6, B7 | Controller | Port and channel gains |
B8 | Controller | Run script |
Usage: C0 <system snapshot ID>
The program change command is followed by one byte, 0..127, indicating the system snapshot ID. After receiving the command, the M.1k2 will load the corresponding system snapshot (if it is configured in the system snapshot table), only restoring what is allowed under the current permission set active for the MIDI plugin.
Controlling the audio matrix is a bit more complex. First, you set the source channel to route using B0, followed by the source channel. Then you can set one or more destinations using this source channel with B1, followed by one destination channel. If you want to route one source channel to multiple destinations, this saves you from repeating the source channel.
Usage: B0 <source port> <source channel> B1 <dest port> <dest channel> [<dest port> <dest channel>..]
Important: Always set the source channel first. Any destination channel command will use the last source channel command received.
MADI port | Channel | MIDI values |
---|---|---|
1 | 1 | 00 00 |
1 | 2 | 00 01 |
.. | ||
1 | 63 | 00 3E |
1 | 64 | 00 3F |
.. | ||
16 | 1 | 0F 00 |
16 | 2 | 0F 01 |
.. | ||
16 | 63 | 0F 3E |
16 | 64 | 0F 3F |
N/C | N/C | 7F XX |
Note: The N/C value makes sense for input channels only, of course.
Just select the port and channel and read out the MIDI command.
MADI port: | |
Channel: | |
Source channel CMD: | |
Destination channel CMD: |
To route complete ports 1:1 onto another, use the B2 command (MIDI controller on channel 3). The two bytes that follow are source port and destination port:
Usage: B2 <source port> <dest port>
MADI port | MIDI values |
---|---|
1 | 00 |
2 | 01 |
.. | |
15 | 0E |
16 | 0F |
N/C | 7F |
Note: The N/C value makes sense for input ports only, of course.
Controller messages on MIDI channel 4 control the MIDI routing matrix. The controller command B3 is followed by two bytes, the first identifies the source port and the second the destination.
Usage: B3 <source> <dest>
MIDI Port | MIDI values |
---|---|
MADI port 1 | 00 |
MADI port 2 | 01 |
.. | |
MADI port 15 | 0E |
MADI port 16 | 0F |
Front MIDI | 10 |
Controller | 11 |
N/C | 7F |
Controller messages on MIDI channel 4 control the MIDI routing matrix. The controller command B3 is followed by two bytes, the first identifies the source port and the second the destination.
Usage: B4 <source> <dest>
MIDI Port | MIDI values |
---|---|
MADI port 1 | 00 |
MADI port 2 | 01 |
.. | |
MADI port 15 | 0E |
MADI port 16 | 0F |
Front RS232 @ 9.6k | 10 |
Front RS232 @ 19.2k | 11 |
Front RS232 @ 38.4k | 12 |
Front RS232 @ 115.2k | 13 |
Front RS422 @ 9.6k | 14 |
Front RS422 @ 19.2k | 15 |
Front RS422 @ 38.4k | 16 |
Front RS422 @ 115.2k | 17 |
Front RS485 @ 9.6k | 18 |
Front RS485 @ 19.2k | 19 |
Front RS485 @ 38.4k | 1A |
Front RS485 @ 115.2k | 1B |
Front USB @ 9.6k | 1C |
Front USB @ 19.2k | 1D |
Front USB @ 38.4k | 1E |
Front USB @ 115.2k | 1F |
Controller @ 9.6k | 20 |
Controller @ 19.2k | 21 |
Controller @ 38.4k | 22 |
Controller @ 115.2k | 23 |
N/C | 7F |
Note: Front RS422 and RS485 use the same port, the operating mode is determined by the port value you choose.
You can control the 4 GPOs of the M.1k2 with controller values on channel 6. The first controller value byte is the ID of the GPO (0..3 for GPO 1..4), the second byte is the value to be set (0 for off, >0 for on).
Usage: B5 <GPO ID> <0/1>
Port and channels gains are set using the controller command on channels 6 and 7. The command on MIDI channel 6 sets the gain to use, while the command on MIDI channel 7 lists the ports/channels where the gain should be applied. The order has always to be B6, followed by one or more B7 commands.
Usage: B6 <gain MSB> <gain LSB> B7 <port> <channel> [B7 <port> <channel>..]
The M.1k2 offers a gain range from -60..+30dB. For the B7 command, we map this range to positive values and multiply it by 10 to give you .1 dB steps. In short, the value you submit becomes 0..900 by adding 60 to the decibel value and multiplying by 10: value = (gain+60)*10.
Type in either the gain in dB or the calculated gain value and read out the converted value.
Gain: | dB |
Value: | |
MIDI command: | B6 04 58 |
Ports and channels are identified the same way as we do with the single channel routing. In addition to that, to address the port gain we use the channel value 0x7F.
System scripts have a unique ID 1...64 If you have a defined system scripts, you can reference their ID in the second byte of the MIDI controller B8. The first parameter byte has to be 00 for the moment.
The scripts will run asynchronously. You can see failure/success and optional log output in the system script pane in the 'My Account' page.
All MIDI commands are executed with the permissions for the plugin 'midi'. If you want to restrict the execution of MIDI commands to parts of the M.1k2, please choose a fitting permission class for the 'midi' plugin in the permission configuration page - or create a new permission class to suit your needs.
If you have questions, found a bug or need new features, please do not hesitate to contact us: support@directout.eu.