VirtualMIDISynth

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 (SP3) / Vista (SP1) / 7 (SP1) / 8.x / 10 (both x86 and x64), and is based on the great BASS library from un4seen.

Introduction

Playing a MIDI (o karaoke) file on Windows has always been a poor-quality experience, because the well known bundled "Microsoft GS Wavetable Synth" synth is just... ehm... simple: poor samples, mono sound, no effects (reverb, chorus) support.

Software synts deeply improve quality, but sometimes they're difficult to install or limited to specific uses, like the ones integrated in some DAWs or karaoke players.

Till Windows XP some virtual devices existed on 32bits systems, like the well-known YAMAHA XG SoftSynthetizer S-YXG50 and Cakewalk-sfz+ (both unsupported now).
Nowadays, on x64 systems, we're out of luck: none of them works anymore.

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 Windows XP / Vista / 7 / 8 / 10 (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)
  • Supports up to 4 virtual devices, each with its own soundfont configuration (new in version 2.x)
  • Virtually unlimited polyphony (limited only by available CPU power)
  • MIDI mixer to set track mute/volume, accessible through systray icon
  • Integrated MIDI converter to easily convert your MIDI files to WAV/MP3/FLAC
  • Lightweight setup (~1.2 MBytes)
  • No DLL cluttering, everything is self contained installation folder (except for MIDI device driver) (new in version 2.x)
  • Clean installer, won't affect other MIDI devices
  • Efficient RAM usage (allows using large SoundFonts, > 1GByte)
  • Load soundFonts (up to available memory), enable/disable/chain them at your will; native 64bit version (on x64 OS) is not limited to 4GByte (new in version 2.x)
  • Configure MIDI Mapper default device (this feature is already available in XP, but missing in Vista / Windows 7)
  • Windows 8/10 users can also install CoolSoft MIDIMapper and configure it straight from VirtualMIDISynth configurator to get the well-known MIDI Mapper back to their systems
  • Multilanguage dialogs.
    If you want to help in translation, see here for status then get in touch to have access to the online translation system.

Take a look at the TODO list of what features you'll find in next versions or propose your ideas.

What now?

Well, having a better MIDI experience is easy as 1-2-3:

  • Download VirtualMIDISynth setup following the link 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), save it locally on your computer and add it to VirtualMIDISynth
  • Run your favourite MIDI application and configure it to use VirtualMIDISynth (or set VirtualMIDISynth as your default MIDI Out device)
  • 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 & Troubleshooting

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 VirtualMIDISynth?
VirtualMIDISynth works with Windows Mediaplayer and MPlayer classic. Since these players cannot change their MIDI out device, you must set VirtualMIDISynth 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?
VirtualMIDISynth is freeware, you can use it as you like.
If you use it "professionally" you're encouraged to make a donation.

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?
Join to the forum and help other users, or promote it to your friends / forums / social networks.
You could also support development with a donation.

Is there a tutorial available?
Don Allen wrote a great setup tutorial on MIDIKAR Yahoo group, freely available here.
That group is full of great MIDI experts and enthusiastics, please follow it.

If you're experiencing problems using VirtualMIDISynth, here's a list of common issues already solved.
Please check all of them before reporting a bug.
VanBasco

License

VirtualMIDISynth is freeware, use it as you like.
Donations are welcome, especially if you earn money with it (live performances, public karaoke sessions, ...).

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 any link dies...

Some fonts are compressed with sfArk or sfPack.
This page contains links to decompressors: http://woolyss.com/chipmusic-soundfonts.php#compressors

FREE

MIXED LICENSING

  • Good list of soundfonts, suggested one is 084.0mg ALL In ONE GM V1.1 Bank.sf2
    (sorry, I can't read Japanese so I can't categorize its licensing)

DONATION

References

Links to sites that talk about us:

Translations

Latest stable version includes these languages: English, Italian, French, Spanish, German, Greek, Portuguese (Portugal), Russian, Japanese, Polish, Finnish, Danish, Indonesian, Czech, Dutch, Hungarian, Chinese (simplified), Chinese Traditional (Taiwan), Thai, Turkish, Korean, Ukrainian, Vietnamese.

You're welcome to help in translation: VirtualMIDISynth has an on-line translation system that's really easy to use: see here for current language status then get in touch, I'll create a "translator" account (or allow your already existing account to access the translation system) and you're ready to go.

Version history 

v.2.3.0 - 2018-01-16

NEW If <default> output device is selected and Windows default output device is changed while playing, VMS will automatically switch to the new default device (@Falcosoft: thanks for your suggestion).
NEW Updated BASS.dll to version 2.4.13.2.
FIX Window snapping now works correctly with Windows 10 trasparent borders.
FIX Fixed a memory leak in device opening/closing.
FIX Optimized memory allocation and usage.
FIX Watchdog thread sometimes got stuck in a dead-lock instead of being terminated.

