VirtualMIDISynth

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.

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.

Screenshot 1

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.Screenshot 1

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

DONATION

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:

Version history 

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

Comments

Pages

Is there a version of this synth that works with a MIDI computer game they call "Synthesia"?

Could you please provide more informations? What's Synthesia web site URL?
I suppose you already tried it unsuccessfully. Did you get an error message or does it simply not work?

Does it have a config dialog where you can choose the MIDI output device?
Does VirtualMIDISynth appear there?
What happens if you choose VirtualMIDISynth as output device?

Could you please elaborate a little bit the tests you've already done?

I did a few tests and the game crashes whenever I set it to this synth!

Also, is there version of this synthisizer for macintosh computes?

Now it works with synthesia :) and it's awesome!

http://synthesiagame.com/

Hey your soft is cool and it works in my midi karaoke program... but i have a little problem,  when i used it in my laptop some song slow or stack for a second when playing, i dont know where's the problem but i suspected the hardrive because when its reading the midi playing stack or delaying.... i tested in 2 laptop same problem... but in my desktop no problem

thanx again....

It could be an HDD issue, as you said. But I bet it could also be related to CPU performance.
Software synth is a really CPU intensive task, so maybe your laptop hangs a bit for this reason.

Next version will have some configurable settings about rendering quality (so you can tune CPU usage).

Hi,

Could you give an example of using the soundfont chain. I've loaded one GM/GS soundfont, but don't yet understand how loading others benetah it in the chain would affect playback.

Thanks. 

 

Hi
I'm trying to update my release to the new 1.1.1 but it isn't possible 'cause I receive a message to close all running tasks and I must confirm it to continue.
But if I confirm it also closes winlogon then the system can't continue to work and go on blue screen.

Also I tried to uninstall before the previous release 1.1.0 but it's the same.

How to solve it?
I'm using Windows XP SP3

More, I advice to display the release number on mixer and parameters screen.

Thanks in advance
Ciao
Gianni

 

That shouldn't happen, just because winlogon shouldn't load VirtualMIDISynth.dll at all.

Could you please double check if VirtualMIDISynth.dll is in really use by winlogon.exe using SysInternals Process Explorer?

I'll get in touch with you by email, then we'll post final solution here...

I just released version 1.2.0 which addresses your issue (common to WinXP users, see version history) in two ways:

  1. added a black list to deny system processes load the driver DLL (that's crazy, but on WinXP the winlogon.exe process loads VirtualMIDISynth.dll)
  2. updated setup procedure that now allow user to skip locking processes kill step and schedules a reboot at the end (if needed)

Thanks a lot for your precious help on solving this bug.

Every time I enable the VirtualMidiSynt in Windows XP, when I apply it returns to the (Sint.softw.tab. Sound wave MS G), I can not define (CoolSoftVirtualMIDISynth) to make it permanent without having to keep changing all the time that I run a MIDI. Will would be able to uninstall the Sound Canvas Synthesizer Windows XP and make your final VirtualMIDISynth?

Well, it's really hard to understand your question but I'll try to.
Why you first mentioned Sint.softw.tab. Sound wave MS G (I suppose you meant the XP bundled MIDI Synth), then Sound Canvas Synthesizer?

Are you talking about changint the system default MIDI device? If yes, are you using VirtualMIDISynth configurator to set it?
On WinXP you can also try using the control panel | multimedia | devices and you'll find a dropdown box with all of the installed MIDI out devices. Try to select VirtualMIDISynth here and press OK, then check if this setting has been saved.

I don't know about your technical experience, don't follow the suggestion below if you're not sure.
Open Regedit and go to this key: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Multimedia\MIDIMap
The value of key szPname entry on the right is current default device; what do you read there?

Thanks!! I suck in English, I live in Brazil, and I'll explain in my language, maybe you will understand better.

A qualidade do seu sintetizador é exelente, funciona muito bem no Windows XP.

O problema é o seguinte: 

Toda vez que habilito o (CollSoftMIDISynth) na caixa de reprodução de música midi no Windows, quando você aplica e fecha a caixa a mesma retorna para o sintetizador original do windows xp sound canvas (Sint.softw.tab sons wave MS G) o mesmo acontece no seu configurador, não fixa. Toda vez que vou ouvir um midi ou karaoke, tenho qie voltar a habilitar novamente o seu sintetizador, gostaria de saber se tem como remover o (Sint.softw.tab. sons wave MS G) definitivamente.

Muito Obrigado pela sua atenção!!

ciao. all'ultimo file da scaricare dice che c'è bisogno di password per estrarre... qual è?

Beh, lo dice molto chiaramente l'autore nella pagina stessa:
"Registering on forum is needed to have the password to extract this Rar archive", ossia "è necessario registrarsi al forum per avere la password".

Io rispetterei le richieste dell'autore, dato che non chiede soldi...
Altrimenti usa Google ;)

