Different apps with same controller


I just downloaded the trial version of MTP and I find it quite amazing. I ran however into an issue when trying to setup a project in which I could toggle between controlling my DAW and controlling the digital mixer of my soundcard. I own a MCU control surface and I would like to be able to control my DAW and then switch to controlling a digital mixer app and then switch back to my DAW (both are on the same computer, just different apps). For now, I've set up 2 virtual output ports, one for my DAW, the Second for the mixer. I created two presets with a translator entry that assign one of my controller's button to switching between the two presets (this works fine). Now I'd like the first preset to pass the MIDI commands to my DAW through virtual out 1 (and get feedback from In 1) and the second preset to out 2 (and feedback from 2).

In order to pass the MIDI commands to my DAW and digital mixer, I set up MIDI thru connections in the MIDI router, at the project level. However I can't find a way to open and close different ins and outs at the preset level. In preset 1, controlling my DAW, I have to disable Port 2, so nothing goes to (nor comes from) the digital mixer. The problem is Port 2 is now also disabled on preset 2. To sum it up, when I open/close MIDI ports in the "Preset MIDI Ports", it seems to affect the Ports on the Project level (and so all other presets). Am I missing something? Is there a simple way to achieve this "app switching" setup? I hope this wasn't too confusing...

Looking forward to your answers,


Hi, for what you are doing, it is probably best not to set up any default routing and let the presets or translators handle this separately. So in essense you need to remove your default routes.

Then at the preset level for your DAW, have it set for your MCU as input and Virtual Port 1 for output. For your mixer preset, have it set for MCU as input and Virtual Port 2 for output. With this, any translator within that preset will send only to the routes defined within that preset.

If you want feedback to go back to the MCU as well, you may need to set up separate presets for that or maybe if you are not doing any processing, you could still have a default routing from the MCU back to the MCU.

You can also do routing at a translator level, however I generally find it better to do at the preset level since it is a lot easier to change 1 preset than several hundred translator underneath it.

So the way it works is Inputs and outputs happen at the project level. If there are any default routes (that don’t need to go through a translator), you define those routings there. Default routes are not over written (unless a specific translator has “Swallow” set.

Then any devices defined at the preset level will override any project level inputs and outputs.

Any devices defined at the translator level will override both preset level and project level inputs and outputs.

I hope all of this makes sense to you. If not, let me know.



Independent Bome Programming Specialist

Bome Q&A moderator



Thanks for the answer. it does indeed make sense.

However, my controller is already a perfect match for my DAW and digital mixer. No need for processing then, except the “preset change” button. So, if I’m not letting the MIDI Through via the project’s MIDI router, does that mean I have to manually reassign every knob, fader and encoder at the preset level? Is that what you were referring to with the “several hundred translator”? Sounds a bit complicated to me..

No, you don’t need to reassign every knob, button etc. You can just assign generic MIDI messages. For instance in the following example every 3 byte MIDI message will pass through unchanged as long as it’s parent preset is active.

Incoming Raw message pp qq rr
Outgoing Raw message pp qq rr

If you do the same with 2 byte MIDI messages then you are about 90%_ percent covered For instance the below would handle program changes which are two byte

Incoming pp qq
Outgoing pp qq

Then make sure each parent preset has your defined input and output devices.

One caveat is that it is likely that both of your Apps are written for exclusive access to your controller so if an app send feedback to the device (LED change etc) the other app will not be aware of this so you might need to do manual storing and manipulation of LED states when switching between applications. If you don’t rely on feedback from either application, then this will not be necessary.


I see! Excellent.

I managed to make it work. At the project level, I used the MIDI router to get a MIDI Thru between my controller and my DAW (virtual port 1) and back. So my first preset only has a translator for the “switch preset” command. The second preset is used to connect to my Digital Mixer (virtual port 2). I used several translators to pass 2 and 3 bytes messages via variables, like you said. From controller to mixer and back. Then I used another bunch of translators to block messages going to and from my DAW (port 1). Finally, I managed to do the same for track naming sysex messages. Works super nice ?

Thanks for the help!

Glad I could help!