v.2.2.1 - 2017-12-24

NEW New configuration option to enable/disable windows snap.
FIX Improved window snap on Vista+, now excluding no-title, minimized, maximized, system and overlapped target windows.
FIX Fixed possible deadlock on IPC watchdog when quickly and repeatedly opening/closing devices.
FIX Fixed crash when showing balloons longer than 256 chars.

v.2.2.0 - 2017-11-27

NEW MIDI converter support to batch conversion of multiple files at once.
NEW User can now pass custom parameters to external encoder (actually MP3/FLAC formats are supported).
FIX MIDI converter doesn't use configured Reverb and Chorus settings.
FIX It's now possible to add the same soundfont multiple times, with different preset/bank settings.
FIX Minimum accepted bank value changed to -128 (with preset = -1).

v.2.1.0 - 2017-10-31

NEW Virtual MIDI devices can now be shared between process and opened multiple times. Each client will see each of them as it was the only one.
NEW Better soundfont Preset/Bank management (@Falcosoft: thanks for your help).
NEW Updated BASSMIDI.dll to version 2.4.11.0.
NEW Added Greek, Thai and Vietnamese translations.
FIX Increased watchdog timeout to avoid disconnection of long startup clients.
FIX Fixed update checker that won't stop notifying users when an update has been found before setting check frequency to "Never".
FIX Uninstaller now restores the default device both for MIDIMapper and Active Movie.
FIX Missing vertical scrollbar in Soundfont list at first config dialog open.

v.2.0.1 - 2017-04-23

NEW Added Korean and Ukrainian translations.
NEW Added analog audio devices list to debug report.
FIX MIDI Mixer context menu is now shown both when right clicking on title bar and pressing the Application key.
FIX Fixed vertical scrollbar in options tab becoming transparent on Win10, making it unaccessible.
FIX Reverb and chorus override is not applied live to active devices.
FIX Some MIDI messages (0xF6, 0xF8, 0xFA, 0xFB, 0xFC, 0xFE, 0xFF) could not be processed correctly.
FIX Fixed wrong "Bank MSB/LSB" handling (control change 0 and 32).
FIX Post-setup custom dialog is disabled on Win8+ due to undefined variable.

v.2.0.0 - 2017-03-22

NEW Multiple virtual devices supported (up to 4), each one with its soundfont configuration.
NEW No more DLL conflicts, driver component (loaded by MIDI client) is now lightweight and independent from the synth component.
NEW MIDI Mixer can now stay open when play stops.
NEW MIDI Mixer can now be kept on top of other windows.
NEW Instant play start (if synth is already started), no more soundfont load delay.
NEW Integrated MIDI --> WAV/MP3/FLAC converter to easily perform MIDI file conversion.
NEW Soundfont configuration editor to set bank, preset and volume. It also shows soundfont details like contained presets.
NEW Native 64bit for 64bit operating systems; now all the available system memory can be used to load soundfonts.
NEW Integration with CoolSoft MIDIMapper.
NEW Customizable MIDI client blacklist to exclude misbehaving clients.
NEW Redesigned (and resizable) configuration dialog.
NEW Configuration report feature, to ease bug reporting.
NEW Version 2.x introduces some other architectural changes, see here for further technical details about them (respect to 1.x series).

Download

VirtualMIDISynth automatically notifies its updates (if enabled), otherwise you can subscribe in the announcements forum to be notified.
Beta versions are announced in the same place, please subscribe there.

NOTE: legacy 1.x version of VirtualMIDISynth is still available here, but it's not supported anymore.
All users are encouraged to update to 2.x series.
Read here for further info about what's new in 2.x series.

Mirroring, repackaging and any other way to redistribute my software to end users from outside coolsoft.altervista.org is FORBIDDEN! (unless expressly authorized)
Links to this page are welcome (do not use HTML #fragments and do not link the .exe file directly).

CoolSoft_VirtualMIDISynth_2.3.0.exe
Descrizione Stable version
Release date 2018-Gen-16 Dimensione 1,340,944 bytes
MD5 8b13ac195b2c4fd87eab798e1798b882
SHA1 92f22afbc9328c30c974df63cc3a616ef2860c21
SHA256 70c2a3f143b229582a1a314728ecd6c6a459ca5897308342f56fd0d38f76738c
Virus check Open virus check report
CoolSoft_VirtualMIDISynth_2.2.1.exe
Descrizione Previous stable version
Release date 2017-Dic-24 Dimensione 1,312,723 bytes
MD5 e44716d28130b4ec35998e15a6cb7d4a
SHA1 9dd6d189dcfb415008980de1e4dffdbad34e172c
SHA256 5d41761d1a5cbbe27dde89340150f15997537ac3735290ad7680f6f02bff19c1
Virus check Open virus check report
warning

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.