Contents
DIGMID
MP3 Support
Other Music
CD-Audio
Designers
Notes

DOSDOOM MUSIC SUPPORT
(Version 0.64)

For the latest info, visit the DOSDoom Website at http://www.frag.com/dosdoom

Music and Sound Support

Contents:
I DIGMID
    I.I What is DIGMID?
    I.II Should I Get DIGMID?
    I.III How to Setup DIGMID

II MP3 Support
    II.I How to Play MP3 Files
    II.II MP3 Performance Issues
    II.III More Documentation on MP3 and MPEG Audio

III Other Music Support (MUS, MID, S3M, MOD, MP3 Playlists)

IV CD-Audio Support
    IV.I CD-Audio
    IV.II CD-Atmosphere

V Level Designers
    V.I DOOM II Music Names
    V.II Miscellaneous Music Names

VI dosdoom.cfg Notes
    V.I [Sound] Section


I DIGMID  contents next previous
I.I What is DIGMID? contents next previous

DIGMID is a software wavetable synthesizer.  It uses you CPU to emulate the hardware found on high end sound cards such as the Creative Labs AWE32 and AWE64 and the Gravis Ultrasound.  Most other sound cards use FM-Synthesis.  FM-Synthesis uses a chip on the sound card to try and approximate an instrument.  Wavetable sound cards use actual recordings of an instrument to play back.  As you can guess, wavetable synthesis sounds a whole lot better!

I.II Should I Get DIGMID? contents next previous

This table identifies if you should get DIGMID.
 
 

You have an AWE32 or AWE64 Soundcard. You have a 386/486SX CPU You are using the MPU-401 driver Everyone else :-)
No.  Your computer is too good. No. Your computer can't handle DIGMID. No.  You probably have an external synth (and therefore know what you are doing :-) or you have a wavetable card not natively supported by DOSDoom that can work with this driver. YES!  You should use the DIGMID driver!

I.III How to Setup DIGMID contents next previous

Method 1: The Easy Way

  1. Download a patch set.  ftp://www.telefragged.com/--dosdoom--/patches.zip <-- Note to Andy, this link needs to be finalised.  This file contains a prefabricated patches.dat.
  2. Unzip it into the DOSDoom Directory.
  3. Use a setup program to tell DOSDoom to use DIGMID.  (Or do it manually, see Section VI)
  4. That's It!  Run DOSDoom and bask in the glory of DOOM's music, the way it was meant to be :-)

Method 2: The Custom Way.

  1. Download a patch set.  This patch set can be a SoundFont 2.0 bank or a set of GUS Patches.   http://www.talula.demon.co.uk/allegro/digmid/ has an extensive selection of patches to download.  I recommend 2mbgmgs.sf2 from Creative Labs.
  2. Download pat2dat.zip from http://www.frag.com/dosdoom/pat2dat.zip
  3. Unzip pat2dat.zip into a temporary directory.
  4. Copy 2mbgmgs.sf2 to this temporary directory.  If you have chosen a different Sound Font file, substitute it's name instead.  If you have chosen GUS patches, copy *.pat and default.cfg to the temporary directory, and substitute default.cfg for the Sound Font file name.
  5. Run: pat2dat -8 -c 2mbgmgs.sf2 patches.dat
  6. Copy the resulting patches.dat to your DOSDoom directory.
  7. Use a setup program to tell DOSDoom to use DIGMID.  (Or do it manually, see Section VI)
  8. That's It!  Run DOSDoom and bask in the glory of DOOM's music, the way it was meant to be :-)

II MP3 Support contents next previous
II.I How to play MP3 files contents next previous

DOSDoom can now support MP3s as a music format!  For those of you who don't know, MP3s are high quality compressed digital audio files.  Because MP3s are streamed from disk, they have to be handled differently from the other formats.  To get them to play, use your favourite text editor to create a playlist file.  The first line in the file must be dosdoom_playlist followed by the number of MP3s to play.  Then, on subsequent lines, put the full path to each MP3 to be played. eg
 

dosdoom_playlist 4 
c:\mp3\classic1.mp3 
c:\mp3\spot1.mp3 
d:\pushit.mp3 
d:\doomdev\d_the_da.mp
2 

Make sure you leave a blank line at the end of the file.  You can then use this file like any of the other formats that DOSDoom supports.

II.II MP3 performance issues contents next previous

MP3s use a high compression encoding format, allowing compression of up to 25:1.  The downside to this is that it takes a lot of CPU time to decode it.  If your CPU can't keep up, DOSDoom will try and compensate (by downmixing stereo signals to mono.)  To minimise popping etc. follow these rules.

  • Use MPEG-2 streams instead of MPEG-1
  • Use Layer 3 instead of Layer 2 (DOSDoom supports mp2 files too.)
  • Use a Pentium class machine.

MP3 decoding is very heavy on FPU time.  The faster the CPU, the better.  DOSDoom is just playable on a 486DX2-66 (just!) while playing MP3 music.

II.III MP3 Resources on the Net contents next previous

For more information, try:
 www.mpeg.org
 Fraunhofer IIS
 MP3.com



III Other Music Support contents next previous
Previously, level designers had to convert their songs to DOOM's MUS format, then store it into their patch wad.  Now, DOSDoom can play MUS, MID, S3M, MOD and MP3 playlists (described above) without conversion.  All that is needed is to store the file into the patch wad.  DOSDoom will detect what type of file it is :-)
Note:  If you have a song you want to play, you don't have to store it into a wad.  Use -file [filename] and DOSDoom will load and play it.  (Remember the naming convention: D_EeMm where e is the episode and m is the map number this music is played on, for DOOM I music, for DOOM II the convention is D_MAPxx where xx is the level number, or use the old DOOM II naming convention.  See Section V.)


IV CD-Audio Support contents next previous
IV.I CD-Audio contents next previous
DOSDoom can play a normal music CD instead of it's normal music.  Use -cdaudio when running DOSDoom.
IV.II CD-Atmosphere contents next previous
DOSDoom can play both a music CD AND it's normal music.  This mode is intended to be used by playing an atmosphere track (ie from the Quake CD or Syndicate Wars CD) of dripping water, wind blowing, howling demons etc... while DOOM's normal music pumps over the top.  It is probably not a good idea to use a real music CD (but you never know...      :-) Use -cdatmosphere when running DOSDoom to enable.


V Level Designers contents next previous
These are the names of the DOOM II Songs, if you don't want to use the D_MAPxx convention, which isn't compatible with the original DOOM II.
 
 

Level Number Music Name Level Number Music Name
1 D_RUNNIN 2 D_STALKS
3 D_COUNTD 4 D_BETWEE
5 D_DOOM 6 D_THE_DA
7 D_SHAWN 8 D_DDTBLU
9 D_IN_CIT 10 D_DEAD
11 D_STLKS2 12 D_THEDA2
13 D_DOOM2 14 D_DDTBL2
15 D_RUNNI2 16 D_DEAD2
17 D_STLKS3 18 D_ROMERO
19 D_SHAWN2 20 D_MESSAG
21 D_COUNT2 22 D_DDTBL3
23 D_AMPIE 24 D_THEDA3
25 D_ADRIAN 26 D_MESSG2
27 D_ROMER2 28 D_TENSE
29 D_SHAWN3 30 D_OPENIN
31 D_EVIL 32 D_ULTIMA

 
V.I Miscellaneous Musics: contents next previous
DOOM II Storyline/Text Music:    D_READ_M
DOOM II Title Music:             D_DM2TTL
DOOM II Intermission Music:      D_DM2INT
DOOM I  Storyline/Text Music:    D_VICTOR
DOOM I  Storyline/Rabbit Music:  D_BUNNY
DOOM I  Title Music:             D_INTRO
DOOM I  Intermission Music:      D_INTER
V.I Miscellaneous Musics: contents next previous DOSDoom SAMPLE structure: unsigned short: bit flags: bit 0: set = 8 bit sample, clear = 16 bit sample bit 1: set = mono sample, clear = stereo sample 2 - 13: Reserved. Must be clear bit 14: MUST BE 0! Used internally by DOSDoom (memory locking) bit 15: MUST BE 0! Used internally by DOSDoom (caching) To be compatible, use flags = 3. unsigned short: sample rate: the sample rate in Hz. Note: DOSDoom can support any sample rate between 0 - 65535. unsigned long: length: The number of samples in this sample. Not measured in bytes, do not include the header. length * (2 - (flags & 1)) * (2 - ((flags & 2) / 2)) bytes of sample data follow. Sample data is of type signed char.


VI dosdoom.cfg Notes contents previous
The dosdoom.cfg file is a plain text file that hold config info.  It's format is similar to a Windows INI file.  Lines starting with # are comments. A value is set by the line value = set  eg digi_card = 2 or patches = c:\dosdoom\patches.dat
 

VI.I Sound Section contents
digi_card
midi_card

digi_volume
midi_volume

digi_voices
midi_voices

flip_pan

sb_port
sb_dma
sb_irq
sb_freq
fm_port
mpu_port
mpu_irq

ibk_file
ibk_drum_file
patches
cache_all_patches
cdaudio

VI.I.I digi_card contents
This specifies what Soundcard to use for mixing digital samples.  Note that the Gravis Ultrasound is not actually implemented yet...

 Value       Digi card
 -1          Autodetect
  0          None (Disable)
  1          Sound Blaster
  2          SB v1.0
  3          SB v1.5
  4          SB v2.0
  5          SB Pro
  6          SB 16
  7          Gravis Ultrasound
  8          ESS Audiodrive

VI.I.II midi_card contents
This specifies what Soundcard to use for mixing playing music. Note that the Gravis Ultrasound is not actually implemented yet...

Value    Midi card
 -1    Autodetect
 0    None (Disable)
 1    Adlib
 2    OPL-2      (SB)
 3    Twin OPL-2 (SB-Pro)
 4    OPL-3      (SB-Pro2, SB16)
 5    SB-MIDI General Midi
 6    MPU-401 General Midi
 7    Gravis Ultrasound
 8    Digmid
 9    SB AWE32/64

VI.I.III digi_volume contents
This specifies how loud to play SFX  (duh) range 0 - 255

VI.I.IV midi_volume contents
This specifies how loud to play music range 0 - 255

VI.I.V digi_voices contents
This specifies how many SFX can be mixed at once.  digi_voices + midi_voices must be less than or equal to 32 if using DIGMID.  If you are not using DIGMID, I recommend digi_voices = 32 midi_voices = 32.  If you are not using MOD/S3M/MP3 music I recommend digi_voices = 8, midi_voices = 24.  Otherwise I recommend digi_voices = 12, midi_voices = 20.

VI.I.VI midi_voices contents
Specifies how many midi voices can be used at once.  See digi_voices.

VI.I.VII flip_pan contents
If flip pan is 1, the stereo channels will be swapped.  Set this if a monster on your right makes sounds from your left.

VI.I.VIII sb_port contents
The port address of your sound card, -1 = autodetect.  220 is a good choice.

VI.I.IX sb_dma contents
The (low) dma your sound card uses, -1 = autodetect.  Probably 1.

VI.I.X sb_irq contents
The IRQ your sound card uses, -1 = autodetect.  Probably 5

VI.I.XI sb_freq contents
The mixing frequency to mix at.  Higher sounds better, but uses more CPU.  Valid values are 11906, 16129, 22727, 45454.  Some sound cards don't support the higher values.

VI.I.XII fm_port contents
The port to send FM-Synthesis to.  Probably the same as sb_port, use -1 to autodetect.  You can usually get music to work, even if you can't get SFX to work by setting midi_card = 1 (Adlib) and fm_port = 388.

VI.I.XIII mpu_port contents
The port for an external midi device.  Probably 330.  If you have a SCSI interface, 330 could wreck your hard drive.  If you want to use the mpu_port, you probably know what you are doing :-)

VI.I.XIV ibk_file contents
This is the filename of the ibk file to use for FM-Synthesis.  The IBK file contains instruments like the patches.dat file contains instruments for wavetable synthesis.

VI.I.XV ibk_drum_file contents
This is the filename of the ibk file to FM-Synthesise drums.

VI.I.XVI patches contents
This is the filename of the patches.dat file.  See DIGMID.

VI.I.XVII mpu_irq contents
This is the IRQ for the external midi device.  Normally the same as sb_irq, or 2.

VI.I.XVIII cache_all_patches contents
If this is 1, (and you are using DIGMID) the entire patches.dat file will be loaded into memory on startup instead of portions being loaded as needed.  This makes a slower startup time, but quicker music changes.  If you have 16mbs or more of RAM, you should enable this.  Has the same effect as the -patches parameter.

VI.I.XIX cdaudio contents
Valid values are 0 (Off), 1 (On) or 3 (Atmosphere)
Off means no CD-Audio, Normal Music.
On means CD-Audio, No normal music, same as -cdaudio parameter.
Atmosphere means both CD-Audio and Normal Music, same as -cdatmosphere parameter.