scusami non me ne sono accorto. ma come faccio a registrarmi?

Il link al forum è in cima alla pagina: http://www.bismutnetwork.com/12Forum/

You are a genius!!! Thank you very much, I'm going to write a post on my blog to sponsor your creation.

Bye,
Riccardo

Thanks in advance.
Please drop the link of your post here when you're done ;)

Scusami per l'inglese, era evidente che un genio così non poteva che essere italiano (d'altra parte Leonardo da Vinci, Galileo, Michelangelo o Guglielmo Marconi sono nostri antenati...)
Ecco il link all'articolo, spero possa far conoscere ancora di più la tua splendida creazione:
http://www.salmo69.com/2011/10/usare-soundfonts-con-karaoke-e-basi.html

Ciao
Riccardo

Hi thx for this good configurator for the bass.dll.

I 'll love to use it with jriver media center (i use vanbasco) but j river is better for my hunfred of midi files :)

Please take a look at it!

@kiwi: I tried both 16.0.181 and 17.0.59 (beta) versions of JRiver media center and I can't play MIDI files at all.
I mean I can't play them out of the box, regardless VirtualMDISynth.
It seems this software lost MIDI support after version 13 (http://yabb.jriver.com/interact/index.php?topic=67457.0).

This is a workaround that worked for me:

  • Set VirtualMIDISynth as default MIDI device
  • Installed version 16.0.181 (trial)
  • Tools | Options | File types | MIDI Audio | Playback method: Quicktime engine
  • It asks you to download & install Quicktime runtime, I installed version 7.71.80.42
  • Configure Quicktime and set it to use General MIDI Device: Control panel | Quicktime | Audio | Default Synth: General MIDI

This way I can play MIDI files into JRiver using VirtualMIDISynth as syntesizer.

Please tell me if this workaround works for you.
If yes, and if you already have a JRiver forum account, please reply to the thread I linked above and link this message (use the permalink); it could help other JRiver users.

Thx for the reply and sorry for the delay.

So i have maid what you suggest and it works :D

It's just anoying to install quicktime and to do a long chain but at least i can use fantastic tagging of MC and play my midi files with a soundfont ==>bye bye Van basko .

So i am very satisfied but some feature request :)

Solo button on the mixer 

Preset saving on the mixer

Better lisibility of the track name in the mixer

maybe a tempo change (i don't think it's possible it's more a player implementation like vanbasco but in case of :)

Also i have noticed volume meters in tracks don't move i have tried both hardware mixing check or unchecked.

Anyway good job to un4seen and to you have killed microsoft on this :)

Ps: I have answered in the JR forum :)

 

  • Solo button on the mixer
    Added to my todo list
  • Preset saving on the mixer
    Already on todo list, scheduled for one of the first 1.4.x series release
  • Better visibility of the track name in the mixer
    Hard work, because available space is not so much and I don't want to use a custom font that must be deployed and installed... what about a tooltip?
  • maybe a tempo change
    Can't be done, no way. At driver level I receive MIDI events as they're sent by the player, so there's no way to tell the player to play faster.
  • Also i have noticed volume meters in tracks don't move i have tried both hardware mixing check or unchecked.
    There's no VUMeters on tracks, only on the master track. This is a (understandable) limit of BASS library and will be a CPU hog.
    Tracks are identical so I know users think there could be a VUMeter there...
    If some GUI artist is listening I'm open to suggestions for a better looking mixer deck.

Thanks for your feedback.

Nice for solo buttons and presets it's the priority.

For the fonts tooltips it 'll be better but maybe u can simply another stock font?

Tempo change i understood :)

Volume meters , yes i have noticed after to have send my post that it's not level meter but maybe just a led 'll be possible for to know if a track receive data?

For gui i 'll be glad to try a version if u have the sdk for to do it am not a super gui designer but u can see some of my works here:

http://yabb.jriver.com/interact/index.php?topic=53745.0

or here:

http://imageshack.us/photo/my-images/141/era2inmulab.png/

As u can see i am on the flat mood :p

You're better than me in GUI design!
There's no SKD for GUI, because it's not meant to be skinned. And also GUI rendering is really simple to be light and fast.

Version 1.4 will be open source; at that time I'll call you back and we could plan how to work together (if you'll have spare time).

i 'll have :)

so u have my mail...

complimenti per l'ottimo lavoro svolto fino ad ora, mi sono accorto che e rimasto tutto invariato al 2 aprile, come procedono i lavori a quanto l'uscita ufficiale della nuova versione? GRAZIE SIETE GRANDI

Pages

warning

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.

Close chiudi