FluidSynth / fluidsynth

Software synthesizer based on the SoundFont 2 specifications
https://www.fluidsynth.org
GNU Lesser General Public License v2.1
1.88k stars 260 forks source link

Some soundfonts loaded incorrectly #171

Closed basic2004 closed 7 years ago

basic2004 commented 7 years ago

I used FluidSynth since 1.1.6, this loads these fonts incorrectly. and current develpment version too. Soundfonts are here. 'Mini Groove88ish v3', 'masquerade55' https://www.vogons.org/viewtopic.php?f=9&t=46427

I saw this error, 'No preset found' with almost instruments of 'Mini Groove88ish v3' and doesn't play MIDI (or distorted), buggy pitch with some instruments (Harmonica) of 'masquerade55'.

BA*SMIDI loaded and played these correctly. (but this can use only Windows, not multi platform)

I tested two MIDI songs, W4DEBBY and TROPIC88. W4DEBBY - Easy to hearing Harmonica sound, buggy with 'masquerade55'. TROPIC88 - don't fade out when end of song. This MIDI fading down master volume. and wrong drum channel. this using drum with channel 2 and 3, 10 channel using melodic. I attach these. miditest.zip

derselbst commented 7 years ago

May I ask where these MIDIs where taken from?

I had a first look at TROPIC88.mid: it uses Roland SysEx events to control the master volume, which apparently are currently not supported by fluidsynth. One would have to extend SysEx parsing at fluid_synth.c:1270 by doing something like

if(data[0] == MIDI_SYSEX_MANUF_ROLAND)
  parse_roland_sysex();

Though I'm not sure these sysex events are standardized, I would welcome a patch for this.

[TROPIC88.mid is] using drum with channel 2 and 3, 10 channel using melodic.

If it uses channel 2 and 3 for drum, the midi should just select the correct bank of the soundfont and it should work. How this is done (i.e. via CC0 XOR CC32 XOR (CC0 AND CC32)) depends on fluidsynths synth.midi-bank-select. Unfortunately channel 10 is currently hardcoded to bank 128 and cant be changed. I'm planning to fix/improve this behaviour next release.

I havent yet tested your soundfont issue, will do this later.

basic2004 commented 7 years ago

I took TROPIC88 from here. 'Something Tropical', for SC-88. http://woodymonaco.web.fc2.com/midi/midi.html

Anomaria composed this song 20 years ago, distributed in NiftyServe (Japanese telnet BBS) he allowed this MIDI redistributing when he distributed there. I used RCP2MID, converted RCP MIDI to SMF.

Waltz for debby, this MIDI searched many internet sites, I found again from here today. http://www.mobetterblues.altervista.org/midi_jazz/e.htm

And I want compile current development version with MinGW, but I failed with "the procedure entry point g_cond_broadcast could not be located in the dynamic link library libfluidsynth.dll" without IPV6 and disabled inet_ntop like this patch. https://sourceforge.net/p/fluidsynth/tickets/134/ I saw a linker error about inet_ntop before patch.

basic2004 commented 7 years ago
B:\fluidsynth-fluidsys\bin>fluidsynth --audio-driver=dsound "C:\Soundfonts\Mini Groove88ish v3.sf2" "C:\MIDI\SUPLEX.MID"
FluidSynth version 1.1.6
Copyright (C) 2000-2012 Peter Hanappe and others.
Distributed under the LGPL license.
SoundFont(R) is a registered trademark of E-mu Systems, Inc.

