[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Fwd: [fluid-dev] Midi standards (was: Fix for problem with CC changes to Bank MSB)],
jimmy <=