MIDI is not audio; it is a collection of messages sent to music equipment. It is a language telling our gear what to play, when, and with what velocity. Its role is similar to that of sheet music, but it’s meant to be read by machines instead of humans. A MIDI file is just a messenger. Thus, the audible result when reproducing a MIDI file can differ vastly from system to system. A MIDI file could be read by a flagship workstation keyboard, a digital piano, a DAW (digital audio workstation) and its virtual instruments, or the default software synth that comes with your operating system, with varying results when it comes to audio quality and realism.
In this guide, I will show you how you can improve the playback quality of MIDI files by using SoundFonts on a computer and, more specifically, on Windows.
What we’re going to need
We’re going to need 3 things:
- vanBasco’s Karaoke Player (will be referred to as vanBasco from now on). This is a free and very capable MIDI player that allows you to change the tempo and key of a song in real time, as well as mute and solo instruments. It also provides a dedicated adjustable window for embedded lyrics. It can be downloaded here.
- Coolsoft VirtualMIDISynth. A free virtual synthesizer that can load Soundfonts (more on Soundfonts later) and convert MIDI files to audio. It comes with a basic mixer for real-time adjustments. It can be downloaded here.
- Some SoundFonts. There are many options available, both free and paid. A popular free one is the Arachno SoundFont that can be found here.
What is a SoundFont?
A SoundFont is a collection of sounds. Similar to how a font can be applied to text to change its style and appearance, a SoundFont can be “applied” to a MIDI file to change how it sounds.
The most common format for a SoundFont is SF2. Their filesize varies greatly and, most of the time, reflects the quality of the samples included. Some SoundFonts are as small as 4 MB, while others take up 1 GB or more of disk space. There are SoundFonts of single instruments (piano only, drums only, etc.), as well as those that encapsulate the sound of specific gear (such as a GameBoy sound chip). The majority, however, focuses on the set of instruments defined by the General MIDI (GM) standard, a list of which can be found here. If we’re going to play GM files, like all the files offered on MIDIprog, then a SoundFont that covers the GM instrument set would be the best choice. Using a quality SoundFont directly correlates to improved audio output when reproducing or converting MIDI files.
Real-time playback setup
After installing both vanBasco and VirtualMIDISynth, we’re ready to start setting up.
- Open VirtualMIDISynth. You’ll be greeted by a window like this:
- It’s time to add some SoundFonts. Click on the + sign, locate your downloaded SoundFont files (.sf2 or .sfz) and load them into VirtualMIDISynth by clicking
Open
.
The green square indicates which SoundFonts are currently loaded and active. If more than one is active, VirtualMIDISynth is going to use the one closest to the bottom of the list. The SoundFonts in this list will be used both for live MIDI file playback, as well as MIDI-to-audio conversion. - Next, we’re going to tell vanBasco’s Karaoke Player to route the MIDI data through VirtualMIDISynth. After launching vanBasco, open the Setup window by using
Alt+S
or right-clicking on the main window and choosingSetup
. - In the Setup window, under
MIDI
, change the Output Device to VirtualMIDISynth, as seen here: - That’s it! From now on, every time you open a MIDI file using vanBasco, it will be played by the SoundFont you loaded in VirtualMIDISynth.
Imporant: Even though VirtualMIDISynth should open automatically in your System Tray every time you launch vanBasco, some times it doesn’t. In such cases, open it manually; it needs to be running when you start the playback for this to work properly.
MIDI-to-audio conversion
If you would like to convert your MIDI files to audio using the SoundFont(s) you loaded in VirtualMIDISynth, you can do so with its built-in MIDI file converter utility.
- After launching VirtualMIDISynth, locate it in your System Tray, right-click on it, and select MIDI file converter.
- Using the converter is really straight-forward: Drag-and-drop the MIDI files you want to convert, set an output folder, choose the desired format between mp3, flac, and wav, and hit Start Conversion.
If you leave the Output folder field empty, each audio file is going to be saved in the same folder as the MIDI file used as a source. You can also create transposed versions that match your voice/instrument range by using the Decrease key and Increase key buttons before starting the conversion.
Even more
We covered a basic setup that can improve the sound of your MIDI files. However, there is more. VirtualMIDISynth is very versatile and can be used in combination with other MIDI players, as well as inside a DAW, directly assigned to MIDI tracks. Also, it’s not the only software that can use SoundFonts. Examples of other software that feature MIDI playback using them are:
- Falconsoft’s Soundfont Midi Player (https://falcosoft.hu/softwares.html) for standalone playback.
- Falconsoft’s BassMidi VSTi (https://www.kvraudio.com/product/bassmidi-vsti-by-falcosoft) that enables the use of SoundFonts within a DAW.