fluidsynth: warning: Instrument "Strings C": Some invalid generators were discarded
fluidsynth: warning: Instrument "Sine wave A A A A CA": Some invalid generators were discarded
fluidsynth: warning: Instrument "Sine wave A A A A C": Some invalid generators were discarded
fluidsynth: warning: Instrument "Ensemble_Orch_Hit_88": Some invalid generators were discarded
fluidsynth: warning: Instrument "Sine wave A A A A CB": Some invalid generators were discarded
fluidsynth: warning: Instrument "Sine wave A A A A CC": Some invalid generators were discarded
fluidsynth: warning: Instrument "Tub bell1 A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Tub bell2": Some invalid generators were discarded
fluidsynth: warning: Instrument "Sine14_009 A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Nylon-str.Gt009": Some invalid generators were discarded
fluidsynth: warning: Instrument "HC_Dist Drive-30 A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Dist_FX 30 D A B A B": Some invalid generators were discarded
fluidsynth: warning: Instrument "High_OD-29": Some invalid generators were discarded
fluidsynth: warning: Instrument "Philly Hit Layer 1": Some invalid generators were discarded
fluidsynth: warning: Instrument "Choir Ahhs A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Strings B": Some invalid generators were discarded
fluidsynth: warning: Instrument "FrenchHorns Layer1 C": Some invalid generators were discarded
fluidsynth: warning: Instrument "burst noize Layer 1A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Synth DrumP": Some invalid generators were discarded
fluidsynth: warning: Instrument "E.Piano 1 A": Some invalid generators were discarded
fluidsynth: warning: Instrument "E.Piano 1 A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "E.Piano 2 A C A A B": Some invalid generators were discarded
fluidsynth: warning: Instrument "E.Piano 2 A C A A C": Some invalid generators were discarded
fluidsynth: warning: Instrument "DX7_1 A B A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "DX7_1 B B A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "DX7_1 C A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Tub bell1": Some invalid generators were discarded
fluidsynth: warning: Instrument "Tub bell2 A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Tub bell1 dy": Some invalid generators were discarded
fluidsynth: warning: Instrument "Tub bell2 dy": Some invalid generators were discarded
fluidsynth: warning: Instrument "Rotary Org.F -SC88PC": Some invalid generators were discarded
fluidsynth: warning: Instrument "Organ1 Layer 1 A C": Some invalid generators were discarded
fluidsynth: warning: Instrument "Organ 2 88 A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Instrument1 A A A B": Some invalid generators were discarded
fluidsynth: warning: Instrument "021 AccordianFr A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "021 AccordianFr A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Organ1 Layer 1 B": Some invalid generators were discarded
fluidsynth: warning: Instrument "Organ_Pipe": Some invalid generators were discarded
fluidsynth: warning: Instrument "Church Org.1 A B": Some invalid generators were discarded
fluidsynth: warning: Instrument "Nylon0Gt_000 A A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Clean Guitar 88 A AA": Some invalid generators were discarded
fluidsynth: warning: Instrument "Clean Guitar echo": Some invalid generators were discarded
fluidsynth: warning: Instrument "Clean Guitar 88 A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Bass pop": Some invalid generators were discarded
fluidsynth: warning: Instrument "HC_Dist Drive-30 A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Dist_FX 30 D A B": Some invalid generators were discarded
fluidsynth: warning: Instrument "High_OD-29 A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Sine FB31 A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Sine FB31": Some invalid generators were discarded
fluidsynth: warning: Instrument "Ensemble_Orch_Hit_8C": Some invalid generators were discarded
fluidsynth: warning: Instrument "Strings D": Some invalid generators were discarded
fluidsynth: warning: Instrument "Brass 1 C A C A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Saw Stacked63a A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Brass 1 B": Some invalid generators were discarded
fluidsynth: warning: Instrument "Brass 1 A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Brassy Wave A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Brassy back": Some invalid generators were discarded
fluidsynth: warning: Instrument "SAW_stack1 E A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Saw Stacked63a A A B": Some invalid generators were discarded
fluidsynth: warning: Instrument "Sine wave A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Sqr Wave HQ A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Brassy Wave B": Some invalid generators were discarded
fluidsynth: warning: Instrument "Clean Guitar 88 A AC": Some invalid generators were discarded
fluidsynth: warning: Instrument "107 Koto A A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "107 Koto A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "107 Koto B": Some invalid generators were discarded
fluidsynth: warning: Instrument "AGOGO": Some invalid generators were discarded
fluidsynth: warning: Instrument "Castanets": Some invalid generators were discarded
fluidsynth: warning: Instrument "808 Tom A B": Some invalid generators were discarded
fluidsynth: warning: Instrument "Melodic Tom A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Starship": Some invalid generators were discarded
fluidsynth: warning: Instrument "Jetplane": Some invalid generators were discarded
fluidsynth: warning: Instrument "Saw Stacked63a A A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "SAW_stack1 E A A B B": Some invalid generators were discarded
fluidsynth: warning: Instrument "Sqr Wave HQ A A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Applause A": Some invalid generators were discarded
fluidsynth: warning: Instrument "120 Pick Scrape": Some invalid generators were discarded
fluidsynth: warning: Instrument "Train": Some invalid generators were discarded
fluidsynth: warning: Instrument "Sqr Wave HQ A A A AE": Some invalid generators were discarded
fluidsynth: warning: Instrument "Sine wave C": Some invalid generators were discarded
fluidsynth: warning: Instrument "120 Bass Slide": Some invalid generators were discarded
fluidsynth: warning: Instrument "Bubble": Some invalid generators were discarded
fluidsynth: warning: Instrument "Wind Chimes": Some invalid generators were discarded
fluidsynth: warning: Instrument "Siren": Some invalid generators were discarded
fluidsynth: warning: Instrument "Footsteps": Some invalid generators were discarded
fluidsynth: warning: Instrument "Sine wave A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Sine Perc B A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Crystal B A B A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Stream": Some invalid generators were discarded
fluidsynth: warning: Instrument "Scratch": Some invalid generators were discarded
fluidsynth: warning: Instrument "Car-Crash": Some invalid generators were discarded
fluidsynth: warning: Instrument "Heart Beat": Some invalid generators were discarded
fluidsynth: warning: Instrument "SAW_stack1 E A A B D": Some invalid generators were discarded
fluidsynth: warning: Instrument "Saw Stacked63a A A C": Some invalid generators were discarded
fluidsynth: warning: Instrument "SAW_stack1 E A A B": Some invalid generators were discarded
fluidsynth: warning: Instrument "Crystal B A B A D": Some invalid generators were discarded
fluidsynth: warning: Instrument "Wind": Some invalid generators were discarded
fluidsynth: warning: Instrument "123 Bird 2": Some invalid generators were discarded
fluidsynth: warning: Instrument "Door": Some invalid generators were discarded
fluidsynth: warning: Instrument "Car-Pass": Some invalid generators were discarded
fluidsynth: warning: Instrument "Punch": Some invalid generators were discarded
fluidsynth: warning: Instrument "Explosion": Some invalid generators were discarded
fluidsynth: warning: Instrument "EG piano B": Some invalid generators were discarded
fluidsynth: warning: Instrument "E.Piano 2 A C A A AA": Some invalid generators were discarded
fluidsynth: warning: Instrument "Strmodbs": Some invalid generators were discarded
fluidsynth: warning: Instrument "MnstrMGbs1 A A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Sqr Wave HQ A B B": Some invalid generators were discarded
fluidsynth: warning: Instrument "075 Pan Flute E B AC": Some invalid generators were discarded
fluidsynth: warning: Instrument "Sine Perc A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Sine Perc B": Some invalid generators were discarded
fluidsynth: warning: Instrument "Synth Brass-62 A A B": Some invalid generators were discarded
fluidsynth: warning: Instrument "African Wood": Some invalid generators were discarded
fluidsynth: warning: Instrument "String Slap A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Thunder": Some invalid generators were discarded
fluidsynth: warning: Instrument "Horse-Gallop": Some invalid generators were discarded
fluidsynth: warning: Instrument "DoorCreaking": Some invalid generators were discarded
fluidsynth: warning: Instrument "Car-Stop": Some invalid generators were discarded
fluidsynth: warning: Instrument "Screaming": Some invalid generators were discarded
fluidsynth: warning: Instrument "Lasergun": Some invalid generators were discarded
fluidsynth: warning: Instrument "EG piano A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "E.Piano 1": Some invalid generators were discarded
fluidsynth: warning: Instrument "Rock Rhythm": Some invalid generators were discarded
fluidsynth: warning: Instrument "HC_Dist Drive-30": Some invalid generators were discarded
fluidsynth: warning: Instrument "Dist_FX 30 D A B A": Some invalid generators were discarded
fluidsynth: warning: Instrument "High_OD-29 B": Some invalid generators were discarded
fluidsynth: warning: Instrument "String Slap A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Saw Stacked63a A A G": Some invalid generators were discarded
fluidsynth: warning: Instrument "Trombone-57 A B": Some invalid generators were discarded
fluidsynth: warning: Instrument "Trombone-57 A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Roland Brightness BA": Some invalid generators were discarded
fluidsynth: warning: Instrument "Fantasia Bell A D": Some invalid generators were discarded
fluidsynth: warning: Instrument "Fantasia Bell A A AA": Some invalid generators were discarded
fluidsynth: warning: Instrument "Sqr Wave HQ A B": Some invalid generators were discarded
fluidsynth: warning: Instrument "Sqr Wave HQ A": Some invalid generators were discarded
fluidsynth: warning: Instrument "105 Banjo A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Synth Brass-62 B": Some invalid generators were discarded
fluidsynth: warning: Instrument "Sqr Wave HQ A B A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Bowed Glass Bell": Some invalid generators were discarded
fluidsynth: warning: Instrument "104 Sitar": Some invalid generators were discarded
fluidsynth: warning: Instrument "104 Sitar C": Some invalid generators were discarded
fluidsynth: warning: Instrument "Gt.Cut Noise": Some invalid generators were discarded
fluidsynth: warning: Instrument "Fl.Key Click": Some invalid generators were discarded
fluidsynth: warning: Instrument "Rain": Some invalid generators were discarded
fluidsynth: warning: Instrument "Dog": Some invalid generators were discarded
fluidsynth: warning: Instrument "Telephone 2": Some invalid generators were discarded
fluidsynth: warning: Instrument "Car-Engine": Some invalid generators were discarded
fluidsynth: warning: Instrument "Laughing": Some invalid generators were discarded
fluidsynth: warning: Instrument "Machine Gun": Some invalid generators were discarded
fluidsynth: warning: Instrument "Piano 1 D A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Piano 1 F": Some invalid generators were discarded
fluidsynth: warning: Instrument "EG piano": Some invalid generators were discarded
fluidsynth: warning: Instrument "Piano 2 C A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Piano 1 E": Some invalid generators were discarded
fluidsynth: warning: Instrument "Piano 1 H": Some invalid generators were discarded
fluidsynth: warning: Instrument "Piano 1 B A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Piano 1 C A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Piano 1 A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Piano 1 A A A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Piano 1 G A": Some invalid generators were discarded
fluidsynth: warning: Instrument "007 Clav. A A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "EG piano A": Some invalid generators were discarded
fluidsynth: warning: Instrument "009 Glockenspiel A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Music Box0": Some invalid generators were discarded
fluidsynth: warning: Instrument "Vibraphone": Some invalid generators were discarded
fluidsynth: warning: Instrument "Marimba": Some invalid generators were discarded
fluidsynth: warning: Instrument "Xylophone": Some invalid generators were discarded
fluidsynth: warning: Instrument "015 Santur": Some invalid generators were discarded
fluidsynth: warning: Instrument "E.Piano 1 B": Some invalid generators were discarded
fluidsynth: warning: Instrument "E.Piano 2 A C A A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "DX7_1 A B A": Some invalid generators were discarded
fluidsynth: warning: Instrument "DX7_1 B B A": Some invalid generators were discarded
fluidsynth: warning: Instrument "DX7_1 C A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Instrument1 A A A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "88 NylonGt": Some invalid generators were discarded
fluidsynth: warning: Instrument "Clean Guitar 88 A AA": Some invalid generators were discarded
fluidsynth: warning: Instrument "023 AccordianFr1": Some invalid generators were discarded
fluidsynth: warning: Instrument "023 Bandoneon": Some invalid generators were discarded
fluidsynth: warning: Instrument "022 Harmonica": Some invalid generators were discarded
fluidsynth: warning: Instrument "021 AccordianFr2": Some invalid generators were discarded
fluidsynth: warning: Instrument "021 AccordianFr1": Some invalid generators were discarded
fluidsynth: warning: Instrument "020 AccordianFr2": Some invalid generators were discarded
fluidsynth: warning: Instrument "020 AccordianFr1": Some invalid generators were discarded
fluidsynth: warning: Instrument "Organ1 Layer 1": Some invalid generators were discarded
fluidsynth: warning: Instrument "Organ_Pipe A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Church Org.1 A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Instrument1 A A A AA": Some invalid generators were discarded
fluidsynth: warning: Instrument "Organ 3 Wave": Some invalid generators were discarded
fluidsynth: warning: Instrument "Organ1 Layer 1 A A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "High_OD-29 A": Some invalid generators were discarded
fluidsynth: warning: Instrument "HC_Dist Drive-30 A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Dist_FX 30 D A B A B": Some invalid generators were discarded
fluidsynth: warning: Instrument "High_OD-29 B A": Some invalid generators were discarded
fluidsynth: warning: Instrument "TIMPANI": Some invalid generators were discarded
fluidsynth: warning: Instrument "Pizz Strings B": Some invalid generators were discarded
fluidsynth: warning: Instrument "Acou. Bass -SC88P": Some invalid generators were discarded
fluidsynth: warning: Instrument "88 fret": Some invalid generators were discarded
fluidsynth: warning: Instrument "Bass pop A": Some invalid generators were discarded
fluidsynth: warning: Instrument "OrchestraHit -SC88P": Some invalid generators were discarded
fluidsynth: warning: Instrument "Saw Stacked63a B": Some invalid generators were discarded
fluidsynth: warning: Instrument "Saw Stacked63a A A E": Some invalid generators were discarded
fluidsynth: warning: Instrument "Slow Strings": Some invalid generators were discarded
fluidsynth: warning: Instrument "Strings A D": Some invalid generators were discarded
fluidsynth: warning: Instrument "048 Strings A B A": Some invalid generators were discarded
fluidsynth: warning: Instrument "SAW_stack1 E A A A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Saw Stacked63a A A B": Some invalid generators were discarded
fluidsynth: warning: Instrument "Synth Brass-62 A A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "SAW_stack1 E A A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Saw Stacked63a A A F": Some invalid generators were discarded
fluidsynth: warning: Instrument "Brassy Wave2": Some invalid generators were discarded
fluidsynth: warning: Instrument "Trombone-57 A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Tuba-58": Some invalid generators were discarded
fluidsynth: warning: Instrument "MutedTrumpet-59": Some invalid generators were discarded
fluidsynth: warning: Instrument "Brass-60": Some invalid generators were discarded
fluidsynth: warning: Instrument "Fr.Horns-60 B": Some invalid generators were discarded
fluidsynth: warning: Instrument "Brass-61": Some invalid generators were discarded
fluidsynth: warning: Instrument "Alto Sax Layer 1 A B": Some invalid generators were discarded
fluidsynth: warning: Instrument "Baritone Sax Layer A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Oboe A": Some invalid generators were discarded
fluidsynth: warning: Instrument "English Horn": Some invalid generators were discarded
fluidsynth: warning: Instrument "070 Bassoon": Some invalid generators were discarded
fluidsynth: warning: Instrument "Clarinet": Some invalid generators were discarded
fluidsynth: warning: Instrument "074 Recorder": Some invalid generators were discarded
fluidsynth: warning: Instrument "Pan75": Some invalid generators were discarded
fluidsynth: warning: Instrument "075 Pan Flute": Some invalid generators were discarded
fluidsynth: warning: Instrument "Sine wave_000": Some invalid generators were discarded
fluidsynth: warning: Instrument "Saw Stacked63a A A C": Some invalid generators were discarded
fluidsynth: warning: Instrument "SAW_stack1 E A A B A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Sqr Wave HQ1 A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Sqr Wave HQ2": Some invalid generators were discarded
fluidsynth: warning: Instrument "082 Pan call": Some invalid generators were discarded
fluidsynth: warning: Instrument "SAW_stack1 E A A C": Some invalid generators were discarded
fluidsynth: warning: Instrument "Brassy Wave D": Some invalid generators were discarded
fluidsynth: warning: Instrument "Cliff flute": Some invalid generators were discarded
fluidsynth: warning: Instrument "Pan Vox": Some invalid generators were discarded
fluidsynth: warning: Instrument "Saw Stacked B": Some invalid generators were discarded
fluidsynth: warning: Instrument "Saw Stacked D": Some invalid generators were discarded
fluidsynth: warning: Instrument "Fantasia Bell A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Fantasia Bell A B": Some invalid generators were discarded
fluidsynth: warning: Instrument "Roland Brightness B": Some invalid generators were discarded
fluidsynth: warning: Instrument "Space Voice": Some invalid generators were discarded
fluidsynth: warning: Instrument "Glass_Bell A": Some invalid generators were discarded
fluidsynth: warning: Instrument "SynStr.000_95_1": Some invalid generators were discarded
fluidsynth: warning: Instrument "SynStr.000_95_2": Some invalid generators were discarded
fluidsynth: warning: Instrument "Saw Stacked63a A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Clean Guitar 88 A": Some invalid generators were discarded
fluidsynth: warning: Instrument "loop A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Roland Brightness A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Crystal B A B A C": Some invalid generators were discarded
fluidsynth: warning: Instrument "Nylon0Gt_099 A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Roland Brightness": Some invalid generators were discarded
fluidsynth: warning: Instrument "Goblin edit Layer 1": Some invalid generators were discarded
fluidsynth: warning: Instrument "Clean Guitar 88": Some invalid generators were discarded
fluidsynth: warning: Instrument "104 Sitar D": Some invalid generators were discarded
fluidsynth: warning: Instrument "105 Banjo B A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Ethnic_Shamisen_GM": Some invalid generators were discarded
fluidsynth: warning: Instrument "107 Koto": Some invalid generators were discarded
fluidsynth: warning: Instrument "Kalimba": Some invalid generators were discarded
fluidsynth: warning: Instrument "Bagpipe": Some invalid generators were discarded
fluidsynth: warning: Instrument "Agogo": Some invalid generators were discarded
fluidsynth: warning: Instrument "Steel Drums": Some invalid generators were discarded
fluidsynth: warning: Instrument "Woodblock": Some invalid generators were discarded
fluidsynth: warning: Instrument "Taiko": Some invalid generators were discarded
fluidsynth: warning: Instrument "Melodic Tom": Some invalid generators were discarded
fluidsynth: warning: Instrument "Synth Drum": Some invalid generators were discarded
fluidsynth: warning: Instrument "Reverse Cymbal": Some invalid generators were discarded
fluidsynth: warning: Instrument "Gt.FretNoise": Some invalid generators were discarded
fluidsynth: warning: Instrument "Seashore": Some invalid generators were discarded
fluidsynth: warning: Instrument "Bird": Some invalid generators were discarded
fluidsynth: warning: Instrument "Telephone 1": Some invalid generators were discarded
fluidsynth: warning: Instrument "Helicopter": Some invalid generators were discarded
fluidsynth: warning: Instrument "Applause C": Some invalid generators were discarded
fluidsynth: warning: Instrument "Applause A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Gun Shot": Some invalid generators were discarded
fluidsynth: warning: Instrument "E.Piano 1 B A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Rhodes F B C": Some invalid generators were discarded
fluidsynth: warning: Instrument "HC_Dist Drive-30 B": Some invalid generators were discarded
fluidsynth: warning: Instrument "Dist_FX 30 D A B A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "High_OD-29 A A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Rock Rhythm A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Nylon-st2 A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Ac.Gt. Harmnx LayerA": Some invalid generators were discarded
fluidsynth: warning: Instrument "Sine_org_24": Some invalid generators were discarded
fluidsynth: warning: Instrument "Rotary Org.F -SC88PB": Some invalid generators were discarded
fluidsynth: warning: Instrument "030 DistortionGt. A": Some invalid generators were discarded
fluidsynth: warning: Instrument "POWER gt1 A B A A AB": Some invalid generators were discarded
fluidsynth: warning: Instrument "Rock Rhythm A A A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Sine12_016 A": Some invalid generators were discarded
fluidsynth: warning: Instrument "030 DistortionGt. B": Some invalid generators were discarded
fluidsynth: warning: Instrument "POWER gt1 A B A A AC": Some invalid generators were discarded
fluidsynth: warning: Instrument "E.Piano 1 B A": Some invalid generators were discarded
fluidsynth: warning: Instrument "E.Piano 2 A C A A BA": Some invalid generators were discarded
fluidsynth: warning: Instrument "E.Piano 2 A C A A CA": Some invalid generators were discarded
fluidsynth: warning: Instrument "DX7_1 A B A A A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "DX7_1 B B": Some invalid generators were discarded
fluidsynth: warning: Instrument "DX7_1 C": Some invalid generators were discarded
fluidsynth: warning: Instrument "Rhodes F B A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Piano 1 B A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Piano 1 A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Piano 1 A A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Piano 1 D": Some invalid generators were discarded
fluidsynth: warning: Instrument "Piano 1 I": Some invalid generators were discarded
fluidsynth: warning: Instrument "Piano 1 E A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Piano 1 G": Some invalid generators were discarded
fluidsynth: warning: Instrument "Ac.Gt. Harmnx Layer": Some invalid generators were discarded
fluidsynth: warning: Instrument "Rotary Org.F -SC88PA": Some invalid generators were discarded
fluidsynth: warning: Instrument "030 DistortionGt.": Some invalid generators were discarded
fluidsynth: warning: Instrument "POWER gt1 A B A A AA": Some invalid generators were discarded
fluidsynth: warning: Instrument "Organ1 Layer 1 A B": Some invalid generators were discarded
fluidsynth: warning: Instrument "Nylon0Gt_016 v": Some invalid generators were discarded
fluidsynth: warning: Instrument "Nylon0Gt_016o": Some invalid generators were discarded
fluidsynth: warning: Instrument "107 Koto A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Organ1 Layer 1 A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Organ_Pipe B": Some invalid generators were discarded
fluidsynth: warning: Instrument "Church Org.1 A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Bass pop A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Clean Guitar 88 A AB": Some invalid generators were discarded
fluidsynth: warning: Instrument "Program B": Some invalid generators were discarded
fluidsynth: warning: Instrument "Orchestra Hit A E": Some invalid generators were discarded
fluidsynth: warning: Instrument "Brassy Wave": Some invalid generators were discarded
fluidsynth: warning: Instrument "Brassy Wave C": Some invalid generators were discarded
fluidsynth: warning: Instrument "Saw Stacked63a A A D": Some invalid generators were discarded
fluidsynth: warning: Instrument "SAW_stack1 E A A B C": Some invalid generators were discarded
fluidsynth: warning: Instrument "Baritone Sax Layer 1": Some invalid generators were discarded
fluidsynth: warning: Instrument "Clean Guitar 88 A AB": Some invalid generators were discarded
fluidsynth: warning: Instrument "007 Clav. A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Reverse Cymbal A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Nylon-st2 A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Nylon-st2 C": Some invalid generators were discarded
fluidsynth: warning: Instrument "Nylon-st2": Some invalid generators were discarded
fluidsynth: warning: Instrument "Nylon-st2 B": Some invalid generators were discarded
fluidsynth: warning: Instrument "Organ1 Layer 1 A D": Some invalid generators were discarded
fluidsynth: warning: Instrument "Sine wave A A B A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Organ1 Layer 1 A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Instrument1 A A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Choir Ahhs A": Some invalid generators were discarded
fluidsynth: warning: Instrument "105 Banjo B": Some invalid generators were discarded
fluidsynth: warning: Instrument "DR_LQ_000 A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Toms_000 A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "CrashCM_00 B A": Some invalid generators were discarded
fluidsynth: warning: Instrument "SD&BD_000 A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "DR_LQ_000 C A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "88+ F B A": Some invalid generators were discarded
fluidsynth: warning: Instrument "CrashCM_00 B B A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "SD&BD_008": Some invalid generators were discarded
fluidsynth: warning: Instrument "Room toms": Some invalid generators were discarded
fluidsynth: warning: Instrument "DR_LQ_000 A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Toms_000": Some invalid generators were discarded
fluidsynth: warning: Instrument "CrashCM_00 B": Some invalid generators were discarded
fluidsynth: warning: Instrument "SD&BD_000": Some invalid generators were discarded
fluidsynth: warning: Instrument "DR_LQ_000 C A B A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "88+ F A": Some invalid generators were discarded
fluidsynth: warning: Instrument "CrashCM_00 B B B B": Some invalid generators were discarded
fluidsynth: warning: Instrument "Synth Toms": Some invalid generators were discarded
fluidsynth: warning: Instrument "SD&BD_024": Some invalid generators were discarded
fluidsynth: warning: Instrument "GS02 lite E B A": Some invalid generators were discarded
fluidsynth: warning: Instrument "DR_LQ_000 C A B D": Some invalid generators were discarded
fluidsynth: warning: Instrument "88+ F B": Some invalid generators were discarded
fluidsynth: warning: Instrument "CrashCM_00 B B D": Some invalid generators were discarded
fluidsynth: warning: Instrument "TR-808 Drums": Some invalid generators were discarded
fluidsynth: warning: Instrument "DR_LQ_000 C A A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "88+ F A A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "CrashCM_00 B B B": Some invalid generators were discarded
fluidsynth: warning: Instrument "Synth Toms A": Some invalid generators were discarded
fluidsynth: warning: Instrument "SD&BD_024 A": Some invalid generators were discarded
fluidsynth: warning: Instrument "DR_LQ_000 C A": Some invalid generators were discarded
fluidsynth: warning: Instrument "88+ F A B": Some invalid generators were discarded
fluidsynth: warning: Instrument "CrashCM_00 B B B A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Toms Rm16 A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "DR_LQ_000 C A B": Some invalid generators were discarded
fluidsynth: warning: Instrument "88+ F": Some invalid generators were discarded
fluidsynth: warning: Instrument "Toms_000 A C": Some invalid generators were discarded
fluidsynth: warning: Instrument "CrashCM_00 B B B A": Some invalid generators were discarded
fluidsynth: warning: Instrument "SD&BD_000 B": Some invalid generators were discarded
fluidsynth: warning: Instrument "DR_LQ_000 C A B A": Some invalid generators were discarded
fluidsynth: warning: Instrument "88+ F A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Toms_000 A": Some invalid generators were discarded
fluidsynth: warning: Instrument "CrashCM_00 B B C": Some invalid generators were discarded
fluidsynth: warning: Instrument "SD&BD_000 A": Some invalid generators were discarded
fluidsynth: warning: Instrument "Snare Roll": Some invalid generators were discarded
fluidsynth: warning: Instrument "LQGS": Some invalid generators were discarded
fluidsynth: warning: Instrument "no01": Some invalid generators were discarded
fluidsynth: warning: Instrument "DR_LQ_000": Some invalid generators were discarded
fluidsynth: warning: Instrument "ORC - TIMPANI": Some invalid generators were discarded
fluidsynth: warning: Instrument "SD&BD_048 A A": Some invalid generators were discarded
fluidsynth: warning: Instrument "CrashCM_48": Some invalid generators were discarded
fluidsynth: warning: Instrument "88+ F C": Some invalid generators were discarded
fluidsynth: warning: Instrument "SFX_GS": Some invalid generators were discarded
fluidsynth: warning: Instrument "SD": Some invalid generators were discarded
fluidsynth: warning: Instrument "BD": Some invalid generators were discarded
Type 'help' for help topics.

