On Monday, August 2, 2010, Elimar Green wrote:
> Its been a while since the topic of MIDI bank selection was discussed,
> so I'm frustratingly in the dark again about it.  From what I read a
> bank/program change is sent as such:
> Bank MSB (CC #0)
> Bank LSB (CC #32)
> Program change
>
> So in that case if 1 was sent for MSB and 0 was sent for LSB it would
> mean bank #128.  If only a MSB is sent though, as in the cited example
> case, I'm suspecting that should be interpreted instead as an LSB
> value?  Not sure exactly what standard defines such behavior though.
> Does this sound like what the issue is related to?

Yes. I've tried to explain this in the longer message I've posted yersterday. 
To summarize: the only standard required here is the SF2 specification:
http://connect.creativelabs.com/developer/SoundFont/Forms/AllItems.aspx
Which says about the SoundFont bank and preset numbers that "if the value 
[...] is not a valid MIDI value of zero through 127, or 128 for wBank, the 
preset cannot be played but should be maintained." 

If you calculate MSB*128+LSB for any MSB>0, the resulting number is not a 
value from zero through 127, so it will not match any SF2 bank number for a 
melodic channel. In my opinion, if only the LSB control change is sent, it 
should also be interpreted as the SF2 bank number.

Regards,
Pedro

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

Reply via email to