Play MIDI via virtual device?

Posted on


I have a program that plays MIDI files and allows me to select from installed MIDI devices on machine.
Right now I only have the standard MIDI that comes with windows.

My question is if it’s possible to install a ‘virtual’ device that supports SoundFonts, and it will appear in that program’s device list (or tie it up externally)?

Any other workarounds? What if I’m a programmer and the source code of that program is handy, any hints on how to achieve this?


The alternatives i’ve found so far are: (based on BASSMidi, open source) (based on BASSMidi, closed source) (based on timidity++) (discontinued)

As per its official site TiMidity++ was last updated way back in 2004. An updated (patched?) version seems to have been released in 2012 (not by the original author), but you might be hard pressed to find a Windows binary for it (especially an x64 version).

Instead I’d advise you to use either VirtualMIDISynth or the BASSMIDI MIDI Synthesizer Driver (open source), both of which depend on the BASS/BASSMIDI audio libraries:

1 2

Once you have either driver installed (here’s a handy detailed tutorial for both) you can:

  1. Select it as the default MIDI device in your MIDI player of choice

    3 4

  2. Select it as the default MIDI Out device under Windows so you can use it with all MIDI players, even the ones that don’t offer a MIDI device selection option as shown above

    5 6

Note: Vista+ removed the Control Panel option to select the default Windows MIDI Out device, so one is normally stuck with the default (and extremely limited) Microsoft GS Wavetable Synth. You can use either the drivers’ own configuration utilities as shown above, or standalone utilities such as Vista MIDI Picker, Putzlowitsch’s Vista MIDI Mapper Control Panel, Vista MIDI Fix, MIDI Out Setter (open source) etc.

7 8 9

TiMidity++ supports both Windows (-iW) and ALSA (-iA) virtual MIDI interface creation.

Leave a Reply

Your email address will not be published.