That makes sense to me too. Element
On Fri, Nov 29, 2013 at 6:15 PM, Chris Robinson <chris.k...@gmail.com>wrote: > On 11/29/2013 11:31 AM, Element Green wrote: > >> The original MIDI standard pretty much spells that out, though I think >> there was some confusion around it leading to divergent vendor standards. >> CC 32-63 are supposed to be the least significant bytes and CC 0-31 the >> most significant bytes of 14 bit controller values. >> >> >> >> Instead, the MMA went a different way with GM2. CC0 selects a channel >>> type >>> (120 = percussion (only allowed on channels 9 and 10), and 121 = >>> melodic), >>> and CC32 selects a bank (must be 0 on percussion channels). >>> >>> >>> I don't really see it as a "different way" in respect to MIDI, but more >> in >> comparison to the other instrument mapping standards. Interpreting CC0 >> and >> CC32 as MSB/LSB of a 14 bit number (as the GM2 article on Wikipedia also >> says), then GM2 percussion is on bank 15360 and the melodic banks start >> at 15488. >> > > The way I see it, it's basically a shifted+masked value pair. i.e. > > int type = ctrl >> 7; > int bank = ctrl & 127; > > The upper bits hold the channel type, and the lower bits hold the bank > number. You can't use more than 128 melodic banks (just like with GS and > XG) since the 128th bank value will overflow into the type bits: > > 01111001000000 /* CC0 121 */ > 00000001000000 /* bank 128 */ > > And since percussion must set CC32 to 0, you still get 128 melodic banks > (0-127), and a percussion bank (implied 128). > > Though that's just my interpretation from the wikipedia page. >
_______________________________________________ fluid-dev mailing list fluid-dev@nongnu.org https://lists.nongnu.org/mailman/listinfo/fluid-dev