ex-driver wrote:I'm a bit confused. You said your bass midi use all the time 128 as default even with XG midis. The docmentaion said it check first 127 and after that 128channels. it needs only the 127.... The bass midi copies 128 in 127 section" .that is wrong.
Hi,
No. it's not wrong... Have you fully understood what the documentation said? It only checks first bank 127 if the BASS_MIDI_FONT_XGDRUMS flag is set in the BASS_MIDI_FontInit() call. If this flag is not set Bassmidi always maps bank 128 to bank 127 but only in XG mode when Bank MSB 127 is set (ie. when a channel is set to use drums.) Is it clear now ?
So there are 2 possible modes currently in Bassmidi
1. BASS_MIDI_FontInit() WITHOUT the BASS_MIDI_FONT_XGDRUMS flag set. This is the mode that is currently active in VMS. In this mode always bank 128 is mapped to bank 127. This is compatible with GS soundfonts that only use bank 128 as drum banks and use bank 127 as an MT-32 instrument bank. This mode does not handle bank 127 as a drum bank. SF2 format never specified bank 127 as a drum bank anyway...
2. BASS_MIDI_FontInit() WITH the BASS_MIDI_FONT_XGDRUMS flag set. In this mode Bassmidi first checks bank 127 and if it finds presets there then uses it as a drum bank in XG mode.This is the mode you want. But unfortunately it breaks compatibility with existing GS soundfonts that use bank 127 as an MT-32 melodic bank, since Bassmidi cannot realize that it is a melodic bank and since it finds presets in bank 127 it maps it to drum channels but it sounds wrong since these presets are MT-32 melodic presets.
So it's very hard to make this fully automatic. That's why there is a flag for it. In programmig a flag actually asks: What mode do you want? (maybe XM Play made it fully automatic but Bassmidi itself cannot do this). Of course In VMS there can be an option for what mode you want for a soundfont. But both cannot be active at the same time. Method 1 is wrong for you, but method 2 would be wrong for anyone who use GS soundfonts.
I have never said you cannot make a soundfont with an XG drumset. I said you cannot make a full XG compatible soundfont with all banks that the XG specification demands. That's 2 different statements and you reacted for the one that I never stated. It's hard to help/argue if we speak different languages...
I hope it makes everything clear for you.
Bye