What happens if you choose an invalid XG SFX kit? Does it work like drum kits, where it will play the default drum kit instead, or does it not play sounds at all, or does it default to the basic "GM" sound set?
I can try it out on some of my software when I get a chance. I'm curious how XG hardware would respond.
For example,
Bank Select MSB 126, LSB 0, program change 0 -> SFX Kit 1
Bank Select MSB 126, LSB 0, program change 1 -> SFX Kit 2
Bank Select MSB 126, LSB 0, program change 2 -> ???
Bank Select MSB 126, LSB 1, program change 0 -> ???
And what if an invalid SFX "note" is selected from one of the valid kits? (Actually, from one of the Yamaha manuals I have open right now, it looks like there would be "NO SOUND" for this particular instance)
I want to make sure I am displaying the most accurate info in my names grid that I can.
The XG specification says:
If the new Bank Select MSB is 00H (melody voice) but the tone generator does not support the melody voice corresponding to the last received Bank Select LSB, the channel reverts to the Bank Select LSB corresponding to its most recently played melody voice.
If the new Bank Select MSB is 7FH (rhythm voice), the tone generator unconditionally uses LSB 00H without using the most recently received Bank Select LSB. If the tone generator does not support a drum kit corresponding to the channel’s most recently received Program Change, the channel will revert to the Program Change corresponding to its most recently played rhythm kit.
If a Bank Select MSB value of 01H - 7EH (model-specific area, SFX voice, or unused area) is received and the tone generator does not have a voice corresponding to the last received LSB and Program Change, the tone generator will produce no sound for that channel regardless of subsequent key on messages.
You should simply display unknown settings as "unknown".
I agree with Clemens. You will have no way of knowing what the device did, so it's best to reflect that.