Music format
Over time, ZDoom has come to support many different music formats, which you can use in your mods. The following list is mostly a superset of the sound formats, since some of these formats are supported only for music playback.
Midi-based formats
These formats are read by ZDoom, converted if needed to standard MIDI format, and played by one of the available software synthesizers.
File Extension | Description |
---|---|
HMI | Human Machine Interface MIDI variant |
HMP | Human Machine Interface MIDI variant |
MID/MIDI/SMF | Standard MIDI File format |
MUS | Doom music |
XMI | ![]() |
Streamed formats
These formats are read and played by the OpenAL sound backend.
File Extension | Description |
---|---|
MP2 | MPEG I/II Layer 2 |
MP3 | MPEG I/II Layer 3 |
OGG † | Ogg Vorbis (Ogg FLAC is not supported) |
Opus | Opus file format |
WAV | Wave Audio |
FLAC † | Free Lossless Audio Codec |
WMA | Windows Media Audio (Win32 only) |
VAG | PS2/PSP Audio |
AIFF | Audio Interchange File Format |
†: These formats support using audio loops.
OPL (AdLib) formats
These formats are read by ZDoom's OPL emulator.
File Extension | Description |
---|---|
DRO | DOSBox Raw OPL v1 or v2 |
IMF | Apogee Adlib Music |
RAW | RDosPlay RAW OPL |
Note: Some IMF files don't work unless given a header, or converted to RAW, see "using OPL music in ZDoom" for more details and a tutorial.
Module formats
These formats are read and played by a tracker module, namely foo_DUMB and libxmp.
File Extension | Description |
---|---|
MOD | Sound/Pro/Noisetracker Module |
S3M | ScreamTracker 3 Module |
XM | FastTracker 2 Module |
IT | Impulse Tracker Module |
STM | Old ScreamTracker Module |
669 | Composer 669 |
PTM | Poly Tracker |
PSM | Protracker Studio |
MTM | MultiTracker |
AMF | Asylum Music Format |
OKT | Oktalyzer |
DSM | DSIK Internal Format |
RIFF AM/AMFF | Galaxy Sound System |
UMX (New from 4.13.0) | Unreal Engine 1.x |
Note for UMX files: Non-tracker formats are not supported.
Emulated formats
These formats are read and played by the ZDoom's internal Game Music Emu library.
File Extension | Description |
---|---|
AY | ZX Spectrum/Amstrad CPC |
GBS | Nintendo Game Boy |
GYM | Sega Genesis/Mega Drive |
HES | NEC TurboGrafx-16/PC Engine |
KSS | MSX Home Computer/other Z80 systems (No FM) |
NSF/NSFE | Nintendo Entertainment System/Famicom |
SAP | Atari systems using POKEY sound chip |
SPC | Super Nintendo Entertainment System/Super Famicom |
VGM/VGZ | Sega Master System/Mark III, Sega Genesis/Mega Drive, BBC Micro |
Note for multi-track files: In MAPINFO, append a colon plus the track number to the song name(e.g. "D_NSFSNG:5"). For ACS, use the second parameter (order) of SetMusic and LocalSetMusic. For the changemus console command, add the track number as another argument after the song name.
External Links
There are quite a few archives on the web that keep all sorts of music from various systems, in the formats listed above.
- ASMA - Atari SAP Music Archive
- Mirsoft - MIDI, modules, and information
- The Mod Archive - Tracker module repository, mostly MOD, IT, S3M, and XM
- Modland FTP - Repository of Adlib, emulated, and tracker module files, sorted by system, format, author, and game
- Project AY - Amstrad CPC and ZX Spectrum song archive
- Project 2612 - Sega Master System and Genesis/Megadrive song archive
- SNESmusic.org - Super NES / Super Famicom (SPC) music
- Video Game Music Archive - MIDI covers of video game songs
- Videogame Music Preservation Foundation - Information and archive, various formats
- Zophar's Domain - GBS, HES, KSS, NSF, and SPC archive, among other formats