Roland MT-32 (and D-110) synthesis

The Linear Arithmetic synthesis (LA synthesis) from Roland was made famous by the D-50 synthesizer.

The D-10 and D-20 synth, as well as the D-110 rack and the MT-32 expander are using almost the same synthesis, in a cheaper way, but the ROMs and the PCM samples used are similar.

You can modify MT-32 sounds, by loading a sysex into a real MT-32, or the Munt emulator. This is non persistent after powering it off, so you have to load again the changes with sysex before loading your midi files.

Sounds designed for MT-32 can be exported to the D-110 synthetizer, most patches will sound the same.

NEW: you can edit the MT-32 sounds with this new excellent tool: https://github.com/sfryers/MT32Editor/

L/A Synth (Edit)

There is a (windows) tool called L/A Synth is a tool for editing the sounds of MT32 or D110 synth. You can get it there.

  • On linux : sudo modprobe snd-virmidi
  • Connect your midi keyboard to virtual raw midi 2.0
  • Load Munt mt-32 emulator.
  • Load LA-Synth Ed/Lib (add the required dll and vbx if necessary).
  • In munt, a new synth should appear, with a name such as "Wine midi driver". Add midi2 input port (it should be the virtual raw midi 2.0 previously connected in jack). In Munt properties, set channel 1...8 to make it able to respond to your midi keyboard (usually set in channel 1), or better, keep the original MT-32 settings and set your keyboard or DAW to talk to midi channels 2-10
  • In LA-Synth Ed/Lib, load D110 database (it should work for mt32, mostly) and open some mt32 sysex.
  • In midi settings, midi ports In= VirMidi 2-0, Out = Munt
  • In synth, select MT-32
  • Double click a timbre to load it in Munt.
  • To transfer a timbre from sysex to database, load a timbre in timbre memory, click on the database window, in the "Timbre menu", select "save timbre from timbre memory to db" (shift+ins)
  • To transfer a timbre to timbre bank (from a sysex), load a timbre in timbre memory, click on the Timbre Bank window, in the "Timbre menu", select "save timbre memory to timbre bank" (shift+ins)
  • Then in "Patch memory" window, assign the patch number to the correct timbre number (use the "memory" timbre group). Let's say you want to keep the default sounds banks except for the second patch, which you have modified. In your Timbre bank you have replaced "AcouPiano2" by a new sound called "MyPiano". After you've made the changes, open the Patch Memory windows, in Patch number 1 you'll have AcouPiano1, assigned to Timbre group "group A", with Timbre number 1 (by default). In Patch number 2 similarly, you'll get AcouPiano2, assigned to Timbre group "group A", with Timbre number 2. So to replace this Patch number 2, just change "timbre group" to "Memory" instead of "Group A", and it will display your customised sound "MyPiano".
  • In "Patch Temp", define the 8 instruments to be selected by default (will be displayed in Munt main window). Make sure the output level is enough, otherwise you won't have sound in Munt.
  • Save the sysex.
  • To clean the sysex, use M32-to-SYX from there.

Sysexer NG and Munt (Edit)

  • You can use sysexxer NG to load the resulting sysex into Munt (you might need to transfert it twice)

Muse Sequencer (Edit)

  • For using with a DAW, you might need to request program changes to load correctly your sounds. If your DAW has the MT-32 configuration (the Muse Sequencer has it), to get your customised "MyPiano", select "AcouPiano2" in the DAW, and it will select the correct patch number.
  • Export in Midi.

Cakewalk (Edit)

