Connect Novation LaunchControl XL to MTP

Novation LaunchControl XL (LCXL) is a MIDI controller with 24 knobs, 8 faders, 16 buttons and several other miscellaneous buttons for track control and selection.

I primarily use a 'USER' template to communicate with a third party MIDI remote script over at Ableton Live 9 (Dedicated Device Control or DDC by nativeKontrol).

I would like the LCXL to go to 2 different MIDI remote scripts over at Ableton Live 9. I'm thinking it's possible with MTP. Where I choose which part of the controller goes to BMT 1 and which part goes to BMT 2. Over at Live 9 I will then have BMT 1 communicate with MIDI remote script 1 and BMT 2 with the second script.

What is the best way to get LCXL MIDI data through MTP?

I'm trying it this way (stated below) - but I'm not getting MIDI through to Live 9. Incoming set to "Midi Message" and then "Raw MIDI/System Exclusive" - I Capture MIDI for each control. Untick Swallow MIDI message, do not pass on to routed ports. Outgoing set to "MIDI Message" and also "Raw MIDI/System Exclusive"

But I can't get MIDI out to a Bome Virtual MIDI port. Am I missing something?

Thanks,

Bryan D.

Hi,

Most Ableton Live Scripts use an initial System Exclusive handshake to connect to the device, so we would have to monitor the traffic of this handshake to determine if we need to modify it for the second “virtual device”. In the path for the generic LCXL, you would have to make sure everything in both directions, passes through untouched by setting thru paths between your LCXL and say BMT 1. In ableton this controller would be set as BMT 1 with the LCXL MIDI remote script.

For you second “virtual” device” you would set up translators between your LCXL and BMT 2, but you would need to be careful to intercept any commands going to and from that device with translators. Also, care would need to be made to ensure that you are not trying to control things on Virtual Device 1 (real LCXL) and Virtual Device 2 (translated messages) at the same time. I assume you would be switching to a user mode on Virtual Device 2 and staying with the default factory modes on Virtual Device 1. If the MIDI that is sent from the either remote script requires a given mode and the LCXL is not currently in that mode, that could be problematic.

Anything that you use translators for you want to set Swallow in the translator. Anything that you want to pass thru untouched you will not need a translator. If you set swallow. Make sure the preset for that translator is set only for the outgoing MIDI port you want to swallow (not both ports).

What device type are you emulating with the second remote script? Is this something special that you created?

I hope this helps!

Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz

 

Hello Steve,

Thank you for the quick response! I have to say most of that went over my head! 🙂

“In the path for the generic LCXL, you would have to make sure everything in both directions, passes through untouched by setting thru paths between your LCXL and say BMT 1”
– I’m not sure how to set up “thru paths” –

“I assume you would be switching to a user mode on Virtual Device 2 and staying with the default factory modes on Virtual Device 1.”
-I’m only staying on one User Mode.

“Anything that you use translators for you want to set Swallow in the translator. Anything that you want to pass thru untouched you will not need a translator. If you set swallow. Make sure the preset for that translator is set only for the outgoing MIDI port you want to swallow (not both ports).”

-Maybe a screen cap video also to show my level of understanding. –

https://youtu.be/ACqEZbMLKcE

Relevant Links:
https://nativekontrol.com/ddc
http://stc.wiffbi.com/

Thank you,
Bryan D.

OK, thanks for the video.

Here is what you need to do

  1. In Live, set up your DDC2 script to send to and from BMT 1 instead of Launch Control XL
  2. In Live, set up your other custom commands to monitor and sent to BMT 2 (no control script)
  3. In your MT Pro project file you use the MIDI router features as shown below so that everything to and from BMT 1 and Launch Control XL will pass through (just like you were connecting directly). The lower right corner with the lines connecting the ports show this. I just dragged to create default routes between the ports
  4. Add whatever translators you want for controlling your other faders under a preset and make sure in the project file at the preset level it is set to monitor only Launch Control XL for input and send only to BMT 2 for output. All translators under this preset will then override the project defaults. I set up a preset as shown in the illustration for this and added a few faders (based on my LCXL programming). You should be able to use your own project file however since you already have translators created. Just make sure they are set to go to the right ports.

 

Let me know if you have any more questions

 

Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz


Attachments:
![](upload://2RVMzccYAPgLOzMhTV57j3L067t.png)
![](upload://8SDVOjHSQS9yCgETOAd8pyREOUb.png)
1570807782411_Launch-Control-2-Virtual-Devices-with-Ableton.bmtp

I just noticed you are using BMT 1 for Selected Track Control so you might want to move that over to BMT 3 so that
BMT 1 – Provides functionality for DDC2
BMT 2 – Provides direct overrides for specific controls (your two faders)
BMT 3 – Provides STC functionality (controlled by BMT mostly by incoming keyboard shortcuts)
You could probably modify your STC Project file to handle all of this. Any output for STC should be under a separate preset and any MIDI out directed to BMT 3.

Thank you again Steve! I will look into it the soonest and let you know. Working on a film now and will troubleshoot when I finish my cues. Thanks.

OK, Bryan. You know where to find me.

Hello Steve. I’ve gotten this far on this. https://youtu.be/CeAweNwDOZk
Thanks.
EDIT: Hold that thought – I think I got it. I made an error in the Incoming MIDI

Okay so follow up question – I’ve gotten past the concern in the previous video – I’m able to swallow commands now and route what I want – where I want. Next roadblock would be – where is the best place to learn about – MIDI Message – Control Change – “Value” – particularly these oo, pp, qq, rr, ss, etc. I think this is my next concern.
https://youtu.be/gRo8EULJsdk

Video

 

On your video at 2:54/11:10 you are properly setting incoming MIDI value to any, however you are not assigning the incoming variable a value such as qq. You need to capture the incoming value into a variable so that you can use it on output. I would use a local variable which are unique to a given incoming trigger. Local variables start with o through x and have the same letter for both oo pp qq … xx
The reason I would use a local variable is because you do not need it anywhere else in the project so you don’t need to worry about re-using it in other translators with the same incoming trigger. You can read about local and global variable in the user manual (help screen or F1 in MT Pro will open the manual in PDF format).

At 3:23/1:10 you chose outgoing message of CC 22. You need to change to 7 since the outgoing message here is absolute and not relative. Then set the value to the same local variable as you chose for the incoming value. So if you chose incoming value any value assign to qq, you would also choose qq for an outgoing value.

A relative encoder would send 127 for -1 (or down 1) and 1 for +1 (up 1). You do not have any relative encoders on your Launch Control XL. Since you are sending all 127, all Live sees is -1 and goes down no matter what you do.

For using CC 7, you are always setting it to max at 127 which is why it is always pegged at the top.

So incoming should any value set value to qq and outgoing should be CC7 value qq. Then it should work. No rules required.

at 8:39/11:00 I would set takeover to pickup so that if you move the knob within Ableton Live, and then later move the same knob with your controller, the knob will not jump as you showed. It will just not do anything until it hits the last point you moved it within Ableton Live. Of course, this is your preference. If the only place you move them is on the controller, then it will not matter.

Again, you can press F1 within MT Pro or go to the help menu to open the user guide.

We also have a bunch of tutorials to look at. You could problem use the search bar in YouTube to find what you want there.

Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz

 

 

 

 

Sir Steve, thank you very much for your time! I got it to work! Again, thank you!