VirtualMIDISynth 2.x alpha available for testing

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 !!!

Pagine

Posts: 59
Joined: 19 Apr 2014 - 06:23
Re: CoolSoft VirtualMIDISynth 2.0.0-alpha4 released

Alright now on Alpha4, and I've found a 2 very minor bugs:

- Configurator does not automatically open upon clicking "finish" in the installer with the "open configurator when finish" checkbox checked

- When opening VMS without a soundfont, the "no soundfont loaded" message pops up which leads to the config as normal; The config window is open without the VMS icon in the taskbar.  Upon closing it the first time, the config window immediately re-opens one more time, but with the VMS taskbar icon present.

- Main laptop: Sager NP4658, Intel i7-4810MQ, 2*8GB DDR3 (PC3-10700), 512GB+512GB SSDs, Intel HD4600/NVidia GT840M

Posts: 59
Joined: 19 Apr 2014 - 06:23
Re: CoolSoft VirtualMIDISynth 2.0.0-alpha4 released

Oh one more minor bug I found:  That I'm unable to minimise the VMS configuration window at the top right (but still can close it with "x")

- Main laptop: Sager NP4658, Intel i7-4810MQ, 2*8GB DDR3 (PC3-10700), 512GB+512GB SSDs, Intel HD4600/NVidia GT840M

Posts: 1972
Joined: 25 Mar 2012 - 01:19
Re: CoolSoft VirtualMIDISynth 2.0.0-alpha4 released
Ray890 wrote:
I'm unable to minimise the VMS configuration window at the top right (but still can close it with "x")

I can't reproduce this on my side, the "minimize" button is always visible and enabled (as it should be).

Is there a particular condition that makes it happen?
How did you reach that situation?
I.e.: did you start VirtualMIDISynth.exe manually or was it started automatically by the driver?
Did you minimize/restoreit several times in a row?

Posts: 59
Joined: 19 Apr 2014 - 06:23
Re: CoolSoft VirtualMIDISynth 2.0.0-alpha4 released
coolsoft wrote:

I can't reproduce this on my side, the "minimize" button is always visible and enabled (as it should be).

I just tested VMS alpha-4 on another windows 7 laptop (Conxant CX20587 SmartAudioHD, AMD P320) and I'm getting the same issue.  In the configurator window (mixer works fine), there is the minimise button visable, but when I click it, nothing happens (instead of minimising as I expected), this happens in all launch methods (non-soundfont, regular manual, and the driver-triggered).

 

 

Also as I installed it on the other laptop, I again ran into the other issue of the audio not working when it's supposed to (but midi mixer still responds with green "leds").

This problem is fixed for me after I disable my current soundcard and enable a different soundcard (and get coolsoft to playback on the second soundcard once) on another sound device, then disable the secondary soundcard and re-enable the first soundcard to get it to work on the preferred soundcard.

- Main laptop: Sager NP4658, Intel i7-4810MQ, 2*8GB DDR3 (PC3-10700), 512GB+512GB SSDs, Intel HD4600/NVidia GT840M

Posts: 59
Joined: 19 Apr 2014 - 06:23
Re: CoolSoft VirtualMIDISynth 2.0.0-alpha4 released

Update:  I just got a new laptop, and I only noticed a subtle improvement in performance compared to my old laptop, however when I uninstalled the beta and installed the latest stable version, I got a major performance improvement.

My test setup:  Piano From Above, playing "red zone insaneblack remix.mid" (1.1 million notes, by TSMB2) with the SGM-2.01 soundfont, measuring how many seconds of stutter lag I get at the "crash point"

Old laptop (i5-430m) with VMS 1.10.1:           20 seconds of lag (I think)
Old laptop (i5-430m) with VMS 2.x alpha:       20 seconds of lag

New laptop (i7-4810mq) with VMS 1.10.1:     3 seconds of lag
New laptop (i7-4810mq) with VMS 2.x alpha: 15 seconds of lag

What could be causing this?

- Main laptop: Sager NP4658, Intel i7-4810MQ, 2*8GB DDR3 (PC3-10700), 512GB+512GB SSDs, Intel HD4600/NVidia GT840M

Posts: 1972
Joined: 25 Mar 2012 - 01:19
Re: CoolSoft VirtualMIDISynth 2.0.0-alpha4 released

VMS2 is not expected to be as performant as VMS1 (at least at current alpha stage), but I'd like to investigate on this difference (and also on the lag of VMS1).

Could you also try with another lightweight player, like VanBasco?

Posts: 1972
Joined: 25 Mar 2012 - 01:19
Re: CoolSoft VirtualMIDISynth 2.0.0-alpha4 released

Just released Alpha5:

v.2.0.0-alpha5 - 2014-08-27

  • NEW: Added a watchdog to "driver <--> synth" IPC channel to silent audio in case of a driver/MIDI player crash.
  • NEW: Configurator window now has a complete system menu that includes window Minimize and Restore commands.
  • NEW: Only a single instance of the driver can be opened at a time. The other ones will receive a "device is busy" error message.
  • NEW: The "No soundfont warning" MessageBox has been replaced by a Systray balloon.
  • FIX: Fixed configurator dialog Minimize button, not working on some systems.
  • FIX: Configurator won't open after installation.

 