To embed the sysex and midi together, here is a tutorial from Midi Music Adventures

  • In Cakewalk Pro v3.01, choose View->Sysx, there click "Load Bank" and choose your .syx file. More can be added by clicking other bank numbers there and then clicking "Load Bank".
  • Next, to actually attach the SysEx to any standard midi files you will be saving to, select the track you want the SysEx on, and choose View->New->"Event List". There, type the "Insert" key on your keyboard to insert a new event. By default it will be a standard "Note On" message, so double click under the "Kind" heading, where it says "Note" and change it to "System Exclusive". Then double-click the "0" under the "Values" column, and make that number, the number of the bank that you imported your SysEx into earlier (see the View->Sysx window for that).
  • Of course, if you imported more .syx files earlier, just press the "Insert" key again and repeat that, changing the values as necessary to set each "Bank". When you export the file as a .mid, it will contain your now embedded SysEx, with whatever other song data you have in the cakewalk session.

Synthwork for Atari ST and Roland D-110 (Edit)

While synthwork on Atari ST can work for editing MT-32 sounds, there might be better modern solutions. But for the D-110, Synthwork is still great. It can edit sounds and manage libraries.

The hierarchy is from highest to lowest: patch, timbre, tone, partial. A D-110 voice (called a Tone) is made up of 4 Partials, in 2 pairs.

THE D110 HAS four Timbre groups: A, B, I and R. Both A and B are preset with 64 Timbres each. The programmable I group has another 64 Timbres. The final group, R, stores the 63 percussion Timbres. A Timbre, by the way, is a Roland Tone that's had performance parameters like pitch-bend. can store 64 setups called Patches. Each Patch contains up to eight Timbre Parts. You can place these Parts anywhere in the 15 stereo pan positions, assign key range and MIDI channel for each Part, or turn MIDI off for each Part.

Timbres are separate from patches because you combine timbres to make a multi-timbral patch.

To send sysex with sysexxer it's better to stop other midi programs. There are often midi buffer overflow.

To edit and play without to much fuss, you can use this kind of connexions:

  • D-110-out ⇨ Keyboard-in
  • Soundcard-out ⇨ D-110-in
  • Keyboard-thru ⇨ Soundcard-in
  • Keyboard-out ⇨ Soundcard-in

More informations on http://llamamusic.com/d110/d-110_info.html

This tools can also read sysex for D-110: http://llamamusic.com/d110/d-10_reader.html

Cubase 3 for Atari ST (Edit)

Cubase 3 is perfect for recording MT-32 music. From a fpga card such as MiST, you can transfert back your work with the hatari emulator, just put the SD card on your computer, load the .hd file into the IDE HD settings, you might also need a IDE driver to be loaded from floppy A, and also use a local GEMDOS drive as a second harddrive, which will be a folder on your computer, set the "add GEMDOS HD after ACSI/SCSI/IDE partitions" option, and important, use emuTOS instead of regular atari TOS to be able to use 2 hardrives.

LA synthesis (Edit)

  • TVF = Time Variant Filter (lowpass/highcut)
  • TVA = Time Variant Amplifier (ADSR)
  • P-Env = diapason envelope (change pitch during time)

More about MT-32 (Edit)

Converting a MT-32 midi file into a GM (General Midi) file (Edit)

If you have some MT-32 files you wish to convert to the GM format, you'll notice the instruments don't have the same numbers: you'll have to remap all instruments, either by hand or with a tool.

You can find a list with the instruments and the differences there: https://battleofthebits.com/lyceum/View/Specification%20of%20General%20MIDI%20and%20Roland%20MT-32%20patches

midiplex (https://github.com/stascorp/MIDIPLEX) can convert midi into xmi, and Wildmidi (https://github.com/Mindwerks/wildmidi) can make the conversion from MT32 to GM.

./wildmidi -g 1 /tmp/midiMT32.xmi -x /tmp/midiGM.mid

The instruments are not exactly the same of course, but it can be of a great help, especially for the drums which are correctly remapped!

Using MT-32 to compose music (Edit)

Munt is a great MT-32 emulator, but it was barely usable due to its latency. You can tweak it by "stopping" the mt32emu-qt emulator, and check the "properties" where you can change latency.

MT32-pi is a "hardware" version of this emulator, running on baremetal raspberry pi, and with zero latency: