Introduction
S3M is the module format of Scream Tracker 3, an MS-DOS tracker made by Sami Tammilehto of the demo group Future Crew and released in 1994. It extends the Amiga MOD idea with up to 32 channels, a volume column, more effects and samples of any length, and can also drive the AdLib FM synthesiser on Sound Blaster cards.
S3M was one of the main formats of the 1990s PC demo and tracker music scene, before Impulse Tracker and FastTracker 2 took over.
Structure
An S3M file starts with a 28-byte song title, the byte 1A and a file type,
then counts of orders, instruments and patterns, flags, the tracker version and the
sample format. The four bytes SCRM sit at offset 44. After the header
come the global volume, initial speed and tempo, master volume, the channel settings
and the order list. Numbers are little-endian.
Instruments and patterns are found through “parapointers”: 16-bit values that give an offset in the file divided by 16. Each instrument header (80 bytes) holds the sample’s length, loop points, volume, C4 speed and name, and points to its sample data. Each pattern is 64 rows, packed so that empty cells take no space.
0Header title, counts, flags, SCRM at 4496 bytes96Order list pattern numbers in play ordervaries…Parapointers to instruments, then to patternsvaries…Instruments, patterns, sample data at their parapointer offsetsvaries
Links
Software
- OpenMPT – free tracker that plays, edits and saves S3M modules (Windows)
- Schism Tracker – free remake of Impulse Tracker that also loads and saves S3M (Windows, macOS, Linux)
- XMPlay – small audio player with strong tracker module support (Windows)
- VLC media player – free player for almost any audio or video file, modules included (Windows, macOS, Linux, mobile)
Developers
- libopenmpt – module playback library from OpenMPT (C, C++)
- libxmp – module player library for S3M, MOD, XM, IT and more (C)