VirtualMIDISynth

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.
VirtualMIDISynth is a software MIDI synthesizer implemented as a Windows multimedia user driver, accessible as a standard MIDI Out device.
It works on Windows XP / Vista / 7 / 8 (both x86 and x64), and is based on the great BASS library from un4seen.
Brief intro
If you are a MIDI/karaoke fan like me, you know that MIDI play quality on Windows systems was not really good out of the box. The bundled "Microsoft GS Wavetable Synth" MIDI Out device is just... ehm... simple: poor samples, mono sound, no effects (reverb, chorus) support.
On 32bits systems some better alternatives exist, like the well-known YAMAHA XG SoftSynthetizer S-YXG50 and Cakewalk-sfz+ (both unsupported now).
Upgrading to an x64 system was a pain for me: S-YXG50 doesn't work at all, Cakewalk-sfz+ was unusable.

One day Ian Luck (un4seen) added to his BASSMidi library a great feature: the possibility to render a live MIDI stream, including SysEx messages. I quickly realized that, if only I could intercept that MIDI stream and drive it through Ian's library, well, we would have got a great MIDI Synth.
The challenge was to create a good quality synth and keep the end user away from complicated virtual MIDI chains (ever tried VanBasco -> MIDI Yoke/LoopBe1 -> SynthFont chain ?).
User only needs a new virtual MIDI Out device, select it as output on his preferred player settings and... start playing, nothing more.
Here we are, VirtualMIDISynth is the answer: an user mode multimedia x86/x64 driver that works on XP / Vista / 7 (both x86 and x64), implemented as a MIDI Out virtual device.
Main features
- User mode multimedia driver, no reboots, no BSOD
- Directly accessible as MIDI Out device, no need for virtual MIDI cables (like MIDI Yoke, LoopBe1)
- MIDI mixer to set track mute/volume, accessible through systray icon while playing
- Compact size (setup is ~750 KBytes)
- No DLL cluttering, everything is self contained in System32/SysWOW64 subfolder
- Clean installer, won't affect other MIDI devices
- Efficient RAM usage (allows using large SoundFonts, > 1GByte)
- Virtually unlimited polyphony (limited only by CPU)
- Load up to 30 SoundFonts and chain them
- Load all of your soundfonts into list and enable/disable them at your will
- Configure MIDI Mapper default device (this feature is already available in XP, but missing in Vista / 7)
- Multilanguage dialogs (see here for supported langs).
If you like to provide a translation for your native language please get in touch)
What now?
Well, having a better MIDI experience is easy as 1-2-3:

