Jump to content
LaunchBox Community Forums

VirtualMidiSynth / Munt Tutorial - Awesome Music Quality In Your DOS Games


Recommended Posts


Let's start off with the obvious question: why should you care? Well, do you like DOS games? Would you like to have really high quality music in your DOS games? If the answer is yes to these, then you should definitely care.

As an example of the difference this can make for General Midi games, check out these two clips. The first is using Adlib/Sound Blaster audio, and the second is using the FluidR3 soundfont (which we can use with VirtualMidiSynth).

Now let's take a look at the difference we can achieve for MT-32 supported games via Munt. The beginning to 2:02 in the below clip is using Adlib audio. 2:03 to the end is using MT-32 audio.

We'll be doing this with a couple tools that we can hook into in DOSBox that will function as virtual midi devices - VirtualMidiSynth for General Midi audio and Munt for Roland MT-32 audio. Think of these as virtual sound cards but specifically for music. Back in the day, a number of dedicated midi audio devices were available but were prohibitively expensive for most gamers - they were designed primarily with music production in mind, not gaming, but thanks to groups like Sierra which made extensive use of the MT-32 in their games it gained legendary status and set the bar for video game music quality. Prior to General Midi, the MT-32 and similar devices used banks of instruments arranged in their own arbitrary fashion which meant that midi music had to be composed for specific devices - you couldn't just take music composed for one specific device and swap that device for another as the instruments would be wrong, because they'd be arranged differently. General Midi was a standardization of midi devices which made the arrangement of instruments uniform, so a single track could be used for multiple midi devices. Because of this, the MT-32 eventually faded away, but you'll want to have access to both because in the period prior to General Midi, MT-32 was generally the best choice available.

Okay, let's get started.

Installing VirtualMidiSynth

The first thing we need to do is install VirtualMidiSynth. You can find it here. You'll also need a soundfont to go with it. Several good ones are listed there. FluidR3 is my recommendation as I think it's probably the best all-rounder. Timbres of Heaven and Omega GMGS2 are both very good too. Omega GMGS2 isn't listed on that page but you can find it here. An important note here is that a number of the soundfonts are in a compressed format called .sfArk. These are not usable in VirtualMidiSynth and need to be decompressed. There's a dedicated program for doing this, but an easier solution is using cloudconvert. You select the sfArk file to upload, select sf2 as the output format (this should already be set), click the "start conversion" button at the bottom to convert it, then download it. You can find a comparison of quite a few different soundfonts here. That one doesn't include Omega GMGS2 but you can find the same song using Omega GMGS2 here.

Once you've installed VirtualMidiSynth, open up the Configurator and click the + button on the right side of the window, and find the soundfont(s) that you want to use. Click the button to the left of the soundfont name to enable/disable it. Green means it's enabled and gray means it's disabled. Once you're done, click Apply and then Ok. I would also recommend enabling the "Start automatically at logon" box in the Options tab if you haven't already.

image.thumb.png.7f68a1476e563fcfd8f7e9506ad4409f.pngInstalling Munt

Now we need to install Munt. You can find it here. You'll also need the MT-32 roms to go with this. I can't supply these to you but Google is your friend. The two that I use, specifically, are named "MT32_CONTROL.1988-09-30.vX.XX-patched.ROM" and "MT32_PCM.ROM".

image.thumb.png.366cc5d436dbad03ee36bf9553f97f2d.pngOnce you've installed Munt, open it and go to Options -> Rom Configuration, click the "..." button to browse to the rom location and then click the checkbox next to those two files.

image.thumb.png.32cb41a8b11fd221009b381a32310a47.pngEnabling them in DOSBox

Okay, so that's it for setting up the programs themselves. Now we just need to mess with DOSBox a bit.

Open up DOSBox - you can do this by right-clicking on a DOS game in your library that has DOSBox enabled and selecting the option to start DOSBox, or by going into Launchbox\DOSBox\ and starting DOSBox.exe.

In the window, type the following:

mixer /listmidi

What you'll then see is a list of numbers. These correspond to the various midi devices available to it. Now that we've installed VirtualMidiSynth and Munt, we should see 3 numbers (Microsoft GS Wavetable Synth is installed by default with Windows):

image.thumb.png.bf48d70ab62b537742595acb9d40be46.pngMake note of which numbers correspond to which devices.

You should really be making configurations (.conf files) for every game, but that's a discussion for another time. Whether you do or don't, you're going to need to edit the .conf that you're currently using to tell it to use the device that you want to use. In the above case, if I want to use VirtualMidiSynth I'll need to indicate that I want to use device 0. If I want to use Munt, I'll need to indicate that I want to use device 2. I use VirtualMidiSynth as the default as it has wider coverage, but for those earlier games where I want to use MT-32 specifically I'll need to create a separate .conf for them and choose the different device.

You do this by finding the line "midiconfig=" in your dosbox.conf and placing the number of the device you want to use after the equals sign.

image.png.3ec7a817dc0ace0bef1003590b251906.pngKeep in mind that all this is doing is setting up DOSBox to be able to use VirtualMidiSynth or Munt, it's not enabling GM or MT-32 audio within each game. You'll still need to setup the games themselves to use GM or MT-32 audio, just like you would if you wanted to specify Soundblaster or any other audio device. Most DOS games come with a separate setup.exe/install.exe/sound.exe/setsound.exe that'll let you choose the audio device (Soundblaster, Ultrasound, MT-32, etc.) so you'll need to use them and set the audio device to GM or MT-32. Launchbox normally does a pretty good job of picking out which .exe to use for this, but you can double-check by editing the library entry, and in the Launcher tab the top .exe should be for the game itself, and the bottom one should be for the setup .exe. You can start it by clicking on the "Configure" option in the right-click menu for a game. Note that there will be some cases where "General Midi" isn't listed but "MPU-401" is - VirtualMidiSynth usually works well with MPU-401 (but it's terrible for MT-32). If both GM (or MPU-401) and MT-32 are available, you'll have to experiment to see which you prefer - remember that you'll need to change the midiconfig= number to do this.


