beautypg.com

TC-Helicon VoiceWorks Sysex Manual User Manual

Page 4

background image

Page

4

TC-Helicon Vocal Technologies

www.tc-helicon.com

12 x 8 bit values: 0, 2, 4, 5, 7, 9, 11, 0, 0, 0, 0, 0 (appended with zeros)

At this point an offset of 0x32 is applied to each value for internal purposes.

(0x32, 0x34, 0x36) (0x37, 0x39, 0x3B) (0x43, 0x00, 0x00) (0x00, 0x00, 0x00)

4 x 24 bit words:
word1: 00110010 00110100 00110110 = 0x323436
word2: 00110111 00111001 00111011 = 0x37393B
word3: 10000011 00000000 00000000 = 0x430000
word4: 00000000 00000000 00000000 = 0x000000

Finally, the SYSEX data is created by packing each word into 4 x 7 bit values as
described above in the data packing description. (This system is used so that in
the future software updates, it might be possible to specify scales with more than 16
pitch divisions per octave).



Custom Shift maps
:


Shift maps are represented internally as 4 sets of 12 values (see the VoiceWorks
manual for detailed description). Each value specifies the shift amount for its
position in the chromatic scale. For example, a shift map causing an upward major
3

rd

interval for all chromatic input notes would be 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3. A

unison map would be 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0. Shift entries can also be
negative for downward shifts.

For the purpose of storing and dumping, the 12 bytes are packed into 4 x 24-bit
values each holding 3 bytes. An offset of (0x32) is applied to each value before
packing them into the 4 x 24 bit words. The SYSEX data within a preset dump is
finally created by packing these 24-bit words into 7 bit bytes using the data packing
scheme. Since there are 4 voices on the VoiceWorks, there are 4 custom shift
maps making for 4x16 bytes of SYSEX data.

Checksum: The checksum is 1 byte holding the 7 least significant bits of the sum of

all bytes contributing to the checksum. In this case the contributing data

is the data sections marked by cs in the table above.

Example: The byte values 1,2,3,…,126 would result in the following

checksum. 1+2+3+…,+126 = 8001. To get the 7 least significant bits

divide by 128 and then multiply the remainder by 128. In this example

it would be 65.

Parameter data -

22

:

is 4 bytes. The first two bytes identify the parameter as described above under
Parameter Request. The last two bytes determine the value of the parameter represented as a
14 bit 2’s complement signed value. If a value exceeds the limits of the parameter the value will
be limited.

Examples:
The value 169 (decimal) = 1x128 + 41 would be represented as bytes 01 (MSB) and 29 (LSB)
The value –43 ~ 16384-43 (decimal) = 16341 = 127*128+85 would be bytes 7F (MSB) and 55
(LSB)