Music

The original Doom 64 music is in MIDI format but uses a custom soundset. The link below lists the original tracks and how they are referenced to in most engines.

Specific tracks can be assigned to levels with the MAPINFO text lump. An archive of custom Doom 64 MIDIs can be found below.

MIDIs are added to different files depending on the engine used as described below.

MIDI Composition

Composing MIDI requires a custom soundset to be loaded where Virtual MIDI Synth can be used to load a soundfont. You can use the wadgen utility from Doom 64 EX or wadutil64 to extract the Doom 64 soundfont from the Doom 64 ROM. Once you obtain the soundfont you can use the programs below to compose MIDIs for Doom 64.

Most MIDI programs default to the General MIDI instrument list which does not correspond to the Doom 64 instruments. The following page lists the Doom 64 instruments, with descriptions, and how they correspond to General MIDI.

Some engines can load these MIDIs directly in appropriate lumps, however other engines require these MIDIs to be futher formatted as described in the following sections.

Doom 64 Remaster

The official Doom 64 Remaster is based on the FMOD sound effects engine. This allows this engine to load other music formats such as MP3, OGG, Impulse Tracker and others. The caveat is the MIDI music is based around the DLS format which has lost the stereo panning of the original Doom 64 Soundset. This can be remedied by adding the stereo information to the MIDI files themselves. When replacing music on the Doom 64 Remaster, replacing single tracks (such as MUSDONE) can cause a bug where music gets played out of order or simple is not replaced. However, replacing the entire soundtrack seems to remedy this bug. And adding new music to custom WAD does not seem to cause this bug. Custom music can be placed between "DM_START" and "DM_END" markers.

If you wish to use MIDI style music with custom sounds, it is recommended that you use tracker formats. Open MPT is software in which you can compose tracker music, but perhaps more importantly, you can convert MIDIs into tracker music with custom soundfonts. In particular, the Doom 64 Remaster supports the impulse tracker (IT) format.

It is possible to edit the Doom 64 Remaster soundfont for custom music. In particular the DOOMSND.DLS file is the soundfont. This is in the somewhat obscure DLS (downloadable sound) format, however, it is the only soundfont that the FMOD sound effects engine currently supports. Aging and expensive software such as Awave Studio can edit this file.

Doom 64 EX Engines

The sound system for Doom 64 EX based engines utilize the FluidSynth sound system. Fundamentally this system is based upon MIDI architecture and all of its music and in-game sounds are in a soundfont. These engines only support MIDI music. For Doom 64 EX+, music can be placed between "DM_START" and "DM_END" markers, while for the original Doom EX, music is placed between the "DS_START" and "DS_END" markers, of a custom WAD.

The original Doom 64 EX requires additional formatting which can be done with the MIDI 64nicator. This is due to many MIDI events causing the engine to crash and must be cleaned from the files. This engine also suffers from tracks going out of sync when a high density of midi events occur, however this is not noticeable with low-density ambient tracks.

FluidSynth supports chorus and reverb effects, thus Doom 64 EX based engines do as well. These are controlled by specific MIDI events in the music files and can give the music more depth. If you decide to use these effects, it is recommended you set the amplitude of these effects to zero in MIDI channels that do not use them. Otherwise the reverb and chorus settings from a previous music track can bleed over.

If you would like to change the sounds used in the music in these engines, you will need to edit the soundfound, DOOMSND.SF2. This soundfont is based on the common SF2 format. Soundfont editing can be done with the Polyphone Soundfont Editor software and many other modern applications.

Nintendo 64

For the Nintendo 64 engines, none of the sound and music assets are stored in the WAD, rather they are stored in three files for the WESS/NESS sound system.

These aren't standard formats, however wadutil64 can convert MIDIs and soundfonts to these files. At the moment, it does seem that custom MIDIs do work, however not much testing has been done to see what limits there are.

Although the original Doom 64 sounds are 11.025 kHz, 16 bit, the base engine supports 22.05 kHz, 16 bit. Also the engines themselves can be updated to go as high as 44.1 kHz, 16 bit at the cost of some performance.