Hi CSW900,
I understand your concerns relating to the proposed new soundfont bank select format and the MIDI instruction format, and I decided to implement it in a way that is as backwards compatible as possible with older soundfont players.
It makes it easier if we consider the first and second bytes of wBank to be separate values with no connection. Since the soundfont format is little endian, the first byte is the least significant byte, so the first byte is what stores the banks 0-128 used in the current soundfont bank storage format. Since only the first byte of wBank is used, the second byte can treated as a completely different value. Therefore, it's not really "adding two values together", it's more like adding a parallel value which directly maps to bank select lsb, which isn't implemented in soundfonts.
Because Polyphone reads the 16-bit value of the wBank, instruments mapped in the way I proposed would appear to have a "bank number" of (256 * LSB) + MSB. If lsb was implemented as I described, the wBank would be read as two separate 8-bit values for each byte, one for msb and one for lsb. Therefore, not only order of the bank select commands would not matter (as an msb instruction does not affect the lsb value or vice versa), but the two bank select commands would not need to be called simultaneously.
Also, as a reminder, the goal is to enable XG or GM2 compatibility (~300-500 presets) rather than to have an extremely large number.
Thanks,
sylvia.
Edit: Because of the separate nature of the two bytes in the wBank field, msb and lsb commands do not need to be called together, they can be called separately. So if a file only calls msb, or only calls lsb, it will still work.