GUS/patch format
Byte Order: Little-endian
Offset Length Contents
0 22 bytes "GF1PATCH110\0ID#000002\0" or
"GF1PATCH100\0ID#000002\0"
22 60 bytes Discription (in ASCII)
82 1 byte Number of instruments (To some patch makers, 0 means 1)
83 1 byte Voices (Always 14?)
84 1 byte Channels
85 2 bytes Waveforms
87 2 bytes Master volume [0..127]
89 4 bytes Data size
93 36 bytes Reserved
129 2 bytes Instrument ID [0..0xFFFF]
131 16 bytes Instrument name (in ASCII)
147 4 bytes Instrument size
151 1 byte Layers
152 40 bytes Reserved
192 1 byte Layer duplicate
193 1 byte Layer
194 4 bytes Layer size
198 1 byte Number of samples
199 40 bytes Reserved
[ // Samples
7 bytes Wave name (in ASCII)
1 byte Fractions
bit 0..3: Loop offset start fractions [0/16 .. 15/16]
bit 4..7: Loop offset end fractions [0/16 .. 15/16]
4 bytes Sample data size (s)
4 bytes Loop start
4 bytes Loop end
2 bytes Sample rate
4 bytes Low frequency
4 bytes High frequency
4 bytes Root frequency
2 bytes Tune (Always 1, not used anymore)
1 byte Panning [0:left .. 15:right]
3 bytes Envelope rates (on) (stage 0,1,2)
3 bytes Envelope rates (off) (stage 3,4,5)
3 bytes Envelope offsets (on) (stage 0,1,2)
3 bytes Envelope offsets (off)(stage 3,4,5)
stage 0: Attack
1: Decay
2: Sustain
3,4,5: Release
1 byte Tremolo sweep
1 byte Tremolo rate
1 byte Tremolo depth
1 byte Vibrato sweep
1 byte Vibrato rate
1 byte Vibrato depth
1 byte Sampling modes
bit 0: 16-bit (versus 8-bit)
bit 1: Unsigned (versus signed)
bit 2: Looping
bit 3: Pingpong
bit 4: Reverse
bit 5: Sustein
bit 6: Envelope
bit 7: Clamped release (6th point of envelope)
2 bytes Scale frequency
2 bytes Scale factor [0..2048] (1024 is normal)
36 bytes Reserved
(s)bytes Sample data
]*
Appendix:
Envelope rate table