Posts: 59
Joined: 19 Apr 2014 - 06:23
Re: CoolSoft VirtualMIDISynth 2.0.0-alpha4 released

Alright so I gave Alpha5 a test on both my old and new laptops.

I still got that same audio bug that I got in all alpha builds on both machines (where audio doesn't work, but I fix this by plugging in my spare USB soundcard, getting VMS to output on my usb soundcard, and get it to output back to my integrated soundcard).

Also I found it to be a little more crash-prone (vms itself, not the midi player).  I couldn't figure out what causes it, but I think it mostly happened while I got it to first-play on my usb soundcard, and when I first-played back on my integrated card.

Anyway, I've done some performance testing through properly measuring lag times each test.  I used vanBasco this time with that same "red zone 1.1 million note" midi with my old+new laptop and vms current+alpha, and found some oddly interesting results..

i5-430m laptop, VMS 1.10.1 stable -          3.5 seconds
i7-4810mq laptop, VMS 1.10.1 stable -      3.5 seconds

i5-430m laptop, VMS 2.x alpha5 -             12 seconds
i7-4810mq laptop, VMS 2.x alpha5 -          14 seconds

Running status enabled/disabled -              no impact on lag times

Also, I noticed that setting the cpu affinity of VirtualMIDISynth.exe to one or two virtual cpu cores allowed certain laggy midis to have a more pleasent sound when lagging (instead of the usual non-musical screeching sound, the song pleasantly plays in slower motion), which made me think...
Is it possible that the software just needs better thread management, and perhaps could use multi-threading locked to cores within it's midi engine (perhaps a core/thread per midi-channel?) to take better advantage of multiple cores and improve performance? (despite the problems of the midi players also being single-threaded)

- Main laptop: Sager NP4658, Intel i7-4810MQ, 2*8GB DDR3 (PC3-10700), 512GB+512GB SSDs, Intel HD4600/NVidia GT840M

Posts: 16
Joined: 4 Set 2014 - 17:34
Re: CoolSoft VirtualMIDISynth 2.0.0-alpha4 released

Not sure about the earlier ones, but A5 doesn't gracefully handle the delay between when it is first called and when it's able to respond when using extremely large SoundFonts.  When I say "extremely large" I am of course referring to the 1.5GB monster that is Evanesscense 2.  Instead of simply waiting it out, an error is kicked back to ensure that the Virtual MIDI server is actually running.  Trying to run it again brings up an error saying that it is already running

To that end, is it at all possible/likely that a feature will be implemented to begin loading/streaming the SoundFont as soon as the system starts, rather than waiting for the first program to begin calling the MIDI driver?  Seems as though simply launching the server is sufficient, so it will likely only require a checkbox corresponding to launch on start-up.

I have also noticed that A5 cannot update the currently used SoundFonts while the server is active.  You have to make your changes, then close and re-open the server before they're applied.  It's possible this is unavoidable, but in the event it is a "restart server" button would be nice.

Posts: 1972
Joined: 25 Mar 2012 - 01:19
Re: CoolSoft VirtualMIDISynth 2.0.0-alpha4 released

@Ray890: I reproduced the bug on my side. It's related to an inefficient implementation of VMS internal MIDI queue. I'm going to rewrite it to make it faster.
As for the core affinity suggestion, it's a good point; I'll investigate on it.

@Thalyn: A4 didn't have the watchdog on driver <--> synth IPC channel, so it waited some seconds before giving up. A5 introduced a "watchdog" on the channel: if one of the two sides hangs for more than 2 seconds, the other disconnects or show a warning message.
I haven't tried to configure such a huge soundfont, but I suppose it requires more than 2 seconds to load... That's why the driver thinks the server is died.
It will be improved in next version.

[QUOTE="Thalyn"]To that end, is it at all possible/likely that a feature will be implemented to begin loading/streaming the SoundFont as soon as the system starts

I asked for suggestions for these feature some posts ago.
I'm going to include these options:

  • start server when needed, stop it when not needed anymore
  • start server when needed, stop it manually (current implementation)
  • start server at user logon, stop it manually

The first one is good for "casual users" while the latter is best for musicians.
Meanwhile your "workaround" to manually start VirtualMIDISynth.exe is the best solution ;)

Thalyn wrote:
I have also noticed that A5 cannot update the currently used SoundFonts while the server is active. You have to make your changes, then close and re-open the server before they're applied. It's possible this is unavoidable, but in the event it is a "restart server" button would be nice.

This will surely be improved in the future.
VMS1 code was ported as-is in VMS2 and I started from there changing as less as possible.
I only splitted the driver into two parts and integrated the configurator into th synth, then added the new communication channel code.
Since I'd like to test if the new new architecture leads to the same performances as VMS1, I'd like to keep VMS1 and VMS2 as much similar as possible.

Pagine