GENMIDI Replacement for Ultimate Doom and Doom II
File list for GENMID01.ZIP:
GENMID01.TXT (this file)
What is this?
GENMID01.WAD is a tiny Doom wad which contains a replacement for the
GENMIDI lump in the Doom IWAD. This lump controls the FM music synthesizer
on sound cards using the Yamaha OPL2/OPL3 chip. Examples of such cards
are Soundblaster, Adlib, and Pro Audio Sound. This GENMIDI replacement
is designed to make the Doom music sound better.
How is this done?
The GENMIDI lump conforms to the General MIDI instrument specification,
the same specification which is used in the popular MIDI music file format
(Doom uses a music format called MUS, which is merely a simpler version of
the MIDI format). The General MIDI specification defines 128 melodic
instruments (guitars, for example) and 47 percussion instruments (like
drums and cymbals). The GENMIDI lump contains OPL2/OPL3 register values for
each of these 175 instruments. These register values are transmitted to the
hardware registers of the Yamaha chip in order to create the desired
instrument sound. The quality of the sound heard from your sound card is
directly dependant on these values. This GENMIDI lump replacement is
designed to improve the sound of your FM music by introducing a new set of
register values for Doom to use.
The original GENMIDI lump is a truly atrocious example of how not
to program FM music. I have a great deal of respect for Yamaha's FM
synthesizer chip but it has unfairly gotten a bad reputation over the
years due to the extremely poor quality of the FM programming in numerous
games as well as music software. I believe that the blame should fall on
Yamaha for not publishing a standard set of register values for programmers
to use with their chip. In any case, FM synthesis has lost favour with many
people and been replaced with wave synthesis. I embarked on this project
of improving the quality of the FM synthesis in Doom because, as a wad
developer, I would like to be able to add my own music but the sound
quality on my Soundblaster 16 was so awful that it severely limited my
choices. This new GENMIDI lump aims to fix that.
What can I expect?
First of all, the quality of your FM music will improve tremendously.
In fact, you will likely be astounded by the difference. Nevertheless, some
problems remain. DMX is the component in the original Doom engine which is
responsible for all of the sounds and the music in the game. DMX supports a
number of sound cards, some of which use FM synthesis and some of which use
wave synthesis. Unfortunately, DMX supports only the OPL2 chip for FM
synth and not the OPL3. So even though you may have an OPL3 (which supports
18 voices), there will only be 9 voices available for music. That means
just 9 instruments or 9 notes can be played at the same time without
distortion. Of course, a single instrument playing 4 notes will use 4 voices
so it doesn't take a very complicated piece of music to reach the limit. To
be fair, DMX handles this rather well but it is nevertheless irritating.
Fortunately, most of the original Doom music is relatively uncluttered and
you won't notice dropouts very often. This may not be true for non-original
Secondly, I haven't finished all of the instruments. With 175 of them to
be done, I think I may have tinkered with half of those. Some I am extremely
pleased with, others refuse to work properly despite much effort, and some
are pretty decent but not great. That's why there is a version number on
this work (version 01). I intend to release updates as work progresses.
Thirdly, I am not using the DMX dual-voice capability nor does DMX
support four-op synthesis since that is an OPL3 option. I am sticking with
dual-op single-voice instrumentation. What is dual-voice? That is a DMX
option which allows two voices to be employed for a single instrument. Many
of the instruments in the original GENMIDI use this option. However, this
puts a strain on the OPL2 9-voice limit and DMX doesn't handle dual-voice
very well anyway (instruments have a tendency to disappear). What would be
the advantage of dual-voice (or four-op synthesis) in any case? If done
properly, the instruments would sound better (richer, mellower) but it
would also be an order of magitude harder to achieve. I point this out only
because some instruments may sound a bit harsher than they did originally,
though the output will be much cleaner.
What do I need?
The GENMIDI wad, a sound card with a true OPL2/OPL3 chip, and a good
set of speakers. You'll want a satellite speaker system with sub-woofer.
Cheap speakers suffer badly from intermodulation distortion and they can't
carry the bass. The best sound card to have is the Soundblaster 16. That's
what I have and that's what this wad was developed on. The Vibra 16 doesn't
quite cut it (it lacks bass and treble controls) but it'll do if that's all
you've got. The only other card that I have tested is a no-name Taiwanese
model with the Crystal chip. It sucks. Also, don't bother trying this with
the FM emulation mode on a wave synth card. It MUST be a true OPL2/OPL3.
What about the Doom source ports?
Sorry. Boom and its descendants use the Allegro library (the DMX lib
was never released by id) which includes its own FM tables. These source
ports will ignore the GENMIDI lump. Additionally, Allegro uses different
input frequencies on the FM chip so it wouldn't work anyway. I have not
investigated further but I think it is safe to say that this will only
work with the original Doom engine.
Not much. Though I've got lots of commentary on FM synthesis in
general and MIDI music in particular, I'll leave that for next time. For
now, I'll just talk about the other files you've downloaded. GENTEST1.WAD
contains some cool music for you to test. In GENTEST1.TXT, I have listed
the new songs and, for the MIDI-aware, I have also listed the instruments
used. The wad will work for both Ultimate Doom and Doom II. These songs are
MIDI files that I have downloaded off the net and modified. I have removed
some of the original instruments, fixed broken passages, and paid special
attention to the voice contention problem on the OPL2. I think you'll agree
that these songs rock! Try them with the original GENMIDI or even with a
source port but be ready to cover your ears!
In D1MUSIC.TXT and D2MUSIC.TXT, you'll find the instrument listings for
all of the Ultimate Doom and Doom II original music. Not at all interesting
except for the MIDI-aware.
Send mail to: firstname.lastname@example.org