Hi and welcome to the Bome community!
The attached project file should give you an idea on what is needed.
As you have discovered, applications and devices cannot share MIDI ports on the Windows platform. For this reason, Bome MIDI Translator Pro (MT Pro) has Virtual MIDI Ports. You can have up to 9 input and 9 output virtual ports. This is adjusted in the settings menu of Bome MIDI Translator Pro. I believe when you install it, it defaults to 3.
In this case, I created a static route from my MIDI controller to the application for MIDI thru messages. The application should always be focused on the virtual MIDI port instead of your actual controller.
Notice that I have given my devices aliases. Aliases are a way you can assign your own name (internal to MT Pro) so they make sense to you and also so that you can quickly re-assign to other devices if your physical port names change.
Here is how I have my aliases assigned.
You can learn more about aliases from this tutorial.
External to MT Pro, the virtual ports can have either short names or long names which are exposed to your other applications or devices. This can be set up in setting. By default, names are set to short names. You can get to this screen by the View Menu, then Settings, then Virtual MIDI Ports.
Now to the attached project file I have 3 presets as follows.
Preset Management - This preset controls other presets and I have it always enabled. See the second box ‘Ignore for Next/Preset …’
Key and Mouse - This preset when enabled will disable the MIDI route and still allow for translators for outgoing keystrokes or mouse actions.
MIDI - This preset when enabled will enable the MIDI route and disable the Key and Mouse preset so that outgoing all translators in ‘Key and MIDI’ are disabled.
In the Preset Management preset, I have 5 translators.
- 0.0 will fire a one shot timer (‘Init’) when the project file is opened. More on that later
- 0.1 will also fire the one shot timer (‘Init’) When you press Ctrl(Up) on your computer keyboard. It is a quick way to re-initialize your project if you would like to do so with a keystroke.
- 0.2 translators has an incoming action of timer ‘INIT’ and no output but it sets the global variable ‘ga’ to the preset number you want initially enabled.
- 0.3 will enable the preset number assigned to ‘ga’ in the previous translator while disabling all other presets.
- 0.4 allows you to use incoming MIDI Note 0 on MIDI CH 1 to toggle between the two other presets
In the Key and Mouse Preset I have 6 translators.
- 1.0 Disables the MIDI thru route you set when this preset is enabled.
- 1.1 This will focus on my target application (In my case Ableton Live) any time a 3 byte MIDI message (note or CC) is sent. This is in preparation for sending keystrokes to my applications
- 1.2 This takes note 2 on MIDI Ch 1 and sends a Shift(Left Arrow) keystroke to the currently targeted application. I apply a 10ms delay to give time for the application to focus (translator 1.1)
- 1.3 This takes note 3 on MIDI Ch1 and sends a Shift(Right Arrow) keystroke to my target application. Again I apply the delay.
- 1.4 This will Send Shift (Left Arrow) when I move relative encoder CC 0 on MIDI CH1 and it has a value of less the 64. Note the rules section that nothing happens if the value is greater than 64. The outgoing delay is applied.
- 1.5 This will Send Shift(Right Arrow) when I move the relative encoder CC 0 on MIDI CH 1 and it has a value of greater than 64. The outgoing delay is applied.
In the MIDI preset, I only have one translator. It enables the MIDI thru path. You can then use MIDI learn on your DAW for anything you send from your controller, or you can write additional translations if translation is required. If you write a translator and you don’t want the original MIDI message to go through, use the ‘Swallow’ MIDI option on the MIDI message.
Now the DAW I’m using is Ableton Live and I have set up the input to be BMT 1 Virtual MIDI port and am not enabling my original MIDI port from my controller. It is important to disable your original MIDI input port in your DAW and only use the virtual MIDI port assigned.
Here is the project file:
Daw-Keystroke-MIDI-Switch.bmtp (3.9 KB)
I hope this helps you achieve what you are looking for!
Bome Customer Care
Also available for paid consulting services: email@example.com