This is an error log when execute FluidSynth in Windows(MinGW) with soundfont 'Mini Groove88ish v3'.

derselbst commented 7 years ago

Ok, I had a listen. Regarding distorted audio with TROPIC88 and Mini Groove88ish v3: the audio seems to clip, you may try starting fluidsynth with a lower gain:

fluidsynth --audio-driver=dsound -o synth.gain=0.05 ...

The Harmonica sound of masquerade55 is buggy indeed. I suppose this is due to the instrument being incorrectly tuned. Do you also experience this issue with BASSMIDI?

Also not sure why there are so many instrument generators discarded with the Mini Groove88ish v3.sf2. Might be due to some corruption of the file. Though I cant hear any problems. Perhabs I'll debug this on the weekend.

basic2004 commented 7 years ago

Two soundfonts works correctly in BASSMIDI and this engine based driver, Coolsoft VirtualMIDISynth too. Here, easy to testing with this MIDI file. DAAHOUD2.ZIP

Current version of FluidSynth with 'Mini Groove88ish v3' showing many errors with this MIDI file. I injected synth.gain=0.05 but this problem can't be solved. I attach this logfile errorlog.txt because... You can't comment at this time — your comment is too long (maximum is 65536 characters).

derselbst commented 7 years ago

Too many voices are started by this MIDI. You'll have to increase polyphony count with -o synth.polyphony=2048

