VERSION | Draft 1 |
DATE | 29 April 2005 |
CONTRIBUTORS | Michael Dewberry |
Sections of this document:
Text Header1 byte | Version | Should be equal to Version= line in text header |
1 byte | Type | 0: Patch, 1: Performance |
1 byte | 0x21 | Header byte |
2 bytes | Length | Size of object, in bytes (not including three header bytes) |
7 bytes | unknown | All zeros |
5 bits | unknown | |
5 bits | Voice count | |
14 bits | Height of FX/VA bar | |
3 bits | unknown | |
1 bit | Red cable visibility | 0: off, 1: on |
1 bit | Blue cable visibility | 0: off, 1: on |
1 bit | Yellow cable visibility | 0: off, 1: on |
1 bit | Orange cable visibility | 0: off, 1: on |
1 bit | Green cable visibility | 0: off, 1: on |
1 bit | Purple cable visibility | 0: off, 1: on |
1 bit | White cable visibility | 0: off, 1: on |
2 bits | Mono/Poly | 0: Poly, 1: Mono, 2: Legato |
1 byte | Active variation | 0-7 |
1 byte | Category | 0: No Cat, 1: Acoustic, 2: Sequencer, 3: Bass, 4: Classic, 5: Drum, 6: Fantasy, 7: FX, 8: Lead, 9: Organ, 10: Pad, 11: Piano, 12: Synth, 13: Audio In, 14: User 1, 15: User 2 |
... | Padding to <length> bytes |
1 byte | 0x4a | Header byte |
2 bytes | Length | Size of object, in bytes |
2 bits | Location | 0: FX Area, 1: Voice Area |
1 byte | Module count | Number of modules in this area |
Repeat <module count> times | ||
1 byte | Module Type | For type codes, see the Table of Modules. |
1 byte | Module Index | ID # of this module. Generally starts at 1 and increases as you add modules to the patch. Deleting and adding new modules will fill in holes in the sequence. This value is used to refer to the module in other tables (cables, module parameters, etc.) |
7 bits | Horizontal position | 0: leftmost column, 1: second column, etc. |
7 bits | Vertical position | 0: top of screen, 1: one step down, etc. |
1 byte | Color | TODO: document codes for the various colors available in the editor |
1 byte | unknown | |
4 bits | unknown | |
(end repeat) |
... | Padding to <length> bytes |
1 byte | 0x69 | Header byte |
2 bytes | Length | Size of object, in bytes |
... | <length> bytes of data | 80 00 00 20 00 00 |
1 byte | 0x52 | Header byte |
2 bytes | Length | Size of object, in bytes |
2 bits | Location | 0: FX Area, 1: Voice Area |
1 byte | Cable count | Number of cables in this area |
Repeat <cable count> times | ||
3 bits | Color | 0: Red, 1: Blue, 2: Yellow, 3: Orange, 4: Green, 5: Purple, 6: White |
1 byte | Module From | ID # of one module that this cable is attached to. Module IDs are given in the Module List object. |
6 bits | Jack From | 0-63. Will be either an input or an output jack depending on the Type parameter. The input and output jacks on each module are numbered separately. See the Table of Modules for input and output jack numbering. |
1 bit | Type | 0: Input to Input cable, 1: Output to Input cable |
1 byte | Module To | ID # of other module that this cable is attached to |
6 bits | Jack To | 0-63. Always refers to an input jack. |
(end repeat) |
... | Padding to <length> bytes |
1 byte | 0x4d | Header byte |
2 bytes | Length | Size of object, in bytes |
6 bytes | unknown | 81 c2 40 48 00 00 |
Repeat 9 times | ||
6 bytes | unknown | All zeros? |
1 byte | Morph Group 1 | 0: Group #, 1: Wheel, 2: Vel, 4: Keyb, 8: Aft.Tch, 16: Sust.Pd, 32: Ctrl.Pd, 64: P.Stick, 128+: --- |
1 byte | Morph Group 2 | |
1 byte | Morph Group 3 | |
1 byte | Morph Group 4 | |
1 byte | Morph Group 5 | |
1 byte | Morph Group 6 | |
1 byte | Morph Group 7 | |
1 byte | Morph Group 8 | |
1 byte | unknown | |
(end repeat) |
Repeat 9 times | ||
1 byte | Variation | 0-7: Variations 1-8, 8: Init Variation |
1 byte | Patch volume | |
6 bits | Active/Muted | 0: Muted, 1: Active |
(end repeat) |
15 bits | unknown |
Repeat 9 times | ||
1 byte | Variation | 0-7: Variations 1-8, 8: Init Variation |
7 bits | Glide | 0: Off, 1: Normal, 2: Auto |
7 bits | Glide time | |
(end repeat) |
15 bits | unknown |
Repeat 9 times | ||
1 byte | Variation | 0-7: Variations 1-8, 8: Init Variation |
7 bits | Bend | 0: Off, 1: On |
7 bits | Bend semitones | 0: 1 semitone, 1: 2 semitones... 23: 24 semitones |
(end repeat) |
15 bits | unknown |
Repeat 9 times | ||
1 byte | Variation | 0-7: Variations 1-8, 8: Init Variation |
7 bits | Vibrato | 0: None, 1: AfTouch, 2: Wheel |
7 bits | Vibrato cents | |
7 bits | Vibrato rate | |
(end repeat) |
15 bits | unknown |
Repeat 9 times | ||
1 byte | Variation | 0-7: Variations 1-8, 8: Init Variation |
7 bits | Arpeggiator | 0: Off, 1: On |
7 bits | Arpeggiator time | 0: 1/8, 1: 1/8T, 2: 1/16, 3: 1/16T |
7 bits | Arpeggiator type | 0: Up, 1: Down, 2: Up/Down, 3: Rnd |
7 bits | Arpeggiator octaves | |
(end repeat) |
15 bits | unknown |
Repeat 9 times | ||
1 byte | Variation | 0-7: Variations 1-8, 8: Init Variation |
7 bits | Octave shift | 0: -2, 1: -1, 2: 0, 3: 1, 4: 2 |
7 bits | Sustain pedal | 0: Off, 1: On |
(end repeat) |
... | Padding to <length> bytes |
1 byte | 0x4d | Header byte |
2 bytes | Length | Size of object, in bytes |
2 bits | Location | 0: FX Area, 1: Voice Area |
1 byte | Module count | Number of modules in this area |
1 byte | unknown |
Repeat <module count> times | |||||||||||||||
1 byte | Module Index | ID # of module, see the Module List object | |||||||||||||
1 byte | Parameter count | Number of parameters on this module | |||||||||||||
|
|||||||||||||||
(end repeat) |
... | Padding to <length> bytes |
1 byte | 0x65 | Header byte |
2 bytes | Length | Size of object, in bytes |
... | <length> bytes of data | Example: 09 80 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00 00 30 00 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 00 50 00 00 00 00 00 00 00 00 60 00 00 00 00 00 00 00 00 70 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 |
1 byte | 0x62 | Header byte |
2 bytes | Length | Size of object, in bytes |
2 bytes | unknown | 00 78 |
Repeat 120 times | |
2 bits | unknown |
1 byte | Module index |
2 bits | unknown |
7 bits | Knob index |
(end repeat) |
... | Padding to <length> bytes |
1 byte | 0x60 | Header byte |
2 bytes | Length | Size of object, in bytes |
7 bits | Assignment count | Number of MIDI assignments in the patch |
Repeat <Assignment count> times | ||
7 bits | MIDI CC# | |
2 bits | Type | 1: User, 2: System |
1 byte | Module Index | (purpose unknown if Type=System) |
7 bits | Knob Index | (purpose unknown if Type=System) |
(end repeat) |
... | Padding to <length> bytes |
1 byte | 0x5b | Header byte |
2 bytes | Length | Size of object, in bytes |
... | <length> bytes of data |
Example A: 80 40 54 00 42 02 11 dc 9b dd 5c 08 0c 40 42 02 51
dc 9b dd 5c 08 0c 80 42 02 91 dc 9b dd 5c 08 0c c0 42 02 d1 dc
9b dd 5c 08 0d 00 42 03 11 dc 9b dd 5c 08 0d 40 42 03 51 dc 9b
dd 5c 08 0d 80 42 03 91 dc 9b dd 5c 08 0d c0 42 03 d1 dc 9b dd
5c 08 0e 00
Example B: 40 00 Example C: 00 00 |
1 byte | 0x5a | Header byte |
2 bytes | Length | Size of object, in bytes |
2 bits | Location | 0: FX Area, 1: Voice Area |
1 byte | Module count | Number of modules in this area |
Repeat <Module count> times | ||
1 byte | Module Index | |
... | Module Name | Null-terminated string |
(end repeat) |
... | Padding to <length> bytes |
1 byte | 0x6f | Header byte |
2 bytes | Length | Size of object, in bytes |
... | <length> bytes of text | Not null terminated |
2 bytes | unknown |