Novation Launch Control XL

Hello again!!

I have recently purchased the aforementioned device and I am pretty happy with it. As many of you might know, this device is perfectly integrated with AbletonLive. The ardour mapping for the device works very well, but it lacks some functionality.

The Novation launch control XL controller has a row of buttons at the bottom which in ardour defaults to the track solo funtion. In ableton, however, you can change the function by pressing a set of buttons on the right, choosing between solo, mute or record arm. These buttons on the right hand side can be mapped to any other function in ardour, as they also send out midi messages.

The question is: Can you map the buttons on the right (or any other) to change the functions (mappings) of the bottom row of buttons in Ardour just the way ableton does? Doing so would increase the controller’s possibilities ten fold.

Here’s a link for those who haven’t the faintest idea of what the controller looks like so that I am saying makes a bit of sense:

Thank you very much.

We have 4 methods of supporting MIDI control surfaces.

MIDI Learn is totally dynamic: middle click on a widget on-screen then adjust the MIDI controller. Done. Any controller, any controllable thing.

Generic MIDI uses fixed XML files that cannot be edited from inside Ardour, but that allow a lot of possibilities. You need to edit these in a text editor.

Mackie Control support: uses the same generic code, but requires a (small) text file to define the attributes of the surface if it is a new surface. We currently have device definitions for most Mackie Control devices.

Custom support, currently limited to Ableton Push 2, Presonus Faderport (and Faderport 8 and Faderport 16), Native Instruments Maschine. Each of these surfaces has dedicated written to account for all of its controllers and possibilities (to the extent that they make sense in Ardour).

To do precisely what you’re describing requires custom support for the Launch Control XL; that’s not likely to happen anytime soon.

Novation has not seen fit to give reasonable documentation on this device. This means you need to use a MIDI monitor like the one internal to Ardour to figure out your own MIDI map. The buttons on the right that control the meaning of the lowest row of buttons may be internal to the unit and just change the messages those buttons send which would allow you to set up a useful midi generic midi map. However, they may also just send a press message and expect the DAW to take the same event to mean different things, Ardour can not handle that without a device specific module as Paul has said. You need to find out which is the case. It is unfortunate that they chose to emulate HUI rather than MCP as HUI is outdated and deprecated. MCP on the other hand is well supported by almost everyone because the original LC (Logic Control) controller manual came with full MCP protocol documentation. HUI is closed and undocumented to most people except where they have reverse engineered it. The Template Editor may allow setting up the XL in such a way it follows MCP quite well or in a way that works best with generic MIDI.

Hi there and thanks for your answers.

I’m not a programmer so I am not sure if this documentation is of any use:

As from what I can tell with my limited knowledge, all buttons on the novation launch control send out midi messages, except for the two top right ones which are used for changing the controllers templates. These are editable from the devices editor software which unfortunately doesn’t work on linux, but does in virtualbox. You can configure any button with any midi message. Cool!

It’s my own wild guess that it’s up to the DAW or whatever software to decide to change it’s internal control surface mappings depending on whether it receives a particular midi message or not. And that is what I guess ableton live does. Could it be done with ardour?

On the novation you can use different templates for controlling more stuff for example. You can create a user template for controlling the mixer, for example, and another one for controlling automatable plugins, or another designed for using with a completely different piece of software.

Thanks again.


Pretty much any standard MIDI message can be mapped to a variety of controls within Ardour. Glancing (VERY briefly) through that documentation it isn’t clear what the templates send, but it does make mention of a custom SYSEX based protocol for the launchpad, and that would require a custom written module as those aren’t really ‘standard’ MIDI messages.

So it seems likely basic functionality could be accomplished using the factory templates on the device possibly depending on what messages it sends, but for more advanced functionality would require custom coding beyond building a MIDI template.


@eddie3000 “It’s my own wild guess that it’s up to the DAW or whatever software to decide to change it’s internal control surface mappings depending on whether it receives a particular midi message or not.”

Better to find out for real. My guess is that the buttons on the right change the midi sent by the bottom row of buttons. The manual is next to useless so far as finding this out. However, considering it does have a HUI template where this change of message would have to happen in the controller (from my understanding of HUI). The only real way to find out is to actually monitor the MIDI messages while pushing various buttons and combinations of buttons.

“And that is what I guess ableton live does. Could it be done with ardour?”

Again guessing that ableton does this or that is of little help. Actual midi monitoring will tell for sure as documentation does not. As already said above, yes it could be done but would require making specific code to do so… that is “send the unit plus development pay” :wink: or to put it another way: no that can not be done in Ardour as it is.

However, if you have the unit, it should not be that hard to monitor the MIDI coming from it for different button pushes and ask for some help making the best out of the unit’s capabilities with a MIDI map.