basic2004 commented 7 years ago

No, other soundfont can play with no errors without this argument (default option).

derselbst commented 7 years ago

I was speaking about fluidsynth: warning: Failed to allocate a synthesis process. which gets fixed by increasing polyphony.

basic2004 commented 7 years ago

Hmm... I fixed a soundfont 'Mini Grooveish88 v3', load with SynthFont and save this soundfont as a new file. fixed 'Mini Grooveish88 v3' plays correctly and no 'Failed to allocate a synthesis process' with default option.

but, fixed 'masquerade55' has buggy harmonica sound with FluidSynth yet. 'masquerade55' with BASSMIDI plays correctly. fixed 'Mini Grooveish88 v3' with FluidSynth plays correctly too.

I upload these fixed soundfonts to dropfile.to because these are bigger than 10MB, these can download only today because these will be expire after 24 hours when upload. Mini Groove88ish v3-fix-synthfont1.sf2 masquerade55v006-fix-synthfont1.sf2

derselbst commented 7 years ago

Given the fact that these fixed soundfonts now have the first letter of every instrument/sample/preset name missing, I assume that also SynthFont had trouble reading them apparently due to file corruption. Hard to tell why harmonica plays at incorrect pitch.

derselbst commented 7 years ago

The reason because so many instrument generators get discarded with 'Mini Grooveish88 v3' is because fluidsynth expects the KeyRange to be first in a generator, followed by VelRange, etc. This not the case for the given soundfont, thus fluidsynth discards them.

