The following is a summary of the MultiTracker Module (MTM) fromat.  It is
intended for programmers who wish to support the format in any manner.  Note
that all effects are defined as the current Protracker effects standard. A
short summary of this standard is provided in the documentation file for the
Multitracker Module Editor.


PositionLengthDescription

0       3     "MTM" file marker
3       BYTE  version number - upper nybble is major version #, lower is
	                       minor version number
4       20    ASCIIZ songname
24      WORD  number of tracks saved
26      BYTE  last pattern number saved
27      BYTE  last order number to play (songlength-1)
28      WORD  length of extra comment field
30      BYTE  number of samples saved (NOS)
31      BYTE  attribute byte (currently defined as 0)
32      BYTE  beats per track
33      BYTE  number of tracks to be played back
34      32    voice pan positions

66      NOS*37Instrument data:

	22    sample name
	DWORD sample length in bytes
	DWORD offset of beginning of sample loop in bytes
	DWORD offset of end of sample loop in bytes
	BYTE  finetune value
	BYTE  standard volume of sample
	BYTE  attribute byte: bit meaning
	                      0   0=8 bit sample 1=16 bit sample
	                      1-7 undefined (set to zero)

66+     128   Pattern order data
(NOS*37)      

194+    trks* Track data:
(NOS*37)192   Each track is saved independently and takes exactly 192 bytes.
	      The tracks are arranged as 64 consecutive 3-byte notes.  These
	      notes have the following format:
	      
	      
	        BYTE 0   BYTE 1   BYTE 2
	       ppppppii iiiieeee aaaaaaaa
	      
	       p = pitch value (0=no pitch stated)
	       i = instrument number (0=no instrument number)
	       e = effect number
	       a = effect argument
	      

194+          Track sequencing data
NOS*37+       Ŀ
trks*192(last pattern saved + 1)*32 WORDS

	      The track sequencing data is really just a listing of which
	      track is used as which voice in each saved pattern.  This is
	      necessary since one track may be a part of many different
	      patterns. (not orders)  Doing this saves much of the memory
	      wasted in a normal MOD by repetition of certain tracks over
	      and over again throughout the file.
	      
	      Note that track zero is never saved, but always considered as
	      an empty track.  Therefore, track numbering for the saved
	      tracks really starts at one.
	      
	      The data is organized in sets of 32 voices.  First comes a
	      WORD representing which track is in pattern 0, voice 0.  The
	      next WORD is pattern 0, voice 1, etc.  This is repeated for
	      each pattern saved, giving a total track sequencing size of
	      32 WORDS per pattern saved.
	      
	      If your code uses MOD-style memory organization, you can still
	      play MTM's.  You merely jump to the track sequencing data, and
	      then load each pattern separately by jumping back and forth
	      between the track sequences and the actual track data.

194+    HeaderExtra comment field
NOS*37+ says. (Length specified in the header)
trks*192Ŀ
+(last pattern saved + 1)*32*2      

194+    sampleRaw sample data
NOS*37+ length(unsigned)
trks*192Ŀ
+(last pattern saved + 1)*32*2+     
length of extra comment field       
