Novation InControl protocol

I recently got a Novation SL Mk III keyboard. I love the little display screens for showing what the knobs are controlling.

One mind boggling shortcoming seems to be that while you can program templates for the controls, it doesn’t appear that Novation supports any kind of midi sync with these templates. I can link the knobs and sliders to GP widgets, but if I adjust a widget via mouse or I change variation, the Mk III doesn’t respond to the midi feedback with the sync option enabled. At first I thought I was missing an option somewhere, but I’ve read elsewhere that this is just part of the Novation firmware.

To get full bidirectional control it seems you need to use Novation’s “InControl” mode. With that enabled it syncs up very well with Ableton and some other DAWs. The screens and controls on the Mk III will follow what you’re doing in your DAW, etc. I’ve only played around a bit with it, but it seems surprisingly robust.

I assume it’s all scripting, so I wondered “couldn’t I do what I want with GP scripting?” Probably, but that would require documentation on the InControl protocol, and I can’t seem to find it anywhere.

Has anyone looked into this or come across anything about it? Is anyone using one of these with GP?

So in Ableton Live you can choose the Novation as a Remote Controller?
It is implemented as python script, so I fear that it is not that simple.
What can you see in the midi monitor window as incoming messages?
Maybe with some scripting this can be done…

So it follows perhaps a well known communication standard. If it follows the Mackie Control Protocol, it should be possible to modify the display by sending the appropriate SysEx using GP script.
Can you try to sniff the MIDI communication when syncing with the Novation display?

Yes, it’s configured in Ableton as a remote control. Similar in some other DAWs that support the protocol (presumably through their own scripting). It’s immediately recognized by Ableton, so there’s clearly some automatic handshaking going on.

I found a BItwig and Reaper extension to utilize it written by a guy named Jurgen Mossgraber. They’re java based, and in 30 minutes or so of looking at them I haven’t been able to really understand what’s going on. The code repository for the Bitwig version is on Github here. It’s cross-device package that works with a dozen different controllers and OSC, so it’s quite large and I haven’t figured out how it’s all structured yet.

The extremely thin documentation that comes with it says it supports HUI mode in DAWs that don’t have full InControl protocol scripting supported. In my brief searching on that I read somebody complaining that it doesn’t do full MCP, only a limited subset and they couldn’t get it behaving right with Reaper. Then somebody linked to that Jurgen Moss script add on I mentioned above and that ended the HUI discussion.

I wanted to check here to see if anyone’s gone down this path with the SL Mk3 with GP already, so I hopefully wouldn’t have to reinvent the wheel reverse engineering it.

Does midi sync work in basic mode?

It seems that you will have to… :grimacing:

I’m facing a similar situation testing the SL MkIII. Templates can be created to assign the controls which is great. However, GP widget sync does not work with updating the LED lights on the controller buttons. The Programmer’s Manual states the only way you can send the sysex messages to update the LED button state is when the controller is in InControl mode! This seems like a terrible design decision. When I put the controller in InControl mode I lose my Template and the keyboard goes dark.
To make this work I would need a way to apply a Template for InControl mode. Then the GP scripting would work for sending the sysex messages to update the button lights.

Novation did finally come around to publishing the protocol to communicate with the SL Mk III in its InControl mode.

I have done a fair bit with getting the SL MK3 to work with GP4 the way I want it to work. It’s not in a particularly shareable state right now but could potentially get there in the not terribly distant future.


When you’re ready to share I’d like to see the work you have done.

Novation support agreed that there are valid scenarios where sending midi and sysex messages to the controller outside of InControl mode should be allowed. They opened a feature request with all my case notes. Unfortunately, it’s unclear whether they will act on that request for a firmware update. I will be contacted if they pursue it.

1 Like