Apparently BASSMIDI and VirtualMIDISynth are more permissive on this, which however is against the soundfont spec:

The keyRange enumerator is optional, but when it does appear, it must be the first generator in the zone generator list. [...] The velRange enumerator is optional, but when it does appear, it must be preceded only by keyRange in the zone generator list.

derselbst commented 7 years ago

Ok, I can confirm that at least the second inst. generator of Harmonica plays two semitones higher than it should. However I couldnt figure out the problem so far. The soundfont seems to be valid, fluidsynth reads it correctly and internally correctly calculates pitches. I also exported the samples and created a new soundfont from scratch but the problem persists. This really makes me believe that the samples are simply incorrectly tuned which however is not possible since it works correctly with polyphone and apparently also with the other synths you mentioned... I'm running out of ideas.

derselbst commented 7 years ago

minimal soundfont + test midi for further reference: masquerade55v006-fix-synthfont1_small.sf2.zip

basic2004 commented 7 years ago

Thanks for fixing masquerade55v006's harmonica pitch but I heard no change with FluidSynth 1.1.6 and latest development version. Sorry...

MiniGrooveish's Instrument name corruption was SynthFont's problem, I loaded original soundfont and save from Polyphone, this works.

basic2004 commented 7 years ago

Closing issue was click missed. sorry...

