Approach 1: Simple but Cumbersome
The idea is to map each possible message.
Map Device to Application
In MT, in the left preset list, create a new preset, say "From Launchpad 2". Open the preset properties by right-clicking on the new preset. There, go to Default MIDI ports, say "project specific ports", and select "Launchpad 2" as input, and "Midi Translator Virtual 1" as output.
Now create a new translator in the translator list, and name it e.g. "Map Note On". Choose MIDI as incoming type, and enter:
"90 pp qq"
90 is the MIDI message "Note On" (commonly used for notes or buttons) on MIDI Channel 1.
pp and qq are MT variables so that this translator will work for all Note On messages. pp will be set with the note/button number, and qq with the velocity or value.
Check
"swallow" to prevent the original (Channel 1) message to be passed on to the application, too.
You can check
"Stop processing" in the translator's general options because this is the only translator for this message from this device.
Now switch to the Outgoing panel and select MIDI as outgoing type, and enter this MIDI message:
"91 pp qq"
91 is Note On on MIDI Channel 2. pp and qq are just passed through.
To recapitulate, the translator looks something like:
Code: Select all
Translator 0: Map Note On Channel
[x]stop processing
Incoming: MIDI 90 pp qq
[x]swallow
Outgoing: MIDI 91 pp qq
Now you repeat this for other MIDI messages, most notably:
Code: Select all
Map Note Off: "80 pp qq" -> "81 pp qq"
Map Controller: "B0 pp qq" -> "B1 pp qq"
Map Program Change: "C0 pp" -> "C1 pp"
Map Application to Device
If you want to pass data from the application back to the device, create another set of presets for the return path:
In MT, create a new preset, "To Launchpad 2". In its preset properties, select "Midi Translator Virtual 1" as input and "Launchpad 2" as output.
Now create translators similar to the above ones, but vice versa:
Code: Select all
Map Note On: "91 pp qq" -> "90 pp qq"
Map Note Off: "81 pp qq" -> "80 pp qq"
Map Controller: "B1 pp qq" -> "B0 pp qq"
Map Program Change: "C1 pp" -> "C0 pp"
Repeat for other devices
Now you can duplicate the presets above (the Preset menu has a Duplicate function) and adapt for Launchpad 3 and 4. E.g. Note On on MIDI Channel 3 is "92" and on Channel 4 it is "93".
Done!
Now that should be everything. If you've worked out such a preset, it would be nice to post it here!
Of course, once you got this working, it's where the MT fun starts: now you can do other translations, create switches to also control MIDI channels 5-8, etc.