OTS Editor software program.
In a hexadecimal editor the beginning of the OTS section might look like this:
The OTS chunk identifier "OTSc" and then 4 bytes giving the length of the entire section, not including the 4 identifier bytes and the 4 length bytes.
Next comes a "MTrk" identifier. This is a MIDI track identifier; and later on will follow 3 more "MTrk" identifiers.
The first MIDI Track holds the "OTS 1" information; the second MIDI Track holds the "OTS 2" information; and so on.
This means that the entire OTS section is so to speak a "4 Track MIDI File with an abnormal header".
In the MIDI Tracks we will find some "normal" MIDI events and a lot of "normal" SysEx messages defining the voices in the OTS set-up.
These "normalities" are found in the keyboard data sheet. SysEx of this form: "F0 43 10 4C xx xx xx yy F7" are normal.
After stripping a OTS section for these "normalities" there will remain some OTS specific data, which all are SysEx messages.
These messages have this form: "F0 43 73 01 5z xx xx xx yy .. yy F7", where
• "z" is 0 or 1
• "xx xx xx" is address. The second xx block is 00 -> 03 = channel (1 -> 4) - Right 1; Right 2; Right 3 and Left.
• "yy .. yy" are actual data value - one or more bytes
Section | SysEx message | Data Byte Value(s) | Function |
Header | F0 43 73 01 50 05 01 01 2A F7 | ? | |
F0 43 73 01 50 05 01 02 32 F7 | ? | ||
Part Right 1 | F0 43 73 01 50 08 00 00 yy F7 | 00 = 0 or 7F = 127 | part off/on |
F0 43 73 01 50 08 00 04 yy F7 | 00 = 0 to 7F = 127 | voice set volume *) | |
F0 43 73 01 50 08 00 03 yy F7 | See table below | Octave Set *) | |
Part Right 2 | F0 43 73 01 50 08 01 00 yy F7 | 00 = 0 or 7F = 127 | part off/on |
F0 43 73 01 50 08 01 04 yy F7 | 00 = 0 to 7F = 127 | voice set volume *) | |
F0 43 73 01 50 08 01 03 yy F7 | See table below | Octave set *) | |
Part Right 3 | F0 43 73 01 50 08 02 00 yy F7 | 00 = 0 or 7F = 127 | part off/on |
F0 43 73 01 50 08 02 04 yy F7 | 00 = 0 to 7F = 127 | voice set volume *) | |
F0 43 73 01 50 08 02 03 yy F7 | See table below | Octave set *) | |
Part Left | F0 43 73 01 50 08 03 00 yy F7 | 00 = 0 or 7F = 127 | part off/on |
F0 43 73 01 50 08 03 04 yy F7 | 00 = 0 to 7F = 127 | voice set volume *) | |
F0 43 73 01 50 08 03 03 yy F7 | See table below | Octave set *) | |
Part Right 1 | F0 43 73 01 51 08 00 11 yy yy yy F7 | Check Manual | DSP Variation Parameter *) |
F0 43 73 01 50 08 00 08 yy F7 | 00 = 0 or 7F = 127 | DSP off/on | |
F0 43 73 01 50 08 00 01 yy F7 | 00 = 0 or 7F = 127 | DSP Variation off/on *) | |
Part Right 2 | F0 43 73 01 51 08 01 11 yy yy yy F7 | Check Manual | DSP Variation Parameter *) |
F0 43 73 01 50 08 01 08 yy F7 | 00 = 0 or 7F = 127 | DSP off/on | |
F0 43 73 01 50 08 01 01 yy F7 | 00 = 0 or 7F = 127 | DSP Variation off/on *) | |
Part Right 3 | F0 43 73 01 51 08 02 11 yy yy yy F7 | Check Manual | DSP Variation Parameter *) |
F0 43 73 01 50 08 02 08 yy F7 | 00 = 0 or 7F = 127 | DSP off/on | |
F0 43 73 01 50 08 02 01 yy F7 | 00 = 0 or 7F = 127 | DSP Variation off/on *) | |
Part Left | F0 43 73 01 51 08 03 11 yy yy yy F7 | Check Manual | DSP Variation Parameter *) |
F0 43 73 01 50 08 03 08 yy F7 | 00 = 0 or 7F = 127 | DSP off/on | |
F0 43 73 01 50 08 03 01 yy F7 | 00 = 0 or 7F = 127 | DSP Variation off/on *) | |
F0 43 73 01 50 08 03 02 yy F7 | 00 = 0 or 7F = 127 | Left Hold off/on *) | |
Harmony | F0 43 73 01 50 04 00 00 yy F7 | 00 = 0 or F7 = 127 | off/on |
F0 43 73 01 51 04 00 00 yy yy yy F7 | See table below | type + speed | |
F0 43 73 01 50 04 00 05 yy F7 | 00 = 0 to 7F = 127 | volume | |
F0 43 73 01 50 04 00 02 yy F7 | See table below | assign | |
F0 43 73 01 50 04 00 03 yy F7 | 00 = 0 or FF = 255 | ch note off/on | |
F0 43 73 01 50 04 00 04 yy F7 | 00 = 0 to 7F = 127 | touch limit | |
Multi Pad | F0 43 73 01 51 07 00 00 yy yy yy F7 | Find Values | number |
F0 43 73 01 50 07 00 00 yy F7 | 00 = 0 to 7F = 127 | volume | |
Manufacturer Specific message (format unknown) | 260 Bytes | ? |
Octave Value | Harmony Data | ||
3E = -2
3F = -1 40 = 0 41 = 1 42 = 2 |
Types
Standard Duet = 0 Standard Trio = 1 Full Chord = 2 Rock Duet = 0 + 256 Country Duet = 0 + 256 * 2 Country Trio =1 + 256 Block = 3 4-Way Close1 = 4 4-Way Close2 = 4 + 256 4-Way Open = 5 1+5 = 6 Octave = 7 Strum = 8 Multi Assign = 9 Echo = 10 Tremolo = 11 Trill = 12 |
Speed Values
Echo type: 4, 6, 8 and 12 Tremolo and Trill types: 8, 12, 16 and 32 Type + Speed Data Bytes Byte 1 = always 2 Echo, Tremolo and Trill types: Byte 2 = type Byte 3 = speed index (0 to 3) Other Harmony types: Byte 2 = type%256 Byte 3 = type/256 If byte 2 and byte 3 = 0A 00 Type = Echo Speed = 4 (index 0) |
Assign
Auto = 16 Multi = 17 R1 = 0 R2 = 1 R3 = 2 |
In PSR A3000; PSR S970; PSR S770 and PSR S670 there has been added 166 additional Harmony/Arpeggio types.
These has been added to the OTS Editor software from version 2.37.