derselbst commented 7 years ago

I did not fix the pitch. Carefully read my comment pls:

However I couldnt figure out the problem so far.

mawe42 commented 7 years ago

My guess is that it has to do with the loop points. The samples are very short (some are less than 50 sample points), so any small irregularities in loop point calculations / reading will have quite a dramatic effect on the perceived pitch. Maybe this is related to #149?

mawe42 commented 7 years ago

It was indeed a loop problem. fixup_sample changed the start offset of some of the loops. The above pull request seems to fix it. Haven't tested it extensively though...

derselbst commented 7 years ago

Amazing spot! Thanks a lot!

basic2004 commented 7 years ago

Oh! This problem is solved miraculously!!! I testing masquerade55, no more pitch breaking with harmonica sound. Non-fixed masquerade55 works too.

masquerade55 was made by Polyphone, this was not soundfont problem. Thanks, mawe42!

'Mini Groove88ish v3' was fixed(simply load and save, without modify) with Polyphone for my using, Sample, Instruments, Patch names are saved correctly. Don't worry... about this soundfont issue.

basic2004 commented 7 years ago

And remaining issue, how to solve multi drum bank channel and control master volume (TROPIC88.MID use this for fading) this didn't solved yet.

derselbst commented 7 years ago

@basic2004 As mentioned before, the TROPIC88.MID controls the master volume via roland sysex events, which are not implemented in fluidsynth. I dont have the time or knowledge to implement them, I will however accept a pull request.

