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


{ Updated SOUND.SWG on May 26, 1995 }

{

> Hi, I am planning to write a MOD player and I need the file Structure

             **********************************************
             ******  Amiga Protracker Module Format  ******
             **********************************************

 ****************************
 *Offset**Bytes**Description*
*****************************************************************************
**   0     20    Module name.  Padded with spaces until the end (or should
**                 be).  Remember to only print 20 characters.
***Samples*******************************************************************
**  20( 0) 22    Sample Name.  Should be padded with nulls for the full
**                 length of it after the sample name.
**  42(22)  2    Sample Length.  Stored as an Amiga word which needs to be
**                 swapped on an IBM.  This word needs to be multiplied by
**                 two to get the real length.  If the initial length is
**                 greater than 8000h, then the sample is greater than 64k.
**  44(24)  1    Sample Finetune Byte.  This byte is the finetune value for the
**                 sample.  The upper four bits should be zeroed out.  The
**                 lower four are the fine tune value.
**                   Value ***** 0  1  2  3  4  5  6  7  8  9  A  B  C  D  E F
**                   Finetune ** 0 +1 +2 +3 +4 +5 +6 +7 -8 -7 -6 -5 -4 -3 -2 -1
**  45(25)  1    Sample Volume.  The rangle is always 0-64.
**  46(26)  2    Sample Repeat.  Stored as an Amiga word.  Multiply this by
**                 two and add it to the beginning offset of the sample to get
**                 the repeat point.
**  48(28)  2    Sample Repeat Length.  Stored as an Amiga word.  Multiply this
**                 by two to get the Repeat Length.
*****************************************************************************
**          *** The remaining 14 or 30 samples follow this point ***
**          *** using the same format as above.  Note that the   ***
**          *** rest of this module format follows a 31 sample   ***
**          *** format, which is not different from the 15       ***
**          *** sample format except for the file offset.        ***
*****************************************************************************
** 950      1    The Song Length in the range of 1 to 128.
** 951      1    I don't know.  I was told that Noisetracker uses this byte
**                 for a restart, but I don't use Noisetracker.  Anyone have
**                 any information?
** 952    128    Play Sequences 0-127.  These indicate the appropriate
**                 pattern to play at this given position.
**1080      4    If this position contains:   "M.K." or "FLT4" or "FLT8"
**                                              - the module is 31 ins.
***Patterns******************************************************************
**1084(0)   1    Upper 4 bits: MSB of the instrument.  Must be ORed with the
**                 LSB.  Lower 4 bits:  Upper 4 bits of the period.
**1085(1)   1    Contains the lower 8 bits of the period.
**1086(2)   1    Upper 4 bits: LSB of the instrument.  Must be ORed with the
**                 MSB.  Lower 4 bits: Special effects command.  Contains a
**                 command 0-F.
**1087(3)   1    Special effects data.
*****************************************************************************
**          *** The number of patterns is the highest pattern    ***
**          *** number stored in the Play Sequence list.         ***
*****************************************************************************
** Each note is four bytes long.  Four notes make up a track.  They are
** stored like this:
**         0-3           4-7           8-11         12-15
**      Channel 1     Channel 2     Channel 3     Channel 4
**        16-19         20-23         24-27         28-31
**      Channel 1     Channel 2     Channel 3     Channel 4
** ...and so on.
**
**
**
**                  00           00           00           00
**                  ||           ||           ||           ||
**                  /\           //           /\           \\
**  MSB of Ins.   Note        LSB Ins. Spec. Com.   Data for special
**
** The samples immediately follow.
**
*****************************************************************************
}

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