Global Timbre Library
The Global Timbre Library is an instrument bank format used by the Miles Sound System developed by John Miles.
The file defines a number of "timbres" (instruments) in the form of OPL register values. The instruments are indexed by MIDI bank and patch numbers, and are intended to be used for the playback of XMI Format MIDI tracks.
The file consists of two arrays:
- The header array
- The timbre (instrument) data array
The header array is a packed array of 6-octet header structs. There is one header per timbre (patch). Each header contains the following data:
|INT8||patch||MIDI Patch number|
|INT8||bank||MIDI Bank number|
|[[UINT32LE][offset]||offset||The offset of the data for this instrument, relative to the start of the file.|
The array is terminated by a 2-octet marker, 0xFFFF.
Immediately following the header array is the timbre data array. It has the same number of entries as the header array. Each timbre has the following structure (OPL2 format):
|Data type||Name||OPL base register||Description|
|UINT16LE||length||-||Struct length, including the length field itself. Value is always 14 for OPL2 instruments, and 25(?) for OPL3.|
|U(?)INT8||transpose||-||Precise meaning unknown|
|UINT8||mod_AVEKM||0x20||Modulator characteristic (Mult, KSR, EG, VIB and AM flags)|
|UINT8||mod_KSLTL||0x40||Modulator key scaling/output level|
|UINT8||mod_AD||0x60||Modulator attack/decay level|
|UINT8||mod_SR||0x80||Modulator sustain/release level|
|UINT8||mod_WS||0xE0||Modulator wave select|
|UINT8||car_AVEKM||0x23||Carrier characteristic (Mult, KSR, EG, VIB and AM flags)|
|UINT8||car_KSLTL||0x43||Carrier key scaling/output level|
|UINT8||car_AD||0x63||Carrier attack/decay level|
|UINT8||car_SR||0x83||Carrier sustain/release level|
|UINT8||car_WS||0xE4||Carrier wave select|
- Open Source release of Miles Sound System version 2 for DOS by John Miles. See XPLAY.C and YAMAHA.INC.