Yes, this is certainly possible with Midi Translator Pro.
In general, you'd use a "global variable" (say "gc" for global channel) to store the MIDI channel that you want all MIDI messages to be sent. Note that internally in MIDI, channels are zero based, i.e. 0...15 correspond to MIDI channels 1..16. Therefore, if gc has value 0, you'll transmit on MIDI channel 1, if gc is 9, you'll transmit on channel 10.
Now for how to setup MT to change all outgoing messages to MIDI channel 10:
Create translators like this:
Code: Select all
Translator 1: "Set channel to 10"
Incoming: MIDI <CC button message> [use MIDI capture]
Rules: gc = 9
Outgoing: <none>
Translator 2: "Map all 3-byte MIDI messages"
Incoming MIDI: pp qq rr
Rules:
pp = pp & 240
pp = pp | gc
Outgoing MIDI: pp qq rr
Translator 3: "Map all 2-byte MIDI messages"
Incoming MIDI: pp qq
Rules:
pp = pp & 240
pp = pp | gc
Outgoing MIDI: pp qq
I admit that the rules for changing the MIDI channel are not obvious to non-programmers. But for that you have us
It should be relatively easy to adapt the first translator (or create additional copies of it) for different channel mappings. Translator 2 and Translator 3 above can always remain the same, you'd just add translators that modify the MIDI channel.
Florian