Merge pull request #18 from KGAudioLab/feat/2025-08-29-new-instruments

feat: added 28 new instruments.
This commit is contained in:
Xiaohan-Tian
2025-08-30 13:33:29 -07:00
committed by GitHub
11 changed files with 104 additions and 76 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 294 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 KiB

+104 -76
View File
@@ -144,62 +144,90 @@ export const FLUIDR3_INSTRUMENT_MAP: {
[key: string]: { displayName: string; midiInstrument: number; image: string; group: string; pitchRange: [number, number] } [key: string]: { displayName: string; midiInstrument: number; image: string; group: string; pitchRange: [number, number] }
} = { } = {
// group: piano and keyboards // group: piano and keyboards
acoustic_grand_piano: { displayName: "Acoustic Grand Piano", midiInstrument: 1, image: "piano.png", group: "PIANO_AND_KEYBOARDS", pitchRange: [21, 108] }, acoustic_grand_piano: { displayName: "Acoustic Grand Piano", midiInstrument: 1, image: "piano.png", group: "PIANO_AND_KEYBOARDS", pitchRange: [21, 108] },
electric_piano_1: { displayName: "Electric Piano 1", midiInstrument: 5, image: "electric_piano.png", group: "PIANO_AND_KEYBOARDS", pitchRange: [21, 108] }, bright_acoustic_piano: { displayName: "Bright Acoustic Piano", midiInstrument: 2, image: "piano.png", group: "PIANO_AND_KEYBOARDS", pitchRange: [21, 108] },
electric_piano_2: { displayName: "Electric Piano 2", midiInstrument: 6, image: "electric_piano.png", group: "PIANO_AND_KEYBOARDS", pitchRange: [21, 108] }, electric_grand_piano: { displayName: "Electric Grand Piano", midiInstrument: 3, image: "electric_piano.png", group: "PIANO_AND_KEYBOARDS", pitchRange: [21, 108] },
drawbar_organ: { displayName: "Drawbar Organ", midiInstrument: 17, image: "drawbar_organ.png", group: "PIANO_AND_KEYBOARDS", pitchRange: [21, 108] }, electric_piano_1: { displayName: "Electric Piano 1", midiInstrument: 5, image: "electric_piano.png", group: "PIANO_AND_KEYBOARDS", pitchRange: [21, 108] },
clavinet: { displayName: "Clavinet", midiInstrument: 8, image: "drawbar_organ.png", group: "PIANO_AND_KEYBOARDS", pitchRange: [21, 108] }, electric_piano_2: { displayName: "Electric Piano 2", midiInstrument: 6, image: "electric_piano.png", group: "PIANO_AND_KEYBOARDS", pitchRange: [21, 108] },
harpsichord: { displayName: "Harpsichord", midiInstrument: 7, image: "drawbar_organ.png", group: "PIANO_AND_KEYBOARDS", pitchRange: [21, 108] }, drawbar_organ: { displayName: "Drawbar Organ", midiInstrument: 17, image: "drawbar_organ.png", group: "PIANO_AND_KEYBOARDS", pitchRange: [21, 108] },
clavinet: { displayName: "Clavinet", midiInstrument: 8, image: "drawbar_organ.png", group: "PIANO_AND_KEYBOARDS", pitchRange: [21, 108] },
harpsichord: { displayName: "Harpsichord", midiInstrument: 7, image: "drawbar_organ.png", group: "PIANO_AND_KEYBOARDS", pitchRange: [21, 108] },
accordion: { displayName: "Accordion", midiInstrument: 22, image: "accordian.png", group: "PIANO_AND_KEYBOARDS", pitchRange: [21, 108] },
// group: guitar // group: guitar
acoustic_guitar_nylon: { displayName: "Acoustic Guitar (nylon)", midiInstrument: 25, image: "guitar.png", group: "GUITAR", pitchRange: [21, 108] }, acoustic_guitar_nylon: { displayName: "Acoustic Guitar (nylon)", midiInstrument: 25, image: "guitar.png", group: "GUITAR", pitchRange: [21, 108] },
acoustic_guitar_steel: { displayName: "Acoustic Guitar (steel)", midiInstrument: 26, image: "guitar.png", group: "GUITAR", pitchRange: [21, 108] }, acoustic_guitar_steel: { displayName: "Acoustic Guitar (steel)", midiInstrument: 26, image: "guitar.png", group: "GUITAR", pitchRange: [21, 108] },
electric_guitar_clean: { displayName: "Electric Guitar (clean)", midiInstrument: 28, image: "electric_guitar.png", group: "GUITAR", pitchRange: [21, 108] }, electric_guitar_clean: { displayName: "Electric Guitar (clean)", midiInstrument: 28, image: "electric_guitar.png", group: "GUITAR", pitchRange: [21, 108] },
overdriven_guitar: { displayName: "Electric Guitar (overdrive)", midiInstrument: 30, image: "electric_guitar.png", group: "GUITAR", pitchRange: [21, 108] }, overdriven_guitar: { displayName: "Electric Guitar (overdrive)", midiInstrument: 30, image: "electric_guitar.png", group: "GUITAR", pitchRange: [21, 108] },
distortion_guitar: { displayName: "Electric Guitar (distortion)", midiInstrument: 31, image: "electric_guitar.png", group: "GUITAR", pitchRange: [21, 108] }, distortion_guitar: { displayName: "Electric Guitar (distortion)", midiInstrument: 31, image: "electric_guitar.png", group: "GUITAR", pitchRange: [21, 108] },
// group: bass // group: bass
electric_bass_finger: { displayName: "Electric Bass (finger)", midiInstrument: 34, image: "bass.png", group: "BASS", pitchRange: [21, 108] }, acoustic_bass: { displayName: "Acoustic Bass", midiInstrument: 33, image: "bass.png", group: "BASS", pitchRange: [21, 108] },
electric_bass_pick: { displayName: "Electric Bass (picked)", midiInstrument: 35, image: "bass.png", group: "BASS", pitchRange: [21, 108] }, electric_bass_finger: { displayName: "Electric Bass (finger)", midiInstrument: 34, image: "bass.png", group: "BASS", pitchRange: [21, 108] },
slap_bass_1: { displayName: "Slap Bass", midiInstrument: 37, image: "bass.png", group: "BASS", pitchRange: [21, 108] }, electric_bass_pick: { displayName: "Electric Bass (picked)", midiInstrument: 35, image: "bass.png", group: "BASS", pitchRange: [21, 108] },
slap_bass_1: { displayName: "Slap Bass", midiInstrument: 37, image: "bass.png", group: "BASS", pitchRange: [21, 108] },
synth_bass_1: { displayName: "Synth Bass 1", midiInstrument: 39, image: "synth.png", group: "BASS", pitchRange: [21, 108] },
// group: strings // group: strings
violin: { displayName: "Violin", midiInstrument: 41, image: "violin.png", group: "STRINGS", pitchRange: [21, 108] }, violin: { displayName: "Violin", midiInstrument: 41, image: "violin.png", group: "STRINGS", pitchRange: [21, 108] },
viola: { displayName: "Viola", midiInstrument: 42, image: "viola.png", group: "STRINGS", pitchRange: [21, 108] }, viola: { displayName: "Viola", midiInstrument: 42, image: "viola.png", group: "STRINGS", pitchRange: [21, 108] },
cello: { displayName: "Cello", midiInstrument: 43, image: "cello.png", group: "STRINGS", pitchRange: [21, 108] }, cello: { displayName: "Cello", midiInstrument: 43, image: "cello.png", group: "STRINGS", pitchRange: [21, 108] },
contrabass: { displayName: "Contrabass", midiInstrument: 44, image: "contrabass.png", group: "STRINGS", pitchRange: [21, 108] }, contrabass: { displayName: "Contrabass", midiInstrument: 44, image: "contrabass.png", group: "STRINGS", pitchRange: [21, 108] },
string_ensemble_1: { displayName: "String Ensemble", midiInstrument: 49, image: "string_ensemble.png", group: "STRINGS", pitchRange: [21, 108] }, string_ensemble_1: { displayName: "String Ensemble", midiInstrument: 49, image: "string_ensemble.png", group: "STRINGS", pitchRange: [21, 108] },
pizzicato_strings: { displayName: "Pizzicato Strings", midiInstrument: 46, image: "string_ensemble.png", group: "STRINGS", pitchRange: [21, 108] }, string_ensemble_2: { displayName: "String Ensemble 2", midiInstrument: 50, image: "string_ensemble.png", group: "STRINGS", pitchRange: [21, 108] },
tremolo_strings: { displayName: "Tremolo Strings", midiInstrument: 45, image: "string_ensemble.png", group: "STRINGS", pitchRange: [21, 108] }, pizzicato_strings: { displayName: "Pizzicato Strings", midiInstrument: 46, image: "string_ensemble.png", group: "STRINGS", pitchRange: [21, 108] },
orchestral_harp: { displayName: "Orchestral Harp", midiInstrument: 47, image: "harp.png", group: "STRINGS", pitchRange: [21, 108] }, tremolo_strings: { displayName: "Tremolo Strings", midiInstrument: 45, image: "string_ensemble.png", group: "STRINGS", pitchRange: [21, 108] },
orchestral_harp: { displayName: "Orchestral Harp", midiInstrument: 47, image: "harp.png", group: "STRINGS", pitchRange: [21, 108] },
// group: brass // group: brass
trumpet: { displayName: "Trumpet", midiInstrument: 57, image: "trumpet.png", group: "BRASS", pitchRange: [21, 108] }, trumpet: { displayName: "Trumpet", midiInstrument: 57, image: "trumpet.png", group: "BRASS", pitchRange: [21, 108] },
trombone: { displayName: "Trombone", midiInstrument: 58, image: "trombone.png", group: "BRASS", pitchRange: [21, 108] }, trombone: { displayName: "Trombone", midiInstrument: 58, image: "trombone.png", group: "BRASS", pitchRange: [21, 108] },
french_horn: { displayName: "French Horn", midiInstrument: 61, image: "french_horn.png", group: "BRASS", pitchRange: [21, 108] }, tuba: { displayName: "Tuba", midiInstrument: 59, image: "tuba.png", group: "BRASS", pitchRange: [21, 108] },
brass_section: { displayName: "Brass Section", midiInstrument: 62, image: "brass_ensemble.png", group: "BRASS", pitchRange: [21, 108] }, french_horn: { displayName: "French Horn", midiInstrument: 61, image: "french_horn.png", group: "BRASS", pitchRange: [21, 108] },
brass_section: { displayName: "Brass Section", midiInstrument: 62, image: "brass_ensemble.png", group: "BRASS", pitchRange: [21, 108] },
// group: woodwind // group: woodwind
alto_sax: { displayName: "Alto Sax", midiInstrument: 66, image: "sax.png", group: "WOODWIND", pitchRange: [21, 108] }, soprano_sax: { displayName: "Soprano Sax", midiInstrument: 65, image: "soprano_sax.png", group: "WOODWIND", pitchRange: [21, 108] },
tenor_sax: { displayName: "Tenor Sax", midiInstrument: 67, image: "sax.png", group: "WOODWIND", pitchRange: [21, 108] }, alto_sax: { displayName: "Alto Sax", midiInstrument: 66, image: "sax.png", group: "WOODWIND", pitchRange: [21, 108] },
flute: { displayName: "Flute", midiInstrument: 74, image: "flute.png", group: "WOODWIND", pitchRange: [21, 108] }, tenor_sax: { displayName: "Tenor Sax", midiInstrument: 67, image: "sax.png", group: "WOODWIND", pitchRange: [21, 108] },
clarinet: { displayName: "Clarinet", midiInstrument: 72, image: "clarinet.png", group: "WOODWIND", pitchRange: [21, 108] }, baritone_sax: { displayName: "Baritone Sax", midiInstrument: 68, image: "baritone_sax.png", group: "WOODWIND", pitchRange: [21, 108] },
oboe: { displayName: "Oboe", midiInstrument: 69, image: "oboe.png", group: "WOODWIND", pitchRange: [21, 108] },
english_horn: { displayName: "English Horn", midiInstrument: 70, image: "english_horn.png", group: "WOODWIND", pitchRange: [21, 108] },
bassoon: { displayName: "Bassoon", midiInstrument: 71, image: "bassoon.png", group: "WOODWIND", pitchRange: [21, 108] },
clarinet: { displayName: "Clarinet", midiInstrument: 72, image: "clarinet.png", group: "WOODWIND", pitchRange: [21, 108] },
piccolo: { displayName: "Piccolo", midiInstrument: 73, image: "piccolo.png", group: "WOODWIND", pitchRange: [21, 108] },
flute: { displayName: "Flute", midiInstrument: 74, image: "flute.png", group: "WOODWIND", pitchRange: [21, 108] },
shakuhachi: { displayName: "Shakuhachi", midiInstrument: 78, image: "shakuhachi.png", group: "WOODWIND", pitchRange: [21, 108] },
harmonica: { displayName: "Harmonica", midiInstrument: 23, image: "harmonica.png", group: "WOODWIND", pitchRange: [21, 108] },
// group: percussion_kit // group: percussion_kit
// Note: Drum kits are selected by channel 10 in GM; program numbers are typically ignored // Note: Drum kits are selected by channel 10 in GM; program numbers are typically ignored
standard: { displayName: "Standard Drum Kit", midiInstrument: 0, image: "drums.png", group: "PERCUSSION_KIT", pitchRange: [27, 87] }, standard: { displayName: "Standard Drum Kit", midiInstrument: 0, image: "drums.png", group: "PERCUSSION_KIT", pitchRange: [27, 87] },
orchestra_kit: { displayName: "Orchestra Drum Kit", midiInstrument: 0, image: "orchestra_percussion_kit.png", group: "PERCUSSION_KIT", pitchRange: [27, 88] }, orchestra_kit: { displayName: "Orchestra Drum Kit", midiInstrument: 0, image: "orchestra_percussion_kit.png", group: "PERCUSSION_KIT", pitchRange: [27, 88] },
timpani: { displayName: "Timpani", midiInstrument: 48, image: "orchestra_percussion_kit.png", group: "PERCUSSION_KIT", pitchRange: [21, 108] }, marimba: { displayName: "Marimba", midiInstrument: 13, image: "marimba.png", group: "PERCUSSION_KIT", pitchRange: [21, 108] },
taiko_drum: { displayName: "Taiko Drum", midiInstrument: 117, image: "orchestra_percussion_kit.png", group: "PERCUSSION_KIT", pitchRange: [21, 108] }, timpani: { displayName: "Timpani", midiInstrument: 48, image: "orchestra_percussion_kit.png", group: "PERCUSSION_KIT", pitchRange: [21, 108] },
woodblock: { displayName: "Woodblock", midiInstrument: 116, image: "orchestra_percussion_kit.png", group: "PERCUSSION_KIT", pitchRange: [21, 108] }, taiko_drum: { displayName: "Taiko Drum", midiInstrument: 117, image: "orchestra_percussion_kit.png", group: "PERCUSSION_KIT", pitchRange: [21, 108] },
woodblock: { displayName: "Woodblock", midiInstrument: 116, image: "orchestra_percussion_kit.png", group: "PERCUSSION_KIT", pitchRange: [21, 108] },
// group: synth // group: synth
lead_1_square: { displayName: "Lead 1 (square)", midiInstrument: 81, image: "synth.png", group: "SYNTH", pitchRange: [21, 108] }, lead_1_square: { displayName: "Lead 1 (square)", midiInstrument: 81, image: "synth.png", group: "SYNTH", pitchRange: [21, 108] },
lead_2_sawtooth: { displayName: "Lead 2 (sawtooth)", midiInstrument: 82, image: "synth.png", group: "SYNTH", pitchRange: [21, 108] }, lead_2_sawtooth: { displayName: "Lead 2 (sawtooth)", midiInstrument: 82, image: "synth.png", group: "SYNTH", pitchRange: [21, 108] },
pad_1_new_age: { displayName: "Pad 1 (new age)", midiInstrument: 89, image: "synth.png", group: "SYNTH", pitchRange: [21, 108] }, pad_1_new_age: { displayName: "Pad 1 (new age)", midiInstrument: 89, image: "synth.png", group: "SYNTH", pitchRange: [21, 108] },
pad_2_warm: { displayName: "Pad 2 (warm)", midiInstrument: 90, image: "synth.png", group: "SYNTH", pitchRange: [21, 108] }, pad_2_warm: { displayName: "Pad 2 (warm)", midiInstrument: 90, image: "synth.png", group: "SYNTH", pitchRange: [21, 108] },
pad_3_polysynth: { displayName: "Pad 3 (polysynth)", midiInstrument: 91, image: "synth.png", group: "SYNTH", pitchRange: [21, 108] }, pad_3_polysynth: { displayName: "Pad 3 (polysynth)", midiInstrument: 91, image: "synth.png", group: "SYNTH", pitchRange: [21, 108] },
fx_4_atmosphere: { displayName: "FX 4 (atmosphere)", midiInstrument: 100, image: "synth.png", group: "SYNTH", pitchRange: [21, 108] }, pad_4_choir: { displayName: "Pad 4 (choir)", midiInstrument: 92, image: "synth.png", group: "SYNTH", pitchRange: [21, 108] },
pad_5_bowed: { displayName: "Pad 5 (bowed glass)", midiInstrument: 93, image: "synth.png", group: "SYNTH", pitchRange: [21, 108] },
pad_6_metallic: { displayName: "Pad 6 (metallic)", midiInstrument: 94, image: "synth.png", group: "SYNTH", pitchRange: [21, 108] },
pad_7_halo: { displayName: "Pad 7 (halo)", midiInstrument: 95, image: "synth.png", group: "SYNTH", pitchRange: [21, 108] },
pad_8_sweep: { displayName: "Pad 8 (sweep)", midiInstrument: 96, image: "synth.png", group: "SYNTH", pitchRange: [21, 108] },
fx_1_rain: { displayName: "FX 1 (rain)", midiInstrument: 97, image: "synth.png", group: "SYNTH", pitchRange: [21, 108] },
fx_2_soundtrack: { displayName: "FX 2 (soundtrack)", midiInstrument: 98, image: "synth.png", group: "SYNTH", pitchRange: [21, 108] },
fx_3_crystal: { displayName: "FX 3 (crystal)", midiInstrument: 99, image: "synth.png", group: "SYNTH", pitchRange: [21, 108] },
fx_4_atmosphere: { displayName: "FX 4 (atmosphere)", midiInstrument: 100, image: "synth.png", group: "SYNTH", pitchRange: [21, 108] },
fx_5_brightness: { displayName: "FX 5 (brightness)", midiInstrument: 101, image: "synth.png", group: "SYNTH", pitchRange: [21, 108] },
fx_6_goblins: { displayName: "FX 6 (goblins)", midiInstrument: 102, image: "synth.png", group: "SYNTH", pitchRange: [21, 108] },
fx_7_echoes: { displayName: "FX 7 (echoes)", midiInstrument: 103, image: "synth.png", group: "SYNTH", pitchRange: [21, 108] },
fx_8_scifi: { displayName: "FX 8 (sci-fi)", midiInstrument: 104, image: "synth.png", group: "SYNTH", pitchRange: [21, 108] },
}; };
// In case if we need to do sanity check: // In case if we need to do sanity check:
@@ -217,8 +245,8 @@ export const STANDARD_MIDI_INSTRUMENT_MAP: {
}; };
} = { } = {
1: { midiInstrumentName: "Acoustic Grand Piano", fluidR3InstrumentName: "acoustic_grand_piano", exactMap: true }, 1: { midiInstrumentName: "Acoustic Grand Piano", fluidR3InstrumentName: "acoustic_grand_piano", exactMap: true },
2: { midiInstrumentName: "Bright Acoustic Piano", fluidR3InstrumentName: "acoustic_grand_piano", exactMap: false }, 2: { midiInstrumentName: "Bright Acoustic Piano", fluidR3InstrumentName: "bright_acoustic_piano", exactMap: true },
3: { midiInstrumentName: "Electric Grand Piano", fluidR3InstrumentName: "electric_piano_1", exactMap: false }, 3: { midiInstrumentName: "Electric Grand Piano", fluidR3InstrumentName: "electric_grand_piano", exactMap: true },
4: { midiInstrumentName: "Honky-tonk Piano", fluidR3InstrumentName: "electric_piano_1", exactMap: false }, 4: { midiInstrumentName: "Honky-tonk Piano", fluidR3InstrumentName: "electric_piano_1", exactMap: false },
5: { midiInstrumentName: "Electric Piano 1", fluidR3InstrumentName: "electric_piano_1", exactMap: true }, 5: { midiInstrumentName: "Electric Piano 1", fluidR3InstrumentName: "electric_piano_1", exactMap: true },
6: { midiInstrumentName: "Electric Piano 2", fluidR3InstrumentName: "electric_piano_2", exactMap: true }, 6: { midiInstrumentName: "Electric Piano 2", fluidR3InstrumentName: "electric_piano_2", exactMap: true },
@@ -228,7 +256,7 @@ export const STANDARD_MIDI_INSTRUMENT_MAP: {
10: { midiInstrumentName: "Glockenspiel", fluidR3InstrumentName: "electric_piano_1", exactMap: false }, 10: { midiInstrumentName: "Glockenspiel", fluidR3InstrumentName: "electric_piano_1", exactMap: false },
11: { midiInstrumentName: "Music Box", fluidR3InstrumentName: "electric_piano_1", exactMap: false }, 11: { midiInstrumentName: "Music Box", fluidR3InstrumentName: "electric_piano_1", exactMap: false },
12: { midiInstrumentName: "Vibraphone", fluidR3InstrumentName: "electric_piano_2", exactMap: false }, 12: { midiInstrumentName: "Vibraphone", fluidR3InstrumentName: "electric_piano_2", exactMap: false },
13: { midiInstrumentName: "Marimba", fluidR3InstrumentName: "electric_piano_1", exactMap: false }, 13: { midiInstrumentName: "Marimba", fluidR3InstrumentName: "marimba", exactMap: true },
14: { midiInstrumentName: "Xylophone", fluidR3InstrumentName: "electric_piano_1", exactMap: false }, 14: { midiInstrumentName: "Xylophone", fluidR3InstrumentName: "electric_piano_1", exactMap: false },
15: { midiInstrumentName: "Tubular Bells", fluidR3InstrumentName: "electric_piano_2", exactMap: false }, 15: { midiInstrumentName: "Tubular Bells", fluidR3InstrumentName: "electric_piano_2", exactMap: false },
16: { midiInstrumentName: "Dulcimer", fluidR3InstrumentName: "harpsichord", exactMap: false }, 16: { midiInstrumentName: "Dulcimer", fluidR3InstrumentName: "harpsichord", exactMap: false },
@@ -237,8 +265,8 @@ export const STANDARD_MIDI_INSTRUMENT_MAP: {
19: { midiInstrumentName: "Rock Organ", fluidR3InstrumentName: "drawbar_organ", exactMap: false }, 19: { midiInstrumentName: "Rock Organ", fluidR3InstrumentName: "drawbar_organ", exactMap: false },
20: { midiInstrumentName: "Church Organ", fluidR3InstrumentName: "drawbar_organ", exactMap: false }, 20: { midiInstrumentName: "Church Organ", fluidR3InstrumentName: "drawbar_organ", exactMap: false },
21: { midiInstrumentName: "Reed Organ", fluidR3InstrumentName: "drawbar_organ", exactMap: false }, 21: { midiInstrumentName: "Reed Organ", fluidR3InstrumentName: "drawbar_organ", exactMap: false },
22: { midiInstrumentName: "Accordion", fluidR3InstrumentName: "drawbar_organ", exactMap: false }, 22: { midiInstrumentName: "Accordion", fluidR3InstrumentName: "accordion", exactMap: true },
23: { midiInstrumentName: "Harmonica", fluidR3InstrumentName: "clarinet", exactMap: false }, 23: { midiInstrumentName: "Harmonica", fluidR3InstrumentName: "harmonica", exactMap: true },
24: { midiInstrumentName: "Bandoneon", fluidR3InstrumentName: "drawbar_organ", exactMap: false }, 24: { midiInstrumentName: "Bandoneon", fluidR3InstrumentName: "drawbar_organ", exactMap: false },
25: { midiInstrumentName: "Acoustic Guitar (nylon)", fluidR3InstrumentName: "acoustic_guitar_nylon", exactMap: true }, 25: { midiInstrumentName: "Acoustic Guitar (nylon)", fluidR3InstrumentName: "acoustic_guitar_nylon", exactMap: true },
26: { midiInstrumentName: "Acoustic Guitar (steel)", fluidR3InstrumentName: "acoustic_guitar_steel", exactMap: true }, 26: { midiInstrumentName: "Acoustic Guitar (steel)", fluidR3InstrumentName: "acoustic_guitar_steel", exactMap: true },
@@ -248,13 +276,13 @@ export const STANDARD_MIDI_INSTRUMENT_MAP: {
30: { midiInstrumentName: "Electric Guitar (overdrive)", fluidR3InstrumentName: "overdriven_guitar", exactMap: true }, 30: { midiInstrumentName: "Electric Guitar (overdrive)", fluidR3InstrumentName: "overdriven_guitar", exactMap: true },
31: { midiInstrumentName: "Electric Guitar (distortion)", fluidR3InstrumentName: "distortion_guitar", exactMap: true }, 31: { midiInstrumentName: "Electric Guitar (distortion)", fluidR3InstrumentName: "distortion_guitar", exactMap: true },
32: { midiInstrumentName: "Electric Guitar (harmonics)", fluidR3InstrumentName: "electric_guitar_clean", exactMap: false }, 32: { midiInstrumentName: "Electric Guitar (harmonics)", fluidR3InstrumentName: "electric_guitar_clean", exactMap: false },
33: { midiInstrumentName: "Acoustic Bass", fluidR3InstrumentName: "electric_bass_finger", exactMap: false }, 33: { midiInstrumentName: "Acoustic Bass", fluidR3InstrumentName: "acoustic_bass", exactMap: true },
34: { midiInstrumentName: "Electric Bass (finger)", fluidR3InstrumentName: "electric_bass_finger", exactMap: true }, 34: { midiInstrumentName: "Electric Bass (finger)", fluidR3InstrumentName: "electric_bass_finger", exactMap: true },
35: { midiInstrumentName: "Electric Bass (picked)", fluidR3InstrumentName: "electric_bass_pick", exactMap: true }, 35: { midiInstrumentName: "Electric Bass (picked)", fluidR3InstrumentName: "electric_bass_pick", exactMap: true },
36: { midiInstrumentName: "Electric Bass (fretless)", fluidR3InstrumentName: "electric_bass_finger", exactMap: false }, 36: { midiInstrumentName: "Electric Bass (fretless)", fluidR3InstrumentName: "electric_bass_finger", exactMap: false },
37: { midiInstrumentName: "Slap Bass 1", fluidR3InstrumentName: "slap_bass_1", exactMap: true }, 37: { midiInstrumentName: "Slap Bass 1", fluidR3InstrumentName: "slap_bass_1", exactMap: true },
38: { midiInstrumentName: "Slap Bass 2", fluidR3InstrumentName: "slap_bass_1", exactMap: false }, 38: { midiInstrumentName: "Slap Bass 2", fluidR3InstrumentName: "slap_bass_1", exactMap: false },
39: { midiInstrumentName: "Synth Bass 1", fluidR3InstrumentName: "lead_2_sawtooth", exactMap: false }, 39: { midiInstrumentName: "Synth Bass 1", fluidR3InstrumentName: "synth_bass_1", exactMap: true },
40: { midiInstrumentName: "Synth Bass 2", fluidR3InstrumentName: "lead_1_square", exactMap: false }, 40: { midiInstrumentName: "Synth Bass 2", fluidR3InstrumentName: "lead_1_square", exactMap: false },
41: { midiInstrumentName: "Violin", fluidR3InstrumentName: "violin", exactMap: true }, 41: { midiInstrumentName: "Violin", fluidR3InstrumentName: "violin", exactMap: true },
42: { midiInstrumentName: "Viola", fluidR3InstrumentName: "viola", exactMap: true }, 42: { midiInstrumentName: "Viola", fluidR3InstrumentName: "viola", exactMap: true },
@@ -265,7 +293,7 @@ export const STANDARD_MIDI_INSTRUMENT_MAP: {
47: { midiInstrumentName: "Orchestral Harp", fluidR3InstrumentName: "orchestral_harp", exactMap: true }, 47: { midiInstrumentName: "Orchestral Harp", fluidR3InstrumentName: "orchestral_harp", exactMap: true },
48: { midiInstrumentName: "Timpani", fluidR3InstrumentName: "timpani", exactMap: true }, 48: { midiInstrumentName: "Timpani", fluidR3InstrumentName: "timpani", exactMap: true },
49: { midiInstrumentName: "String Ensemble 1", fluidR3InstrumentName: "string_ensemble_1", exactMap: true }, 49: { midiInstrumentName: "String Ensemble 1", fluidR3InstrumentName: "string_ensemble_1", exactMap: true },
50: { midiInstrumentName: "String Ensemble 2", fluidR3InstrumentName: "string_ensemble_1", exactMap: false }, 50: { midiInstrumentName: "String Ensemble 2", fluidR3InstrumentName: "string_ensemble_2", exactMap: true },
51: { midiInstrumentName: "Synth Strings 1", fluidR3InstrumentName: "pad_3_polysynth", exactMap: false }, 51: { midiInstrumentName: "Synth Strings 1", fluidR3InstrumentName: "pad_3_polysynth", exactMap: false },
52: { midiInstrumentName: "Synth Strings 2", fluidR3InstrumentName: "pad_2_warm", exactMap: false }, 52: { midiInstrumentName: "Synth Strings 2", fluidR3InstrumentName: "pad_2_warm", exactMap: false },
53: { midiInstrumentName: "Choir Aahs", fluidR3InstrumentName: "pad_2_warm", exactMap: false }, 53: { midiInstrumentName: "Choir Aahs", fluidR3InstrumentName: "pad_2_warm", exactMap: false },
@@ -274,26 +302,26 @@ export const STANDARD_MIDI_INSTRUMENT_MAP: {
56: { midiInstrumentName: "Orchestra Hit", fluidR3InstrumentName: "brass_section", exactMap: false }, 56: { midiInstrumentName: "Orchestra Hit", fluidR3InstrumentName: "brass_section", exactMap: false },
57: { midiInstrumentName: "Trumpet", fluidR3InstrumentName: "trumpet", exactMap: true }, 57: { midiInstrumentName: "Trumpet", fluidR3InstrumentName: "trumpet", exactMap: true },
58: { midiInstrumentName: "Trombone", fluidR3InstrumentName: "trombone", exactMap: true }, 58: { midiInstrumentName: "Trombone", fluidR3InstrumentName: "trombone", exactMap: true },
59: { midiInstrumentName: "Tuba", fluidR3InstrumentName: "trombone", exactMap: false }, 59: { midiInstrumentName: "Tuba", fluidR3InstrumentName: "tuba", exactMap: true },
60: { midiInstrumentName: "Muted Trumpet", fluidR3InstrumentName: "trumpet", exactMap: false }, 60: { midiInstrumentName: "Muted Trumpet", fluidR3InstrumentName: "trumpet", exactMap: false },
61: { midiInstrumentName: "French Horn", fluidR3InstrumentName: "french_horn", exactMap: true }, 61: { midiInstrumentName: "French Horn", fluidR3InstrumentName: "french_horn", exactMap: true },
62: { midiInstrumentName: "Brass Section", fluidR3InstrumentName: "brass_section", exactMap: true }, 62: { midiInstrumentName: "Brass Section", fluidR3InstrumentName: "brass_section", exactMap: true },
63: { midiInstrumentName: "Synth Brass 1", fluidR3InstrumentName: "brass_section", exactMap: false }, 63: { midiInstrumentName: "Synth Brass 1", fluidR3InstrumentName: "brass_section", exactMap: false },
64: { midiInstrumentName: "Synth Brass 2", fluidR3InstrumentName: "brass_section", exactMap: false }, 64: { midiInstrumentName: "Synth Brass 2", fluidR3InstrumentName: "brass_section", exactMap: false },
65: { midiInstrumentName: "Soprano Sax", fluidR3InstrumentName: "alto_sax", exactMap: false }, 65: { midiInstrumentName: "Soprano Sax", fluidR3InstrumentName: "soprano_sax", exactMap: true },
66: { midiInstrumentName: "Alto Sax", fluidR3InstrumentName: "alto_sax", exactMap: true }, 66: { midiInstrumentName: "Alto Sax", fluidR3InstrumentName: "alto_sax", exactMap: true },
67: { midiInstrumentName: "Tenor Sax", fluidR3InstrumentName: "tenor_sax", exactMap: true }, 67: { midiInstrumentName: "Tenor Sax", fluidR3InstrumentName: "tenor_sax", exactMap: true },
68: { midiInstrumentName: "Baritone Sax", fluidR3InstrumentName: "tenor_sax", exactMap: false }, 68: { midiInstrumentName: "Baritone Sax", fluidR3InstrumentName: "baritone_sax", exactMap: true },
69: { midiInstrumentName: "Oboe", fluidR3InstrumentName: "clarinet", exactMap: false }, 69: { midiInstrumentName: "Oboe", fluidR3InstrumentName: "oboe", exactMap: true },
70: { midiInstrumentName: "English Horn", fluidR3InstrumentName: "clarinet", exactMap: false }, 70: { midiInstrumentName: "English Horn", fluidR3InstrumentName: "english_horn", exactMap: true },
71: { midiInstrumentName: "Bassoon", fluidR3InstrumentName: "clarinet", exactMap: false }, 71: { midiInstrumentName: "Bassoon", fluidR3InstrumentName: "bassoon", exactMap: true },
72: { midiInstrumentName: "Clarinet", fluidR3InstrumentName: "clarinet", exactMap: true }, 72: { midiInstrumentName: "Clarinet", fluidR3InstrumentName: "clarinet", exactMap: true },
73: { midiInstrumentName: "Piccolo", fluidR3InstrumentName: "flute", exactMap: false }, 73: { midiInstrumentName: "Piccolo", fluidR3InstrumentName: "piccolo", exactMap: true },
74: { midiInstrumentName: "Flute", fluidR3InstrumentName: "flute", exactMap: true }, 74: { midiInstrumentName: "Flute", fluidR3InstrumentName: "flute", exactMap: true },
75: { midiInstrumentName: "Recorder", fluidR3InstrumentName: "flute", exactMap: false }, 75: { midiInstrumentName: "Recorder", fluidR3InstrumentName: "flute", exactMap: false },
76: { midiInstrumentName: "Pan Flute", fluidR3InstrumentName: "flute", exactMap: false }, 76: { midiInstrumentName: "Pan Flute", fluidR3InstrumentName: "flute", exactMap: false },
77: { midiInstrumentName: "Blown Bottle", fluidR3InstrumentName: "flute", exactMap: false }, 77: { midiInstrumentName: "Blown Bottle", fluidR3InstrumentName: "flute", exactMap: false },
78: { midiInstrumentName: "Shakuhachi", fluidR3InstrumentName: "flute", exactMap: false }, 78: { midiInstrumentName: "Shakuhachi", fluidR3InstrumentName: "shakuhachi", exactMap: true },
79: { midiInstrumentName: "Whistle", fluidR3InstrumentName: "flute", exactMap: false }, 79: { midiInstrumentName: "Whistle", fluidR3InstrumentName: "flute", exactMap: false },
80: { midiInstrumentName: "Ocarina", fluidR3InstrumentName: "flute", exactMap: false }, 80: { midiInstrumentName: "Ocarina", fluidR3InstrumentName: "flute", exactMap: false },
81: { midiInstrumentName: "Lead 1 (square)", fluidR3InstrumentName: "lead_1_square", exactMap: true }, 81: { midiInstrumentName: "Lead 1 (square)", fluidR3InstrumentName: "lead_1_square", exactMap: true },
@@ -307,19 +335,19 @@ export const STANDARD_MIDI_INSTRUMENT_MAP: {
89: { midiInstrumentName: "Pad 1 (new age)", fluidR3InstrumentName: "pad_1_new_age", exactMap: true }, 89: { midiInstrumentName: "Pad 1 (new age)", fluidR3InstrumentName: "pad_1_new_age", exactMap: true },
90: { midiInstrumentName: "Pad 2 (warm)", fluidR3InstrumentName: "pad_2_warm", exactMap: true }, 90: { midiInstrumentName: "Pad 2 (warm)", fluidR3InstrumentName: "pad_2_warm", exactMap: true },
91: { midiInstrumentName: "Pad 3 (polysynth)", fluidR3InstrumentName: "pad_3_polysynth", exactMap: true }, 91: { midiInstrumentName: "Pad 3 (polysynth)", fluidR3InstrumentName: "pad_3_polysynth", exactMap: true },
92: { midiInstrumentName: "Pad 4 (choir)", fluidR3InstrumentName: "pad_2_warm", exactMap: false }, 92: { midiInstrumentName: "Pad 4 (choir)", fluidR3InstrumentName: "pad_4_choir", exactMap: true },
93: { midiInstrumentName: "Pad 5 (bowed glass)", fluidR3InstrumentName: "fx_4_atmosphere", exactMap: false }, 93: { midiInstrumentName: "Pad 5 (bowed glass)", fluidR3InstrumentName: "pad_5_bowed", exactMap: true },
94: { midiInstrumentName: "Pad 6 (metallic)", fluidR3InstrumentName: "fx_4_atmosphere", exactMap: false }, 94: { midiInstrumentName: "Pad 6 (metallic)", fluidR3InstrumentName: "pad_6_metallic", exactMap: true },
95: { midiInstrumentName: "Pad 7 (halo)", fluidR3InstrumentName: "pad_1_new_age", exactMap: false }, 95: { midiInstrumentName: "Pad 7 (halo)", fluidR3InstrumentName: "pad_7_halo", exactMap: true },
96: { midiInstrumentName: "Pad 8 (sweep)", fluidR3InstrumentName: "pad_1_new_age", exactMap: false }, 96: { midiInstrumentName: "Pad 8 (sweep)", fluidR3InstrumentName: "pad_8_sweep", exactMap: true },
97: { midiInstrumentName: "FX 1 (rain)", fluidR3InstrumentName: "fx_4_atmosphere", exactMap: false }, 97: { midiInstrumentName: "FX 1 (rain)", fluidR3InstrumentName: "fx_1_rain", exactMap: true },
98: { midiInstrumentName: "FX 2 (soundtrack)", fluidR3InstrumentName: "fx_4_atmosphere", exactMap: false }, 98: { midiInstrumentName: "FX 2 (soundtrack)", fluidR3InstrumentName: "fx_2_soundtrack", exactMap: true },
99: { midiInstrumentName: "FX 3 (crystal)", fluidR3InstrumentName: "fx_4_atmosphere", exactMap: false }, 99: { midiInstrumentName: "FX 3 (crystal)", fluidR3InstrumentName: "fx_3_crystal", exactMap: true },
100: { midiInstrumentName: "FX 4 (atmosphere)", fluidR3InstrumentName: "fx_4_atmosphere", exactMap: true }, 100: { midiInstrumentName: "FX 4 (atmosphere)", fluidR3InstrumentName: "fx_4_atmosphere", exactMap: true },
101: { midiInstrumentName: "FX 5 (brightness)", fluidR3InstrumentName: "fx_4_atmosphere", exactMap: false }, 101: { midiInstrumentName: "FX 5 (brightness)", fluidR3InstrumentName: "fx_5_brightness", exactMap: true },
102: { midiInstrumentName: "FX 6 (goblins)", fluidR3InstrumentName: "fx_4_atmosphere", exactMap: false }, 102: { midiInstrumentName: "FX 6 (goblins)", fluidR3InstrumentName: "fx_6_goblins", exactMap: true },
103: { midiInstrumentName: "FX 7 (echoes)", fluidR3InstrumentName: "fx_4_atmosphere", exactMap: false }, 103: { midiInstrumentName: "FX 7 (echoes)", fluidR3InstrumentName: "fx_7_echoes", exactMap: true },
104: { midiInstrumentName: "FX 8 (sci-fi)", fluidR3InstrumentName: "fx_4_atmosphere", exactMap: false }, 104: { midiInstrumentName: "FX 8 (sci-fi)", fluidR3InstrumentName: "fx_8_scifi", exactMap: true },
105: { midiInstrumentName: "Sitar", fluidR3InstrumentName: "harpsichord", exactMap: false }, 105: { midiInstrumentName: "Sitar", fluidR3InstrumentName: "harpsichord", exactMap: false },
106: { midiInstrumentName: "Banjo", fluidR3InstrumentName: "acoustic_guitar_steel", exactMap: false }, 106: { midiInstrumentName: "Banjo", fluidR3InstrumentName: "acoustic_guitar_steel", exactMap: false },
107: { midiInstrumentName: "Shamisen", fluidR3InstrumentName: "acoustic_guitar_nylon", exactMap: false }, 107: { midiInstrumentName: "Shamisen", fluidR3InstrumentName: "acoustic_guitar_nylon", exactMap: false },