Bank LSB (CC#32) of this patch.
This is mostly used in XG and GM2 for selecting variations of instruments, much like MSB in GS.
Bank MSB (CC#0) of this patch.
It is used for sound variation in GS, and for channel type in XG and GM2. This means that with bank MSB of 127 for example, a channel in XG mode will turn into a drum channel.
If the preset is marked as GM/GS drum preset.
This flag is exclusive to GM and GS systems. These don't use bank MSB as a drum flag. GM has channel 9 hardcoded as drums, and GS has a system exclusive for setting them. This allows XG and GS drums to coexist in a single sound bank and can be thought of as bank 128 in SF2.
The MIDI program number.
SpessaSynth 4.0 brings the full bank LSB support in the API.
The system now operates on MIDI Patches - a way of selecting MIDI presets using 4 properties, compatible with GM, GS, XG and GM2. The existing MIDI files will continue to work as the preset selection system has been fine-tuned for various types of MIDI files.