fluid-dev
[Top][All Lists]
Advanced

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

Re: MIDI Bank Select proposal (was Re: [fluid-dev] Re: Son of ticket #65


From: Pedro Lopez-Cabanillas
Subject: Re: MIDI Bank Select proposal (was Re: [fluid-dev] Re: Son of ticket #65)
Date: Sun, 8 Aug 2010 22:35:47 +0200
User-agent: KMail/1.9.6 (enterprise 20070904.708012)

On Saturday, August 7, 2010, S. Christian Collins wrote:
> Another option, rather than try to guess what bank select mode to use
> would be to default to the GS standard, but have an option to use XG
> mode--this could even be a switch added to Qsynth easily enough for us
> GUI folks.

Defaulting to GS mode (CC#0/MSB is Bank Select, ignore CC#32/LSB) is the 
recommendation of Creative. In the SoundFont documentation site, 
(http://connect.creativelabs.com/developer/SoundFont/Forms/AllItems.aspx)
there is a file named "sfmansdk.zip" (SoundFont Bank Management System SDK) 
containing a library, examples a some documentation. One interesting document 
is the file "SFMAN1.DOC" (MSWord format). Here is an interesting  quotation 
from page 11. 

3.3.2.2 MIDI Bank Styles

The MIDI Bank Select Message has two distinct portions: The MSB portion, sent 
with MIDI CC0 message, and the LSB portion, sent with the MIDI CC32 message.
When the definition of the MIDI Bank Select Message was established, there was 
confusion in the industry as to how that message should be interpreted. This 
was because the definition of the MIDI Bank Select message was not clearly 
defined. Specifically, it was generally defined that all MIDI Continuous 
Controller Messages with index between 32 and 63 be LSB portions of the 
messages between 0 and 31. Bank Select, being defined as Continuous 
Controller 0, was simply assumed to take on this characteristic. However the 
first incarnations of devices using bank select did not utilize this feature.
As a result, two different ways of viewing the MIDI Bank Select Message as a 
single unitary value have been widely used. 
One is what we call ‘AWE32’ mode, named after the Sound Blaster AWE32, which 
was the first SoundFont Compatible Device. In this mode, the MIDI Bank index 
uses the MSB portion of the MIDI Bank Select message as a single increment 
and ignores the LSB portion. This mode is also known as ‘CC0 Only’ mode 
or ‘GS’ mode.
The second configuration is called ‘MMA’ mode, named after the MIDI 
Manufacturers Association, which defined the Bank Select Message. In this 
mode, the MIDI Bank index uses the LSB portion as a single increment and the 
MSB portion as increments of 128. This mode is also known as ‘CC0 and CC32’ 
mode, and is a pure superset of ‘AWE32 mode’
The following table shows examples of how Bank Select MSB and LSB values are 
expressed in AWE32 Mode and MMA Mode.

MSB Value       LSB Value       AWE32 Mode Value        MMA Mode Value
0               0               0                       0
1               0               1                       128
2               0               2                       256
0               1               undefined               1
1               1               undefined               129

All SoundFont Compatible Devices are all guaranteed to use the AWE32 Mode, and 
AWE32 mode is the “default” mode of the SoundFont Management System and 
compatible devices. This means that if no messages are explicitly sent by the 
client to change the bank style, the SoundFont Management System and 
compatible devices will expect the AWE32 mode of addressing MIDI Bank Space. 
Appendix A2 will specify whether the Device Manager API supports the MMA 
mode, Appendix A3 will specify whether the Master Manager API supports the 
MMA mode.

> That being said, if the guessing is pretty foolproof, then that's
> probably the best option.
> -~Chris
>
> On 08/06/2010 05:23 PM, Pedro Lopez-Cabanillas wrote:
> > On Friday, August 6, 2010, S. Christian Collins wrote:
> >> I had no complaints with how bank selects worked in 1.0.9--it's exactly
> >> the same way my SoundFont-compatible Audigy hardware works.  I don't see
> >> the need to support XG mode when the SoundFont standard doesn't really
> >> use that mode at all.  There is a lot more that goes into
> >> XG-compatibility than the way banks are selected.
> >
> > There are XG SoundFonts, and issues have been discussed in this list
> > several times.
> >
> > http://www.mail-archive.com/search?q=XG&address@hidden
> >
> > Regards,
> > Pedro



reply via email to

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