Regarding drum channel: You'll have to modify TROPIC88.MID by inserting a CC0 event with a value of 1 right to the start of channel 2 and 3. This will tell fluidsynth to use bank 128 (= the drum bank) on these channels. Also insert CC0 with value of 0 to the beginning of channel 10 to turn it into a melodic channel.

Get fluidsynth from recent git and start it with the

-o synth.midi-bank-select=mma

option and it should work fine.

basic2004 commented 7 years ago

I did with latest source, and patched https://github.com/FluidSynth/fluidsynth/pull/184 but this wasn't work fine. This result shows channel to 0-15, channel 1 and 2 should be drum, channel 9 should be melodic. but it wasn't well. and fluidsynth detects this MIDI to mma automatically. same result...

B:\fluidsynth-test>fluidsynth -g1 -o synth.midi-bank-select=mma "Mini Groove88ish v3-fix-polyphone.sf2" tropic88.mid
FluidSynth version 1.1.6
Copyright (C) 2000-2012 Peter Hanappe and others.
Distributed under the LGPL license.
SoundFont(R) is a registered trademark of E-mu Systems, Inc.

Type 'help' for help topics.

> fluidsynth: warning: Instrument not found on channel 1 [bank=2 prog=1], substituted [bank=0 prog=1]
fluidsynth: warning: Instrument not found on channel 4 [bank=2 prog=33], substituted [bank=0 prog=33]
fluidsynth: warning: Instrument not found on channel 5 [bank=2 prog=4], substituted [bank=0 prog=4]
fluidsynth: warning: Instrument not found on channel 10 [bank=2 prog=49], substituted [bank=0 prog=49]
fluidsynth: warning: Instrument not found on channel 6 [bank=2 prog=61], substituted [bank=0 prog=61]
fluidsynth: warning: Instrument not found on channel 7 [bank=2 prog=60], substituted [bank=0 prog=60]
fluidsynth: warning: Instrument not found on channel 8 [bank=2 prog=61], substituted [bank=0 prog=61]
fluidsynth: warning: Instrument not found on channel 9 [bank=2 prog=60], substituted [bank=128 prog=0]
fluidsynth: warning: Instrument not found on channel 14 [bank=1026 prog=81], substituted [bank=0 prog=81]
fluidsynth: warning: Instrument not found on channel 12 [bank=1 prog=65], substituted [bank=0 prog=65]
derselbst commented 7 years ago

I'm not aware of any way that fluidsynth automatically detects this MIDI to be mma. I assume that your adapted MIDI doesnt work. See this one for how I meant it. TROPIC88_drum.MID.zip

basic2004 commented 7 years ago

I tested again, this result shows channel 9 substituted to bank 128 (drum channel).

B:\fluidsynth-test>fluidsynth -osynth.midi-bank-select=mma "Mini Groove88ish v3-fix-polyphone.sf2" tropic88_drum.mid
FluidSynth version 1.1.6
Copyright (C) 2000-2012 Peter Hanappe and others.
Distributed under the LGPL license.
SoundFont(R) is a registered trademark of E-mu Systems, Inc.

Type 'help' for help topics.

> fluidsynth: warning: Instrument not found on channel 4 [bank=2 prog=33], substituted [bank=0 prog=33]
fluidsynth: warning: Instrument not found on channel 5 [bank=2 prog=4], substituted [bank=0 prog=4]
fluidsynth: warning: Instrument not found on channel 10 [bank=2 prog=49], substituted [bank=0 prog=49]
fluidsynth: warning: Instrument not found on channel 6 [bank=2 prog=61], substituted [bank=0 prog=61]
fluidsynth: warning: Instrument not found on channel 7 [bank=2 prog=60], substituted [bank=0 prog=60]
fluidsynth: warning: Instrument not found on channel 8 [bank=2 prog=61], substituted [bank=0 prog=61]
fluidsynth: warning: Instrument not found on channel 9 [bank=2 prog=60], substituted [bank=128 prog=0]
fluidsynth: warning: Instrument not found on channel 14 [bank=1026 prog=81], substituted [bank=0 prog=81]
fluidsynth: warning: Instrument not found on channel 12 [bank=1 prog=65], substituted [bank=0 prog=65]

Really this needs Roland's SysEx, for changing bank correctly and control master volume. and this MIDI file should to load GS, this made for Roland SC-88.

derselbst commented 7 years ago

I tested again, this result shows channel 9 substituted to bank 128

It's a compromise now that mma mode allows bank changes where it was previously hardcoded to bank 128. Internally channel 9 is still treated as a drum channel. If the requested preset and bank combination is not found it falls back to bank 128 because of being a drum channel.

