So, using the API been working on getting some native integration with NI controllers, starting with the Mk2 S Series.
It’s early in the progress at the moment, but thought I’d share what I have so far, for anyone interested:
Latest version in this post
Once it’s been detected within Cubase your ‘mixer’ button should light up, if you press that button then the integration should appear on the screen of your controller and automatically map.
At the moment it’s utilising the mixer view to display plugin parameters, plugin name and values direct to the screen, as so:-
Across the top the 8 buttons are hard mapped within the code as follows:-
Button1: Previous Track
Button2: Next Track
Button3: Channel Editor (E)
Button4: Inst Editor (Shows instrument)
Button5: Mute track
Button6: Solo track
Button7: Hide/Show plugins
Button8: Toggle between plugins (Current plugin will show below the button).
Note: You may need to remove the NI extensions for this to work, otherwise they will take control of the device first. To do this, I just moved this file to my desktop to disable it.
C:\Program Files\Common Files\Steinberg\Shared Components\KOMPLETE KONTROL S-Series.dll
It’s a very early mapping as yet, but if you just want to control instruments and plugins it’s all working. There’s no elements that appear on the screen in Cubase unfortunately, due to the requirement to scale and manipulate the data - which breaks the binds. However, the idea is that you use the screen of the device - freeing up screen space.
I will be adding the mixer view, sends, EQ control, Control room control, and an editor to define pages of functions along the buttons at the top - so people can setup their own pages of commands.
After that, I’d like to find a way of setting the light guides and scale modes so that Komplete Kontrol wrapper is not required - Maybe even detect Groove Agent instances and map standard drum colours etc. Then look into utilising the screen more outside of using the built-in mixer view.
I’m not sure how much can be done within JS without the integration slowing down is my main concern, however.
Let me know if you try it, and have any feedback. Not a clue how this would run on a Mac, presuming the ports are the same - if not I can update the script to match.
I’ll also update the file in this post, as I progress.