THINGS YOU SHOULD KNOW
If you want to get comfortable editing and managing sounds for this synth, there are a few terms and facts which will be helpful to understand:
- Partials are Single layers within a timbre, not referenced outside of the specific timbre where they are defined.
- Timbres are "Raw" voices containing 1-4 partials, not directly addressable via MIDI program changes.
- Patches can be thought of as Instances of timbres, or pointers. They include level, pan, reverb and keyfollow settings for their assigned timbre. These are addressable via MIDI program changes.
- Think of every edit you make as an alteration to the default device state— This data must be appended to the start of a MIDI file for those alterations to take effect when you play a song you've composed. It will never remain stored in the device memory. There is actually something pretty freeing about knowing you are starting "clean" each time you make changes, and it ensures that every person will have a replicable experience should they playback your song!
- Sysex has the potential to clog up your MIDI data stream— I would recommend not changing sysex parameters during the playback of a song. You might be able to get away with one command here and there, but it is probably best to be strategic to avoid the need for doing this as much as possible.
WHY BOTHER? / MY TAKE / TLDR
I did not grow up playing DOS games or have this device on my radar as a youngster at all; there is no nostalgia for me. I remember seeing these go for next to nothing on eBay for years, but sadly never looked deeper. This is mainly because the online discussion of it as an instrument was always negative, like it was just this super limited box of mostly dated presets.
Since learning its ways, I have found it to be quit an interesting instrument, it has become one of my favorites synthesizers.
Only once I joined Battle of the Bits and started learning more about it and trying to make music for it, did some aspects come into focus— It turns out the people online saying this just weren't up for a dive into what is actually going on inside this thing, or the legwork needed to get there.
My hope, is that the information on this site will help with that legwork part at least. It took me quite some time to get a handle on it, partially because the resources for doing so in a modern computing environment weren't all that well consolidated.
Though limited in some ways, the combination of features it has on offer is actually fantastic from a sound design perspective. You have...
- Eight parts + a drum part,
- A bank of 32 sounds, that can be either highly editable digital subtractive / Roland analog-style voices, or PCM sounds, which can be altered enough to satisfy most creative goals.
- Timbres with a stack of up to four distinct sounds/partials in each.
- Ring modulation between any two types of partial within a timbre .
- A simple but usable effects section with several effect types.
- A huge drum map, which supports the use of any timbre you create as a drum sound.
- Controlled via MIDI, so any tool which supports this can talk to it + the files are tiny!
- There is a cross-platform, open-source emulation of the device which can play anything you compose!
AFAIK, there is nothing else which matches this description, vintage or contemporary. Probably the closest would be Yamaha XG or certain FM sound chips with lots of timbrality such as OPL3, but neither of those have the same flexibility with the two distinct voice types.
If that got your attention and you want to dig into editing this device..
There is a learning curve to harnessing the voice and data architecture of this instrument, as the workflow is fairly arcane in certain ways. You can find a summary with visuals of these elements here in the Voice Architecture section, or a comprehensive and extremely well-conceived breakdown via this book.
Despite the initial friction, I have personally found it quite gratifying to work with this synth. After the initial learning curve and process of determining my preferred tool for the job, it became pretty exciting! There is such potential in this thing to sound strikingly modern, and though I honestly can't say I've mastered it, the journey has gone far enough to share what I've learned.
CHOOSING AN EDITOR
Using a software editor, such as my preferred tool— Sound Diver, it is possible to create new custom timbres and configure many other parameters, like reverb & delay type/level and drum timbre assignments.
There are many editors available, due to the fact that this device requires an external interface for any meaningful editing. The majority of them are for Atari computers, which can run via an emulator, but some more modern options also exist. See the Editors page for a fairly complete list.
Editing MUNTIn addition to real hardware, editing is also possible with MUNT, the software emulation of the MT-32. One limitation to be mindful of when editing MUNT, is that communication is unidirectional— it cannot send sysex data, only receive it. This limitation prevents it from reporting the device state back to an editor, which can be fairly inconvenient at times, but it does work— just point your editor of choice to the virtual MIDI port which MUNT automatically creates, as you would with a sequencer. Since they cannot be received directly from the device, but you still wish to view or modify any of the factory sounds in your editor, it can be helpful to load the default patches from a file, so that the editor state matches-up to the device state. An easy way to do this, is to download those patches and load them in manually at the beginning (assuming that your chosen editor does not already include them).
Target Device ConsiderationsThere are essentially four target options when producing music for the MT-32— 1. the original Rev0 "old" variant, 2. the updated "new" variant and other devices derived from it, such as the CM series modules and RA-50 arranger. 3. Software playback using MUNT and lastly, only distributed as a rendered audio file captured from any of these sources.
This is relavant during editing if perfect compatibility across all of these is your goal— to ensure no dropped notes and partials + a perfect transfer of your data to the device, prior to playback. There are a few tricks to help with this, mainlky in your composition workflow, but also in the patch setup: The Rev0 hardware variant is particularly sensitive and easily overloaded, even when the partial ceiling is nowhere near being hit, specifically when dealing with MIDI control change messages during playback. Basic rule of thumb is, the less realtime data being sent simultaneously, the better.
SYNTH & ARCHITECURE OVERVIEW
The voice architecture is actually significantly more sophisticated in many respects than the GS modules which followed. The MT-32 is derived from the same sample + synthesis or S&S technology upon which Roland’s flagship synth of the time, the D50 is based. It is a hybrid digital waveform generator and PCM synthesizer with a subtractive signal path, meaning it can synthesize pure waveforms with filters, filter envelope and pulse width control and play sampled waveforms,then augment these sounds via pitch and amplitude controls, each of which has a five-stage envelope per-partial.
Within a timbre, each pair of the four possible partials can be structured to relate with each other in 13 ways, based around four voice configurations: SYNTH-PCM, PCM-SYNTH, SYNTH-SYNTH, PCM-PCM. (Either of the two positions in any structure can also be disabled.
The reason there are 13 structures for only four voice combinations, is because it is also possible to include ring modulation in these configurations in various ways, as well as routing the output of the partials to only one of the two stereo channels. (no precise panning is available per-partial beyond this, only for the entire timbre).
You can overwrite the settings for nearly everything on the device! Including all of the voice patches, and all of the drum patches. The only caveat to this, is that the more you change, the longer the load time before the song begins to play, as it must load in the sysex beforehand. Done selectively though, this can be minimized to take just a few seconds. It is important to ensure that you only send the data which you have changed from the initial state; a complete overwrite of everything is unnecessary. If you are concerned about lingering settings from a previous song or edit, send a full reset command before begininng the transfer.
EDITING MINDSET / PHILOSOPHY
In order to avoid sounding like the factory patches / escape the perception of it being a proto-General MIDI device, my personal suggestion would be to simply not use *any* PCM partials starting out. Instead, just think of it as a bank of 32 synthesized subtractive voices, which you can sculpt to your liking. There is a myriad of sonic possibilities, for melodies, basses, pads and drum sounds, without ever playing a sample. Juicy, analog-sounding results might not be quite as forthcoming as with a moog, but it is absolutely possible to get there. The lack of a noise generator puts a slight damper on the drum synthesis potential, but there are ways around it.
PARTIALS
Partial EconomyWhen setting out to create a timbre, it is critical to start with as few partials as possible (assuming you want to have a song with chords, multiple parts playing and a full drum section).
There can be a strong temptation to max it out with four and get a crazy lush sound right off the bat, but with some careful modulation and tuning of the pulse-width, it is usually possible to get a rich and timbrally complex sound with even a single partial, depending on the characteristic you are looking for.
There are three types of partial *assignment* types within a timbre— Synthesizer, PCM and |disabled|. When disabled, that partial is not a functional layer of the sound and will not impact the total partial polphony. It is worth noting, that you can be highly selective about which of the four possible partial slots are used and active within a timbre, for instance, using only three partials, or using only the first and the third slots in a timbre with the other two disabled, though there aren't too many reasons to do this.
Synthesizer-Type Partials
There are two types of synthesized waveforms available, triangle and square wave. This partial type offers the most raw sound design potential, as it includes the filter block in its signal path, but often has a fairly digital-sounding synthesized character to it. That said, with careful tuning of the pulse width and filter + a bit of pitch modulation, it can get close to sounding like an analog synth.
PCM-Type PartialsThese can be set to any of the available waveforms stored in the MT-32 rom, so they are more flexible in this way, but this type of partial bypasses the filter stage, so setting any filter-related parameters will have no effect when using them.
EFFECTS SECTION
Effect Types
There are four types of effects available on the MT-32: 1: Room Reverb(default), 2: Hall Reverb 3: Plate Reverb 4: Tap Delay. These all share the same two control parameters— speed and level. Depending on the dsp rom version in the device, the levels vary quite drastically between devices. A rev0 / "old" variant with earlier dsp rom is much less pronounced than the later ones.
RING MODULATION
There are several configurations for enabling ring modulation between two partials, these fall into one of two categories: 1.Ringmod + P1. Ringmod of P1 and P2, with the output of P1 added to the modulated output of the two partials. or 2. Ringmod only where only the difference between the P1 output and the ring modulated output of the two partials is audible.
Ringmod category 1- Struct 2: P1.Synth = Carrier, P2.Synth = Modulator, Modulated output + P1.
- Struct 4: P1.PCM = Carrier, P2.Synth = Modulator, Modulated output + P1.
- Struct 5: P1.Synth = Carrier, P2.PCM = Modulator, Modulated output + P1.
- Struct 7: P1.PCM = Carrier, P2.PCM = Modulator, Modulated output + P1.
- Struct 10: P1.Synth = Carrier, P2.Synth = Modulator, P1 diff Modulated output (P1∩ModOut).
- Struct 11: P1.PCM = Carrier, P2.Synth = Modulator, P1 diff Modulated output (P1∩ModOut).
- Struct 12: P1.Synth = Carrier, P2.PCM = Modulator, P1 diff Modulated output (P1∩ModOut).
- Struct 13: P1.PCM = Carrier, P2.PCM = Modulator, P1 diff Modulated output (P1∩ModOut).
SYSEX FORMAT
There is a pretty massive sysex implementation for this device, as it is completely reliant on this data to define basically everything you could wish to.
The sysex format utilizes a checksum for each message, to ensure that the same data sent to the device is the same data received by the device.
There are a few smaller messages which are handy to have at hand though, for changing certain settings.
Useful MT-32 Sysex Shortcuts
If you need any of these parameters to be in a specific state, simply place the corresponding sysex msgs found below into your midi file at the appropriate position.
Be careful when using these! It is *not advisable* to use them librally to change parameters in realtime for automation purposes. MUNT /might/ be able to handle it, but it will likely make your data incompatible with real hardware, as the CPU cannot process lots of sysex streamed alongside note data etc while a song is playing. But, for example, if you want to change the reverb setting for a section of a song, you can probably get away with this as a single message during playback, just be sure to time it so it doesn't overlap with many other simultaenous messages, to avoid glitching or dropped notes.
System Area
Reverb SettingsType
Room | F0 41 10 16 12 10 00 01 00 6F F7 |
Hall | F0 41 10 16 12 10 00 01 01 6E F7 |
Plate | F0 41 10 16 12 10 00 01 02 6D F7 |
Tap Delay | F0 41 10 16 12 10 00 01 03 6C F7 |
Time
1 (shortest) | F0 41 10 16 12 10 00 02 00 6E F7 |
2 | F0 41 10 16 12 10 00 02 01 6D F7 |
3 | F0 41 10 16 12 10 00 02 02 6C F7 |
4 | F0 41 10 16 12 10 00 02 03 6B F7 |
5 | F0 41 10 16 12 10 00 02 04 6A F7 |
6 | F0 41 10 16 12 10 00 02 05 69 F7 |
7 | F0 41 10 16 12 10 00 02 06 68 F7 |
8 (longest) | F0 41 10 16 12 10 00 02 07 67 F7 |
Level
0 (100% dry) | F0 41 10 16 12 10 00 03 00 6D F77 |
1 | F0 41 10 16 12 10 00 03 00 6D F7 |
2 | F0 41 10 16 12 10 00 03 02 6B F7 |
3 | F0 41 10 16 12 10 00 03 03 6A F7 |
4 | F0 41 10 16 12 10 00 03 04 69 F7 |
5 | F0 41 10 16 12 10 00 03 05 68 F7 |
6 | F0 41 10 16 12 10 00 03 06 67 F7 |
7 (100% wet) | F0 41 10 16 12 10 00 03 07 66 F7 |
Patch Temp Area
Note: Whichever patch is currently loaded in the corresponding part slot will be changed. A new patch assignment will overwrite this change to the settings stored in that newly loaded patch.
Part 1
Reverb on: F0 41 10 16 12 03 00 06 01 76 F7
Reverb off: F0 41 10 16 12 03 00 06 00 77 F7
Part 1 Pan Setting
- -7 F0 41 10 16 12 03 00 09 00 74 F7
- -6 F0 41 10 16 12 03 00 09 01 73 F7
- -5 F0 41 10 16 12 03 00 09 02 72 F7
- -4 F0 41 10 16 12 03 00 09 03 71 F7
- -3 F0 41 10 16 12 03 00 09 04 70 F7
- -2 F0 41 10 16 12 03 00 09 05 6F F7
- -1 F0 41 10 16 12 03 00 09 06 6E F7
- 0 F0 41 10 16 12 03 00 09 07 6D F7
- +1 F0 41 10 16 12 03 00 09 08 6C F7
- +2 F0 41 10 16 12 03 00 09 09 6B F7
- +3 F0 41 10 16 12 03 00 09 0A 6A F7
- +4 F0 41 10 16 12 03 00 09 0B 69 F7
- +5 F0 41 10 16 12 03 00 09 0C 68 F7
- +6 F0 41 10 16 12 03 00 09 0D 67 F7
- +7 F0 41 10 16 12 03 00 09 0E 66 F7
Some miscellaneous (hopefully) useful notes on editing:
- Patches assign timbres to the numbered voice program list (+ reverb switch and other params), so that they can be referenced with a program change # while composing. Timbres contain 1-4 partials of either a synthesized waveform or PCM type and can be configured to relate to each other in structure pairs within the timbre by assigning a structure type.
- Structures are what determine which of the two voice types will be used in the four partial slots within each timbre, in addition to how those partials interact— such as one partial ring modulating another.
- Modifying the filter params for a PCM type partial will have no effect, as the filter stage is only active for synthesized waveforms.
- If you want to automate filter cutoff, pulse width or the envelopes, (without inserting sysex commands all over your midi file), the easiest way is to give velocity full influence over the desired parameter and turn off all influence over loudness. Then automate expression cc for the loudness instead. If you wish to preserve velocity from a played performance, it should be possible to remap the data in your DAW to expression cc. There is a Reaper plugin for doing this]
- There are way more slots in the drum map available than what is assigned by default— this means you can load in a great number of sounds, so there is no reason not to duplicate the same sound with different pan states, or a version with reverb enabled and a version without it. This flexibility should allow for much more aggressive master reverb settings, if desired, since it can be used selectively with this approach. The same approach is viable for instrument patches also
- Any timbre can be a drum! There is nothing special about these timbres, it is just a matter of assigning them from the timbre memory to the preferred pitch for that sound, or if it is to be exclusively a drum sound, give it a static pitch, so it can be assigned anywhere in the map.
- Even in its time, most commercial music didn't harness the MT-32 synthesis capabilities to theire full potential. Part of the reason for that I think, is getting it to play with zero dropped notes, specifically on the "old"/ rev0 hardware variant is maddeningly difficult, even with the factory sounds. You have to be super painstaking with the envelopes when creating new timbres to avoid this— even if it is inaudible, if a sound is still in its release state, it will be considered active and overlap with the next triggered note.
The Roland Logo and MT-32 are registered trademarks of the Roland Corporation