The Roland MT-32 is a sound module that was released in 1987. A MIDI driven device from a time before MIDI was completely standardized.
- Quick set up
- Expert tricks
- Links for further development
- See also
"MIDI with a Paywall"
The Roland MT-32 is a sound module that was released in 1987, originally targeted towards amateur musicians as an affordable external synth solution, but ended up being one of the de facto standards for high quality video game music for its time
. Since this module was created before the General MIDI
standard (16 channels, channel 10 reserved for drums, 32 note polyphony minimum, to name a few rules it imposes), it uses its own proprietary format and is thus not directly compatible with the MIDI format on Battle of the Bits.
A dedicated format for this module (or at least its emulated equivalent, Munt
) has been approved as of January 13, 2017.
The sound module has exactly 128 melodic patches and 1 drum patch
, arranged in a way that differs greatly from General MIDI. These specifications have been detailed
for the convenience of those wanting to dive in composing for the module.
The module also sports a 32 partial voice polyphony
overall. What this means is that the module can theoretically support up to 32 voices, but the actual polyphony depends on the patches that you use in your song (which ranges from 1 to 4 partial layers; more layers in a patch often means a more luscious sound, but will essentially mean that your polyphony range will be at best 32 and at worst 8
Finally, the module only supports up to 9 MIDI channels
, specifically channels 2-9 for melodic instruments and 10 for drums; 1 and 11-16 are unused. The module can be reconfigured to accept channels 1 to 8 for melodic instruments, though for compatibility's sake, MIDIs made for the module should stick with the original specification.
Quick set up
Since it is unlikely that most, if any, BotBrs will actually have the physical module and the means to hook it up in hand (the module has long been discontinued and can only be obtained through auction sites), the quickest way for one to get started with composing for the MT-32 is through an emulation of the module called Munt.
Munt can be downloaded here
. You will need to look around for downloads of the module's PCM and control ROMs yourself, though a Google search will usually suffice.
Once you have installed Munt on your computer, you'll want to locate the PCM and Control ROMs to get the module up and running. Upon attempting to start up the module (mt32emu-qt.exe by default), you will be prompted with a ROM Selection window. Alternatively, you can see this window under Options > Configuration. Go to the directory where you stored your PCM and Control ROMs (it's advised that you keep both in the same folder) and the program will auto-select the necessary ROMs. If the ROMs do not show up, try hitting Refresh.
Once you have the ROMs confirmed, you're more or less ready to compose! One thing that you should verify in the Synth Properties box (accessed by clicking the Properties button below the emulated LCD display) is the MIDI Delay Mode: to ensure that your MIDIs play without any odd truncations in the beginning of your MIDI, change this option to "Process all MIDI events immediately."
In layman's terms: download Munt → download PCM and ROMs → assign PCM and ROMs → route your program's MIDI out to Munt
Setup Example - OpenMPT
With Munt running and the ROMs loaded, create a new module in OpenMPT. Navigate to View > Plugin Manager, and insert MIDI Input Output to FX01. Next, on the Instruments tab, select the MIDI plugin editor button. Select your midi controller (if applicable) as the input device, and set the output device to MT32. If OpenMPT is successfully connected, you should see a notification popup or simply a line item within Munt showing OpenMPT as the MIDI input. You're good to go! Now back on the Instruments tab select MIDI channel 2-10 as desired, and map to the desired instruments
in the MIDI program box.
Composing for the MT-32 is more or less the same as composing a MIDI, albeit with the aforementioned limitations detailed in the Capabilities section. Ensure that your MIDI channels are set to only use channels 2-10 and you'll be fine for the most part.
There are a plethora of differences between this and MIDI, most of which will need to be taken in great consideration if you want to make the best out of this module.
One thing you should keep in mind is the channel limitations; you're effectively given half of the melodic channels that you would otherwise have in MIDI, making certain effects limiting at best and downright ineffective at worst.
Another important thing to consider is how the amount of partials on different voices affect your effective polyphony count, as well as how the release of certain instruments can potentially get in the way of this upper limit. The specification of the module's patches (at least the amount of partials one instrument occupies) has this information detailed for the convenience of the composer.
A few examples (primarily by A-zu-ra
) of how certain methods in MIDI will fall flat on its face when attempted on an MT-32:
Say you wanted to create a phasing effect a la retRo-Active and its Recorder at the latter half of the song. This would take up 2 melodic channels, leaving you with only 6 other melodic channels to try and cram instrumentation in.Say you wanted to create multi-channel echoes a la Quick Adventures and its Electric Piano at the beginning. Not only would this take up channels that could be used for other instruments, it will also hog up much needed polyphony space, leading to dropped notes at random parts of the song.Say you wanted to switch banks to use a different sound a la hanpen by zyuuziro and its use of bank 1 and 8 to get a pure square wave and sine wave, respectively. Perish those thoughts, because this module has no extra sounds in different banks, and unless someone figures out how to pull it off in Munt, there's currently no way to implement user patches or timbres.
Munt also allows you to view the polyphony status under the "Partial State" section, something that could be of good use to composers:
A red square indicates an active note that is currently in its sample-based attack state.A yellow square indicates an active note that is currently in its synthesized decay or sustain state.A green square indicates a note that is currently in its release state.
Should a note play that goes over the polyphony limit, that note will override the oldest note regardless of state.
Last, but not least: try to mind the difference between patch assignments for this module and that of the Microsoft GS Wavetable Synth, since the module was created in a time where there was no MIDI standard and thus has its own way of organizing its sounds. This is the most important factor on why this sound module is not directly compatible with the MIDI format, because it is guaranteed that you will not get the right sounds if you try to play a normal MIDI on an MT-32 and vice versa.
Links for further development
While the physical module itself has been long discontinued, the source code for its emulation, Munt
, is hosted on GitHub for anyone with a knowledge of C++ to look at.
a webpage with a list of all 128 patches from mt32 with mp3 examples, which most of them are different from midi's default specification
- Specification of General MIDI and Roland MT-32 patches
- midi (format)