drumkit bug

Please let our ADS show!

This sites offers only FREE software and it's supported by a few advertisement boxes (no intrusive popups).
Please:

  • disable your AdBlocker by adding CoolSoft website to whitelist
  • give the proper cookie consent
  • enable JavaScript for this website

This seconds wait is to let you update your browser configuration...

Ok, I've done the required changes... now show me your content!
!!! Please enable JavaScript !!!

Pages

Posts: 129
Joined: September 25, 2013 - 16:38
Re: drumkit bug
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

Posts: 61
Joined: May 20, 2018 - 02:30
Re: drumkit bug

ahh okay. :D. Now i know what u mean. Thats was Ian Luck set in his option. But could you make an option in your control Panel to set flag for full XG on-off? On and off back to GM/GS last should be default thats clear. That would be cool if i could set the flag manually then. Its okay that bass can't handle both automatically. To set it in the control Panel would be nice. Very nice =) That would be an Improvement. Many thanks for your hard explaining work ;)

Posts: 1972
Joined: March 25, 2012 - 01:19
Re: drumkit bug

First, thanks to @falcosoft for his technical knowledge; having someone like you that's so active in the forum is a great thing for me (I've already "confessed" that I'm not such an expert MIDI guru ;))

As for the BASS_MIDI_FONT_XGDRUMS flag: it should not be so difficult for me to add a checkbox to the SoundFont properties dialog and allow the user to enable that "special handling" for an SF2.

What I'd like to know is... isn't there a workaround for this?
I'd like to avoid filling VMS with super-specialized options, especially if there's a workaround for them.

I mean, can't the soundfont be edited and the bank remapped to the default 128 to make it comply with standard behavior? (did I miss something?)
(I wonder how difficult could it be to explain what this new "high level technical option" does to the average user)

Posts: 61
Joined: May 20, 2018 - 02:30
Re: drumkit bug

As for the BASS_MIDI_FONT_XGDRUMS flag: it should not be so difficult for me to add a checkbox to the SoundFont properties dialog and allow the user to enable that "special handling" for an SF2.

That would be cool. Its one feature that im missing long time ago  from the bass midi driver from kode 54.

What I'd like to know is... isn't there a workaround for this?
I'd like to avoid filling VMS with super-specialized options, especially if there's a workaround for them.

Dont worry about this. But it would be a shame. XG is a feature from it. And if its missing it would be very sad.

There are soundfonts out there like bennetng XG soundfont. I dont think people wanted to remap all preset because the option fall back to 128. There is a flag more useful to save time and work.

I hope u will set this option in your control panel. You would make me proud ;) . Please ;)

Posts: 129
Joined: September 25, 2013 - 16:38
Re: drumkit bug
coolsoft wrote:
First, thanks to @falcosoft for his technical knowledge; having someone like you that's so active in the forum is a great thing for me

You're welcome Claudio, I'm only trying to help on 'areas' that are not VMS specific but are rather the concern of midi in general and the underlying Bass/Bassmidi libraries.

Many times there are reports in VMS forums that start as a 'bug report' but in the end they prove to be only some misunderstandings about midi and the internal working of Bassmidi.

I think replying these posts is the best way to 'document' the technical details that affect VMS so they can be referenced later.

coolsoft wrote:

What I'd like to know is... isn't there a workaround for this?
I'd like to avoid filling VMS with super-specialized options, especially if there's a workaround for them.I mean, can't the soundfont be edited and the bank remapped to the default 128 to make it comply with standard behavior? (did I miss something?)

Unfortunately no perfect workaround exists since there are existing so called 'XG compatible' soundfonts that contain 2 banks of drumsets. GS compatible drumsets at bank 128 and XG compatible drumsets at bank 127 (this is in contrast with the SF2 specification but bassmidi supports it if the BASS_MIDI_FONT_XGDRUMS flag is set). The current mode in VMS (without the BASS_MIDI_FONT_XGDRUMS flag) prevents reaching the XG drumsets at bank 127 since bassmidi maps the GS drumsets at bank 128 to 127 in XG mode. It can be argued that so called 'XG compatible' sondfonts cannot be much more XG compatible than the default emulation mode described above, but this is another story. Such XG soundfonts exist even if they are much less frequent than standard GM/GS soundfonts. Using this flag unconditionally would cause more harm than good since it only works with these special XG soundfonts. Also for the avarage user this whole XG drumset thing is rather irrelevant and maybe hard to explain its purpose, I agree...