The other source of information might be the windows or mac template editor. I haven’t looked at that though as my computer really doesn’t know what to do with .exe files.

Thanks for your replies.

According to the launch control xl’s editor software, all the buttons send specific midi messages, which you can change to your own needs using the editor, and those modifications are saved in a user template. After you exit the software editor, the control surface only sends one type of message per button or pot/fader. The only way to change the message each button sends is by changing the template using the top two buttons on the right. There are eight factory templates that cannot be changed and eight user templates that can.

So I am certain that each button sends only one midi message at a time. All the buttons and pots do so except for the top buttons used for changing templates (these don’t send any message at all, and if they do, they are probably some sort of system exclusive type of message). If you change the template then yes, the buttons actually change the midi message sent. The factory templates really only change the midi channel, leaving all the other midi messages the same through out all the templates.

I have noticed that when using the launch control xl mappings selecting them from preferences>control surface>generic midi>novation launch control xl the track select buttons on the device do actually work. When I have twelve tracks in ardour, the first eight tracks are controlled with the launch controls faders, and when I press the track select button to the right, tracks 9-12 are controlled by the first four faders, leaving the remaining four faders still controlling tracks 5-8 (because there are no tracks 13-16 in the project). Wouldn’t this mean that ardour DOES change the parameters that the control surface controls without the control surface changing the midi messages it sends? Am I wrong?

Getting the lights to work is still a mystery to me…

I am using Ardour 5.12.0 at the moment. It’s a pretty awesome piece of software. I hadn’t really messed with it until these past few weeks.


Just looked at the midibinding file of the novation launchcontrol xl. At the end of the file you get:

Binding channel=“9” ctl=“106” function=“prev-bank”/
Binding channel=“9” ctl=“107” function=“next-bank”/

These are the lines that I assume assign the function to the track select buttons.

I know nothing of writing these midi binding configuration files. Maybe I could try to make my own custom midi binding file. Any suggestions?

After reading through the manual’s section on midi binding, if all the information is there, it seems that what I would like to do is not possible. It is not possible to change the function of a set of buttons as like in changing the fader bank. If so, what a pity. Could adding function banks to ardour be possible? That way one could select whether the bottom row of buttons on the controller act as solo, mute or record arm for example, just like it’s labelled on the launchcontrol xl.
Maybe it’s a not a too requested feature so as to implement it?
At the moment, using the launchcontrol, I still have the possibility of creating special templates for different functionality, and switch between them for now. Not what I wanted but I’ll have to do.

As I explained originally, there are completely different mechanisms for supporting control surfaces. MIDI Binding Maps are one of them, but they have very distinct limitations, which are known and there’s no intention to change them.

To do that kind of thing you want requires actual programming, which anyone with the necessary skills can do, but few will. We are not likely to return to a focus on control surfaces for some time given the other major architectural work on Ardour taking place right now. Devices like the Novation are very different from the more traditional console-y control surfaces that we have tended to support in the past.

Thank you very much. I understand.

You said that “Native Instruments Maschine” is supported in Ardour. Which one of Maschine?

How to make it works in Ardour? I ask because “Native Instruments Maschine” isn’t mentionned neither in the Online Ardour Manual, nor in the software section named “Control Surfaces”.


Sorry, the Maschine support will be in the next version of Ardour. The code is already written and has been for some time, but it is not part of the current 5.x releases. And it is specifically for the Maschine 2.

Ok Thanks for your Answer.
I’m analysing some Integrated controllers as Maschine 2, which are compatible (integration) with linux software as Ardour. I want to buy one.
I’ve created a post on Push 2 controller (Push 2 feedbacks). Please can you answer to some questions on it, especially to which referring to developers? Thanks!

Please, I just want to be sure. Is it Maschine mk2 ?


Meanwhile Jan Lentfer has added elaborate support for the Novation Launch Control XL. He added it for Mixbus, but the work was done in Ardour-git and will be available from Ardour 6 on:

The control surface is generic. It can theoretically handle all NI Maschine devices so far, supports color, and monochrome displays as well as the mikro without display, just different mappings.

And now the bad news: Neither of those devices is very useful with Ardour.

Ardour doesn’t have a built-in sequencer or clip-launcher, nor can Ardur’s mixer-strip layout be mapped in a useful way to the knobs and buttons on the Maschine. The pads are currently exposed as normal MIDI port to be used with a synth plugin, while the rest of the device is left for generic control.

It was tested with both the Maschine mikro and the mk2 (same device that you’ve linked, just the white model), but in Ardour’s context it’s just an expensive toy. It’s not a performance instrument, nor any help when mixing.


So by reading your text, I suppose that Ableton Push 2 is also an expensive toy if I use it with Ardour, as Push 2 is the same type of device with NI Maschine.

OK so, those controllers aren’t interresting now with Ardour!

Thanks for your answer.