Just make sure the requested preset and bank exists in the soundfont, either by adjusting the soundfont or modifying your MIDI to request something from bank 0 for instance.

However, seeing that this seems to cause confusions, I'm thinking about getting back to hardcoded drumbank, since you could also let channel 10 play on e.g. chan 16 and merge channels 2 and 3 to channel 10... which might be the easier solution.

Really this needs Roland's SysEx, for changing bank correctly and control master volume.

Dont mix things up. Roland's SysEx is only needed for controlling master volume. They may do some configuration with the drumchannels, but they are not required for fluidsynth.

basic2004 commented 7 years ago

Dont mix things up. Roland's SysEx is only needed for controlling master volume. They may do some configuration with the drumchannels, but they are not required for fluidsynth.

Sorry but I mix things up. Roland GS mapping drum channels by SysEx. drumchannel-2-3 Rhythm parts assigned to system, maximum 2 rhythm parts on SOUND Canvas.

I found how to change drum/melodic channel. http://www.geocities.co.jp/Hollywood-Miyuki/9008/basic/b_sx_dr.html

MAP 1 / 1ch     F0 41 10 42 12 40 11 15 01 19 F7
MAP 1 / 2ch     F0 41 10 42 12 40 12 15 01 18 F7
MAP 1 / 3ch     F0 41 10 42 12 40 13 15 01 17 F7
MAP 1 / 4ch     F0 41 10 42 12 40 14 15 01 16 F7
MAP 1 / 5ch     F0 41 10 42 12 40 15 15 01 15 F7
MAP 1 / 6ch     F0 41 10 42 12 40 16 15 01 14 F7
MAP 1 / 7ch     F0 41 10 42 12 40 17 15 01 13 F7
MAP 1 / 8ch     F0 41 10 42 12 40 18 15 01 12 F7
MAP 1 / 9ch     F0 41 10 42 12 40 19 15 01 11 F7
MAP 0 / 10ch    F0 41 10 42 12 40 10 15 00 1B F7    // 10ch to melodic
MAP 1 / 11ch    F0 41 10 42 12 40 1A 15 01 10 F7
MAP 1 / 12ch    F0 41 10 42 12 40 1B 15 01 0F F7
MAP 1 / 13ch    F0 41 10 42 12 40 1C 15 01 0E F7
MAP 1 / 14ch    F0 41 10 42 12 40 1D 15 01 0D F7
MAP 1 / 15ch    F0 41 10 42 12 40 1E 15 01 0C F7
MAP 1 / 16ch    F0 41 10 42 12 40 1F 15 01 0B F7
MAP 2 / 1ch     F0 41 10 42 12 40 11 15 02 18 F7
MAP 2 / 2ch     F0 41 10 42 12 40 12 15 02 17 F7
MAP 2 / 3ch     F0 41 10 42 12 40 13 15 02 16 F7
MAP 2 / 4ch     F0 41 10 42 12 40 14 15 02 15 F7
MAP 2 / 5ch     F0 41 10 42 12 40 15 15 02 14 F7
MAP 2 / 6ch     F0 41 10 42 12 40 16 15 02 13 F7
MAP 2 / 7ch     F0 41 10 42 12 40 17 15 02 12 F7
MAP 2 / 8ch     F0 41 10 42 12 40 18 15 02 11 F7
MAP 2 / 9ch     F0 41 10 42 12 40 19 15 02 10 F7
MAP 2 / 10ch    F0 41 10 42 12 40 10 15 02 19 F7
MAP 2 / 11ch    F0 41 10 42 12 40 1A 15 02 0F F7
MAP 2 / 12ch    F0 41 10 42 12 40 1B 15 02 0E F7
MAP 2 / 13ch    F0 41 10 42 12 40 1C 15 02 0D F7
MAP 2 / 14ch    F0 41 10 42 12 40 1D 15 02 0C F7
MAP 2 / 15ch    F0 41 10 42 12 40 1E 15 02 0B F7
MAP 2 / 16ch    F0 41 10 42 12 40 1F 15 02 0A F7

1st to 6th characters are, F0 41 10 42 12 40 is almost use to sending GS SysEx. 7th character, this means channel when this value is 10-1F. 10 is channel 10, 11-19 are channel 1-9, 1A -1F are channel 11-16. 8th character, 15 means mapping drum channel. 9th character, this is value, this means mapping/releasing. 01 is map to 1st rhythm part, 02 is map to 2nd rhythm part. 00 is release (to melodic part).

I found changing master volume and other SysEx from http://www.bandtrax.com.au/sysex.htm

Master Volume Full  F0 41 10 42 12 40 00 04 7F 3D F7 
Master Volume 90%   F0 41 10 42 12 40 00 04 72 4A F7 
Master Volume 80%   F0 41 10 42 12 40 00 04 65 57 F7 
Master Volume 70%   F0 41 10 42 12 40 00 04 59 63 F7 
Master Volume 60%   F0 41 10 42 12 40 00 04 4C 70 F7 
Master Volume 50%   F0 41 10 42 12 40 00 04 40 7C F7

7th and 8th character 0004 to control master volume 9th character is value, changing to 0-127(00-7f).

in tropic88.mid, these SysEx contained. F0 41 10 42 12 40 12 15 01 18 F7 // map 2ch to drum part 1 F0 41 10 42 12 40 13 15 02 16 F7 // map 3ch to drum part 2 F0 41 10 42 12 40 10 15 00 1B F7 // release 10ch to melodic

derselbst commented 7 years ago

Ok, so it seems what Roland does here is to configure the type of these channels, pretty similar to what can be achieved with fluid_synth_set_channel_type(). Again: Doing this via SysEx is currently not implemented and I dont see that this is required for fluidsynth, though it might be the most correct way to do configure drum and melodic channels. You still have the two alternative ways as described earlier:

basic2004 commented 7 years ago

I'll wait until FluidSynth supports Roland's Sysex later. Maybe when I tell about these next time I'll make a new thread. Thanks for solving soundfont's issue.