- Is everything listed here?
- Do any of the messages have a checksum?
- What types of messages does it receive?
- How to change the messages to talk to Unitors that are chained together
- Scan for a Unitor
- Click Input Tip
- Click Input Ring
- Set Computer Mode
- Select a patch / Set patch mode
- Configure the 32 Patches
- Request patch
- RS/IO LED Brightness
- Global LED Brightness
- Configure Patch Mode
- Setup patch phange (Patch Mode)
- Request computer mode setup
- Request patch mode setup
- Request click tip and ring setup
- Computer Mode - Timing
-
Is everything listed here?No. This is just a subset of the messages I have cataloged. It takes some time to enter them here and format them.
Update: The data here is only valid for a single Unitor8 of a specific version. I don't recommend using this page for anything other that some minor understanding of the protocol involved.
back to index -
Do any of the messages have a checksum?
-
What types of messages does it receive?I have found two types of messages:
- A message to a device controlling Unitor features.
- These are messages are characterized by the first 5 bytes F0 00 20 31 64
- 00 20 31 is the midi manufacturer ID for Emagic
- 64 is most likely an identifier specifying that it is a Unitor 8
- These messages all deal with setting that a specific to the Unitor, such as LED brightness, port mapping, message filters
- A message to a device controlling timing features
- These messages are characterized by the first 4 bytes F0 00 00 33
- 00 00 33 is the midi manufacturer ID for S&S Research
- These messages all deal with the type and format of the clock that is generated
- A message to a device controlling Unitor features.
-
How to change the messages to talk to Unitors that are chained togetherF0 00 20 31 64 10 00 7F 00 F7
Right now this is just a guess, but I suspect that byte 7 is used to direct a message to Unitor further into the chain.
Since it seems to be zero in all of the messages so far and I am talking the first and only Unitor in my chain.
UPDATE: This is 100% correct
The format of this byte is 00bbb000B where Box Number (bbb) = 0 - 7
Some are in the format 0rbbbgggB ;b: Box number, r=1:ROM, r=0:EEPROM
;g: Device 000=Unitor8, 001=AMT8
back to index -
Scan for a UnitorF0 00 20 31 64 03 00 7F F7
F0 00 20 31 64 03 00 7F F7 sent
F0 00 20 31 64 04 00 40 F7 received
F0 00 20 31 64 0B 00 00 F7 sent
F0 00 20 31 64 7B 00 00 32 30 32 F7 received (32 30 32 is ASCII firmware version 202 = 2.0.2)
F0 00 20 31 64 0B 00 40 F7 sent
F0 00 20 31 64 7B 00 40 32 30 32 F7 received (32 30 32 is ASCII firmware version 202 = 2.0.2)
F0 00 20 31 64 0B 00 08 F7 sent (ping for chained unitor 1?)
F0 00 20 31 64 0B 00 10 F7 sent (ping for chained unitor 2?)
F0 00 20 31 64 0B 00 18 F7 sent (ping for chained unitor 3?)
F0 00 20 31 64 0B 00 20 F7 sent (ping for chained unitor 4?)
F0 00 20 31 64 0B 00 28 F7 sent (ping for chained unitor 5?)
F0 00 20 31 64 0B 00 30 F7 sent (ping for chained unitor 6?)
F0 00 20 31 64 0B 00 38 F7 sent (ping for chained unitor 7?)
F0 00 20 31 64 12 00 00 00 F7 sent (request patch 1)
F0 00 20 31 64 7A 00 00 00 00 0F 0E 0F 0D 0F 0B 0F 07 0E 0F 0D 0F 0B 0F 07 0F F7 received (this is patch 1)
F0 00 20 31 64 12 00 00 01 F7 sent (request patch 2)
F0 00 20 31 64 7A 00 00 01 00 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 F7 received (this is patch 2)
F0 00 20 31 64 12 00 00 02 F7 sent (request patch 3)
F0 00 20 31 64 7A 00 00 02 00 0F 0E 0F 0D 0F 0B 0F 07 0E 0F 0D 0F 0B 0F 07 0F F7 received (this is patch 3)
F0 00 20 31 64 12 00 00 03 F7 sent (request patch 4)
F0 00 20 31 64 7A 00 00 03 00 0F 0E 0F 0D 0F 0B 0F 07 0E 0F 0D 0F 0B 0F 07 0F F7 received (this is patch 4)
F0 00 20 31 64 12 00 00 04 F7 sent (request patch 5)
F0 00 20 31 64 7A 00 00 04 00 0F 0E 0F 0D 0F 0B 0F 07 0E 0F 0D 0F 0B 0F 07 0F F7 received (this is patch 5)
F0 00 20 31 64 12 00 00 05 F7 sent (request patch 6)
F0 00 20 31 64 7A 00 00 05 00 0F 0E 0F 0D 0F 0B 0F 07 0E 0F 0D 0F 0B 0F 07 0F F7 received (this is patch 6)
F0 00 20 31 64 12 00 00 06 F7 sent (request patch 7)
F0 00 20 31 64 7A 00 00 06 00 0F 0E 0F 0D 0F 0B 0F 07 0E 0F 0D 0F 0B 0F 07 0F F7 received (this is patch 7)
F0 00 20 31 64 12 00 00 07 F7
F0 00 20 31 64 7A 00 00 07 00 0F 0E 0F 0D 0F 0B 0F 07 0E 0F 0D 0F 0B 0F 07 0F F7 received (this is patch 8)
F0 00 20 31 64 12 00 00 08 F7
F0 00 20 31 64 7A 00 00 08 00 0F 0E 0F 0D 0F 0B 0F 07 0E 0F 0D 0F 0B 0F 07 0F F7 received (this is patch 9)
F0 00 20 31 64 12 00 00 09 F7
F0 00 20 31 64 7A 00 00 09 00 0F 0E 0F 0D 0F 0B 0F 07 0E 0F 0D 0F 0B 0F 07 0F F7 received (this is patch 10)
F0 00 20 31 64 12 00 00 0A F7
F0 00 20 31 64 7A 00 00 0A 00 0F 0E 0F 0D 0F 0B 0F 07 0E 0F 0D 0F 0B 0F 07 0F F7 received (this is patch 11)
F0 00 20 31 64 12 00 00 0B F7
F0 00 20 31 64 7A 00 00 0B 00 0F 0E 0F 0D 0F 0B 0F 07 0E 0F 0D 0F 0B 0F 07 0F F7 received (this is patch 12)
F0 00 20 31 64 12 00 00 0C F7
F0 00 20 31 64 7A 00 00 0C 00 0F 0E 0F 0D 0F 0B 0F 07 0E 0F 0D 0F 0B 0F 07 0F F7 received (this is patch 13)
F0 00 20 31 64 12 00 00 0D F7
F0 00 20 31 64 7A 00 00 0D 00 0F 0E 0F 0D 0F 0B 0F 07 0E 0F 0D 0F 0B 0F 07 0F F7 received (this is patch 14)
F0 00 20 31 64 12 00 00 0E F7
F0 00 20 31 64 7A 00 00 0E 00 0F 0E 0F 0D 0F 0B 0F 07 0E 0F 0D 0F 0B 0F 07 0F F7 received (this is patch 15)
F0 00 20 31 64 12 00 00 0F F7
F0 00 20 31 64 7A 00 00 0F 00 0F 0E 0F 0D 0F 0B 0F 07 0E 0F 0D 0F 0B 0F 07 0F F7 received (this is patch 16)
F0 00 20 31 64 12 00 00 10 F7
...
F0 00 20 31 64 12 00 00 1F F7
F0 00 20 31 64 7A 00 00 1F 00 0F 0D 0F 0D 0F 0B 0F 07 0E 0F 0D 0F 0B 0F 07 0F F7 received (this is patch 32)
F0 00 20 31 64 14 00 00 01 00 3F F7 - request sent computer mode
F0 00 20 31 64 79 00 00 01 00 3F 02 04 02 04 02 - received 140 bytes
04 02 04 02 04 02 04 02 04 02 04 02 04 02 04 02 - computer mode setup
04 02 04 02 04 02 04 02 04 02 04 00 00 0F 0F 02
00 00 01 00 0C 03 0F 00 0C 00 0E 00 03 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 06 00 05 00
08 00 01 04 08 06 0A 00 09 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 F7
F0 00 20 31 64 14 00 00 02 00 3F F7 - request sent patch mode setup
F0 00 20 31 64 79 00 00 02 00 3F 02 04 02 04 02 - received 140 bytes
04 02 04 02 04 02 04 02 04 02 04 02 04 02 04 02 - patch mode setup
04 02 04 02 04 02 04 02 04 02 04 00 08 0F 0F 02
00 00 01 00 0C 03 0F 00 0C 00 0E 00 03 04 00 00
00 00 00 00 00 00 00 00 00 00 00 00 03 00 05 00
08 00 01 04 08 06 0A 00 09 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 F7
F0 00 20 31 64 14 00 00 03 00 40 F7 - request tip & ring setup
F0 00 20 31 64 79 00 00 43 00 40 00 01 00 01 00 - received 142 bytes
00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 - Click Tip & Ring setup
00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00
00 00 00 00 00 00 00 00 00 00 00 00 00 F7
F0 00 20 31 64 14 00 00 00 00 1F F7
F0 00 20 31 64 79 00 00 00 00 1F 0C 08 01 04 0A - received 76 byts
0A 0F 05 04 07 0F 05 04 08 04 00 01 00 04 03 04
04 04 05 04 06 04 01 04 02 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 F7
F0 00 20 31 64 0F 00 7F F7 - sent and from what I can tell it never causes a response
back to index -
Click Input TipF0 00 20 31 64 0D 00 00 40 1E
00 1F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 switch phase 1
00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 switch phase 2
00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 switch phase 3
00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 switch phase 4
F7
75 ($4B) bytes
Blue - SysEx device ID
Orange - action?
Purple - 0x60 0x00 = Tip analog, second byte is the hold time 0x00 to 0x7F
- 0x40 0x1E = Tip footswitch
- 0x00 0x00 = Ring setup
Magenta - mode of phase + # of bytes (stored additively / OR'd together)
18 = Patch Up
10 = Patch Down
08 = Panic
00 = MIDI 0 # of bytes
01 = MIDI 1 # of bytes
02 = MIDI 2 # of bytes
03 = MIDI 3 # of bytes
04 = MIDI 4 # of bytes
05 = MIDI 5 # of bytes
06 = MIDI 6 # of bytes
07 = MIDI 7 # of bytes
Green - Midi message data
Each byte of midi data is stored as two bytes where;
Most significant nibble in the first byte shifted right by 4 bits
Least significant nibble in the second byte
Brown - unused
back to index -
Click Input RingF0 00 20 31 64 0D 00 00 00 00
00 1F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 switch phase 1
00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 switch phase 2
00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 switch phase 3
00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 switch phase 4
F7
Blue - SysEx device ID
Orange - action?
Purple - 0x60 0x00 = Tip analog, second byte is the hold time 0x00 to 0x7F
- 0x40 0x1E = Tip footswitch
- 0x00 0x00 = Ring setup
Magenta - mode of phase + # of bytes (stored additively / OR'd together)
18 = Patch Up
10 = Patch Down
08 = Panic
00 = MIDI 0 # of bytes
01 = MIDI 1 # of bytes
02 = MIDI 2 # of bytes
03 = MIDI 3 # of bytes
04 = MIDI 4 # of bytes
05 = MIDI 5 # of bytes
06 = MIDI 6 # of bytes
07 = MIDI 7 # of bytes
Green - Midi message data
Each byte of midi data is stored as two bytes where;
Most significant nibble in the first byte shifted right by 4 bits
Least significant nibble in the second byte
Brown - unused
back to index -
Set Computer Mode
-
Select a patch / Set patch modeF0 00 20 31 64 10 00 7F 00 F7
F0 00 20 31 64 10 00 7F 02 F7 Select Patch 3
F0 00 20 31 64 10 00 7F 1F F7 Select Patch 32
Blue - SysEx device ID
Orange - action?
Green - patch number
back to index -
Configure the 32 PatchesF0 00 20 31 64 11 00 00 00 00 0F 0E 0F 0D 0F 0B
0F 07 0E 0F 0D 0F 0B 0F 07 0F F7
NOTE: for some reason sound diver sends a patch select after every one of these configuration messages.
Patch 1 - Initialized
F0 00 20 31 64 11 00 00 00 00 0F 0E 0F 0D 0F 0B
0F 07 0E 0F 0D 0F 0B 0F 07 0F F7
Patch 1 - input 1 to all outputs - everything else off
F0 00 20 31 64 11 00 00 00 00 00 01 00 01 00 01
00 01 00 01 00 01 00 01 00 01 F7
F0 00 20 31 64 11 00 00 01 00 00 01 00 01 00 01
00 01 00 01 00 01 00 01 00 01 F7
Byte Function
9 Patch# 0x00-0x1F (0-32)
The byte pairs are output settings
Bytes Function
11 - 12 Output 1
13 - 14 Output 2
15 - 16 Output 3
17 - 18 Output 4
19 - 20 Output 5
21 - 22 Output 6
23 - 24 Output 7
25 - 26 Output 8
00 01 - Input from port 1
00 02 - Input from port 2
00 04 - Input from port 3
00 08 - Input from port 4
01 00 - Input from port 5
02 00 - Input from port 6
04 00 - Input from port 7
08 00 - Input from port 8
back to index -
Request patchF0 00 20 31 64 12 00 00 00 F7
Blue - patch number 0x00 to 0x1F
response:
F0 00 20 31 64 7A 00 00 00 00 0F 0E 0F 0D 0F 0B 0F 07 0E 0F 0D 0F 0B 0F 07 0F F7
Byte Function
9 Patch# 0x00-0x1F (0-32)
The byte pairs are output settings
Bytes Function
11 - 12 Output 1
13 - 14 Output 2
15 - 16 Output 3
17 - 18 Output 4
19 - 20 Output 5
21 - 22 Output 6
23 - 24 Output 7
25 - 26 Output 8
The following bits are OR'd together to connect an input to an output
00 01 - Input from port 1
00 02 - Input from port 2
00 04 - Input from port 3
00 08 - Input from port 4
01 00 - Input from port 5
02 00 - Input from port 6
04 00 - Input from port 7
08 00 - Input from port 8
Same format message as configuring a patch
back to index -
RS/IO LED BrightnessF0 00 20 31 64 13 00 00 00 08 00 00 00 F7
Blue - SysEx device ID
Orange - action?
Magenta - LED
07 00 IO LED
08 00 RS LED
Green - LED Brightness
00 00 OFF
00 01 Brightness 1
00 02 Brightness 2
00 04 Brightness 3
00 08 Brightness 4
01 00 Brightness 5
02 00 Brightness 6
04 00 Brightness 7
08 00 Brightness 8
back to index -
Global LED BrightnessF0 00 20 31 64 13 00 00 00 00 1F 0C 08 01 04 0A
0A 0F 05 04 07 0F 05 04 08 00 00 00 00 04 03 04
04 04 05 04 06 04 01 04 02 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 F7
F0 00 20 31 64 13 00 00 00 00 1F 0C 08 01 04 0A
0A 0F 05 04 07 0F 05 04 08 00 08 00 00 04 03 04
04 04 05 04 06 04 01 04 02 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 F7
F0 00 20 31 64 13 00 00 00 00 1F 0C 08 01 04 0A
0A 0F 05 04 07 0F 05 04 08 00 00 00 08 04 03 04
04 04 05 04 06 04 01 04 02 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 F7
Red - IO LED Brightness
Brown - RS LED Brightness
- LED Brightness
00 00 OFF
00 01 Brightness 1
00 02 Brightness 2
00 04 Brightness 3
00 08 Brightness 4
01 00 Brightness 5
02 00 Brightness 6
04 00 Brightness 7
08 00 Brightness 8
Both LED settings are sent at once with this message
back to index -
Configure Patch ModeF0 00 20 31 64 13 00 00 02 00 3F 02 04 02 04 02
04 02 04 02 04 02 04 02 04 02 04 02 04 02 04 02
04 02 04 02 04 02 04 02 04 02 04 00 00 0F 0F 02
05 00 01 00 0C 03 0F 00 0C 00 0E 00 03 04 00 00
00 00 00 00 00 00 00 00 00 00 00 00 03 00 05 00
08 00 01 04 08 06 0A 00 09 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 F7
I need to track down what situation send this full message. I suspect this is a Patches Mode dump, with msg filters etc.
back to index -
Setup patch phange (Patch Mode)F0 00 20 31 64 13 00 00 02 11 00 00 0F F7 - sent to setup patch change
Green - 0x00 = OFF 0x08 = ON
Orange - Input where the program change message will come in on 0x00 to 0x07
Magenta - Channel of program change message 0x00 to 0x0F
NOTE: a patch select message is always sent after the above patch change configuration message.
F0 00 20 31 64 10 00 7F 01 F7
back to index -
Request computer mode setupF0 00 20 31 64 14 00 00 01 00 3F F7 - request sent computer mode
F0 00 20 31 64 79 00 00 01 00 3F 02 04 02 04 02 - received 140 bytes
04 02 04 02 04 02 04 02 04 02 04 02 04 02 04 02 - computer mode setup
04 02 04 02 04 02 04 02 04 02 04 00 00 0F 0F 02
00 00 01 00 0C 03 0F 00 0C 00 0E 00 03 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 06 00 05 00
08 00 01 04 08 06 0A 00 09 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 F7
back to index -
Request patch mode setupF0 00 20 31 64 14 00 00 02 00 3F F7 - request sent patch mode setup
F0 00 20 31 64 79 00 00 02 00 3F 02 04 02 04 02 - received 140 bytes
04 02 04 02 04 02 04 02 04 02 04 02 04 02 04 02 - patch mode setup
04 02 04 02 04 02 04 02 04 02 04 00 08 0F 0F 02
00 00 01 00 0C 03 0F 00 0C 00 0E 00 03 04 00 00
00 00 00 00 00 00 00 00 00 00 00 00 03 00 05 00
08 00 01 04 08 06 0A 00 09 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 F7
back to index -
Request click tip and ring setupF0 00 20 31 64 14 00 00 03 00 40 F7 - request tip & ring setup
F0 00 20 31 64 79 00 00 43 00 40 00 01 00 01 00 - received 142 bytes
00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 - Click Tip & Ring setup
00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00
00 00 00 00 00 00 00 00 00 00 00 00 00 F7
Green - analog hold time (bits 7-1) + input type (bit 0)
stored as high nibble and low nibble across 2 bytes
The rest of the data conforms to the Click Input Tip and Click Input Ring switch phase midi data.
back to index -
Computer Mode - TimingF0 00 00 33 02 0D 00 27 01 03 00 3B 2D 00 17 3B 3B 17 01 00 10 F7
F0 00 00 33 02 0D 00 27 01 03 00 3B 2D 00 17 3B 3B 17 01 00 10 F7
F0 00 00 33 02 0D 00 25 01 03 00 3B 2D 00 17 3B 3B 17 01 00 10 F7 - Striping OFF
Blue - SysEx device ID : All timing messages have a device ID that corresponds to S&S Research
byte offset binary
8 00100101 Striping OFF
00100111 Striping ON
back to index