----- Extreme's Tracker. AMS Format v1.3 ------ - MIDI isn't included - Offs Byte(s) Desc [Header] 0 7 Header: "Extreme" 7 2 Version of format (Hi = MainVer, Low = SubVer eg. 0100 = 1.0) 9 1 cccsssss c = Nr of Commands used in tune, s = Nr of Sample channels-1 used in tune (0-31) 10 1 Nr of Samples (0-255) 11 2 Nr of Patterns (1-65535) 13 2 Nr of Positions (1-65535) 15 1 Nr of Virtual MIDI channels (0-31)* 16 2 Nr of extra bytes x Virtual MIDI Channel Info.** x Extra bytes for future use. * Channels may be duplicated so you can play several notes on the same channel, this means that you can have more than 16 MIDI channels. (Actually the same amount as the polyphony of the Synth.) Max 32. ** The numbers represents REAL MIDI channels, the position VIRTUAL channels. e.g: 0,1,2,2,3,4,5,6,7,7,7,8,9,9 That means that you use 10 real MIDI channels, but you play more that one note one some. The size of the table is the same as Nr of MIDI Channels [Sample] 4 Length Of Sample 4 Repeat Start for sample 4 Repeat End for sample 1 Hi Nibble=PanPosition, Lo Nibble=FineTuneValue 2 SampleRate for C-2 (normally 8363Hz) 1 Volume (0-127) MIDI Compatible 1 Info Byte 76543210 If set to 1: ||||||++- Packing Method |+++++--- Unused +-------- 16 bit sample Data for rest of samples are exactly the same! [Names] 1 Length of ModName (max 30 bytes) x ModName 1 Length of SampName (max 30 bytes) x SampName(s) 1 Length of ChannelName (max 11 bytes) x ChannelName(s) 1 Length of PatternName (max 10 bytes) x PatternName(s) 2 Length of Description (max 65535 bytes) x Description of Module The Number of SampleNames are equal to nr of Samples used The Number of ChannelNames are equal to nr of Channels used The Number of PatternNames are equal to nr of Patterns used [PatternOrder] x PatternNr. Holds number (0-65535) to tell the tracker what pattern to play at that position [PatternData] 4 PatternSize (packed) x PatternData fpmiiiii eppppppp ssssssss [rgcccccc bbbbbbbb...] Legend: f 1=Last data chunk on the row. p 0=Only Read Period+SampleNr, 1=Only Read Command m 0=Sample Channel, 1=MIDI channel i Channel (Samp 0-31, MIDI 0-15) e 1=Read one command p Period. Note 12-108 (C-0 to B-7) s SampleNr (0-255) r 1=Read one more command g 1=Low 6 bits are volume/2 c Command-nr b Command-byte If g is set, the command only consist of that byte and the low 6 bits are assumed to be a volume command. You have to multiply the volume by 2 to get the proper value (Volume will only be stored this way if it's dividible with 2) [Samples] All samples stored after eachother, packed with a special packing method. (if packing option is on in Options) Not described here!