[Back to SOUND SWAG index] [Back to Main SWAG index] [Original]

    {
    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.

    ÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
    Position³Length³Description
    ÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
    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*37³Instrument 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+    ³Header³Extra comment field
    NOS*37+ ³says. ³(Length specified in the header)
    trks*192ÀÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
    +(last pattern saved + 1)*32*2      ³
    ÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
    194+    ³sample³Raw sample data
    NOS*37+ ³length³(unsigned)
    trks*192ÀÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
    +(last pattern saved + 1)*32*2+     ³
    length of extra comment field       ³
    ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    }

[Back to SOUND SWAG index] [Back to Main SWAG index] [Original]