Hi,
this is one of the primary use cases for MT Pro! However, you do need MT Pro version 1.7.x or later for this to work (as of 11/2009, you can get it for Windows and as a beta version for OSX).
How to do it:
1) The general setup is this:
MIDI Device 1
+MIDI Device 2 -> Midi Translator -> Audio Software
With
Audio Software I mean e.g. Ableton Live, Traktor, Cubase, etc.
For that to work do these settings:
Midi Translator:
[x] MIDI Device 1 Input
[x] MIDI Device 2 Input
[x] Virtual Midi Port 1
Audio Software:
[x] From Bome's Midi Translator 1
Make sure to NOT open the MIDI ports of Device 1 and Device 2 in your audio software!
2) Direct Routing of Device 1
We use the MIDI router to pass through all MIDI data from Device 1 to the virtual MIDI port: open the MIDI Router from the MIDI menu and draw a line from MIDI Device 1 to Virtual Output 1.
3) Mapping MIDI channels for Device 2
This one gets a little more complicated. There are many different ways to do this. Here I present a straight forward, though slightly clumsy way.
Create a new preset. Open the Preset properties. In the default MIDI devices, check only these:
MIDI IN: MIDI Device 2
MIDI OUT: Virtual MIDI Port 1
Then create translators according to the following scheme:
Code: Select all
Translator 1: Map CC's channel 1 to channel 13
Incoming: MIDI B0 pp qq
[x]Swallow
Outgoing: MIDI BC pp qq
Translator 2: Map CC's channel 2 to channel 14
Incoming: MIDI B1 pp qq
[x]Swallow
Outgoing: MIDI BD pp qq
Translator 3: Map CC's channel 3 to channel 15
Incoming: MIDI B2 pp qq
[x]Swallow
Outgoing: MIDI BE pp qq
Translator 4: Map Note On's channel 1 to channel 13
Incoming: MIDI 90 pp qq
[x]Swallow
Outgoing: MIDI 9C pp qq
Translator 5: Map Note On's channel 2 to channel 14
Incoming: MIDI 91 pp qq
[x]Swallow
Outgoing: MIDI 9D pp qq
Translator 6: Map Note On's channel 3 to channel 15
Incoming: MIDI 92 pp qq
[x]Swallow
Outgoing: MIDI 9E pp qq
The hex codes might look unfamiliar to you. Any MIDI guide on the net will help you decipher them though. pp and qq are variables that mean that the incoming action reacts for every value. As outgoing, we use the same values, only the first byte is changed, which has the MIDI channel as second digit (note it's minus one).
It is very important that every translator has "swallow incoming message" checked, so that only the translated message is sent to the virtual MIDi port, and to the Audio Application.
If you need to translate more message types, you can easily add translators according to the above scheme.
MT Pro's rules let you do the channel mapping in a more general way. With them, you can define the mapping with just two translators. But the rules make it less intuitive... That's why I presented the more simple way first.
Let me know how it works!
Florian