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; the lengths are in the sample headers.
Where each sample starts
The data begins where the patterns end, and the patterns are 256 bytes for each channel the signature gives:
start of sample data = 1084 + patterns × 256 × channels
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, and samples with a length of 0 take no space. An 8-channel module with patterns 0 to 9 has its sample data at 1084 + 10 × 2,048 = 21,564; a reader that took it for 4 channels would look for the data at 11,324, where pattern 5 starts.
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. C-2 plays a sample at about 8,287 bytes a second and C-3 at about 16,574. The format has no way to mark a sample as 16-bit or stereo.
The first two bytes of a sample are 0 by convention, a habit from the Amiga, where the sound chip keeps playing them after a sample without a loop has finished.
+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: some end a few bytes short, and some carry extra bytes after the last sample. 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.