On Wednesday, July 28, 2010, David Henningsson wrote: > 2010-07-27 18:34, Pedro Lopez-Cabanillas skrev: > > Hi, > > > > Something similar but not exactly the same to ticket #65. > > > > Sending a bank/program change CC MSB=1, PC=48 corresponding to a GM2/GS > > Strings instrument, FluidSynth changes to percussion bank 128, Orchestral > > set. > > > > Test case: load the GeneralUser GS soundfont [1] and play the demo song > > "March #1 in D major". > > Banknumber is MSB*128 + LSB, in this case 128, there seems to be program > changes for channel 11 to 15 to bank 128 prog 48 in the midi file, and > there is a bank 128 prog 48 preset in GeneralUser_GS, and its name is > "Orchestral". > > What is FluidSynth doing wrong?
The formula ("Banknumber = MSB*128 + LSB") is not correct for GS instruments. The bank number is the MSB value alone in this case. So, a MIDI message CC#0 val=1 means bank#1. Changing this behavior breaks a lot of GM2/GS songs that now sound bad when played by FluidSynth. The same test case using FluidSynth 1.0.9 sounds great, and prints this: $ ./fluidsynth -a alsa GeneralUser_GS_FluidSynth.sf2 March_#1_in_D_major.mid FluidSynth version 1.0.9 Copyright (C) 2000-2006 Peter Hanappe and others. Distributed under the LGPL license. SoundFont(R) is a registered trademark of E-mu Systems, Inc. Type 'help' for information on commands and 'help help' for help topics. > channels chan 0, Piccolo chan 1, Flute chan 2, Oboe chan 3, Clarinet chan 4, Bassoon chan 5, French Horns chan 6, Brass Section 2 chan 7, Trombone chan 8, Tuba chan 9, Orchestral chan 10, Timpani chan 11, Mono Strings Fast chan 12, Mono Strings Fast chan 13, Mono Strings Fast chan 14, Mono Strings Fast chan 15, Mono Strings Fast Regards, Pedro _______________________________________________ fluid-dev mailing list fluid-dev@nongnu.org http://lists.nongnu.org/mailman/listinfo/fluid-dev