TC-Helicon VoiceLive Sysex User Manual

Page 1
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
Page 2
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
Page 3
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
Page 4
* Custom Correction Scale:
A correction scale is represented internally as 12 x 8 bit values packed into 4 x 24 bit words (see the VoiceLive manual for a detailed description).
Example: Major Scale Chromatic semitones present: 0, 2, 4, 5, 7, 9, 11 (note count = 7)
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. The values are then grouped into 24-bit words.
(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 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 VoiceLive manual for a detailed description). Each value specifies the shift amount for its position in the chromatic scale. For example, a shift map causing an upward major 3rd 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 grouping them into 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 VoiceLive, there are 4 custom shift maps making for 4x16 bytes of SYSEX data.
Parameter data – 0x22:
Example of 14 bit 2’s complement calculations:
Page 4
TC-Helicon Vocal Technologies
www.tc-helicon.com
Page 5
The value 169 (decimal) = 1x128 + 41 is represented as bytes 0x01 (MSB) and 0x29 (LSB) The value –43 ~ 16384-43 (decimal) = 16341 = 127*128+85 is represented as bytes 0x7F (MSB) and 0x55 (LSB)
Example: Voice 1 bypass state (observable on edit page: CFG2)
Off - F0 00 01 38 00 4E 22 00 41 00 00 F7 On - F0 00 01 38 00 4E 22 00 41 00 01 F7
F0 = SYSEX start 00 = Byte 1 of 3 byte manufacturer’s ID for TC-Helicon 01 = Byte 2 of 3 byte manufacturer’s ID for TC-Helicon 38 = Byte 3 of 3 byte manufacturer’s ID for TC-Helicon 00 = SYSEX Device ID (defaolt value of 0) 4E = VoiceLive model ID 22 = VoiceLive Message Type Identifier (Parameter Data Identifier) 00 = Parameter Group ID 41 = Parameter ID for Voice #4 bypass state 00 = Data MSB (Most significant bit) 00 = Data LSB (Least signicant bit) (0 for voice off, 1 for voice on) F7 = SYSEX message end
Shift Map Data – 0x31:
(Note: Shift Map data is represented differently than when it is a part of a preset dump) <Data> is 48 bytes. Each byte represents the shift mapping for the respective note in the chromatic scale. A value of 0 is equivalent to – 24 semitones (down two octaves), 1A (26 in decimal) is equivalent to +2 semitones (up two semitones), 30 (48 in decimal) is equivalent to +24 semitones (up two octaves), and 36 (54 in decimal) is equivalent to N/C (no change). Consult the VoiceLive manual for a complete description of the Shift Map user parameter. If any entry in the shift map is beyond the limits, the message will be ignored. (This data differs from the when included in a preset dump because it’s not packed the same way and does not have the 0x32 offset applied. It’s easier to read and manipulate in this format). There are 4 voices * 12 semitone map values giving 48 total bytes.
Page 5
TC-Helicon Vocal Technologies
www.tc-helicon.com
Page 6
Song Data – 0x12:
<Data> is 142 bytes. The first byte specifies the song number (from 0 to 49). The next 16 bytes specify a 16 character song name. The next 120 bytes represent song data. Each step of the song is represented by a 24-bit word that is packed into 4 7-bit bytes as described in the data packing section. 30 steps multiplied by 4 bytes per step gives 120 bytes total. Then there is a 24 bit “direct-mode-steps” word that has been packed into four bytes. The final byte is a checksum that is calculated from the 120 bytes of song data.
24 bit Word Step Format aaaaaaaa.dddd.bbbb.eecccccc a=preset number, b=root, c=type (chord or scale number, see VoiceLive Manual for details), d=mode (scale=0, chord=1, shift=2, notes=3), e=status *
24 bit Direct-Mode-Steps Word aaaaaa.bbbbbb.cccccc.dddddd a=Direct Mode Step A, b=Direct Mode Step B, c=Direct Mode Step C, d=Direct Mode Step D
Setup Data – 0x13:
<Data> is 197 bytes. All 49 x 24-bit setup parameters are sent packed into 196 7-bit bytes as described in the data packing section. A checksum calculated from all 49 parameters makes up the last byte.
Page 6
TC-Helicon Vocal Technologies
www.tc-helicon.com
Page 7
Parameter Grouping and Listing
Numbers in this section are shown in decimal notation.
Group name Group ID
Preset Parameters 0 System Parameters 1
Preset Parameters (Group 0)
Parameter Name ID Min Max
voic level1 0 0 31 voic voicing1 1 0 ** voic gender1 2 -50 50 voic vibsty1 3 0 11
voic vibamt1 4 0 100 voic pan1 5 0 108 voic level2 6 0 31 voic voicing2 7 0 **
voic gender2 8 -50 50 voic vibsty2 9 0 11 voic vibamt2 10 0 100 voic pan2 11 0 108
voic level3 12 0 31 voic voicing3 13 0 ** voic gender3 14 -50 50 voic vibsty3 15 0 11
voic vibamt3 16 0 100 voic pan3 17 0 108 voic level4 18 0 31 voic voicing4 19 0 **
voic gender4 20 -50 50 voic vibsty4 21 0 11 voic vibamt4 22 0 100 voic pan4 23 0 108
harm mode 24 0 3 harm root 25 0 11 harm type 26 0 harm level 27 0 31
harm smooth 28 0 100 harm lead 29 0 1 harm style 30 0 7 harm sty amt 31 0 10
harm tuning 32 0 2 harm bend 33 0 1 harm porta 34 0 200
Page 7
TC-Helicon Vocal Technologies
www.tc-helicon.com
Page 8
harm latch 35 0 1 harm notesatt 36 0 100
harm notesrel 37 0 100 thic level 38 0 31 thic detune 39 0 25 thic spread 40 0 100
effe level 41 0 31 effe revdlymix 42 0 100 effe leadrevsend 43 -20 31 effe harmrevsend 44 -20 31
effe auxrevsend 45 -20 31 effe leaddlysend 46 -20 31 effe harmdlysend 47 -20 31 effe auxdlysend 48 -20 31
effe dly2revsend 49 -20 31 effe revtype 50 0 13 effe revpredlylev 51 0 100 effe revdecaytime 52 0 200
effe revcolorl 53 0 6 effe revcolorh 54 0 6 effe dlytype 55 0 2 effe dlytime 56 0 1800
effe dlytempo 57 -21 1 effe dlyfeedback 58 0 99 effe dlyhfdamp 59 10 23 cor root 60 0 11
cor scale 61 0 5 cor win 62 0 200 cor att 63 0 99 cor amt 64 0 99
voice1 bypass 65 0 1 voice2 bypass 66 0 1 voice3 bypass 67 0 1 voice4 bypass 68 0 1
harm bypass 69 0 1 thic bypass 70 0 1 effe bypass 71 0 1 cor bypass 72 0 1
Xped Library 73 0 16 Ubtn Library 74 0 13
** For Harmony Mode dependant parameter ranges, see the VoiceLive Manual for details.
Page 8
TC-Helicon Vocal Technologies
www.tc-helicon.com
Page 9
Setup Parameters (Group 1)
Parameter Name ID Min Max Notes
0
108
0
3
0
3
60
0
0
13
71
0
0
3
0
1
0
2
0
1
0
100
0
80
16
0
3
0
1
0
1
24
127
0
1
0
1
4
4
0
12
0
1
0
1
0
1
0
1800
0
15
0
0
1
0
1
0
24
0
3
0
22
13
12
0
22
13
12
0
22
12
12
0
16
0
31
leadpan lowcut
dynamics compthresh compratio gate
outrange output samplerate input
globaleff tuning midichan midifilt
ccctrl globalchord keysplit keydir
vibctrl notestrans bendrange notes4chan
delaycomp bypass_mode reserved reserved
taptempo xped_default ubtn_default dlead_onoff
dinst_onoff line_level eqroute lsfreq
lcboost hsfreq hcboost midfreq
mcboost eq_q lead_level
0 1
2 3 4 5
6 7 8 9
10 11 12 13
14 15 16 17
18 19 20 21
22 23 24 25
26 27 28 29
30 31 32 33
34 35 36 37
38 39 40
-
-
0
-
reserved
12
-
-
-
reserved
Page 9
TC-Helicon Vocal Technologies
www.tc-helicon.com
Page 10
harm_level
0
31
0
61
100
0
0
108
0
1
1
100
1
100
100
1
100
0
1
512
512
aux_level
out_level aux_pan reserved bypass_all
direct_a direct_b direct_c direct_d
reserved pedcalib pedmin pedmax
41 42
43 44 45 46
47 48 49 50
51 52 53 54
-
reserved
Configures the four direct mode presets “ ”
1
“ ” “ ”
reserved
Expression pedal calibration results
-
“ ”
-525 512 “ ”
Page 10
TC-Helicon Vocal Technologies
www.tc-helicon.com
Loading...