I just bought a used Novation Launchkey 49 mk2 for a first foray into MIDI controllers with Ardour. I’ve used keyboards for MIDI input before, but only for notes, never for controller functionality.
I managed to get everything working except 1 crucial feature: The InControl buttons should, according to the manual, be able to switch the operating mode of the sliders, rotary controls, and launchpads. I’d like to be able to use that to add a sort of “control layers” functionality where, by default, these controls map to their regular defaults (sliders to track gain, pots to track pan), but an other layer could be activated to use the sliders/pots mapped to plugin parameters (e.g. synth parameters or EQ).
Is this possible with this specific setup (Ardour8 on Linux with Novation Launchkey 49 mk2)?
Bonus question: How do I set colors on the drum pads? I don’t know anything about how to use these yet, I’m a complete noob to this hardware/this workflow, I’m trying to learn as much as I can
In general this level of support for a control surface requires writing C++. You might be able to get the layers behavior depending on what the LaunchKey actually does. But the lights in particular would require a dedicated module written in C++.
Ok, I do have a little bit of experience with C++, but I don’t know about writing from scratch. By chance are there any other modules that you could point me to for reference or to base something off of? Is there developer documentation for Ardour?
Also, would this be an independent module/plugin or would this be a contribution to the Ardour open source project? I’m not familiar with the software architecture of Ardour
There are numerous modules in libs/surfaces. There’s no standalone documentation, though doxygen can be used on the source tree to generate somewhat informative code tree maps. There is also doc/source_tree_layout.txt to provide a general overview. New MIDI control surface objects should inherit from MIDISurface. The Launchpad Pro is probably the most suitable one to consider as a rough guide.
Control surfaces end up as a dynamically loaded module within Ardour.