Article History
 
 
 
Discussion
 
488 views
 
50% now_its_dark
Custom MT-32 Voice Guide View Raw Firki
 

::|CONTENTS

  1. Software Editors
  2. Terms & Concepts
  3. Regarding SoundDiver + Munt
  4. SoundDiver Setup
  5. Understanding Memory Areas & Creating/Editing Timbres
  6. Patch Assignment
  7. Saving & Exporting
  8. Editing & Sound Design
  9. SysEx Things
  10. See also
(this guide was written by now_its_dark and I have moved it to its own article separate from the MT-32 format article! --dami)

It is possible to create totally new and unique voices or modify the existing ones via MIDI System Exclusive messages (SysEx) using an external editor.

The MT-32 is a surprisingly deep and highly editable instrument, but relies entirely on software for this task. Consequently, there were many editors released when it was a contemporary product, but nearly all of them are for legacy computers/OS's such as Atari ST, X68000, early Macintosh and DOS.

Of these numerous options from the past, only SoundDiver and one or two others will still run natively on a present-day OS. SoundDiver is currently the best option, as it provides complete access to all parameters, clearly visualizes the voice architecture and has a *relatively* modern UI.

This has been utilized many times by BotBr now_its_dark; if you want to hear some of the sorts of sounds that could be created, check out their MT-32 works!

Software Editors



SoundDiver
(Windows & stable via WINE),
A venerable, older software editing suite by the long defunct emagic, it is capable of editing literally hundreds of different devices, via panels called Adaptations. The included adaptation for the MT-32 provides complete access to the functions of the device. It can be downloaded here
.

MT-32 Sound Editor
(Windows only)
A fairly new option— this editor is still in development, but could replace SoundDiver as the de facto option, with its more modern UI and somewhat simpler setup. However, as of 08.2023, it is not yet at feature parity with SD and currently is limited to a modern Windows OS. (via WINE might be possible, but was unable to get it running). The latest release can be downloaded at vogons.org
or via github
.


There is a common misconception that the MT-32 is simply a more primitive version of later PCM-based sound modules, such as the Sound Canvas series, but this is pretty far from the truth. In terms of sound design potential, the synthesis available here is rather different and in some ways, much deeper than the pure romplers which followed. There is tons of possibility to explore, even potential for it to sound quite modern, with a unique and synthetic character, far beyond the expected.


Terms & Concepts



Here is some basic info to get started with SoundDiver & editing:

LA Synthesis = A method of digital synthesis, layering multiple voice elements within a single composite voice. These four elements each have a discrete, subtractive signal path and can use either a real-time synthesized digital waveform or PCM audio sample. The elements are linked in pairs of two (1+2 and 3+4), each of which holds the definition for a structure. Structures can route and define interactions between the two elements in a pair.

(that was phrased in general terms, to be applicable to different LA synths, which vary in their naming conventions and feature sets).

In the case of the MT-32, it is defined and implemented in the following way:

Partials = the individual, editable synthesized voice elements within a timbre, akin to operators in FM, or the single oscillators within a traditional subtractive synth voice. The assignment of a partial type (Wave Generator or PCM) is not directly assigned to the partial, but established via a structure, alongside a second partial within the timbre.

Timbres = synthesized voices comprised of partials. A timbre can be set to utilize between one and four partials. Within a timbre, partials are represented in pairs of two. Each pair contains a structure type, which defines the partial types used in that pair (WG or PCM) and different behaviors for them, such as stereo routing and ring modulation.

Structures = There are 13 available structures, with two used per-timbre. Structures serve a couple purposes— they define the partial type of the upper and lower sets of partials (1+2 and 3+4) within a timbre, they also define how those two partials are mixed and whether they utilize ring modulation. See below for a list of them.

Patches = store references to timbres with additional configs such as reverb switch, volume, pan and tuning. Patches exist in memory in the numerical order associated with the 128 available midi program change numbers.

Parts = A section with an assignable midi channel # and partial reserve allocation, to ensure that the part has enough polyphony for an intended use.

List of structures:

S = Synth / WG
P = PCM

(upper + lower)

01. S+S Mixed output
02. S+S Ringmod mixed with top partial output
03. P+S Mixed output
04. P+S Ringmod mixed with top partial output
05. S+P Ringmod mixed with top partial output
06. P+P Mixed output
07. P+P Ringmod mixed with top partial output
08. S+S Top partial direct to L channel, bottom partial direct to R channel.
09. P+P Top partial direct to L channel, bottom partial direct to R channel.
10. S+S. Ringmod only
11. P+S. Ringmod only
12. S+P. Ringmod only
13. P+P. Ringmod only

Summary:

So to recap, structures define partial type and routing behavior. Partials are individual voice layers, they are components within timbres. Timbres are top-level synthesized voices which are referenced by patches. Patches are associated sequentially to the 128 midi program change numbers. Patches must be assigned to one of the 8 parts to be used, either by being copied to one of the temporary patches in an editor, or via a MIDI program change.

