VirtualMIDISynth FAQ

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

This page contains a list of questions VirtualMIDISynth users asked by email or Website contact form.
If you can't find a solution to your issue, feel free to contact me and provide these info (the more the better):

  • Operating system version, including service pack and bitness (32 or 64 bit)
  • CPU type, RAM size
  • Sound card type
  • VirtualMIDISynth version installed
  • MIDI Software and soundfont you're using to play

FAQ

 

Troubleshooting steps to solve issues with VirtualMIDISynth

If you're experiencing problems playing MIDIs with VirtualMIDISynth, here's a list of common issues I got from users feedbacks.
Please check all of them before contacting me.

  1. VirtualMIDISynth requires a modern CPU to run.
    An Intel Core2 CPU (or newer) should be fine, like an AMD AthlonXP processor (or newer).
    RAM is not so important, 1GB should be enough unless you use a very big SF2 like CrisisGeneralMidi.
  2. Ensure all of your system drivers are updated, including video, audio, chipset, motherboard.
  3. Ensure your operating system is fully updated through Windows Update (maybe MS guys already solved your bug...).
  4. Disable your antivirus/firewall/malware detector (I don't mean Windows Firewall but any other third-part firewall software, like ZoneAlarm or Comodo).
    This kind of software could have some scheduled tasks running while you're playing on-stage and is still the most common cause of playing issues.
    You can't believe how many people still go on-stage with their antivirus/firewall/skype/msn active!
  5. Disable any other software running in background: Skype, msn, mail checkers, printer monitor softwares, cell phone suites.
    They all could have background tasks that unpredictably raise CPU usage
  6. Set these VirtualMIDISynth settings to their default value:
    - Output audio device: <default>
    - Enable hardware mixing: On
    - Preload the whole soundfont: On
    - Increase process priority: On
    - Additional output buffer: 250ms
  7. Play a MIDI with VanBasco player and ChoriumRevA soundfont. The first is a really light MIDI/KAR player and the latter is a light (and good) SF2.
    Please configure VanBasco's MIDI output to use VirtualMIDISynth directly, not through MIDI Mapper (se the screenshot above).
  8. If your MIDI player has a MIDI output device setting, configure it to use VirtualMIDISynth directly instead of MIDI Mapper; this will shorten the MIDI chain and give the best results.
  9. If you hear nothing, please:
    - Double check if you have selected and enabled at least one soundfont, and this soundfont contains the instruments needed by the MIDI you're playing.
    - Try to load a General MIDI SF2 like ChoriumRevA, Weeds or Fluid_R3.
    - Open MIDI Mixer while playing (double click on VirtualMIDISynth systray icon) and check if the output level indicator on the master volume is active or if the green LED on any MIDI channel is blinking to show MIDI activity.
    - If not, that means VirtualMIDISynth is not receiving MIDI data so recheck your MIDI player configuration.
    - Check if MIDI channels are muted; right click on MIDI Mixer and select "Unmute all".
    - Set MIDI Mixer Master volume at maximum level.
    - Starting from Windows Vista, system audio mixer has a slider for each process with an audio output; open the full audio mixer (not only the master volume) and check the volume slider associated with VirtualMIDISynth.
    - Check that VirtualMIDISynth is using the right audio device for playing (Configurator | Options | Output audio device), or try to select a specific one.
    - If you have more than one audio device (usually laptops have more than one), please check that you're listening the selected one.
  10. If you still have problems, feel free to post on the forum and attach these info (the more the better):
        Operating system version, including service pack and bitness (32 or 64 bit)
        CPU type, RAM size
        Sound card type
        VirtualMIDISynth version installed
        MIDI Software and soundfont you're using to play

 

VirtualMIDISynth disappeared from the available MIDI output devices list

VirtualMIDISynth registers itself as a "User mode driver" into these registry keys:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32
  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Drivers32 (64bit systems only)

In these keys you must find a "midiXXX" key pointing to "VirtualMIDISynth.dll" (usually it's "midi1").

Sometimes third party setup procedures clean up those keys (still wondering why...) so VirtualMIDISynth is "removed" from the system; in fact it's still installed but unconfigured.

Some users reported that Radeon drivers do have this unexpected behavior:
https://coolsoft.altervista.org/en/forum/thread/773
https://coolsoft.altervista.org/en/forum/thread/775

Some other users reported that major Windows 10 updates clean up that registry key as well:
https://coolsoft.altervista.org/en/forum/post/2709#post2709

VirtualMIDISynth 2.7.0 introduced a new feature that checks configuration after startup and can fix it in case of issues.

 

I have a delay on notes played through VirtualMIDISynth

See the advanced option "Additional output buffer" into VirtualMIDISynth confgurator.
This buffer is meant to be useful on mid-low performance systems, to avoid stutering and glitches while playing.
If you set it to 1000ms (1 second) it means that each note is player 1 second after the MIDI message is sent.
Default value is 250ms, which is an acceptable value for everyday use. VanBasco player also have a setting to delay karaoke text over music; setting it to the same value will make text and sound synchronized back again.

If you use VirtualMIDISynth for live performance (i.e. connecting an USB piano keyboard), set this buffer down to 0ms.

 

How can I play my USB piano keyboard through VirtualMIDISynth?

USB MIDI keyboard is a MIDI input device, while VirtualMIDISynth is a MIDI ouput device.
It's the same as microphone and speakers connected to your PC.
The only way for them to talk each other is a MIDI software configured to stream MIDI IN to MIDI OUT.

Some users had success using MIDIOX: set your USB keyboard as MIDI IN and VirtualMIDISynth as MIDI OUT.
MIDI-OX also allows you to patch the MIDI stream between them.

 

VirtualMIDISynth is not listed as output device in Cakewalk / Sonar

This solution works for Sonar 5, but can be adapted to newer versions (here's the original Cakewalk knowledge base page):

Internal Sound Card Playback:
If you have a built-in sound card and want Cakewalk to play MIDI through the synth built into Windows, you will need to switch Cakewalk's driver mode so it can see it.

- Go to Edit > Preferences > Audio - Playback and Recording (Options > Audio > Advanced in legacy products)
- Change the Driver Mode to "MME (32-bit)" and click Apply (in legacy products put a check in the box that says "Always Use MME Interface" then click OK)
- Restart the program and let the Wave Profiler Test your hardware.
- Go to Edit > Preferences > MIDI - Devices (Options > MIDI Devices in legacy products).
- You should now see "Microsoft GS Wavetable S/W synth" under outputs.
- Select this new device and click Apply (if available) then OK.

 

DosBox games crash with VirtualMIDISynth

Open VirtualMIDISynth configurator -> Options and disable Increase process priority to REALTIME option.
You could also disable Preload the whole SoundFont into memory option on the same page to have a shorter startup time.

 

How does the Soundfont list work?

Think it like an ordered list of soundfont files, where the last loaded (from top to bottom) wins (at instrument level).
If you enable more than one virtual device, then you can enable each soundfont on each device independently.

Usually use you could load a single (your preferred) soundfont and use it for all instruments.
But some users who don't like some instruments contained in a SF2, could "replace" them with others.

Suppose you configure a full GeneralMIDI soundfont A.SF2 at first (topmost) position, then a smaller B.SF2 SF containing only your preferred Acoustic Grand Piano samples at second (lower in the list).
Now VirtualMIDISynth will use A.SF2 for all instruments except for Acoustic Grand Piano that will be played from B.SF.

Please note that all of the configured (and active) soundfonts are loaded in memory, so a long list could lead to higher memory usage.

 

How can I record VirtualMIDISynth output?

VirtualMIDISynth does not provide an option to record its output to an audio file; it is like an audio card, it only plays each MIDI command received on its input.
So it can't know when to start/stop recording; this info is only known by the MIDI player.

As a workaround you could use a software like Audacity to live record your soundcard output.

Please note that on Vista/7/8 you may need to enable the hidden Stereo Mix sound device to record your own audio.
Here's a good explanation on how to do it:
https://www.howtogeek.com/217348/how-to-record-the-sound-coming-from-your-pc-even-without-stereo-mix/

 

What happened to MIDI Mapper on Windows 8?

MIDI management under Windows became a nightmare after Windows Vista.

Windows XP: device 0 is MIDI Mapper, device 1 is Microsoft GS Wavetable Synth and so on (VirtualMIDISynth becomes the #2)
Windows Vista / 7: same as above, but MIDI Mapper configuration dialogs (control panel applet) disappeared (VirtualMIDISynth still #2)
Windows 8: no more MIDI Mapper, so device 0 is the first installed (Microsoft GS Wavetable Synth) and VirtualMIDISynth becomes #1

The worst part in Windows 8 is that in most old MIDI softwares device #0 is fixed to "MIDI Mapper".
Since this kind of device is missing on Win8, when user configures this device as output, the Microsoft GS Wavetable Synth device is used instead.
VanBasco is one of them and on Win8 shows two devices: MIDI Mapper and Microsoft GS Wavetable Synth, that link both to the same device.

 

How can I manually remove VirtualMIDISynth and reset multimedia drivers configuration?

VirtualMIDISynth uninstall procedure will completely cleanup all installed files (except your soundfont files) and its configuration.
Sometimes (if you installed other drivers other than VirtualMIDISynth) it could happen that the configuration becomes garbled or inconsistent.

Here's how you can reset your system to a default state.

VirtualMIDISynth manual uninstall and cleanup procedure.

Folders to delete:

  • C:\Program Files\VirtualMIDISynth

Files to delete:

  • C:\Windows\System32\VirtualMIDISynt.dll
  • C:\Windows\SysWOW64\VirtualMIDISynt.dll (only on 64bit systems)

Registry keys to delete:

  • HKEY_LOCAL_MACHINE\SOFTWARE\CoolSoft VirtualMIDISynth

Registry keys to edit:

These keys contain the registered multimedia drivers on the system.
To reset the registry to default state, set all existing midi* subkeys (midi, midi1, midi2, ..., midi9) values to wdmaud.drv.

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32
  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Drivers32 (64bit systems only)

Default MIDI output device configurations:

The following keys contains the default MIDI device configured for MidiMapper (up to Windows 7 included) and Windows Media Player.
NOTE: if WMP keys are missing they will be recreated at next Windows Media Player configuration change / close / reopen.

  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Multimedia\MIDIMap --> szPname = Microsoft GS Wavetable Synth (up to Windows 7 included)
  • HKEY_CURRENT_USER\Software\Microsoft\ActiveMovie\devenum\{4EFE2452-168A-11D1-BC76-00C04FB9453B}\Default MidiOut Device --> MidiOutId = FFFFFFFF
  • HKEY_CURRENT_USER\Software\Microsoft\ActiveMovie\devenum 64-bit\{4EFE2452-168A-11D1-BC76-00C04FB9453B}\Default MidiOut Device --> MidiOutId = FFFFFFFF (only on 64bit systems)

 

How can I temporarily disable VirtualMIDISynth?

VirtualMIDISynth has no option to enable/disable it; once installed it will be always available through MIDI-Out devices.

A workaround to temporarily disable it (instead of uninstalling it) is to rename its DLL so the Operating System won't load it when needed.
VirtualMIDISynth installs up to 2 DLLs:

  • C:\Windows\System32\VirtualMIDISynth.dll
  • C:\Windows\SysWOW64\VirtualMIDISynth.dll (only on 64bit systems)

Renaming these DLLs will make the system unable to load them (without errors) so the virtual devices won't be available.

Now create a batch file (see here) to automate the renaming task with the following content (remove the 64bit commands if not needed).
Name it disableVMS.bat (double check that the file was not created as disable.bat.txt by Notepad).

ren C:\Windows\System32\VirtualMIDISynth.dll C:\Windows\System32\VirtualMIDISynth.dll.disabled
ren C:\Windows\SysWOW64\VirtualMIDISynth.dll C:\Windows\SysWOW64\VirtualMIDISynth.dll.disabled
pause

Now run the file (as administrator on Vista and newer) to disable VirtualMIDISynth.

NOTE: all MIDI applications must be closed, otherwise the rename will fail because the DLLs are in use.

To enable it back, create an enable.bat batch file with this content:

ren C:\Windows\System32\VirtualMIDISynth.dll.disabled C:\Windows\System32\VirtualMIDISynth.dll
ren C:\Windows\SysWOW64\VirtualMIDISynth.dll.disabled C:\Windows\SysWOW64\VirtualMIDISynth.dll
pause

And run it like the other one.