Jump to content
LaunchBox Community Forums
Zombeaver

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

Recommended Posts

Introduction

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.4c55db7e8e47e9727f7969aea6b327d5.png

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 1
  • Thanks 3

Share this post


Link to post
Share on other sites

I added a section about splitting out VirtualMidiSynth into separate virtual devices which, while by no means required, is pretty handy for specific scenarios.

Share this post


Link to post
Share on other sites

Thanks for this. This setup is something I have had on my todo list for a while. Now there is no reason not to do it. :)

  • Like 1

Share this post


Link to post
Share on other sites

Thanks!  I had these set up a while back and reformatted and forgot about them. I'm set up again!  🙂 

  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×