It can be challenging to familiarize oneself with the system architecture of this synth. If text isn't your thing and/or that was not enough info— this book does an excellent job of breaking it down visually.
Jump to page 31 "Advanced Operation".


What can be edited:
- System settings such as reverb type, per-part channel mapping and partial reserve.
- 8x temporary timbres + 64 user-specific timbre memory slots
- 8x assignable temporary patches + 128 assignable patch memory slots
- 64x assignable drum timbre slots (from C1 — E♭6) + adjustable params per-slot.
- 8x parts, mapped to whichever 8 patches currently reside in the patch temporary memory area.


Regarding SoundDiver + Munt



The standalone munt application can be edited with SoundDiver like real hardware, with the limitation that you cannot request the current parameter state from munt. It is inconvenient at times, but it does function correctly other than this (confirmed working on mac+WINE and windows 10 natively).

If you are editing with munt, make sure that munt is running prior to starting SoundDiver or the midi port will not be detected.

If you want to edit the factory MT-32 patches, rather than start from scratch, you will have to import them from a file. Here is a complete and organized SoundDiver Library file
which contains this data..

Note: the user memory area only holds 64 timbres, while the permanent storage / ROM on the device holds 128 timbres. This means that it is only possible import half of them into user memory at a time. For this reason, they are broken up into two sets, see the included readme for more info.


SoundDiver Setup



Once you have the program installed, here are the steps to start programming with it:

Note: Never try to open the help section (unless you're running on a legacy OS), it will typically crash the program. If you are running in WINE, you cannot open most of the settings either. Fortunately, these are not crucial for our purposes. It is a surprisingly stable experience in Windows 10 or MacOS under WINE, other than those caveats.

1. Open the Install window from the menubar, then scroll down the (long) list to "Roland MT-32", single-click it and then click the "add" button on the left sidebar.

2. The MT-32 device icon will now be visible in the Library window. Double-click the it and you will be presented with the system/global view of the editor panel.

3. Take note of the left sidebar, where the MIDI input & output are assigned— to control the synth, you must select the midi port on your interface, or the virtual MIDI port created by munt. It is a weird drop-down, you have to click to the left of where you would expect for it to stay open.

If you are editing hardware, also select the appropriate MIDI input port. With munt, this is irrelevant, as it cannot send midi, only receive it. This is the one leg-up that a hardware device imparts to this process: unsaved edits can be requested and recovered, in case of a software or host system crash, so long as the device is left powered on.


Understanding Memory Areas & Creating/Editing Timbres




To begin editing or creating a timbre, click once to select one of the 64 timbre memory area slots. To start fresh, initialize it and give it a name of some kind. If initialized, will default to the Slap Bass sound.

Click on one of the 8 timbre temp area slots to make it the active slot.

Click the timbre you just named and it will populate that active slot.

Note: The temp areas hold the current settings for sounds, when you play notes on channels 2-9. Timbres outside of the temp area cannot be heard or edited without being instanced to a slot in the temp area (overwriting whatever was there before).

Put another way— the temp area refers to a position in ram which is not intended for storage use. Data in this area of memory is used to set the currently active timbre parameters of the synthesis engine. Though, you could use it for storage, as the starting state, or if you have no intention of changing it during a song— since there is no permanent storage anyway, the concept of "permanent" is only relevant for the duration that the device is active and hasn't been reset or had the data overwritten.

Double-click the instance of your timbre from the temp area and it will open a voice editor panel. If you are sending note data to the instrument from a separate source, you will be able to hear your changes reflected immediately on the corresponding channel when you modify it.

Once you are happy with the timbre, close the editor panel. A dialog will appear, asking if you want to save it. If you select 'yes', it will sync the changes to the origin timbre memory slot. If you select 'no', your changes will only apply to the temp area instance of the timbre, and won't be copied back to the origin timbre memory: the two slots will then be different, not synced.


Patch Assignment



If you want to be able to reference your timbres using midi program changes, they will need to have a corresponding patch assignment. All 128 patches can be reassigned. If there are factory patches you want to use, make sure not to assign your partials to those patch numbers, or assign a different patch to the desired factory timbre. Patches include settings for enabling reverb and adjusting volume and pan, among other things.


Saving & Exporting



It is a good habit to build a SoundDiver library file (.LIB) of custom sounds and settings you create as soon as you are happy with them, since it is maddeningly easy to accidentally overwrite things or lose edits if the software crashes, especially with munt. Plus, it is pretty satisfying to build up a nice library of your own sounds for future use.

Once you have finished creating or altering timbres / patches / system settings / effects / drum map etc, hold 'ctrl' and click to select only the entries you have changed, not the entire memory— since it has to load at the start of your song when it plays, you'll likely want as little data as possible. Then click the top menubar and select "Entry > Export > Selected Entries" You can export as raw SYX (system exclusive data) or SMF (.mid file, with the data already sequenced to transmit at a defined rate).

SYX or SMF export? Which of these you choose will depend in part on your workflow— if you work in a DAW / midi sequencer which supports import of system exclusive events, you could export the raw data and place it into your project timeline; be sure to start the first note / controller event after the sysex data block concludes.

If your DAW does not support sysex messages, SMF might be easier to work with, and has some additional benefits: it ensures that the data will be sent at a defined, safe speed, without any additional setup later. Another benefit, is that any midi file player can send the data in this format. This is potentially a nice convenience, if you compose several songs using the same instrumentation, since you can include this midi file in a playlist, preceding any/all of those songs, without having to append it to each of them during the composition process. Generally, MT-32-compatible games which used custom instrumentation took this approach, sending all, or the majority of sysex data when the game initially loaded.

However you work with this data, make sure to define a minimum 50ms delay between messages, or it may cause a buffer overflow error, when sending to a real device; the "old" first generation models are particularly susceptible to this.

There are various methods and tools for working with this data once it is exported, but however you do it, the goal is to append the sysex data to the beginning of your midi song file. Traditionally one would use a midi event list editor or insert the data in a track of your DAW (for those which still support it), but you could also just record it into munt, then play your song data in right afterward, if you don't mind your midi file showing the wrong bpm etc.


Editing & Sound Design



Automating parameters

Though there is no direct way to manipulate the various synthesizer parameters in real-time via midi CC (and sending sysex during playback will block notes from sounding), there is a workaround— several useful parameters can be assigned to note velocity: Filter cutoff, Pulse Width, Pitch and the usual Amplitude. Additionally, if your timbre has multiple partials, velocity can be used as a mixer between them, since negative velocity is possible.

Of course, this does limit the ability to vary the loudness of the sound in the usual way. Expression CC is probably the cleanest way to retain this alongside parameter automation, leaving Volume free for dialing-in the overall mix. Some DAWs will allow for remapping of velocity to another parameter, so if you have played-in notes with velocity data you wish to preserve, this could be worth looking into.


The drum map is really great

Any timbre can be assigned to the drum map! You can lock a timbre's pitch so it won't matter which note in the map it is assigned to, or alternately, choose the note(s) in the drum map to sound the timbre at your intended pitch(es). The drum map is low-key, one of the most powerful aspects of this instrument.

You could technically make an entire song using only the drum map, or perhaps more useful— you could sound a greater number of melodic timbres at once than the maximum eight, by allocating an octave of the drum map to the bass part, for example.
Particularly if you are only using a timbre on a single / very few notes, or as an effect, placing it in the drum map may be the way to go.

Another great use of the drum map is to create duplicate versions of the same sound and change their pan and reverb settings. This allows for a single sound to jump around in stereo and switch from dry to reverberant without any patch switching or worrying about part economy.


SysEx Things



Sending text to the screen

You can display text on the LCD via sysex. This works with MUNT as well as hardware. To do so, convert your text or other supported ASCII characters to hex, preceded by the necessary IDs and address:

roland ID: 41h
device ID: 10h
model ID: 16h
cmd ID: 12h

address for the
text data type: 20 00 00

Next goes your text data. After the text, a Roland checksum is needed. As with any sysex, the full message must be opened with sysex start (F0) and closed with sysex end (F7).

This tool
will calculate the checksum for you.

So for example, if you wanted to print “Battle of the Bits” it needs to be padded with 2 spaces (20h), as the total number of chars must always be 20 (the total number the display supports). So it becomes “ Battle of the Bits “ keeping it centered.

In hex this is:

20 42 61 74 74 6C 65 20 6F 66 20 74 68 65 20 42 69 74 73 20


Before calculating the checksum, first add the address:

20 00 00 20 42 61 74 74 6C 65 20 6F 66 20 74 68 65 20 42 69 74 73 20
_______

Then paste that into your checksum calculator. In this case, we get the value “3C”. So all that is left, is to add the leading sysex and close it off with F7:

F0 41 10 16 12 20 00 00 20 42 61 74 74 6C 65 20 6F 66 20 74 68 65 20 42 69 74 73 20 3C F7


See also



- mt32 (format)

Additional Resources (some are mentioned above):
- Using The Roland MT-32 Multi-Timbre Sound Module
Superb guide to fully understand the MT-32 + nice visuals.
- MT-32 Overview
Synopsis the of MT-32 voice architecture from Sound on Sound, July 1988 Issue.
- Sysex Checksum Calculator
Useful for creating custom sysex commands
- Sealed's MT-32 Easy Editor
SoundDiver adaptation, an alternate MT-32 editor interface (not a standalone app).

 
C A T E G O R I E S
 
 
Helper Tools