--- On Thu, 2/10/11, David Henningsson <di...@ubuntu.com> wrote:

>
> Basically the problem is that Soundfont files can have bank
> numbers up 
> to 128 only, and that bank numbers 0-127 are melodic and
> bank 128 is 
> percussion. At least that's the way SWAMI works. I checked
> Unison.sf2, 
> and it follows this as well. I assume it's somewhere in the
> sf2 standard.
> 
> So bank numbers above 128 usually make no sense, which is
> why MSB is 
> ignored for XG (and why MMA style is not the default...).
> We're kind of 
> stuck between sf2's standard and XG's standard, and need to
> figure out 
> how to mediate between them.

Perhaps you are talking about GM, GS mode where bank# is LSB.  Now, just think 
XG uses MSB instead of LSB.  MSB=128 is drum in XG, as well as MSB=126, 
MSB=120.  No difference in that regard (the number 128).  The only difference 
is that it is sent via CC#0.  So for MMA-calculation (basically convert to 
decimal number the combination of MSB, LSB), MSB need to be shifted 7 bits 
further to the left.  And this is done only for XG bank-select style in my 
code.  I hope it help clear any confusion.


> > ------
> >
> > And in fluid_channel_set_bank_msb() you modified it
> as:
> >

...

> I did look over the fluid_synth_program_change function and
> tried to 
> clear it up a little. It's also in r406. With that patch
> and your 
> example I now get:
> 
> fluidsynth: warning: Instrument not found on channel 6
> [bank=128 
> prog=1], substituted [bank=128 prog=0]
> 
> ...which is what it actually did, both before and after
> r406.
> 
> // David
> 

Hmmm... ???  I'll take another look on my side.  Again, can you try with:

   fluidsynth  -o synth.midi-bank-select=xg

if and when you get a chance.

Jimmy




      

_______________________________________________
fluid-dev mailing list
fluid-dev@nongnu.org
http://lists.nongnu.org/mailman/listinfo/fluid-dev

Reply via email to