Data packing (24-bit words to 4x7-bit bytes), Message data format, Voiceworks data request messages – TC-Helicon VoiceWorks Sysex Manual User Manual
Page 2

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
:
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)