

                  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!

