Programming Launchkey MK2 using InControl

Thank you so much Steve! I will be trying this at home!

Since we are going back and forth, I have come across an interesting dilemma of which programming path I should choose for my current controller.

To explain this quickly, I have a Novation Launchkey MK. 2 49 midi keyboard. It comes with a helpful programmers reference guide that I have been trying to implement in order to activate the InControl functions of the device.

When you use this keyboard normally as the control surface midi device in Ableton, it is designed to detect this and activate their InControl capabilities which allow the user to switch certain functions of the keyboards knobs, faders, and drum pads.

I want to fundamentally change the functions of this keyboard to cater to my 8 instrument orchestral template. When I began to use BOME to program my controller, I realized that using BOME as a midi device without letting Ableton know that I am using the Launchkey disables the InControl functions and turns on Basic Mapping mode.

To explain this in midi terms, all of the same messages that are being sent for each fader, knob, and button are simply changing their midi channel from 1 to 16. I realized this when I ran all of the actions through the midi monitor while my Launchkey was connected to Ableton in the preferences INSTEAD of the BOME midi device.

The issue is that I want to keep the InControl function on but I still want to swallow some
Midi information so I can use the buttons to switch to different custom mappings without having to configure them while I’m recording. But the programmers reference guide has a solution to this!

I’ve posted an image of the reference guide which explains that the InControl function can be turned on manually by sending a midi message to the controller.

Can you help me implement this code either on key command or when the BOME application initializes?

Thanks again Steve, you truly are the best!!! This program is such an essential tool.

Hi, since this subject is completely different than the original, I’ve moved it into a new topic.

If you want all normal functions to occur with Ableton Live then you will need to use the MIDI router in MT Pro to route your ports to and from Ableton Live via virtual ports.

Then you can use translators (with the “Swallow” option, to override anything you want.

I don’t have a Launchkey MK2 but I have a Launchkey MINI MK3 and the below diagram is how I set up the routing. First I created aliases so within MT Pro I can use those instead of the physical ports and the names make more sense to me. Outside of MT Pro the names will continute to be BMT 1 and BMT 2 which is how you will need to connect them within Ableton Live



For me, the LaunchKey MINI Control Surface (Remote) was set to BMT 2 and the Performance (Track) was set to BMT 1.


But depending on how Ableton Implemented it, your ports may be different.

Keep in mind also that Ableton Live may already be taking advantage of InControl, so if you override anything, then some of Ableton Live normal functions may not be consistent.

Here is the MT Project file with just the aliases and MIDI routing set.

Launchkey-MINI-Thru.bmtp (1.0 KB)

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:

Absolutely incredible Steve, I will be trying to implement this when I get home today.

Before I do, I did want to better understand the midi routing you set up in the “Midi Router” image.

I understand you created the aliases, but just so I understand what is going in and out, the Launchkey mini MK3 midi 1 and 2 is going to the abletonlaunchkey1/2 alias outputs, and those messages will come from the input of these aliases back to the Launchkey mini MK3 outputs.

Do I have this correct?

Yes, however I have the Aliases AbletonLaunchKey1/2 tied to physical virtual port BMT 1/BMT 2 which is how you will see them in Ableton Live. You will need to use the documentation on your Launchkey on how to configure these ports in Ableton so that they are mapped to route to the same physical ports on your launchkey.

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:

Hey Steve!

After a couple hours, I still had some trouble. Specifically, Ableton kept reverting the default input and output for the Midi data for the Launchkey instead of the BMT ports we created. Even after changing them to the correct ports, InControl was not functioning as normal.

If Ableton keeps changing these configurations to only have Launchkey as the Control Surface, Input, and Output, then is there a way for Bome to translate this data outside of ableton? I’m not sure If I’m explaining this right, but the only way for my controller to be in “InControl” mode is if these parameters stay the same. Could Bome work behind the scenes of ableton swallow and convert certain message so the InControl functions stay the same but only the midi data is changed in between the Input and Output of the Launchkey.

Thank you again for all of your help Steve, If I can’t get the InControl function to work, then I will need to take more time to configure everything else.

Unfortunately Ableton Live likes to look at the original port names so you would always need to open Bome MIDI Translator first to have them take control of the original ports. Then when you start Ableton Live, it will not be able to open the original ports and you can change them to the virtual ports instead. So this might be required every time you start Ableton Live.

With that said, you might be able to route and only translate port 1 through MT Pro and leave port 2 (In Control) alone. It really depends on how Ableton decided to write their MIDI Remote Script for this controller.

Steve Caldwell
Bome Customer Care

Also available for paid consulting services: