Owner's manual
Page 2
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 -
45:
<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)