- Download VirtualMIDISynth following the link you find at the bottom of this page and install it (you need administrative privileges)
- Download a SoundFont (you'll find a list of free high quality files below) and add it to VirtualMIDISynt
- Run your favourite MIDI application and configure it to use VirtualMIDISynt or, better, set VirtualMIDISynt as your default MIDI Out device (see screenshot below)
- Donate to CoolSoft ;)
oops, this step was not mandatory, anyway... thanks for doing it!
Maxime Abbey wrote a really detailed documentation on how to setup and configure VirtualMIDISynth; you can find it here.
FAQ
Why are you still playing MIDI files? Have you ever heard of MP3?
Well, first because MIDIs are cool and compact; in a few megabytes you can store thousands songs.
Second, I love Karaoke; VanBasco is one of my preferred MIDI/KAR players.
Third, with MIDI you can silent some tracks, change tempo and pitch easily.
I tried playing a MIDI file on my PC, and it sucks!
I agree, that's why I wrote VirtualMIDISynth!
MIDI only contains "instructions" on what should be played: instruments, notes, their length, power and so on. It's up to the synthesizer to generate sound from these "commands".
The bundled Windows synthesizer, "Microsoft GS Wavetable Synth", is the worst.
Which players work with VirtualMIDISynt?
VirtualMIDISynt works with Windows Mediaplayer and MPlayer classic. Since these players cannot change their MIDI out device, you must set VirtualMIDISynt as your default device.
I suggest you to try VanBasco player, which is one of the best MIDI/KAR players around.
How much does it cost?
VirtualMIDISynt is freeware, you can use it as you like.
Why are you releasing it for free?
Because the greatest part of MIDI synthesis is done by BASS libraries from un4seen; I only wrapped them in a Windows driver and gave them an easy to use interface.
That's great, how can I thank you?
Send me a comment and tell about this software to your friends / forums / social networks.
You could also support its development with a donation.
--> See more FAQs here.
License
VirtualMIDISynth is freeware, use it as you like.
Donations are welcome.
SoundFonts
Here you'll find a list of some free and quality SoundFonts available on the net.
Please let me know if I miss something or if some link dies...
Some fonts are compressed with sfArk or sfPack.
This page contains links to decompressors: http://woolyss.com/chipmusic-soundfonts.php#compressors
FREE
- FluidR3_GM (about 71Mb sfArk compressed, 141,5 Mb after decompression)
http://www.synthfont.com/soundfonts.html - Arachno SoundFont (good quality by Maxime Abbey, 80 MB SfArk compressed)
http://www.arachnosoft.com/main/soundfont.php
It also have a detailed documentation on how to install it on VirtualMIDISynth. - SGM-V2.01 (good quality, about 240 MB, sfArk compressed)
http://www.geocities.jp/shansoundfont/ - ChoriumRevA (about 19.6 MB)
http://www.un4seen.com/download.php?extra/ChoriumRevA.rar - WeedsGM3 (about 26,5 MB)
http://www.un4seen.com/download.php?extra/WeedsGM3 - CrisisGeneralMidi 3.01 (the largest I've ever seen, about 1,57 GB uncompressed)
http://www.bismutnetwork.com (use the menu at the top of page to find download link) - TimGM6mb (4MB by Tim Brechbill, small size)
http://ocmnet.com/saxguru/Timidity.htm - Merlin Vienna Soundfont (16MB, medium size and good quality)
http://ocmnet.com/saxguru/Timidity.htm - GeneralUser GS (27MB by Christian Collins, medium size and good quality)
http://www.schristiancollins.com/generaluser.php - GMR.sf2 by Rodolfo Lopez (217MB, good quality - 4shared link)
http://gmrsf2.blogspot.com/
DONATION
- Princess Soft SF2 (good quality by Giovannino Imperi)
http://princesssoftsf2.altervista.org/index1.html#!demo.html?referrer=coolsoft
NOTE: Soundfont author will devolve part of his donations to VirtualMIDISynth project.
If you like this SF2, please notice him you're using it with VirtualMIDISynth.
Troubleshooting
If you're experiencing problems using VirtualMIDISynth, here's a list of common issues already solved.
Please check all of them before contacting me.
References
Links to sites that talk about us:
- Il blog del Salmo 69 blog (ita)
http://www.salmo69.com/2011/10/usare-soundfonts-con-karaoke-e-basi.html - Synthesia
http://www.synthesiagame.com/faq.aspx#better_synth - Musink (free music-composition software)
http://www.musink.net - Virtual MIDI Piano Keyboard (opensource and multiplatform MIDI keyboard)
http://vmpk.sourceforge.net
v.1.8.1 - 2013-04-22
- NEW: Added Portuguese (Portugal) language (thanks to Gonçalo Ferreira)
- FIX: Fixed a bug with DosBox (and maybe other MIDI Clients) that caused crashes and hangs during play
(many thanks to "drivetheory": sending me saved games and instructions on how to reproduce the bug was a great help, really appreciated)
v.1.8.0 - 2013-03-30
- NEW: Added Windows Media Player default MIDI device setting (see here for details)
- NEW: Vietnamese language (thanks to MyNa VN)
- NEW: Danish language (thanks to Heine Svendsen)
- NEW: Czech language (thanks to Vaclav Muller)
- NEW: Improved update checker messages
- FIX: Clicking on hotkey balloon error will now open the configurator shortcut keys tab
- FIX: Hotkey balloon error will now show the shortcut that can't be created
v.1.7.0 - 2013-02-07
- NEW: Polish language (thanks to SuperGod)
- NEW: Indonesian language (thanks to Latiful)
- NEW: Swedish language (thanks to Magnus Johansson)
- NEW: Added support for GM/GM2/GS/XG instrument names, now correctly shown on MIDI Mixer
- NEW: Added an activity indicator on each MIDI channel, useful to quickly see which channel is actually playing
- NEW: MIDI Mixer can now be moved by clicking (and dragging) anywhere on it
- NEW: Added support for MIDI running status bit (some players call it "redundant MIDI data")
- FIX: Fixed a small memory leak in Mixer drawing functions
v.1.6.3 - 2013-01-10
- NEW: German language (thanks to Markus Stein)
v.1.6.2 - 2012-11-24
- NEW: Japanese language (thanks to yukinodsyouid)
v.1.6.1 - 2012-11-01
- NEW: Russian language (thanks to Boris Petrov)
- NEW: French language (thanks to Aziz Lallouche)
- NEW: Spanish language (thanks to Pedro López-Cabanillas)
- FIX: Fixed BASS initialization in case of already initialized BASS library
- FIX: Language files are now UTF-8
- FIX: Better language file memory management
- FIX: Soundfont listbox doesn't enable Apply button on checkboxes state changes
v.1.6.0 - 2012-10-21
VirtualMIDISynth is now multilanguage, English and Italian for now.
Dialogs and messages can be easily translated into other languages. If you like to help
in translating VirtualMIDISynth into your native language please get in touch at
http://coolsoft.altervista.com/contact
- NEW: Multilanguage setup, UI dialogs and messages
- NEW: Option to select language into configurator
- NEW: Configurator Soundfont chain list items now have a checkbox to allow disabling them while keeping on the list
- FIX: Increased soundfont list count limit to 30 elements
- FIX: Increased configurator dialog width to better accomodate translated strings
- FIX: Added accelerator keys to dialogs
v.1.5.0 - 2012-09-29
Most of VirtualMIDISynth features can now be controlled by PC keyboard.
- NEW: MIDI Mixer keyboard shortcuts:
(selected channel has its number underlined)
LEFT/RIGHT => move selection to left/right
0 => select master channel
1..9 => select channel 1...9
CTRL+0..6 => select channel 10...16
UP/DOWN => increase/decrease channel volume
HOME/END => quick set volume to max/min
M => toggle mute state - NEW: VirtualMIDISynth keyboard shortcuts:
CTRL+ALT+M => show/hide MIDI Mixer
CTRL+ALT+SPACE => MIDI panic (note off to all MIDI channels) - NEW: Increased max notes limit to 500
- NEW: Updated BASS library to version 2.4.9.0
- NEW: Updated BASSMIDI library to version 2.4.7.9
- FIX: Optimized MIDI Mixer memory usage
v.1.4.0 - 2012-07-20
Lot of new features and fixes in this (long waited) first release of the 1.4.x series.
* DRIVER *
- NEW: Added support for 64bit MIDI client applications (on 64bit OS)
- NEW: Better compatibility with BASS based MIDI clients, like Karafun and Synthesia
- NEW: Default systray context menu item is now mixer which can be opened by double clicking icon
- FIX: Increased sound buffer efficiency and better threads management
* CONFIGURATOR *
- NEW: Rewritten configurator with a new tabbed interface; now it could contain the new options in a more clean GUI
- NEW: Lot of new settings added:
- "advanced" settings to reduce CPU requirements disabling some features (like effects, polyphony, ...)
- output audio device selection
- automatically open MIDI Mixer while playing
- raise MIDI player process priority to "High priority"
- enabling audio hardware mixing
- audio output buffer size (default 250ms)
- NEW: Option to preload the whole soundfont file into memory before play (enabled by default). It increases the required memory and adds a small delay at start, but also gives a smoothest play because samples are already available in memory.
- NEW: Horizontal scrollbar into soundfont list to allow reading long filenames.
* MIXER *
- NEW: Better loking mixer VUMeter bar, it now appears like a LED stripe
- NEW: Mixer level meter now shows the running average of output level instead of the instant value, making it more realistic and "analogic"
- NEW: Increased channel name font size and enabled cleartype drawing
v.1.3.1 - 2011-12-10
- NEW: Post setup actions are not preselected by default.
"Show readme.txt" option has been removed and this file is now shown during into setup (while still available through Start menu link).
"Run configurator" and "Open website" checkboxes are blanked if a SoundFont is already configured.
Clickthrough users should now be happier during updates. - FIX: Fixed updater code causing VirtualMIDISynth device to disappear on some localized WinXP versions.
(thanks to user "exit" from kvraudio forum who helped pointing out compatibility issues under his localized XP)
v.1.3.0 - 2011-10-25
- NEW: Added update check feature; you can configure VirtualMIDISynth to automatically check if an updated version is available.
Default check frequency is 14 days (can be changed with configurator). If an update is available, a balloon notification appears on systray when VirtualMIDISynth is loaded (but no more than once a day). - NEW: Mixer window position is now clipped to the nearest screen, avoiding it to open out of screen when switching from dual-screen config to single.
- NEW: Updated bassmidi.dll to version 2.4.8.
- FIX: Fixed an important memory leak on Mixer window that causes hosting process memory to continuously increase when the Mixer is shown.
- FIX: MidiMapper now creates the whole registry path if not exists.
- FIX: Configurator now checks if another instance is running.
Download
Latest stable version included languages: English, Italian, French, Spanish, German, Portuguese (Portugal), Russian, Japanese, Polish, Swedish, Indonesian, Vietnamese, Danish, Czech.
If you like to help translating into your native language, please get in touch.
VirtualMIDISynth automatically notifies its updates (if enabled), otherwise you can subscribe here for being notified about them.
| CoolSoft_VirtualMIDISynth_1.8.1.exe | |||
| Description | Stable version | ||
| Release date | 2013-Apr-22 | SHA1 | ad96bd706031feef586954c71b240a5f2d0ed211 |
| Size | 840,174 bytes | MD5 | 138c6730dd78e4ff9afaa85625de80cc |
| CoolSoft_VirtualMIDISynth_1.8.0.exe | |||
| Description | Previous version (unsupported) | ||
| Release date | 2013-Mar-30 | SHA1 | cb78916883a90436215a3013b307797d1a82f281 |
| Size | 835,999 bytes | MD5 | 1d46d2a128022127a41e3a15da3d026b |

