Commit graph

21 commits

Author SHA1 Message Date
Mike Swanson
6eef9be73a use python3 only for building
Python 2 is very near end-of-life, and Python3-compatible changes to a
few scripts introduced compatibility problems with 2.7 again.  It went
unnoticed for me since my system symlinks "python" to "python3", but
it broke the build on systems where that symlink is still python2.  At
this point in time, I feel it is worth targetting modern Python and
forgetting about 2.7.
2019-09-06 14:43:50 -07:00
Steven Elliott
b2ca8cbfde Organize .gitignore
Organize .gitignore by moving all patterns into a top level sorted
.gitignore file. With this change both "git status" and
"git-ls-ignore-index" should return cleanly. The later checks if any
files in the index are ignored.
2019-09-05 07:09:47 -05:00
Mike Swanson
4701d8f351 Blacken all Python files
Using the black code reformatter, pass it over all our Python files.
This allows for a consistent style across the code base.

Exception: lumps/dmxgus/stats.py, for readability.
2019-09-04 19:36:23 -07:00
Mike Swanson
eca25952ad make: use $(RM) for removing files
This is one of the built-in variables for Make and can increase
portability on different operating systems (eg, on Windows, the
built-in $(RM) may be defined as "del" instead of "rm -f").
2019-09-04 14:22:49 -07:00
Simon Howard
bf93839ed5 dmxgus: Improvements to similarity groups.
Split the piano and bass guitar groups into separate groups to give more
variation. Move several instruments around which don't fit, and move
several random percussion instruments into an enlargened "blank" group
since these percussion effects are not really similar to each other and
it's better to leave them out than play something that sounds wrong.
2018-05-05 22:41:14 -04:00
Mike Swanson
c6235d6ffc Makefile: Make sure all built files are removed in make clean. 2017-02-19 12:22:57 -08:00
Mike Swanson
8835afef5f Copyright date bump and apply SPDX tags.
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...).
2017-02-15 16:41:53 -08:00
Simon Howard
6198796e95 dmxgus: Change instrument order to work around DMX.
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.
2016-07-12 21:35:36 -04:00
Simon Howard
0324308f37 lumps: Eliminate symlinks for dmxgus/genmidi.
Get rid of the symlinks for these lumps by copying into the parent
directory after build. This brings more progress on #202.
2015-12-24 11:15:50 +01:00
Mike Swanson
90fd6b1686 Cleanup __pycache__ directories with "make clean" 2014-10-29 00:37:42 -07:00
Simon Howard
b5d0a04088 Use print() for Python 3 compatibility.
This doesn't get everything working in Python 3 yet but it's a
start.
2014-02-04 02:12:50 +00:00
Simon Howard
acdf59e1f0 dmxgus: Tweak similarity groups for main instruments.
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.
2014-01-31 05:40:13 +00:00
Simon Howard
75cedb7193 dmxgus: Add comparison MID generator script.
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.
2014-01-31 05:38:44 +00:00
Simon Howard
c2394e86f2 dmxgus: Add 'do not edit' message.
As the DMXGUS lump is autogenerated, add an explicit instruction not
to edit the lump, as someone might do so, naively seeking to improve
it.
2014-01-29 05:28:10 +00:00
Simon Howard
61aaeeed1d dmxgus: Improve percussion groupings.
Regroup GUS percussion instruments based on personally having listened
to the samples in the GUS instrument set and identifying similar-
sounding instruments.
2014-01-29 05:07:21 +00:00
Simon Howard
ba7d80a188 dmxgus: Fix numbering of percussion 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.
2014-01-29 04:56:29 +00:00
Fabian Greffrath
d9c9b315e6 Remove Python byte-code in the clean rule. 2014-01-20 13:06:50 +01:00
RjY
f7674a2462 lumps: dmxgus: add .gitignore for ultramid.ini 2013-03-15 12:00:53 +00:00
Simon Howard
9a6a3b13b3 lumps: Add Makefile I forgot to include.
This was supposed to be in the previous commit.
2013-03-05 02:26:44 +00:00
Simon Howard
64198d7af1 lumps: Autogenerate optimized DMXGUS lump.
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.
2013-03-02 21:44:09 +00:00
Simon Howard
a1608b3fc3 dmxgus: Add first attempt at GUS config.
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.
2012-01-09 22:30:38 +00:00