VirtualMIDI delays for a sec when currently playing MIDI track changes (GZDoom 2.0.05)

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 !!!
Anonymous user
VirtualMIDI delays for a sec when currently playing MIDI track changes (GZDoom 2.0.05)

This issue isn't too big of a problem, but it's something I can't help but notice and I want to see if there's a reasonable explanation to it or a quick fix.

To summarize, whenever another MIDI (or MUS) is used or played (i.e. going from the menu to the game, level music changing, etc), VirtualMIDI delays for at least a second or less before playing the MIDI. I've turned off the Incress Process Priority and Preload options, but they've only worked a little bit.

I use WeedsGM3 and Arachno when playing DooM, both of which are large files (50MB and 150MB respectively). Again, is there a quick fix or is this normal for the program?

Posts: 1972
Joined: March 25, 2012 - 01:19
Re: VirtualMIDI delays for a sec when currently playing MIDI track changes (GZDoom 2.0.05)

This is probably related to MIDI client (your game) closing/reopening the MIDI device when changing the MIDI being played.
On real hardware MIDI devices this happens almost instantly, but on soft-synth it requires some time (load, initialization, start, ...).

You haven't mentioned the "Additional output buffer" setting: lowering it down to 0 will help reducing delay a lot.

Anyway, this is an architectural limit of VirtualMIDISynth 1.x, where the synth component is embedded together with the MIDI driver component, in the same DLL.
If the MIDI client closes the MIDI Device, the DLL is unloaded and reloaded again; this requires a lot of time because the new instance ust be reinitialized from scratch.

You can also take a look at VirtualMIDISynth 2.x, actually at the end of its Alpha stage (it's really stable now, will enter the Beta stage in a few days).
At the beginning of this post you'll find further details on what it will change; feel free to test it and report your thoughts there.