2.1.0 Reverb bug

It seems you're using an AdBlocker or JavaScript is disabled!

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

This 10 seconds wait is to let you update your AdBlocker whitelist...

Got it, show me the content...
Please enable JavaScript!

Pagine

Posts: 78
Joined: 14 Ott 2016 - 03:20
Re: 2.1.0 Reverb bug

Ok, after some testing with different midis, I've found out this whole 0 reverb even when cc91 it's not at 0 only happens with some midis, specifically the unedited ripped midis from some gba games (not even in all gba rips, but in most of them) by GBAMusRiper

Those midis gotta have something weird in them, If I open them with Mixcraft and then save them as midi (without changing anything in the midi) they sound exactly the same but with reverb working

After disabling effects - applying - enabling effects - applying - reset midi player all these gba midis' reverb work until you close VMS

Also to reproduce this bug you need to close all blocking midi processes (the sames ones blocking installation of VMS) or else after you open VMS the reverb will still work on these midis, so basically:

  1. After disabling/enabling effects the reverb effect works on these midis, so to reproduce the bug you gotta reset VMS
  2. Close processes using VMS and then VMS
  3. Close possible blocking midi processes (at least in my case the bug didn't start to happen after reseting VMS unless I closed famitracker which I remember it blocked the VMS installation)
  4. Open VMS manually or directly by opening a midi with this problem (make sure said midi doesn't have cc91 on all channels set to 0, some songs have it at 0 on all channels) and the reverb shouldn't happen anymore

I won't upload any midis for now because I don't know wherever it's allowed to or not to upload midis from comercial games here

If I can, tell me and I will upload the whole midi collection and the soundfont, If I can't you can convert it yourself with GBAMusRiper (the only GBA game in my collection where this bug doesn't happen it's with Street Fight 2 revival)

This bug it's very specific, no wonder it seemed so random

Posts: 47
Joined: 25 Apr 2016 - 12:19
Re: 2.1.0 Reverb bug

I think that may be too specific. I don't have any GameBoy Advanced MIDIs, nor anything ripped with that ripper. It happens with MIDIs from old DOS games and MIDIs that have been sequenced and shared on the web, none of which contain any effects controller information (either originally or I removed them), and it appeared to happen randomly. Load VMS up, notice no reverb. Close VMS, restart VMS, plays fine without doing anything else.

http://kiwi6.com/artists/GEN_MIDI

Posts: 78
Joined: 14 Ott 2016 - 03:20
Re: 2.1.0 Reverb bug

Disabling (or enabling) stereo rendering or changing the reverb max level, applying and then reseting midi player also seems to temporally fix the reverb

And sometimes if I disable stereo, the reverb works just after starting VMS

The rest of the time it's random wherever it will work after starting VMS or not, I've had some instances where, with the reverb not working, I've closed and opened VMS and it has started to work

It also seems that, depending on what settings you changed last time the next start will be with or without reverb

Here more tests: https://www.youtube.com/watch?v=NaJgnt9TN_c

Kj wrote:
I think that may be too specific. I don't have any GameBoy Advanced MIDIs, nor anything ripped with that ripper. It happens with MIDIs from old DOS games and MIDIs that have been sequenced and shared on the web, none of which contain any effects controller information (either originally or I removed them), and it appeared to happen randomly. Load VMS up, notice no reverb. Close VMS, restart VMS, plays fine without doing anything else.

This might or might not be the same bug, if it is then it is affecting midis that share something in common that makes this occur

Posts: 72
Joined: 25 Set 2013 - 16:38
Re: 2.1.0 Reverb bug

I think there's really some problems/misunderstandings about the current reverb/chorus setting implemetation and I think it's mainly because of  the 'Override received Midi SysEx messages' option.

First a fundamnetal concept should be in the FAQ (I think):

1. There's no such thing as a guarenteed reverb/chorus level as far as midi playback concerned. This should be empasized: a midi file has the freedom to set reverb e.g. to zero on all channels with the help of channel controller messages and no VMS setting can/should prevent that. If someone would like to change this, it should be changed elsewhere (at the file level, or in the player software) VMS has nothing to do with this.

2. The 'Override received Midi SysEx messages' option promises too much. Currently it works only with GS/XG modes and only intercepts XG style reverb settings. But actually bassmidi supports many other possible SysEx messages that alter or reset the reverb /chorus level initially set by VMS. E.g VMS currently does not intercept/prevent GM/GM2/SC88 reset SysEx messages (all supported by Bassmidi) to reset reverb/chorus level to default 64. So even if 'Override received Midi SysEx messages' is checked and reverb/chorus level is set e.g. to 127 after a GM/GM2/SC88 reset SysEx it will be resetted to 64. The problem is there can be many other such messages (e.g. XG's bulk SysEx messages can alter reverb/chorus levels and virtually anything else). VMS actually should implement a complete GS/XG SysEx interpreter to prevent all of these possible messages to influence reverb/chorus levels in 'Override received Midi SysEx messages' mode. I think it's hopeless/a mission impossible. In other topic somewhere here someone mentioned that this option should be removed or not set as default. I start to agree with this.

Also VMS cannot know (if a file altered reverb/chorus settings), when to apply its settings again, when a new file starts playing. So this whole reverb/chorus setting thing seems to be more parctical to handle at the midi player level (a player knows when a new file starts playing and so when it has to re-apply the default reverb settings). So if these settings remain on VMS's interface I think they should be reanamed to 'Initial Reverb Max Level' and Initial Chorus Max Level' respectively (and the override option should be gone).

These are just some theoretical rants but I really think it's not Claudio's fault/VMS's problem that reverb/chorus handling is not consistent. VMS is simply not the right tool (not at the right place in the midi playing pipeline) to handle these.

Posts: 78
Joined: 14 Ott 2016 - 03:20
Re: 2.1.0 Reverb bug

Thanks for that information, I don't know if this will be useful at all but, here, more facts about these problematic midis:

  • They are GS compliant, according to GXSCC at least, when exported from mixcaft (without changing anything on it) they lose the gs compliant thingy and then the reverb works perfectly
  • Reverb problem also happens on Vanbasco's karaoke player
  • The reverb of these midis work when converted with the midi file converter or by playing with the settings on playback like I did on the tests
  • All these midis are using CC91 on all channels, all channels share the same value, there are some songs with 0 (you won't get reverb out of those even when playing with the settings) but most of them are set between 25 and 100
  • The value of CC91 it's set at JUST when the midi starts like this:

If it's a limitation rather than a bug I guess it can't be helped

Posts: 1542
Joined: 25 Mar 2012 - 01:19
Re: 2.1.0 Reverb bug
falcosoft wrote:
The 'Override received Midi SysEx messages' option promises too much. Currently it works only with GS/XG modes and only intercepts XG style reverb settings. But actually bassmidi supports many other possible SysEx messages that alter or reset the reverb /chorus level initially set by VMS. E.g VMS currently does not intercept/prevent GM/GM2/SC88 reset SysEx messages (all supported by Bassmidi) to reset reverb/chorus level to default 64. So even if 'Override received Midi SysEx messages' is checked and reverb/chorus level is set e.g. to 127 after a GM/GM2/SC88 reset SysEx it will be resetted to 64. The problem is there can be many other such messages (e.g. XG's bulk SysEx messages can alter reverb/chorus levels and virtually anything else).

It all started at VMS1.x era, when someone reported that BASS reverb/chorus levels were too high at default.
I agreed with that thought so I started implementing the "Chorus/Reverb default level" feature.

It was a hack at the very beginning, expecially when I decided (shame on me) to let users force Chorus/Reverb levels by overriding the received controller/SysEx messages.
I should have known that this feature wasn't a long-term solution: too much different cases to manage and also (as @falcosoft said), VMS must intercept and parse each SysEx message.
(that's why I'm actually much more reluctant in adding new features ;))

falcosoft wrote:
VMS actually should implement a complete GS/XG SysEx interpreter to prevent all of these possible messages to influence reverb/chorus levels in 'Override received Midi SysEx messages' mode. I think it's hopeless/a mission impossible. In other topic somewhere here someone mentioned that this option should be removed or not set as default. I start to agree with this.

I do agree, but I also hate developers that remove a well-known feature without offering a workaround.
OK, it's hard to find a MIDI with Chorus/Reverb changes in the middle of it.
But what if someone have one of them?

I think that it should be better to rephrase the "Override SysEx" checkbox label to something else... what do you think?

Posts: 72
Joined: 25 Set 2013 - 16:38
Re: 2.1.0 Reverb bug

Yes, you are right. Removing existing features even if they are somewhat flawed is not a nice thing...

So let's try the hard way :). We should gather the most frequent SysEx messages that can screw up the reverb/chorus settings in bassmidi then test some midi files that contain them.

First there are reset SysEx messages that bassmidi reacts to. Also there are the GS style reverb/chorus level sysex messages that bassmidi also understands.

They all should be included in your SysEx intercepting routine.

I have attached the known reset SysEx messages that could affect bassmidi's reverb/chorus level.

Attachments (Only registered users)
Reset_SysExes.zip
Posts: 72
Joined: 25 Set 2013 - 16:38
Re: 2.1.0 Reverb bug

And here are the GS style reverb/chorus level messages:

GS Reverb level:

F0 41 10 42 12 40 01 33 xx yy F7  xx = level yy = cheksum

GS Chorus level:

F0 41 10 42 12 40 01 3A xx yy F7  xx = level yy = cheksum

I think for your interpreter the relevant part is only up to xx. If a pattern matches up to xx then it's an GS reverb/chorus message, the level value/checksum/closing F7 byte is not relevant.

Unfortunately some variations can also occur in reset messages (e.g. Device ID) .

Posts: 47
Joined: 25 Apr 2016 - 12:19
Re: 2.1.0 Reverb bug

I just tried a clean install of 2.5.1 and on first loading of VMS there is no reverb. I set it low again and applied changes, set it back to allow up to 127 and it still seems to set the value at 127 rather than allow up to the max value. Back to 2.3.2 (a shame as there are some good new features).

http://kiwi6.com/artists/GEN_MIDI

Posts: 47
Joined: 25 Apr 2016 - 12:19
Re: 2.1.0 Reverb bug

I tried clean installs of the last few versions, and just tried 2.5.4 and I'm still having this lack of reverb initialization problem. Is anyone else still having this issue or has it been fixed for others?

Reverb is fine after installation, but still non existent after system reboot, unless adjusting the value again to make it kick in. I don't mind using 2.3.2 to not having to keep readjusting settings, but like the idea of the quick channel solo option on the meters.

http://kiwi6.com/artists/GEN_MIDI

Pagine