This small library to make working with MIDI Show Control messages easier.
PLEASE NOTE
Version 2 no longer includes a MIDI library. This library is simply a few methods for translating byte arrays to options objects and vice versa. You can use any MIDI Library which supports SysEx messages.
Installation
npm install midi-show-control
Usage
buildMessage()
Takes an object of human-readable values and converts to a MIDI SysEx message.
const msc = const midiOutput = output const message = mscmidiOutput
The sent MIDI message in the example above would be:
[
0xF0, // indicates sysex message
0x7F, // indicates sysex message
0x01, // deviceId
0x02, // defines message as msc
0x10, // commandFormat
0x01, // command
0x32, 0x35, 0x2E, 0x35, // cue - 25.5
0x00, // delimiter
0x33, 0x2E, 0x31, // cue list 3.1
0x00, // delimiter
0x31, 0x2E, 0x39, // cue path 1.9
0xF7
]
parseMessage()
parseMessage()
does the reverse of buildMessage()
. It takes an incoming MIDI message (a byte array) and returns an object of human-readable values
const msc = const midiInput = output midiInput
Message Options
These are the available properties on the message options object:
-
deviceId: REQUIRED - The id of the device that the message is intended for.
- integer between 0 (0x00) and 111 (0x6F) targets a specific device
- "G1" through "G15" will target a groups 1 through 15 respectively, and correspond to sending a midi device ID of 0x70 to 0x7E
- "all" will target all devices, and corresponds to a midi deviceId of 0x7F
-
commandFormat: REQUIRED - The command format of the message, eg "lighting.general" or "all". See below for available formats.
-
command: REQUIRED - The specific command to issue, eg. "go", "stop", or "resume". See below for available commands.
-
cue: optional - The cue to issue the command to.
-
cueList: optional - The cue list on which to find the cue.
-
cuePath: optional - From which of the available media the cueList should be pulled.
Available Command Formats
Currently, only the "general" subcategory of each category is implemented
hex | decimal | Command Format |
---|---|---|
0x01 |
1 |
lighting.general |
0x10 |
16 |
sound.general |
0x20 |
32 |
machinery.general |
0x30 |
48 |
video.general |
0x40 |
64 |
projection.general |
0x50 |
80 |
processControl.general |
0x60 |
96 |
pyro.general |
0x7f |
127 |
all |
Available Commands
hex | decimal | Command |
---|---|---|
0x01 |
1 |
go |
0x02 |
2 |
stop |
0x03 |
3 |
resume |
0x04 |
4 |
timedGo |
0x05 |
5 |
load |
0x06 |
6 |
set |
0x07 |
7 |
fire |
0x08 |
8 |
allOff |
0x09 |
9 |
restore |
0x0a |
10 |
reset |
0x0b |
11 |
goOf |