Warning, advertise blocker detected!
Advertising images can't be shown, probably due to an advertisement blocker plugin installed into your browser (like Adblock Plus for Firefox or Simple Adblock for Internet Explorer) and/or JavaScript disabled.
CoolSoft is supported by donations and a few (and non-intrusive) banners.
Please disable ad blocking for this website and enable JavaScript. If you're using Adblock for Firefox, this image will help you adding CoolSoft to your whitelist.
Thanks for your comprehension and enjoy CoolSoft.

Navigation
Login
Support me
Click here if you want to support CoolSoft:

Comments
Pages
Preloading the whole SF into
Preloading the whole SF into RAM is already possible (see the Options tab into configurator), but there's an architectural limit that can't be easily overcome: VirtualMIDISynth is a DLL, so it's loaded (and unloaded) by the client MIDI application. Since SF preloading occurs at each load, the added delay could be bothersome.
I suppose you're suggesting to create a separate exe process and demand to this one the SF (pre)loading.
This architecture will be great because this separate process could be started at windows start, so it will be ready immediately when needed.
The worst part is the to create a quick and efficient communication channel between the driver DLL and synth exe.
That's exactly what I'm going to do with next 2.x version of VirtualMIDISynth (see FAQ #5 here for details).
that sounds great! Your work
that sounds great! Your work is really appreciated: if I can help in any way just let me know!
Record to a file
Really appreciate your effort to this sir.
I just have 1 question, I've read th FAQ you said "VirtualMIDISynth does provide an option to record its output to an audio file".
Can you enlighten me on this? I can't find any option on the program.
Thank you sir...
Oops, that's a typo :(
Oops, that's a typo :(
"VirtualMIDISynth does provide an option" should read "VirtualMIDISynth does NOT provide an option to record its output to an audio file", now fixed.
All the rest of the FAQ is correct, and explains how to workaround this missing feature.
Sorry for the misleading and thanks for pointing it out.
Cheers
Bank 127 plays percussion instead of normal instruments
Instruments on whatever channel that had a Bank Select MSB(Controller 0) 127 are turned into percussion/drums and cannot be set back. It's like the synth is acting like an XG synth even though the MIDIs I'm playing are GS (where bank 127 is usually used for MT-32 instruments) and have the proper GS Reset Sysex. Plz fix as this is the same problem I had with the BASSMIDI Driver. This doesn't happen on XMPlay.
Test file needed
Please send me a sample (and minimal) MIDI test file through the contact form.
Also tell me which soundfount should I use to hear the difference when playing it with VirtualMIDISynth and XMPlay.
Got It Fixed
I got the issue resolved, it turns out that I had my .sf2 in the wrong order.
Glad to hear that, and thanks
Glad to hear that, and thanks for your feedback.
Other best Sound Fonts and organ fonts
Other best Sound Fonts and organ fonts
http://www.virtualorgan.com/Default.asp?Page=18
Midi files drop out at the very end
After downloading virtualmidisynth and one of the recommended soundfont banks, I was very impressed with the quality. After playing several of my midi files, I began to notice that the songs were not quite completing correctly. I tried changing my default player from Windows Media Player to dbpoweramp, winamp, etc. without any success. After a couple of days of trying, I started to pour over your coments....all 12 pages....and I saw your comment on this exact problem. You stated that unfortunately, there was no solution to this because virtualmidisynth runs as a DLL....and Windows 7 clears this out quickly when the song file has completed.
Before finally giving up on this, I decided to search for other free midi players to see if I could find one that worked. I ended up with the one you first recommended....namely Van Basco's Karaoke player.
Instead of naming virtualmidysynth as my default, I named Van Basco's Karaoke player as the default. Voila! Now I can play music on ALL of my players, Windows Media Player, dbpoweramp, etc. without losing the end of the Midi file. I also picked up a neat midi program called "Notation Player" that works well, and shows the sheet music. Everything now runs fine, now that I have set my default player as Van Blasco's Kareoke player. Technically, I really don't understand WHY this works.....but....it does, and that's fine by me. I hope this will help others who had this problem.
Best Regards,
Tom Weber
Sadly a DLL can't do anything
Sadly a DLL can't do anything to delay its unload: when the EXE order it, it must execute.
VanBasco does not close the MIDI device at all at the end, so it's a great player for VirtualMIDISynth.
The effect if worst if you set an higher output buffer, say 1000ms. When the MIDI client unloads the library, the last 1 second of the song can't be played and gets truncated.
To mitigate this bad behaviour you can:
I'm back, after all
Last month was really sad for me.
Sadly my father died on May 25, after a few weeks of worsening of his illness.
You can imagine where my mind was during those days, when real life events kept me offline for a long time.
That's life, we can only accept it and go on.
Condolences
I am deeply sorry to hear about the death of your father. Please accept my condolences.
About your software: keep up the good work.
Pedro
my condolences
Life must go on brother. You software is a big help for us midi musicians.
Error -1 while opening MIDi stream
Hi :)
Very nice software you have here.
I've just done a fresh install of windows 7 and I've put V-MIDI-S on so I can beef up my DOSBox games. Unfortunately, everytime I start DOSBox, I get a "Error -1 while opening MIDi stream" message appearing and the Soundfont file doesn't play. I typed "mixer /listmidi" in DOSBox can it see "Coolsoft VirtualMIDISynth" device at 0.
Can you help me with this please? Google comes up with nothing :(
Thank you!
That's really strange and,
That's really strange and, sadly, "error -1" means UNKNOWN_ERROR.
This is my checklist; follow each step and check if it fixed the issue before going to the next one:
This will let VirtualMIDISynth start with default configuration.
It fixed itself
Firstly, Sorry I didn't reply sooner. I've been very busy.
Well it seems after updating Windows and attempting again to get this working, dosbox now picks up and plays the MIDI Soundfonts perfectly. I'm not entirely sure what I did to fix the problem but I won't complain about it.
Thanks again for this awesome tool :)
Pages