By Tim King · Updated
MOD Player Online
Play XM, S3M and IT Tracker Music in Your Browser With a Playlist
OneTask is free, with no sign-up, and built by one person.
If this tool saved you time, a coffee helps keep new ones coming.
How the MOD Player works
Drop one or more tracker modules onto the page — MOD, XM, S3M, IT and about twenty rarer formats — and this MOD player renders them for Preview. Several files make a playlist: reorder them with Up and Down, choose how many times each plays through, set the stereo width and the resampling filter, and Export saves the whole playlist exactly as you heard it as WAV or MP3. The modules are played by libopenmpt running inside this tab, so nothing is uploaded.
What a module is
A module is a song and its instruments in one small file. Instead of recorded audio it holds short samples — a snare, a bass note, a few cycles of a string pad — and a list of patterns that say which sample plays at which pitch on which channel, row by row. The player builds the music at playback time, which is why a four-minute Amiga song can fit in 100 KB. The format was born with Ultimate Soundtracker on the Amiga in 1987, spread through the demoscene and game music of the 1990s, and is still written today in OpenMPT, MilkyTracker and Schism Tracker.
The formats this MOD player reads
The player is the libopenmpt library, the playback engine of OpenMPT, compiled to WebAssembly. It reads every common tracker format and most of the obscure ones.
Common tracker formats and where they came from
| Extension | Tracker | Platform and era | Channels |
|---|---|---|---|
| .mod | ProTracker, NoiseTracker, Soundtracker | Amiga, 1987 onwards | 4 (up to 32 in PC variants) |
| .s3m | Scream Tracker 3 | DOS, 1994 | Up to 32 |
| .xm | FastTracker 2 | DOS, 1994 | Up to 32 |
| .it | Impulse Tracker | DOS, 1995 | Up to 64 |
| .mptm | OpenMPT | Windows, 2008 onwards | Up to 127 |
| .mtm | MultiTracker | DOS, 1993 | Up to 32 |
| .669 | Composer 669 | DOS, 1992 | 8 |
| .med | OctaMED | Amiga, 1991 | Up to 64 |
Packed and wrapped files are also read: MO3 (modules with Vorbis-compressed samples), UMX (Unreal Engine music packages) and MMCMP, XPK and PowerPacker compressed modules.
The settings
- Times through plays each module that many times end to end. Most modules loop back to a point in their order list when they finish, so the second pass picks up from the loop point rather than restarting cold, just as the original tracker would.
- Stereo separation sets how far apart the left and right channels sit. 100% is the module's own panning. Amiga MODs hard-pan channels left and right, which sounds odd on headphones; 40 to 60% folds them towards the centre. 0% is mono and 200% exaggerates width.
- Interpolation chooses how samples are resampled to the playing pitch. None gives the gritty, aliased sound of an early PC sound card; Linear is what most 1990s trackers used; Cubic and Windowed sinc are smoother and cleaner. Tracker default lets libopenmpt choose, which is usually the windowed sinc filter.
Playlists
Every drop adds to the list rather than replacing it, so you can bring in files from different folders. The modules render one after another with the same settings and play as one continuous track, and the waveform shows the whole playlist. Rendering is offline and takes a fraction of a second per minute of music on a typical laptop; the progress bar shows each module as it renders.
Exporting
Export writes exactly what Preview plays: the whole playlist, at 48 kHz stereo, as 16-bit or 24-bit WAV or as MP3. If you want one file per module without the playlist, use the MOD to WAV converter, which renders each file separately.
FAQ
Why does my MOD sound different from how I remember it on the Amiga?
The Amiga played samples through a hardware low-pass filter with no interpolation, which gave MODs a warm, slightly muffled character. Set Interpolation to None and stereo separation to 100% for the closest match here, or use the converter page, which can switch on libopenmpt's Amiga resampler emulation.
Can it loop a module forever?
Not in the preview, which plays a rendered file of fixed length. Set Times through to the number of loops you want, up to 16, and the song plays that many times without a gap.
Is anything uploaded?
No. The module files are read into the page and played by libopenmpt running in WebAssembly in this tab. There is no server step, and closing the tab clears everything.
Which files will not play?
Files that are not modules, such as MIDI files, SID tunes and NSF music, which use a different kind of player. A module that is damaged or truncated may load with missing samples or fail with a message saying libopenmpt cannot read it.
See also: all Tracker Music tools, Images, Audio, Video & Screen, PDF, SVG, Simulations & Screensavers, Generative Art, Chart Makers, 3D Model Viewers, Drawing Pads, Mockups & 3D Making, Diagram Makers, 3D Science.
Related tools
MOD To WAV Converter
Convert MOD, XM, S3M and IT modules to WAV or MP3, in bulk.
MOD Pattern Viewer
Watch a module's notes and effects scroll in time with the music.
MOD Tempo Changer
Change a module's tempo and pitch separately and save the result.
MOD Channel Muter
Mute or solo channels of a tracker module and save the result.
MOD Sample Extractor
Rip every sample from a MOD, XM, S3M or IT module as WAV files.