mirror of
https://github.com/freedoom/freedoom.git
synced 2025-09-01 22:25:46 -04:00
This is ConSiGno's OPL instrument patch table, found here: <https://github.com/sneakernets/DMXOPL> This is the result of many years' development and probably the highest quality Doom OPL instrument set that's ever been developed. I've obtained permission from ConSiGno to submit it to Freedoom, with the following small omissions from the upstream version: * Instrument 107 (Shamisen) * Percussion 36 (Bass Drum 1) * Percussion 69 (Cabasa) * Percussion 76 (Hi Wood Block) * Percussion 77 (Low Wood Block) In doing due diligence I found that the patch data for these instruments matched the patch data from Doom's GENMIDI table. Just to be meticulously safe we'll keep the old versions of these (nothing, in the case of the Cabasa). Other than these, every other instrument has been replaced with a new patch.
347 lines
17 KiB
Python
347 lines
17 KiB
Python
#!/usr/bin/env python3
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
#
|
|
# Config file for GENMIDI file generation.
|
|
#
|
|
# This specifies the instrument files that should be used to generate
|
|
# the GENMIDI lump. Instrument files can be in SBI or A2I format.
|
|
# Instrument files must not use OPL3 features and it is an error to do so.
|
|
#
|
|
# A simple instrument specification looks like this:
|
|
#
|
|
# Instrument("filename.sbi")
|
|
#
|
|
# For a double-voice instrument (two instrument files played at the same
|
|
# time), do this:
|
|
#
|
|
# Instrument("file1.sbi", "file2.sbi")
|
|
#
|
|
# To tune the instruments, it's possible to apply an offset to the notes
|
|
# that are played. For example, to force all notes down by one octave:
|
|
#
|
|
# Instrument("file1.sbi", off1=-12)
|
|
#
|
|
# This can be controlled individually for double-voice instruments, eg.
|
|
#
|
|
# Instrument("file1.sbi", "file2.sbi", off1=-12, off2=+6)
|
|
#
|
|
# When an instrument is played, the note usually comes from the MIDI
|
|
# event. Some instruments (especially percussion) always play the same
|
|
# note. To specify a fixed note, do this:
|
|
#
|
|
# Instrument("filename.sbi", note=On5.B)
|
|
#
|
|
# Value is a MIDI note number; see midi.py for constant definitions.
|
|
|
|
from instrument import Instrument, NullInstrument
|
|
from midi import *
|
|
|
|
# Note: all instruments must ALWAYS be defined, or use NullInstrument.
|
|
|
|
# General MIDI instruments:
|
|
INSTRUMENTS = [
|
|
Instrument('instr001.sbi', 'instr001-2.sbi', # Acoustic Grand Piano
|
|
off1=-12, off2=-12, tune=+2),
|
|
Instrument('instr002.sbi', 'instr002-2.sbi', # Bright Acoustic Piano
|
|
off1=-12, off2=-12, tune=+2),
|
|
Instrument('instr003.sbi', 'instr003-2.sbi', # Electric Grand Piano
|
|
tune=+2),
|
|
Instrument('instr004.sbi', 'instr004-2.sbi', # Honky-tonk Piano
|
|
off1=-12, off2=-12, tune=+10),
|
|
Instrument('instr005.sbi', 'instr005-2.sbi', # Electric Piano (Rhodes)
|
|
off1=-12, off2=-12, tune=+3),
|
|
Instrument('instr006.sbi', 'instr006-2.sbi', # Electric Piano (DX-7)
|
|
off1=-12, off2=-12, tune=+4),
|
|
Instrument('instr007.sbi', 'instr007-2.sbi', # Harpsichord
|
|
off1=-12, off2=-12),
|
|
Instrument('instr008.sbi', 'instr008-2.sbi', # Clavichord
|
|
off1=-12, off2=-12),
|
|
Instrument('instr009.sbi', 'instr009-2.sbi', # Celesta
|
|
off1=-12, off2=-12, tune=+1),
|
|
Instrument('instr010.sbi', 'instr010-2.sbi', # Glockenspiel
|
|
off1=-24, off2=-24),
|
|
Instrument('instr011.sbi', 'instr011-2.sbi', # Music Box
|
|
off1=-12, tune=+4),
|
|
Instrument('instr012.sbi', 'instr012-2.sbi', # Vibraphone
|
|
off1=-12, off2=-12),
|
|
Instrument('instr013.sbi', 'instr013-2.sbi', # Marimba
|
|
off2=-12),
|
|
Instrument('instr014.sbi', off1=-12), # Xylophone
|
|
Instrument('instr015.sbi', 'instr015-2.sbi', # Tubular Bells
|
|
off1=-24, off2=-24, tune=+2),
|
|
Instrument('instr016.sbi', 'instr016-2.sbi', # Dulcimer
|
|
off1=-12, off2=-12, tune=+2),
|
|
Instrument('instr017.sbi', 'instr017-2.sbi', # Drawbar Organ
|
|
off1=-12, tune=+10),
|
|
Instrument('instr018.sbi', 'instr018-2.sbi', # Percussive Organ
|
|
off1=-24, off2=-24),
|
|
Instrument('instr019.sbi', 'instr019-2.sbi', # Rock Organ
|
|
off1=-12, off2=-12, tune=+10),
|
|
Instrument('instr020.sbi', 'instr020-2.sbi', # Church Organ
|
|
off1=-12, off2=-12, tune=+2),
|
|
Instrument('instr021.sbi', 'instr021-2.sbi', # Reed Organ
|
|
off1=-12, off2=-12),
|
|
Instrument('instr022.sbi', 'instr022-2.sbi', # Accordion
|
|
off1=-12, off2=-12, tune=+9),
|
|
Instrument('instr023.sbi', 'instr023-2.sbi', # Harmonica (DMX FIXED)
|
|
off1=-12, off2=-12),
|
|
Instrument('instr024.sbi', 'instr024-2.sbi', # Tango Accordion
|
|
off1=-12, off2=-12, tune=+7),
|
|
Instrument('instr025.sbi', 'instr025-2.sbi', # Acoustic Guitar (nylon)
|
|
off1=-12, off2=-24),
|
|
Instrument('instr026.sbi', 'instr026-2.sbi', # Acoustic Guitar (steel)
|
|
off1=-12, off2=-12, tune=+1),
|
|
Instrument('instr027.sbi', 'instr027-2.sbi', # Electric Guitar (jazz)
|
|
off1=-12, off2=-12),
|
|
Instrument('instr028.sbi', 'instr028-2.sbi', # Electric Guitar (clean)
|
|
off1=-12, off2=-12, tune=+3),
|
|
Instrument('instr029.sbi', 'instr029-2.sbi', # Electric Guitar (muted)
|
|
off1=-12, off2=-12),
|
|
Instrument('instr030.sbi', 'instr030-2.sbi', # Overdriven Guitar
|
|
off1=-12, off2=+2, tune=-122),
|
|
Instrument('instr031.sbi', 'instr031-2.sbi', # Distortion Guitar
|
|
off1=-12, off2=+2, tune=-122),
|
|
Instrument('instr032.sbi', 'instr032-2.sbi', # Guitar Harmonics
|
|
off1=-12, off2=-12, tune=+15),
|
|
Instrument('instr033.sbi', 'instr033-2.sbi', # Acoustic Bass
|
|
off1=-12, off2=-12, tune=+2),
|
|
Instrument('instr034.sbi', 'instr034-2.sbi'), # Electric Bass (finger)
|
|
Instrument('instr035.sbi', 'instr035-2.sbi', # Electric Bass (pick)
|
|
off1=-12),
|
|
Instrument('instr036.sbi', 'instr036-2.sbi', # Fretless Bass (DMX BUG FIX)
|
|
off1=-12, off2=-12, tune=+3),
|
|
Instrument('instr037.sbi', 'instr037-2.sbi', # Slap Bass 1
|
|
off1=-12, off2=-12),
|
|
Instrument('instr038.sbi', 'instr038-2.sbi', # Slap Bass 2
|
|
off1=-12, off2=-12),
|
|
Instrument('instr039.sbi'), # Synth Bass 1
|
|
Instrument('instr040.sbi', 'instr040-2.sbi', # Synth Bass 2
|
|
off1=-12, off2=-12, tune=+10),
|
|
Instrument('instr041.sbi', 'instr041-2.sbi', # Violin
|
|
off1=-12, off2=-12),
|
|
Instrument('instr042.sbi', off1=-12), # Viola
|
|
Instrument('instr043.sbi', 'instr043-2.sbi', # Cello
|
|
off1=-12, off2=-12, tune=+1),
|
|
Instrument('instr044.sbi', off1=-12), # Contrabass
|
|
Instrument('instr045.sbi', 'instr045-2.sbi', # Tremolo Strings (DMX)
|
|
off2=-12, tune=+5),
|
|
Instrument('instr046.sbi', 'instr046-2.sbi', # Pizzicato String
|
|
off1=-12, off2=-12, tune=+10),
|
|
Instrument('instr047.sbi', 'instr047-2.sbi', # Orchestral Harp
|
|
off1=-12, off2=-12, tune=+2),
|
|
Instrument('instr048.sbi', 'instr048-2.sbi', # Timpani (DMX)
|
|
off1=-36, off2=-12, tune=+2),
|
|
Instrument('instr049.sbi', 'instr049-2.sbi', # String Ensemble 1 (DMX)
|
|
off2=-12, tune=+5),
|
|
Instrument('instr050.sbi', 'instr050-2.sbi', # String Ensemble 2 (DMX)
|
|
off2=-12, tune=+5),
|
|
Instrument('instr051.sbi', 'instr051-2.sbi', # SynthStrings 1
|
|
off1=-12, off2=-24, tune=+4),
|
|
Instrument('instr052.sbi', 'instr052-2.sbi', # SynthStrings 2
|
|
off1=-12, off2=-12, tune=+7),
|
|
Instrument('instr053.sbi', 'instr053-2.sbi', # Choir Aahs
|
|
off1=-12, off2=-24, tune=+9),
|
|
Instrument('instr054.sbi', 'instr054-2.sbi', # Voice Oohs
|
|
off1=-12, off2=-12, tune=+9),
|
|
Instrument('instr055.sbi', 'instr055-2.sbi', # Synth Voice
|
|
off1=-12, off2=-12, tune=+10),
|
|
Instrument('instr056.sbi', 'instr056-2.sbi', # Orchestra Hit
|
|
off1=-12, off2=-12, tune=+8),
|
|
Instrument('instr057.sbi', off1=-12), # Trumpet (DMX FIXED)
|
|
Instrument('instr058.sbi', 'instr058-2.sbi', # Trombone
|
|
off1=-12, off2=-12, tune=+2),
|
|
Instrument('instr059.sbi', off1=-12), # Tuba
|
|
Instrument('instr060.sbi', off1=-24), # Muted Trumpet
|
|
Instrument('instr061.sbi', 'instr061-2.sbi', # French Horn
|
|
off1=-12, off2=-12, tune=+2),
|
|
Instrument('instr062.sbi', 'instr062-2.sbi', # Brass Section
|
|
off1=-12, off2=-12, tune=+4),
|
|
Instrument('instr063.sbi', 'instr063-2.sbi', # Synth Brass 1
|
|
off1=-12, off2=-12, tune=+6),
|
|
Instrument('instr064.sbi', 'instr064-2.sbi', # Synth Brass 2
|
|
off1=-12, off2=-12, tune=+8),
|
|
Instrument('instr065.sbi', off1=-12), # Soprano Sax
|
|
Instrument('instr066.sbi', off1=-12), # Alto Sax
|
|
Instrument('instr067.sbi'), # Tenor Sax
|
|
Instrument('instr068.sbi'), # Baritone Sax
|
|
Instrument('instr069.sbi', 'instr069-2.sbi', # Oboe
|
|
off1=-12, off2=-12),
|
|
Instrument('instr070.sbi', off1=-12), # English Horn
|
|
Instrument('instr071.sbi', off1=-12), # Bassoon
|
|
Instrument('instr072.sbi', off1=-12), # Clarinet (DMX FIXED)
|
|
Instrument('instr073.sbi', off1=-12), # Piccolo
|
|
Instrument('instr074.sbi', off1=-12), # Flute
|
|
Instrument('instr075.sbi', off1=-12), # Recorder
|
|
Instrument('instr076.sbi', 'instr076-2.sbi', # Pan Flute (DMX)
|
|
off1=-12, off2=-12, tune=+2),
|
|
Instrument('instr077.sbi', 'instr077-2.sbi', # Blown Bottle
|
|
off1=-12, off2=-12, tune=+3),
|
|
Instrument('instr078.sbi', 'instr078-2.sbi', # Shakuhachi
|
|
off1=-12, off2=-12, tune=+2),
|
|
Instrument('instr079.sbi', off1=-12), # Whistle
|
|
Instrument('instr080.sbi', off1=-12), # Ocarina
|
|
Instrument('instr081.sbi', 'instr081-2.sbi', # Lead 1 (square)
|
|
off1=-12, off2=-12, tune=+8),
|
|
Instrument('instr082.sbi', 'instr082-2.sbi', # Lead 2 (sawtooth)
|
|
off1=-12, off2=-12, tune=+7),
|
|
Instrument('instr083.sbi', 'instr083-2.sbi', # Lead 3 (calliope)
|
|
off1=-12, off2=-12, tune=+7),
|
|
Instrument('instr084.sbi', 'instr084-2.sbi', # Lead 4 (chiffer)
|
|
off1=-12, off2=-12, tune=-2),
|
|
Instrument('instr085.sbi', off1=-12), # Lead 5 (charang)
|
|
Instrument('instr086.sbi', 'instr086-2.sbi', # Lead 6 (Voice)
|
|
off1=-12, off2=-12, tune=+10),
|
|
Instrument('instr087.sbi', 'instr087-2.sbi', # Lead 7 (5th sawtooth)
|
|
off2=-5, tune=-3),
|
|
Instrument('instr088.sbi', 'instr088-2.sbi', # Lead 8 (Lead+Bass)
|
|
tune=+2),
|
|
Instrument('instr089.sbi', 'instr089-2.sbi', # Pad 1 (new age)
|
|
off1=-12, off2=-12, tune=+5),
|
|
Instrument('instr090.sbi', 'instr090-2.sbi', # Pad 2 (warm)
|
|
off1=-12, off2=-12, tune=+7),
|
|
Instrument('instr091.sbi', 'instr091-2.sbi', # Pad 3 (polysynth)
|
|
off1=-12, off2=-12, tune=+5),
|
|
Instrument('instr092.sbi', 'instr092-2.sbi', # Pad 4 (choir)
|
|
off1=-12, off2=-12, tune=+10),
|
|
Instrument('instr093.sbi', 'instr093-2.sbi', # Pad 5 (bowed glass)
|
|
off1=-12, off2=-12, tune=+7),
|
|
Instrument('instr094.sbi', 'instr094-2.sbi', # Pad 6 (metal)
|
|
off1=-12, off2=-12, tune=+4),
|
|
Instrument('instr095.sbi', 'instr095-2.sbi', # Pad 7 (halo)
|
|
off1=-12, off2=-12, tune=+6),
|
|
Instrument('instr096.sbi', 'instr096-2.sbi', # Pad 8 (sweep)
|
|
off1=-12, off2=-12, tune=+7),
|
|
Instrument('instr097.sbi', 'instr097-2.sbi', # FX 1 (rain)
|
|
off1=-12, off2=-12, tune=+6),
|
|
Instrument('instr098.sbi', 'instr098-2.sbi', # FX 2 (soundtrack)
|
|
off1=-12, off2=-5, tune=+8),
|
|
Instrument('instr099.sbi', 'instr099-2.sbi', # FX 3 (crystal)
|
|
off1=-12, off2=-12, tune=+7),
|
|
Instrument('instr100.sbi', 'instr100-2.sbi', # FX 4 (atmosphere)
|
|
off1=-12, off2=-12, tune=-3),
|
|
Instrument('instr101.sbi', 'instr101-2.sbi', # FX 5 (brightness)
|
|
off1=-12, off2=-12, tune=+8),
|
|
Instrument('instr102.sbi', 'instr102-2.sbi', # FX 6 (goblin)
|
|
off1=-12, off2=-12, tune=-5),
|
|
Instrument('instr103.sbi', 'instr103-2.sbi', # FX 7 (echo drops)
|
|
off1=-12, off2=-12, tune=+9),
|
|
Instrument('instr104.sbi', 'instr104-2.sbi', # * FX 8 (star-theme)
|
|
off1=-12, off2=-12, tune=+5),
|
|
Instrument('instr105.sbi', 'instr105-2.sbi', # Sitar
|
|
off1=-12, off2=-12, tune=+2),
|
|
Instrument('instr106.sbi', 'instr106-2.sbi', # Banjo
|
|
off1=-12, off2=-12),
|
|
Instrument("instr107.sbi", off1=-12), # #107 - Shamisen
|
|
Instrument('instr108.sbi', off1=-12), # Koto
|
|
Instrument('instr109.sbi', off1=-12), # Kalimba
|
|
Instrument('instr110.sbi', 'instr110-2.sbi', # Bag Pipe
|
|
off1=-12, off2=-12, tune=+4),
|
|
Instrument('instr111.sbi', off1=-12), # Fiddle
|
|
Instrument('instr112.sbi', off1=-12), # Shanai
|
|
Instrument('instr113.sbi', off1=-7), # Tinkle Bell
|
|
Instrument('instr114.sbi', off1=-12), # Agogo
|
|
Instrument('instr115.sbi', 'instr115-2.sbi', # Steel Drums
|
|
off1=-12, off2=-12, tune=+2),
|
|
Instrument('instr116.sbi', off1=-12), # Woodblock
|
|
Instrument('instr117.sbi', 'instr117-2.sbi', # Taiko Drum (new)
|
|
off1=-24, off2=-12),
|
|
Instrument('instr118.sbi', 'instr118-2.sbi', # Melodic Tom
|
|
off1=-12),
|
|
Instrument('instr119.sbi', 'instr119-2.sbi', # Synth Drum
|
|
off1=-24, off2=-12),
|
|
Instrument('instr120.sbi', 'instr120-2.sbi', # Reverse Cymbal
|
|
off1=-12, tune=+7),
|
|
Instrument('instr121.sbi', off1=-26), # Guitar Fret Noise (DMX)
|
|
Instrument('instr122.sbi', 'instr122-2.sbi', # Breath Noise
|
|
off1=-12, off2=-12),
|
|
Instrument('instr123.sbi', 'instr123-2.sbi', # Seashore
|
|
note=O0.F, off1=-35, off2=-36),
|
|
Instrument('instr124.sbi'), # Bird Tweet
|
|
Instrument('instr125.sbi', 'instr125-2.sbi', # Telephone Ring
|
|
off1=-36, off2=-32),
|
|
Instrument('instr126.sbi', 'instr126-2.sbi', # Helicopter
|
|
note=On4.F, off1=-48, off2=-26),
|
|
Instrument('instr127.sbi', 'instr127-2.sbi', # Applause
|
|
note=O0.F, off1=-48, off2=-47),
|
|
Instrument('instr128.sbi', off1=-12), # Gun Shot
|
|
]
|
|
|
|
# Percussion instruments:
|
|
PERCUSSION = [
|
|
Instrument('perc35.sbi', note=On3.Cs), # Acoustic Bass Drum
|
|
Instrument("perc36.sbi", note=On4.A), # #36 Bass Drum 1
|
|
Instrument('perc37.sbi', 'perc37-2.sbi', # Slide Stick
|
|
note=O0.Cs),
|
|
Instrument('perc38.sbi', 'perc38-2.sbi', # Acoustic Snare
|
|
note=On2.D, off1=-12),
|
|
Instrument('perc39.sbi', 'perc39-2.sbi', # Hand Clap
|
|
note=On2.Cs, off1=-12, off2=-14),
|
|
Instrument('perc40.sbi', 'perc40-2.sbi', # Electric Snare
|
|
note=On2.D, off1=-4, off2=-11),
|
|
Instrument('perc41.sbi', # Low Floor Tom
|
|
note=On3.Gs, off1=-12),
|
|
Instrument('perc42.sbi', 'perc42-2.sbi', # Closed High-Hat
|
|
note=On1.C, off1=-17, off2=-12, tune=-122),
|
|
Instrument('perc43.sbi', # High Floor Tom
|
|
note=On3.As, off1=-12),
|
|
Instrument('perc44.sbi', # Pedal High Hat
|
|
note=On1.C, off1=-17),
|
|
Instrument('perc45.sbi', # Low Tom
|
|
note=On2.Cs, off1=-12),
|
|
Instrument('perc46.sbi', 'perc46-2.sbi', # Open High Hat
|
|
note=On1.C, off1=-17, off2=-12, tune=-122),
|
|
Instrument('perc47.sbi', # Low-Mid Tom
|
|
note=On2.E, off1=-12),
|
|
Instrument('perc48.sbi', # Hi-Mid Tom
|
|
note=On2.G, off1=-12),
|
|
Instrument('perc49.sbi', 'perc49-2.sbi', # Crash Cymbal 1
|
|
note=O0.Cs, tune=+6),
|
|
Instrument('perc50.sbi', # High Tom
|
|
note=On2.As, off1=-12),
|
|
Instrument('perc51.sbi', 'perc51-2.sbi', # Ride Cymbal 1
|
|
note=O0.C, tune=+4),
|
|
Instrument('perc52.sbi', 'perc52-2.sbi', # Chinses Cymbal
|
|
note=O1.G, off2=-1, tune=+5),
|
|
Instrument('perc53.sbi', # Ride Bell
|
|
note=O0.D, off1=-12),
|
|
Instrument('perc54.sbi', 'perc54-2.sbi', # Tambourine
|
|
note=O1.Gs, tune=+8),
|
|
Instrument('perc55.sbi', 'perc55-2.sbi', # Splash Cymbal
|
|
note=O0.G, off1=-12, off2=-11, tune=+5),
|
|
Instrument('perc56.sbi', note=On1.As), # Cowbell
|
|
Instrument('perc57.sbi', 'perc57-2.sbi', # Crash Cymbal 2
|
|
note=O0.D, tune=+6),
|
|
Instrument('perc58.sbi', note=On3.C), # Vibraslap
|
|
Instrument('perc59.sbi', note=O0.Cs), # Ride Cymbal 2
|
|
Instrument('perc60.sbi', 'perc60-2.sbi', # High Bongo (New)
|
|
note=On2.F, off1=-6, off2=-12),
|
|
Instrument('perc61.sbi', 'perc61-2.sbi', # Low Bongo (New)
|
|
note=On3.B, off2=-12),
|
|
Instrument('perc62.sbi', 'perc62-2.sbi', # Mute high conga (New)
|
|
note=On3.F, off1=-12, off2=-2),
|
|
Instrument('perc63.sbi', 'perc63-2.sbi', # Open High Conga (New)
|
|
note=On2.F, off1=-4, off2=-12),
|
|
Instrument('perc64.sbi', 'perc64-2.sbi', # Low Conga (New)
|
|
note=On2.Cs, off1=-4, off2=-12),
|
|
Instrument('perc65.sbi', note=On1.G), # High Timbale
|
|
Instrument('perc66.sbi', note=On1.C), # Low Timbale
|
|
Instrument('perc67.sbi', 'perc67-2.sbi', # High Agogo
|
|
note=O1.Fs, off2=-6),
|
|
Instrument('perc68.sbi', 'perc68-2.sbi', # Low Agogo
|
|
note=O1.Cs, off2=-1),
|
|
NullInstrument, # TODO - #69 Cabasa
|
|
Instrument('perc70.sbi', note=On2.E), # Maracas
|
|
Instrument('perc71.sbi', note=On2.A), # Short Whistle
|
|
Instrument('perc72.sbi', note=On2.Fs), # Long Whistle
|
|
Instrument('perc73.sbi', 'perc73-2.sbi', # Short Guiro
|
|
note=On1.C, off1=-12, off2=-12),
|
|
Instrument('perc74.sbi', 'perc74-2.sbi', # Long Guiro
|
|
note=On1.C, off1=-12, off2=-12),
|
|
Instrument('perc75.sbi', note=O1.Cs), # Claves
|
|
Instrument("perc76.sbi", note=On5.E), # #76 Hi Wood Block
|
|
Instrument("perc77.sbi", note=On5.E), # #77 Low Wood Block
|
|
Instrument('perc78.sbi', note=On4.E), # Mute Cuica
|
|
Instrument('perc79.sbi', note=On4.E), # Open Cuica
|
|
Instrument('perc80.sbi', note=O2.Fs), # Mute Triangle
|
|
Instrument('perc81.sbi', note=O2.Fs), # Open Triangle
|
|
]
|