The sounds come last in the file. After the last pattern, the data of each sample follows in the order of the sample headers, sample 1 first, with nothing between them and no headers or lengths of its own: the lengths are in the sample headers.
Where each sample starts
The data begins where the patterns end:
start of sample data = 1084 + patterns × 1024
patterns = 1 + the highest number in all 128 order entries
sample n starts at = start of sample data + 2 × (length of samples 1 to n − 1)
Sample n is 2 × length bytes long. Samples with a length of 0 take no space. For example, a module whose order table names patterns 0 to 9, and whose first two samples are 7,000 and 3,000 bytes long, has sample 1 at 11,324, sample 2 at 18,324 and sample 3 at 21,324.
Encoding
Each byte is one sample point, a signed 8-bit number from −128 to 127, mono. No sample rate is stored: the rate depends on the note being played, as the period says, so the same data plays faster for a higher note: C-2 plays it at about 8,287 bytes a second and C-3 at about 16,574.
By convention the first two bytes of a sample are 0. ProTracker leaves the Amiga’s voice playing those two bytes after a sample without a loop has finished, so a zero there keeps the voice silent; see How it plays.
+0 00 00 05 12 26 3B 4A 52 51 47 35 1D 02 E8 D0 BD
E8 is −24, BD is −67)Short and long files
The file should end with the last byte of the last sample, but not every file does. In the files examined for this site, one ends a few bytes short of its last sample and others carry extra bytes after it, in one case 16 KB. A reader should take what is there rather than turn the file down: the explorer reads a sample cut short as far as the file goes and reports how much is missing.