TC-Helicon VoiceLive Sysex User Manual

TC-IVL
VoiceLive MIDI System Exclusive Version 1.2
Hexadecimal Notation
Example: Hexadecimal 0x123 = Decimal 291 Decimal 123 = Hexadecimal 0x7B
VoiceLive SYSEX message format:
0xF0 MIDI System exclusive message start 0x00 3 byte manufactors ID for TC-Helicon 0x01 ... 0x38 ... <Device ID> System exclusive device ID (user parameter) 0x4E VoiceLive model ID <Message ID> VoiceLive message type identifier <Data> Start of message data ... Variable number of data bytes based on message type 0xF7 MIDI System exclusive message terminator
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 VoiceLive) 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 with zeros in the remaining bits.
For example, If the value of a 24-bit parameter is 614 (0x266), it would look like “0x66 0x04 0x00 0x00” in a SYSEX message.
Byte1 0x66 = binary X1100110 (abcdefg) Byte2 0x04 = binary X0000100 (hijklmn) Byte3 0x00 = binary X0000000 (opqrstu) Byte4 0x00 = binary X0000000 (****vwx)
Final 24-Bit Value: vwxopqrs tuhijklm nabcdefg Total = 00000000 00000010 01100110 = 0x0 0x2 0x66 = 0x000266
Page 1
TC-Helicon Vocal Technologies
www.tc-helicon.com
Preset numbers
Preset numbers are represented in SYSEX messages as 2 bytes (combined 14 bit value). The first byte is the 7 least significant bits and the second is the 7 most significant bits. Preset numbers are mapped as follows:
Checksum
Checksums are 1 byte holding the 7 least significant bits of the sum of all bytes contributing to the checksum.
Message data format
The format of data for each of the different SYSEX messages depends on the type of message. Below are descriptions for each message type explaining their specific data formatting requirements.
SYSEX message type Identifier
Request Preset 0x45 (69) Request Parameter 0x47 (71) Request Shift Map 0x51 (81) Request Song 0x14 (20) Request Setup 0x15 (21)
Preset Received Notification 0x34 (52) Preset Data 0x20 (32) Parameter Data 0x22 (34) Shift Map Data 0x31 (49) Song Data 0x12 (18) Setup Data 0x13 (19)
VoiceLive Data Request messages
Request Preset – 0x45:
<Data> is 2 bytes representing the number of the preset requested. See above for a description of preset number representation. The data transmitted by VoiceLive upon receiving this message will be formatted as a Preset Data message.
Request Paramter – 0x47:
<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 the Parameter Grouping and Listing table for a complete list of all groups and parameters. The data transmitted by VoiceLive
Page 2
TC-Helicon Vocal Technologies
www.tc-helicon.com
upon receiving this message will be formatted as a Parameter Data message (see below for complete description).
Request Shift Map – 0x51:
<Data> is 1 byte. The value of this byte is ignored. The data transmitted by VoiceLive upon receiving this message will be formatted as a Shift Map Data message.
Request Song Request – 0x14:
<Data> is 1 byte. It specifies the song number (1 is the first song, 0 is the current song). The data transmitted by VoiceLive upon receiving this message will be formatted as a Song Data message.
Request Setup Data – 0x15:
<Data> is 1 byte. The value of this byte is ignored. The data transmitted by VoiceLive upon receiving this message will be formatted as a Setup Data message.
VoiceLive Data messages
Preset/Song Receive Notification – 0x34:
<Data> is 1 byte. Sometimes VoiceLive needs to reorganize its internal preset bank after receiving a SYSEX preset. While this is happening, VoiceLive has to ignore incoming preset SYSEX packages. If this happens while you are dumping several presets to the unit, you might lose a preset in transmission without realizing it. This situation can be avoided by waiting for VoiceLive to send this message indicating that the preset was successfully stored before attempting to send the next.
Alternatively, if you plan to dump several or all 99 presets to the unit and do not have the ability to wait for this message between sends, simply clear the user preset bank (restore all factory presets) before initiating the batch send. Doing so will save VoiceLive from having to reorganize midstream, allowing for all 99 presets to be dumped successfully.
Preset Data – 0x20:
Note: VoiceLive is capable of importing VoiceWorks presets automatically. Note that VoiceLive presets are not backward compatible with VoiceWorks.
<Data> is 396 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 64 bytes (cs) ** Custom shift map for each voice 300 bytes(cs) 75x24-bit packed parameter values 1 byte Checksum
Note: The checksum is calculated only on the data marked with (cs).
Page 3
TC-Helicon Vocal Technologies
www.tc-helicon.com
Loading...
+ 7 hidden pages