VirtualMIDISynth 2.x alpha available for testing


Posts: 1033
Joined: March 25, 2012 - 01:19
VirtualMIDISynth 2.x alpha available for testing


VirtualMIDISynth 2.x entered the Beta stage, Beta1 has been released in a new thread here.

This thread is now closed, please post your comments there.


This thread has been started to let all VirtualMIDISynth 1.x users test the preview of next major version: version 2.x series, VMS2 from now on.
If you're an unexperienced VirtualMIDISynth user you should not try alpha/beta versions but fallback to the stable 1.x versions.

WARNING: VMS2 is actually in alpha stage; it means that it's still experimental, consider it as a preview and DO NOT use it during your live performances. Don't worry your system won't be messed up and you can remove it completely (and get back to VMS1), but errors and any other issue could happen unexpectedly.


What's wrong with VirtualMIDISynth 1.x ?

VirtualMIDISynth 1.x is (technically) a DLL, loaded by a MIDI application (typically a MIDI player like VanBasco or WMP) with the help of Windows User Mode Multimedia driver architecture.

It works great, but this architecture has some important drawbacks:

  • Being a DLL, VMS can't control when it's being loaded or unloaded.
    Suppose you have a MIDI that ends with a sustained note and you play it with a player that releases the DLL immediately after the last note has been played. VMS will be unloaded (and it can't delay) then sound will be truncated with no chances to play the last sustained note correctly.
  • DLL loading and unloading is controlled by the MIDI application; some do a good job, waiting a little bit before unloading the DLL, while others (more conservative) unload it immediately after use. Since VMS needs a few seconds to initialize (more if the "preload soundfont" option is active and a large soundfont must be loaded), playing more than one MIDI one after the other with such players adds pauses between tracks.
  • VMS uses BASS libraries to synthesize the received MIDI stream. That's good, but only if the MIDI player doesn't use BASS itself.
    If so, we could be in a DLL Hell: to circumvent it, VMS tries to detect the already loaded BASS library version and use it but, if an incompatible version (maybe too old) is loaded, there's no way to load a newer one so VMS can't work properly (or even can't work at all).
  • If MIDI application uses BASS and have already initialized it on a specific device and/or applied a specific configuration, VMS could use that configuration (if good for it) or stop working.
  • MIDI synthesis process is the same as MIDI player.
    VMS has an option to raise its priority, but doing this also the MIDI player application priority will be raised. Some applications doesn't support (or crashes after) priority changes.
  • Intra-process communication between VMS Driver and Configurator is really difficult.
    That's why configuration changes can't be applied immediately and require a VMS Driver restart.
  • For the same reason as above, MIDI Mixer is built into the Driver and not into the Configurator, making it impossible for the Mixer to stay open if the driver is not loaded.
  • Making VMS a multiple-device driver is really difficult, because the multiple instances must be syncronized one each other.

What's new in VirtualMIDISynth 2.x ?

VirtualMIDISynth 2.x indroduces a deep and important architectural change: Driver and Synth components have been splitted in two distinct parts, while the Configurator is now included into the new Synth.

The driver is still a DLL, loaded by the MIDI application as 1.x, but now it only contains the "windows multimedia driver" parts needed to identify the virtual MIDI device ("CoolSoft VirtualMIDISynth") to the system and receive MIDI streams from MIDI applications outputs.

The received MIDI stream is then forwarded to the new Synth component: a new, isolated and independent process that listens to VMS2 driver instances and plays the received MIDI streams. Syncronization between multiple driver instances could be done easily, from a single point.

Required BASS libraries are now loaded by the Synth process; we could now have a MIDI application using BASS v.2.2 and VMS using BASS v.2.4 with no issues.

What now?

I'm a VMS2 user and I'm testing it on 3 different systems, but I can't fix all of the issues without your help.
If you're ready to test it, download the setup file linked to this post and be prepared to post your comments here.

Each bug report should be as complete as possible (the more the better):

  • Check you're running the latest available version
  • Check the post below to see if the bug you're going to describe is already known and/or has already been fixed
  • Describe the bug with as much details as possible: what happens, when, what you did
  • Try to find a way to reproduce the bug: a sequence of operations, a particular configuration.
    Reproducible bugs are easier to fix.
  • Post your system details: Operating system version, MIDI Player, soundfont, ...everything that could help.
    I suggest you to add these informations to your signature, so it will appear below each of your post.

When will it be released?

In a few words: when ready!

I don't have any scheduled release time for VMS2 because I actually don't know how much I can work on it.
VMS2 development is done on my spare time, which is limited by real job, family, personal affairs, ... sorry ;)


You must be registered to download the attachment below...

PLEASE REPORT ALPHA VERSION BUGS HERE, do not start new threads in "Bug reports" forum.


NOTE: NO MORE DOWNLOADS HERE, please go to the Beta forum instead...

Posts: 1033
Joined: March 25, 2012 - 01:19

New features

  • Multiple devices (up to 4)
  • Multiple MIDI mixers (one for each device)
  • Settings live change while playing, including soundfonts
  • Resizable and scrollable configurator dialog
  • Driver/synth separation and fast performance IPC communication channel
  • Window snap

Features still to be implemented

  • Languages other than English (translation will start when we'll reach the release candidate phase)
  • Synth process is automatically started by driver but must be closed manually (need some ideas on who and when should close it)
  • Upgrade VMS1 configuration to VMS2

Known bugs

  • ...
Posts: 26
Joined: March 12, 2013 - 16:35


After installation I can't even run application properly.

Appcrash, no .dmp files.

Windows 8.1

009a301c 8b809c000000    mov     eax,dword ptr [eax+9Ch] ds:002b:0000009c=????????
0:000:x86> p
(bec.15ec): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.

Do you have a debug version so I can grab more information and track this problem a bit deeper?

PM via email if you need it. ;)

I want to test this alpha in a spare time...

Posts: 1033
Joined: March 25, 2012 - 01:19

Thanks for your bug report.
It was caused by a bug in the soundfont selection dialog, when opened for the very first time.

Fixed in alpha3, see first post for the updated setup.

Posts: 1
Joined: July 20, 2014 - 19:25

Come faccio per scaricare l'applicazione ?


Posts: 1033
Joined: March 25, 2012 - 01:19

Solo gli utenti registrati possono accedere al download delle versioni di test.

Ho visto che ti sei appena registrato, verifica nella tua casella di posta che ti sia arrivato il messaggio di attivazione dell'account (verifica anche lo spam).

Posts: 8
Joined: July 3, 2013 - 09:10
CoolSoft VirtualMIDISynth 2.0.0-alpha3.20140719-00

Salve, sul mio PC c'è installato Windows 8.1  ho scaricato

ma non riesco ad installare l'Applicazione, appena esguo l'App. PC protetto da Windows!

Windows SmartScreen ha impedito l'avvio dell'App. non riconosciuta.

L'esecuzione di tale App potrebbe costituire un rischio per il PC.

Da cosa dipende... perchè non si installa? la volevo Testare!


Il Futuro è fatto di persone che hanno delle intuizioni e visioni... sono quelle persone che fanno la differenza... quelle dotate di un terzo Occhio!

Posts: 1033
Joined: March 25, 2012 - 01:19
Re: CoolSoft VirtualMIDISynth 2.0.0-alpha3.20140719-00
cosibello wrote:
Windows SmartScreen ha impedito l'avvio dell'App. non riconosciuta.

A quanto vedo Windows SmartScreen è un'applicazione per la protezione di Internet Explorer...

Non la conosco bene, ma non capisco come possa intervenire su VirtualMIDISynth.
Probabilmente bisogna mettere VMS2 nella lista dei file "sicuri", o qualcosa di simile.
Comunque lo stesso difetto dovrebbe averlo anche VMS1, dato che il setup è lo stesso (o quasi).

Forse questo link può aiutare:

Posts: 59
Joined: April 19, 2014 - 06:23
Re: CoolSoft VirtualMIDISynth 2.0.0-alpha3.20140719-00

I clicked the download link to this beta while I'm logged in, and it says I'm denied access to the page/file

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

Posts: 1033
Joined: March 25, 2012 - 01:19
Re: CoolSoft VirtualMIDISynth 2.0.0-alpha3.20140719-00
Ray890 wrote:
I'm denied access to the page/file

It should work now, sorry.



Warning, JavaScript is disabled!

JavaScript is not available, maybe because you disabled it globally into your browser settings or you are using an addon like NoScript.

We do not have any dangerous JavaScript running here.
Please enable JavaScript; if you're using NoScript this image will help you adding CoolSoft to your whitelist.

Thanks for your comprehension and enjoy CoolSoft.