image.thumb.png.32ecc77b4ed4665b517573b3efa66c3d.pngNot all games support MT-32, and not all games that support MT-32 necessarily sound best with it (some were designed specifically with MT-32 sound in mind, and others weren't). The vast majority of instances where it's available though it's going to be a huge improvement. If both MT-32 and GM are available, it can be a toss-up.

For MT-32, I'd recommend starting with some early Sierra games (Police Quest 2, Space Quest 3, etc.) as those are about as clear an example of good MT-32 usage as any - if you've got everything setup right, you'll definitely know one way or the other. There's a list of games that support MT-32 here. It's pretty long though I'm fairly certain it's not entirely complete.

For GM you're going to be looking at games from the early to mid 90s as this is when it became the standard.

As time went on, music shifted to CD-audio where these became mostly irrelevant, but there's a solid period of time from the late 80s to mid 90s where you're gonna see a huge difference with these.

Anyway, I think that's pretty much everything. Have fun blasting your awesome new music!

Bonus (Multiple VirtualMidiSynth Devices)

This is by no means necessary, but thought I should mention it here as well. You can actually split out VirtualMidiSynth into up to four different devices each setup to use a different soundfont. This is actually quite handy since it means you can make a separate device specifically for, say, Roland SC-55 (the followup to the MT-32) for example for use with the Roland Sound Canvas option that some games offer. You do this by going to the "Options" tab in VirtualMidiSynth and then clicking the drop-down for "Number of devices". Then restart VirtualMidiSynth and you'll notice new boxes to the left of each soundfont based on the number that you chose. Click the button with 1 for the font that you want to use for device 1, 2 for 2, etc.

image.thumb.png.e4d79f727d4b6ae4fb534c1d66af41e0.pngimage.thumb.png.8799359ba4c5467d5d485939a1480ae5.pngNow, when you use mixer /listmidi again you'll notice that you now have a corresponding number of new devices. All the same rules for selecting the midiconfig= number in the .conf still apply here.

image.thumb.png.003dcb6ee664805bf625673ba2e48acd.pngNote that if you plan on splitting them out like this, do it sooner rather than later since, as you can see, this shifts the device numbers around (what was "1" is now "2", and what was "2" is now "3") which could obviously create a problem for existing .confs that you've created where the number has now changed.

Again, you don't have to do this. If you want to just flip between them with one device within VirtualMidiSynth, that's okay too, but I think it's a good idea to have a separate one dedicated to Sound Canvas at least.

  • Like 3
  • Thanks 5
Link to comment
Share on other sites

  • 1 month later...
  • 1 year later...

Wanted to bump this thread. Yes, I love how flexible VirtuslMIDISynth is and with all it’s different configurations. The only problem I would like to resolve is switching between Munt and VMS. I wish there was an accurate MT32 soundfont that can be used in VMS so I can still hear MT32 from Space Quest 3 and then quickly switching to, say Kyrandia with SC55 simply by switching the soundfont. I’ve yet to find a MT32 soundfont for VMS that plays SQ3 accurately. Anyways, great post!

Link to comment
Share on other sites

On 8/17/2020 at 2:15 AM, circletheory said:

Wanted to bump this thread. Yes, I love how flexible VirtuslMIDISynth is and with all it’s different configurations. The only problem I would like to resolve is switching between Munt and VMS. I wish there was an accurate MT32 soundfont that can be used in VMS so I can still hear MT32 from Space Quest 3 and then quickly switching to, say Kyrandia with SC55 simply by switching the soundfont. I’ve yet to find a MT32 soundfont for VMS that plays SQ3 accurately. Anyways, great post!

You're not going to find one, because one is general midi and one is specifically MT-32. The arrangement of instruments between the two is completely different - that's why general midi was created in the first place; prior to general midi it was kindof "every device for itself" as it were. The internal location of a guitar on one device might correspond to the location of a trumpet on another. General midi standardized all that so that composers didn't have to make 10 different versions of the same song to accommodate different midi devices - what's supposed to be a piano on one general midi device is a piano on all of them, that's the whole reason you can swap from one soundfont to another in VMS and they all just work, because they're all just reskins of the same thing. A song that's composed for MT-32 isn't going to sound correct on a general midi device and vice versa, and by proxy you can't plop a soundfont onto VMS and get an MT-32. It would be like rearranging all the instruments in an orchestra without rearranging the sheet music that goes with them.

Some (real) general midi devices had a sortof MT-32 fallback function that would try to approximate MT-32 functionality but anyone that's tried this will tell you that they never sound good. If you're using MT-32 audio, you want an MT-32 (or an emulator thereof, i.e Munt) and if you're using GM audio you want a GM device (or an emulator thereof, i.e. VMS).

VMS and Munt can both be used on the same system and swapped between easily by literally changing a single value in a game's .conf. It's really not that major of a requirement.

You can also use DOSBox ECE or a few other variants which have Fluidsynth (VMS equivalent) and Munt built in. You still have to indicate which you want to use per .conf so it's not really any less manual work, but it does allow you to accomplish the same result without external software.

10 hours ago, Fablog said:

@Zombeaver, I think Exodos is setup like that already, isn't it? Do you see a difference?

I wouldn't know. I don't use Exodos.

Link to comment
Share on other sites

  • 9 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...