TC-Helicon VoiceWorks Sysex User Manual

TC-IVL Ventures Inc.
TC-Helicon VoiceWorks MIDI System Exclusive
Note: All numerical values will appear in HEXADECIMAL notation unless otherwise indicated:
0xF0 = F0h = F0 – The latter value is the expression of the hex numeral used.
Decimal equivalents will appear in brackets after their hex counterparts:
0xF0 = F0h = F0 = (240) 0x64 = 64h = 64 = (100)
General message format:
F0 MIDI System exclusive message start 00 3 byte manufactors ID for TC-Helicon 01 ... 38 ... <Device ID> System exclusive device ID (user parameter) 4C VoiceWorks model ID <Message ID> VoiceWorks message type identifier (see table below) <Data> Data – depends on message type (see format description.
below) … … F7 MIDI System exclusive message terminator
Preset numbers
Preset numbers are represented in the SysEx messages as 2 bytes (14 bit value). The first byte is the 7 least significant bits and the second is the 7 most significant bits. The preset numbers are mapped as follows:
Preset number zero is the currently edited preset.
Examples:
Factory preset number 67 (decimal) would be translated into bytes 43 (67 in decimal - LSB) and 00 (MSB). User preset number 48 (decimal) would be translated into number 148 (decimal) = 1x128+20 (decimal) and would thus be represented as bytes 14 (LSB - 20 in decimal) and 01 (MSB).
Page 1
TC-Helicon Vocal Technologies
www.tc-helicon.com
Data Packing (24-bit words to 4x7-bit bytes)
The idea of packing data is to take a 24-bit value (the normal width of parameters in VoiceWorks) and represent it as 4 bytes of 7 bits each. This is done because SYSEX data can only be 7 bits in size. The first three bytes hold (in sequence) bits 0-6, 7-13 and 14-20 of the 24-bit value. The fourth byte hold bits 21-23 of the 24-bit value as LSB’s with zeros in the remaining bits.
Example:
If the value of a 24 bit parameter is 0x266, it would look like “66 04 00 00” in a SYSEX package.
This is decoded as follows:
SYSEX Data:
Byte1 66 hex = X1100110 (abcdefg) Byte2 04 hex = X0000100 (hijklmn) Byte3 0 hex = X0000000 (opqrstu) Byte4 0 hex = X0000000 (****vwx)
Final 24Bit Value:
vwxopqrs tuhijklm nabcdefg Total = 00000000 00000010 01100110 = 0x0 0x2 0x66 = 0x000266
Message data format
The format of the data used/needed in the different SysEx messages depends on the type of message. Below are descriptions for each message type explaining data formatting.
SysEx message type Identifier
VoiceWorks Request Preset 45 VoiceWorks Request Parameter 47 VoiceWorks Preset Data 20 VoiceWorks Parameter Data 22 VoiceWorks Request Shift Map 51 VoiceWorks Shift Map Data 31 VoiceWorks Request Song 14 VoiceWorks Request Setup 15 VoiceWorks Song Data 12 VoiceWorks Setup Data 13 VoiceWorks Preset Received Notification 34
VoiceWorks Data Request messages
Preset Request -
<Data> is 2 bytes representing the number of the preset requested. See above for description of preset number representation. The data transmitted by VoiceWorks upon receiving this message will be formatted as a Preset Data message (see below for complete description)
45:
Page 2
TC-Helicon Vocal Technologies
www.tc-helicon.com
Parameter Request -
<Data> is 2 bytes. The first byte defines the group to which the parameter belongs and the second byte identifies the parameter within the group. See below for a complete listing of parameters and grouping. The data transmitted by VoiceWorks upon receiving this message will be formatted as a Param Data message (see below for complete description)
Shift Map Request - 51:
<Data> is 1 byte. The value of this byte is ignored. The data transmitted by VoiceWorks upon receiving this message will be formatted as a Shift Map Data message (see below for complete description)
Song Request - 14:
<Data> is 1 byte. The byte specifies the song number (0 is the first song). The data transmitted by VoiceWorks upon receiving this message will be formatted as a Song Data message (see below for complete description)
Setup Map Request - 15:
<Data> is 1 byte. The value of this byte is ignored. The data transmitted by VoiceWorks upon receiving this message will be formatted as a Setup Data message (see below for complete description)
47:
VoiceWorks Data messages
Preset Receive Notification -
<Data> is 1 byte. 1 means success, 0 means fail.
Sometimes VoiceWorks needs to reorganize its internal preset bank after receiving a SYSEX preset. While this is happening, VoiceWorks has to ignore incoming preset SYSEX packages. If this happens while you are dumping several presets to the unit, you can lose a preset without realizing it. This situation can be avoided by waiting for VoiceWorks to send this message indicating that the preset was successfully stored.
Preset Data -
<Data> is 388 bytes organized as follows (in sequence): 2 bytes Preset number (see above) 12 bytes Preset name (as ASCII characters) 1 byte Number of notes in custom scale 16 bytes (cs) Custom correction scale (uses data packing) 64 bytes (cs) Custom shift map for each voice (uses data packing) 292 bytes (cs) 73x24-bit values for each parameter in the preset (uses data packing) 1 byte Checksum of the data marked cs (see below for description)
Notes:
Custom Correction Scale:
20:
A correction scale is represented internally as 12 x 8 bit values packed into 4 x 24 bit words (see the VoiceWorks manual for a detailed description).
Example: Major Scale
Chromatic semitones present: 0, 2, 4, 5, 7, 9, 11 (note count = 7)
34:
Page 3
TC-Helicon Vocal Technologies
www.tc-helicon.com
Loading...
+ 5 hidden pages