Translating Mackie Protocol & Other Questions

Hello, I am trying to set up my nanoKONTROL 2 controller so that all the Transport functions work accordingly and in addition all (or if possible maybe only some) of the faders work as CC-MIDI-Faders for VST instruments.

As far as I understand there are two possible ways of achieving this behavior a) Use Mackie Protocol and translate some of the faders --> I have not figured out how to translate Pitch Bend messages (which all the Mackie Control Faders make use of) to CC-MIDI --> I think this is the only way to keep some of the faders as Mackie

b) I set the nanoKONTROL 2 to CC-Mode and then translate the CC-Values of the Transport buttons to the respective key stroke of the desired function in the DAW. This would actually be my preferred method of working, since key commands are more powerful than simple Mackie Protocol, which is difficult to reassign in the DAW --> I work with Cubase and Dorico so my question is, whether there is an option to switch automatically between the active programs in focus since the key commands are not absolutely identical for the same function. Is it possible to have two different translations running at the same time for the same controller?

c) My other question is, whether Bome MIDI Translator Pro has to be constantly running in the background, which would mean for every time I want to work with my controller: open Bome MTP -> load the desired translation -> open DAW -> chose Bome Virtual MIDI port -->This would be totally fine; I just want to know if I have correctly understood the way of working with the program. Is there some sort of "set it - forget it" kind of feature?

d) This question is unrelated to the ones above. On Windows it is seemingly impossible to share a MIDI-device with two programs at the same time. When using my MIDI note input keyboard I get problems as soon as having opened both Cubase and Dorico. --> Last but not least I would also like to know, whether it is somehow possible to route the input device to both programs at the same time using BMTP.

I hope my questions are easy to follow. I am looking forward to the answers, so I can make most use of Bome MIDI Translator Pro.


a) Hi, if 90+% of the functionality you want is Mackie MCU, it would be better to leave your NanoKONTROL2 in Mackie mode and then create translators for the exceptions. You could even define a control or keystroke to enable/disable a given preset to alter the behavior of your outgoing MIDI.

b) However if most of your functionality is non-Mackie and you want to use MIDI learn instead, it is probably best to put it into CC mode. Again you could set up a way to alter the outgoing message of a given button, fader, or knob by switching presets.

In general I do not recommend using outgoing keystrokes if your DAW can handle it in MIDI learn. The reason for this is related to your second question. MT Pro really doesn’t know which program is focused so as you switch to a different screen, with different keyboard shortcuts defined, MT Pro would not be aware and maybe send the wrong keyboard shortcut. In contrast with MIDI, the application does not even need to have focus and we can send MIDI to that specific application.

c) Yes, MT Pro needs to be running but you can minimize it. If you set up an aliases to the desired devices and virtual midi ports, MT Pro will remember next time it starts and only prompt you if those devices or ports are not currently available.

d) The best way to handling multiple programs that want to share the same device is use the MIDI routing feature of MT Pro. You can set up routes to and from different virtual MIDI ports and then each application monitor and send to its own assigned virtual port.

In your case you could set up input as NanoKontrol 2 and then create aliases as follows:

Cubase -> Bome Virtual Port 1

Dorico -> Bome Virtual Port 2

You could even create an alias for your NanoKontrol 2

My Controller -> NanoKontrol 2

By using aliases, if port names or connections change, you just reassign the aliases. In MT Pro you always send to the aliases and not the assigned physical ports to avoid having to fix translations destined for a given location.

Hopefully this help.


Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist


[Accidentally posted my question as answer, which apparently now cannot be deleted]

Hello Steve, thanks for helping me. I have figured out most of what we talked about, but two things remain unclear.

I still have no idea how to convert Pitch Bend to standard CC-MIDI. Could you please give me step by step instructions (or refer me to a link)?

I got the MIDI routing working, but only after installing BMTClassic, where the setup was a bit easier. After that I got it working in BMTPro as well. (I am new to this, actually it was not that hard in the Pro version either.) In BMTClassic I had to checkmark MIDI Thru – this is not possible in the Pro version and I presume that this has been reprogrammed to be automatically the case? Even though I got everything working I still do not understand exactly what an alias is. I got it working without any aliases by routing my MIDI keyboard from “Keyboard In” to “Virtual Out”. After this I could use the keyboard in multiple programs at the same time by choosing the exact same port “Virtual In” in both programs.

Could you please give me quick step by step instructions for auto-starting BMTPro at startup with the correct MIDI routing?

Best regards!

Hi, there is a tutorial on scaling that would show you how this is done, however scaling from 14 bit pitch bend to 7 bit CC is actually much simpler as all we need is the most significant byte. It is actually easier using raw MIDI.

A pitch bend message is Ex hh ll – Where x is the MIDI channel 0-F, hh is the most significant byte (7 bits) and ll is the least significant byte (7 bits). A CC is Bx cc vv where cc is the cc number and vv is the value. which only has 7 bits. So essentially you loose some precision when translating pitch bend to CC (14 bits down to 7 bits), but all you need is the high byte.

So if you take an incoming raw pitch bend message:

E0 pp qq

And you want to convert to CC 64 (40 hex) on MID channel 1 it would convert to the following raw message

B0 40 pp

And that would be it.

As far as MIDI routing goes, it is as simple as drawing a line from the source device to a target device with your mouse. I usually assign aliases and draw the lines between them so that if later my devices change, I just have to re-define the alias. See the illustration below.

Keep in mind, if you have a translator that alters the default path or content and you have swallow set, the output will no longer go to the thru path (unless the output is no action or the output does not complete).

In general, I try to avoid thru paths and do everything with translators instead (personal preference) as I have occasionally forgotten about a defined thru path and been bitten with an unwanted MIDI message getting through.


There is also a tutorial on device selection but I’m not sure it covers midi thru paths because that is just as simple as drawing a line.


Aliases are simply your own given name for an existing device or port and makes it easier to understand what devices are attached. In addition, if you move things around (port changes), instead of altering a number of translators or presets with the new port name, it is easier to point an existing single alias to the new real port.

Yes there is a tutorial on aliases as well.


I hope this all helps you get on your way. Also pressing F1 (or help menue) in Bome MIDI Translator pro will open the user manual which explains things in great detail.



Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist


Sorry forgot the post the drawing of routing. Here it is.