The tags are shorthand for the license of each file and avoid
copying the full license text into each one (and avoids having
to manually update the dates in each one...).
The DMX sound library used by Vanilla Doom has a bug where instruments
referencing other instruments as stand-ins can only reference
instruments listed earlier in the file. Actually, the instrument
references are just arbitrary cross-reference tags and the first
instrument to use that tag is used for all instruments with that tag.
This behavior can have some strange effects; more information can be
found on David Flater's page: <http://www.flaterco.com/kb/DOOM/DMXGUS/>
This has consequences for Freedoom's GENMIDI generation, particularly
as Chocolate Doom now emulates this behavior. To avoid assigning the
wrong instrument mappings, change the ordering of instruments in the
output file, so that "leader" instruments always appear earlier in the
file than instruments that reference them.
The main instrument groupings were already pretty good but there
was some room for improvement. The generated configuration sounds
pretty good now, even when using the 256KB config.
This script generates a MIDI file that plays all of the comparison
groups from config.py. This allows instruments to be compared, so
that similar-sounding instruments can be grouped together.
Regroup GUS percussion instruments based on personally having listened
to the samples in the GUS instrument set and identifying similar-
sounding instruments.
The indices of the percussion instruments were all off-by-one. These
should be 128+genmidi number, but were 127+ by mistake. This
considerably improves the percussion in Freedoom when using GUS.
Replace the current poor-quality handcrafted GUS configuration with
a script that programatically generates an optimized configuration
file based on statistical analysis of music from various popular WAD
files.
This is a functioning (but awful) configuration file for the
Gravis Ultrasound card, which is usually stored in the IWAD as
DMXGUS / DMXGUSC. I constructed this by hand, and at least it's
better than nothing. Also included is a sanity check script that
checks the configuration will fit in the memory limits of the card.