Pumatracker module structure ---------------------------- by Laurent Clévy (lclevy@club-internet.fr) offset type size content --------------------------------------------------- 0x0000 B 12 module name 0x000c W 1 song length 0x000e W 1 number of patterns 0x0010 W 1 number of sound data 0x0012 W 1 loop position ? 0x0014 L 10 samples start offsets 0x003c W 10 samples length in words 0x0050 B 14*? patterns table B 12 4 voices 1 voice = B 1 used pattern B 1 instrument transpose B 1 note transpose B 1 speed B 1 ? ??? B ? patterns 1 pattern = B 4 "patt" B ? 4 voices 1 voice = B 1 note B 1 instrument ? ? command ? ? command parameter B 4 "patt" = end of patterns section ??? B 4*? sound designer data 1 sound data = volume data B 4 "inst" B 4*? volume commands B 1 volume command number B 1 command data #1 B 1 command data #2 B 1 command data #3 frequency data B 4 "insf" B 4*? freq commands B 1 freq command number B 1 command data #1 B 1 command data #2 B 1 command data #3 B 4 "inst" = end of instruments section ??? B ? samples Example : --------- 0x0000 "toki1" 000000 00000000 0x000c 000b 0x000e 0017 0x0010 0006 0000 0x0014 000005c8 00000a9c 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0x003c 026b 0235 0000 0000 0000 0000 0000 0000 0000 0000 000050 01 0000 02 0000 0b 0000 06 0000 0300 01 0000 02 0006 07 0000 06 0000 0000 01 0000 0a 000c 07 0000 06 0000 0000 05 0000 03 0006 09 0000 08 0000 0000 01 000a 02 0010 0d 0000 06 0000 0000 01 000a 02 0016 07 0000 06 0000 0000 01 000a 0a 001c 07 0000 06 0000 0000 05 000a 04 0016 0c 0000 08 0000 0000 0f 000e 0e 000e 11 0000 06 0000 0000 0f 000a 10 000a 12 0000 06 0000 0000 13 0000 14 0000 0b 0000 06 0000 0000 16 0000 15 0000 07 0000 08 0000 0000 0x00f8 "patt" 00000020 000100 "patt" 44 01 0002 2c010002 2c010002 44010002 2c010002 2c010002 44010002 2c010002 44010002 2c010002 2c010002 44010002 2c010002 2c010002 44010002 2c010002 "patt" 44020020 "patt" 44020014 44050003 00201001 44050004 44050004 "patt" 44020014 3e050003 00201001 3e050004 3e050004 "patt" 44010002 2c010002 2c010002 44010002 2c010002 2c010002 44010002 2c010002 44010004 2c010004 2c010004 2c010004 ... "patt" 3a060002 00600101 00600101 00600101 00600201 00600201 00600201 00600202 0060000a 3a060004 3a060004 3a060004 "patt" 0004f0 "inst" c01a0104 a0201401 a0100a02 a0080010 e0000000 "insf" d0000001 e0000000 "inst" c01a0008 a0181003 c01a0108 a0100c04 a0080030 e0000000 "insf" d0000001 d0fe0001 d0000001 e0000000 "inst" c0000000 a0404010 e0000000 "insf" d0000001 e0000000 "inst" c0010000 a0300000 a0100010 e0000000 "insf" d0000001 e0000000 "inst" c01a0108 a00a1202 a0100804 a0080010 e0000000 "insf" d0000001 e0000000 "inst" c00a0108 a03a2804 a0100030 e0000000 "insf" d0000001 e0000000 "inst" 0x05c8 00000706 06060606 06060707 07070705 0e060320 00ff2806 ... 03030101 01020001 000000ff 00fffffe fefdfdfd fcfcfcfc fcfbfbfa 0x0a9c 000000ff 1005050a 05050013 01fd1608 f9041505 ... 08030b0a 04040a02 0713fc07 0a030c03 0607060c 0x0f04