Posts: 61
Joined: May 20, 2018 - 02:30
Re: drumkit bug

Btw i tested a little bit your falcomod sf for mt32 and i found now really a problem with MT32 in GM/GS mode. The soundfont mapping is correct but Bassmidi is skipping the inrstruments in this mode too. the 127: """ wont be played in the melodic area. I tested it with the Munt synth and bass midi vmsynth. For that i used legend of kyrandia the forest song at the beginning MT32. Bass midi played in the Background for example an alto sax thats wrong. this number is 000:065. It should be 127:065 and this is an acoustic bass 2. That means its skipping it too. Thats very interesting thing. you can check it. Bassmidi ingnores your MT32 Melodic samples. They are all right set. But they wont be played. Maybe we need the flag for that?

http://s000.tinyupload.com/?file_id=08637125937455047265

Here is the file from legend of kyrandia MT32 midi file.

Posts: 129
Joined: September 25, 2013 - 16:38
Re: drumkit bug

It does not work this way :).

It's a long story but I try to make it short. Roland MT-32 is its own category and predates Roland GS. When the first Roland GS device (SC-55) was designed Roland tried to make the SC-55 somewhat to be MT-32 compatible. So they made bank 127 an MT-32 compatible bank and program 127 on drum channels an MT-32 compatible Drum set. But MT-32 itself knows nothing about banks, so native midi songs written for MT-32 does not set bank to 127, since on an MT-32 these instruments are the main instruments. The song you attached is a native MT-32 midi. To play it propery on a real SC-55 hardware or on Bassmidi with an GS/SC-55 compatible soundfont first you have to instruct the synth to switch to MT-32 mode (use bank 127 on melodic channels and program 127 on the drum channel)

Here is a SysEx file that exactly does this. You can assign this file as a reset SysEx in Van basco before playing MT-32 midi files with my soundfont loaded into VMS, or use my player FSMP that has this file (GS_MT32_Mode.syx) included and set this as a custom SysEx (right click on the first aid like Reset button->Select/Send Custom SysEx).

Here's also a video about it:

https://youtu.be/husngjDI_NI

Attachments (Only registered users)
GS_MT32_Mode.zip
Posts: 61
Joined: May 20, 2018 - 02:30
Re: drumkit bug

Only with sysex reset on a player means that the config is only able to play it in a player not for dosgames. That means MT-32 sf2 must split to another own sf2 file  programmed to preset 000:""" that works native with this online sf2 so u must not reset it.

It would be makeable for dosgames.

But for XG it would be nice to set an option for this. So your synth could handle all modes then. =)

Here is the file for Mt32

http://www.mediafire.com/file/wbfiiq1wx6n5chl/8mbgm-emu+MT32.7z

Posts: 61
Joined: May 20, 2018 - 02:30
Re: drumkit bug

Or munt could do the job for Mt32 ;)

Posts: 129
Joined: September 25, 2013 - 16:38
Re: drumkit bug
ex-driver wrote:
Only with sysex reset on a player means that the config is only able to play it in a player not for dosgames. That means MT-32 sf2 must split to another own sf2 file  programmed to preset 000:""" that works native with this online sf2 so u must not reset it.

You can send the SysEx first and then start your games, that's not a problem (FSMP can do this since you can redirect e.g. DosBox's output to FSMP's midi input).

https://www.youtube.com/watch?v=6CdJ7sEt8UM

https://youtu.be/vSk9S1bkRS8

Also e.g. ScummVM knows the MT-32 mode of GS devices and can initilaize GS devices properly to use MT-32 mode.

The main problem is most games use custom SysEx patches that no other synths/soundfonts can emulate, only Munt or real MT-32 hardware can use these.

ex-driver wrote:

Or munt could do the job for Mt32 ;)

Yes, this is rule number 1: use Munt for anything serious MT-32 related stuff.  For gaming using Munt is a must (because of custom SysEx patches). That's why Munt VSTi is also included with FSMP.  And for serious XG related stuff you should also avoid using soundfonts and use S-YXG50 VSTi instead. The difference is night and day. Try these XG midis with any XG soundfont and then with S-YXG50 VSTi. I'm sure you will feel the difference...

http://veg.by/en/projects/syxg50/

Attachments (Only registered users)
XG_guitar_midis.zip

Pages