How to make your MIDI files sound great

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:

  1. 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.
  2. 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.
  3. 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.

  1. Open VirtualMIDISynth. You’ll be greeted by a window like this:
    VirtualMIDISynth Soundfonts window
  2. 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.
    VirtualMIDISynth Soundfonts loaded
    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.
  3. 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 choosing Setup.
    Opening the vanBasco Setup window
  4. In the Setup window, under MIDI, change the Output Device to VirtualMIDISynth, as seen here:
    Assigning VirtualMIDISynth as the Output Device
  5. 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.
    VirtualMIDISynth in the System Tray

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.

  1. After launching VirtualMIDISynth, locate it in your System Tray, right-click on it, and select MIDI file converter.
    Opening the VirtualMIDISynth MIDI Converter
  2. 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 mp3flac, and wav, and hit Start Conversion.
    VirtualMIDISynth MIDI Converter window
    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 Decrease key button and Increase key Increase key button 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: