fluid-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fwd: [fluid-dev] Midi standards (was: Fix for problem with CC changes t


From: jimmy
Subject: [Fwd: [fluid-dev] Midi standards (was: Fix for problem with CC changes to Bank MSB)]
Date: Sun, 5 Apr 2009 14:41:49 -0700 (PDT)

> Date: Sun, 05 Apr 2009 11:14:57 +0200
> From: David Henningsson <address@hidden>
> I've tried to dig a bit deeper here. It is hard to find
> free standards
> on the net (has anybody bought a copy from midi.org?), but
> I found the
> XG standard here:
> 
> http://web.archive.org/web/20060926124939/http://www.yamaha.co.uk/xg/reading/pdf/xg_spec.pdf


David, thanks for this link.  I will appreciate any other XG info out there, 
too.



> The first question is: What do we really support? GM? GM2?
> GS? XG? For
> XG, the drum kit bank is 127, not 1.

Here what I think, from the patched code, it uses:

   (unsigned int)((bank_msb << 7)

which is "00000000 00000001" shifted left 7-bits makes it:

   00000000 10000000 (binary)

which is 128 if counting from 1 (or 127 counting from 0).  So that is the drum 
channel.  I think the original midi spec uses 8-bit machines, so bit #8 
(highest bit of that time) was reserved for drum.

With 16-bit (32-bit, 64-bit) hardware, using only 8-bits is such a waste.  So 
GM and GS were born using 16-bit hardware, extending their own MIDI usage using 
the higher bits while trying to keep the first 8-bits backward compatible.  I 
think that's how we call these the Most Significant Bits (higher bits) and 
Least Significant Bits (lower bits) in the same 16-bit integer.

Jimmy



      




reply via email to

[Prev in Thread] Current Thread [Next in Thread]