Komplete Kontrol S-Series MK2 Custom Script

Hi there, here’s another script I’ve created, this time for the Komplete Kontrol S-Series MK2.

This one is currently creating the following pages:

Mixer
Focused Quick Controls
Quick Controls (This refers to the instrument’s controls)
Channel Strip (EQ, Input filter, Gate, Compressor, Tools, Saturation and Limiter)
Insert Effects
Send Effects, and three pages for commands:

Commands Set 1
Commands Set 2
Commands Set 3

The installation is done by opening Cubase, going to Studio->MIDI Remote Manager, and from there, clicking on “Import Script” and select the file Native Instruments_Komplete Kontrol S-Series MK2 MC Custom.midiremote you previously downloaded from this post (it’s attached at the bottom).

After the installation, a pop-up message box will appear inside Cubase, suggesting that you open the setup information file:

I strongly advice you to do so in order to read more details on how this script organises our controller’s surface, and how to install additional components in case you find them useful. It’s critical to not miss following the part about the NI’s official dll.

In addition to all the controls we have, this script introduces the concept of double-click on some of our buttons, which I found necessary in order to provide some functionalities that are important for my own workflow, but I have to guess they are important for other users as well.

I’ve thought of creating a video demonstrating the implementation, however, I’m not the best one (perhaps I’m the worst) to do such demos, so I place here some screenshots instead, to better understand its functionality.

Anyway, here we go (and sorry for the total lack of even a minimum skill on photo shooting. If anyone using this script wants to, I would happily update this post with photos of his/her own controller pages’ views :slight_smile: )

Mixer

Instrument Quick Controls

Insert Effects



Channel Strip
EQ

Input Filter (pregain)

Gate

Compressor

Tools

Saturation

Limiter

Sends

Commands 1

Commands 2

Commands 3

Note that, if you decide to use the full implementation of this script, you will have the ability to browse channel strip effects, inserts, send and instrument plugins.

Attachments

The script setup file
Native Instruments_Komplete Kontrol S-Series MK2 MC Custom.midiremote (584.6 KB)

The info file
Native Instruments Komplete Kontrol MK2 Custom Script.pdf (337.9 KB)

A word of CAUTION to all users of this script.
Whenever updating the Komplete Kontrol VST (via Native Access), the KOMPLETE KONTROL S-Series.dll is restored to its original form (pretty logical). So, in this case, you have to rename this one again, in order to not have conflicts with my script (since it re-adds the original NI’s implementation inside Cubase).

11 Likes

Thank you I will try but is there an advantage on using the ‘native’ behavior of KKSxxMk2 (my keybord is new and I am in learning curve) ?

1 Like

Hi, what do you mean by “native”? You mean the original NI’s integration?

Yes, what is the gain ?

The original integration by NI, covers the volume/pan of our mixer, plus of course the usual transport functions.
My script goes deeper: Apart from the above, it covers focused quick controls, instrument quick controls, channel strip, inserts,sends and some sets of commands.
So, it all depends on your workflow. If you’re happy with the basic stuff of transports and mixer, you can obviously stick with the original integration. If you want to use the other stuff this script offers (thanks to the new midi remote API by Steinberg) you can go for it :slight_smile:

2 Likes

This man deserves a medal.

mchantzi, do you think this beautiful work of yours might be compactible with Mk1 series?

thank you
L

2 Likes

Thank you :joy:

Unfortunately, I have no idea about how the MK1 works, but if I had one, I would give it a try :slight_smile:

The layout is very much similar to mk2 - individual screens for each knob.

Unfortunately, I don’t have it it my hands as well, so the only way is taking a gamble - I can buy a mint one for not a lot of money, but I suppose Mk1 might not have scripts for this kind of integration, unfortunately…

Perhaps an owner of MK1 could help us on this, if anyone’s reading this thread…

Oh how exciting! :slight_smile:

Look forward to trying this out later, curious if you can you map your own pages using the surface editor?

I have my own script that I use and had to go via BOME to ensure that I could still map via the surface editor, if you’ve found a way to parse those awkward rotaries into something that Cubase can use AND retain that functionality then colour me impressed!

Let us all pray that the Mk3 doesn’t release in a few months now too!

1 Like

Hi mate, thank you for your feedback!

Haven’t tried it. The way I thought about it, was to build the script for the DAW mode, and leave everything else for the MIDI mode, by most probably creating another midi remote using the mapping assistant this time for the MIDI pages of KK.

HOWEVER, note that you can add a virtual port from inside the script, and drive to it the translated custom process variables’ values (the ones connected to our weird knobs), so that, again, you can create another surface using the assistant, but this time use the virtual port as an input. In this case, I don’t see much diff from your approach using BMT, however if we can avoid this “external” addition, probably we might want to try to. My 2¢.

Ah, I will buy this one too, if I find something interesting to play with. I’m hearing some rumours about this summer, however, nobody really knows for sure. My guess would be that they will eventually go nearer to the AKAI MPC’s approach, even though they do have the Maschine+. Or perhaps, add some modular functionality… Just guesses :slight_smile:

A final note: You will notice that the volume levels, and even the other controls value representation on our display, is not accurate, sometimes not even close! I can provide a much better approximation, but for my workflow this was not a priority, so I most probably will update the script in the very near future.

1 Like

this looks absolutely incredible! The most ambitious piece of work with the MIDI Remote I’ve seen to date. And the first time I’ve seen an independent use of the DAW port.

I’m so impressed that you grabbed the Komplete Kontrol DAW port to utilize the considerable functionality that’s implemented in that port.

If you don’t mind me asking: How did you figure out the available functionality in that port? Did you end up reverse engineering everything by watching the traffic flow, or is there any NI documentation available for the DAW port?

1 Like

Thank you my friend!

I had to make a MIDI cross of Bome’s Midi Translator Pro ports and the Daw ones, and monitor the original messages in/out, while in NI’s original integration. It was a bit tedious. The point is that afterwards, I realised that some sysexes had to be changed to comply with the generic layout instead of the dedicated integration by NI for Cubase. This led my to google and chatGTP. I found some sysexes here and there by googling, then asked chatGPT for confirmation and further info. It was NOT very helpful, in fact it got it all wrong in many cases, but after some time with testing, I got to get the correct ones (if they truly are, btw).
In the mean time, I’ve opened a ticket with NI, for some sysexes that I would love to have for reasons of completeness, but minor ones. No answer so far, but I can wait, no big deal :slight_smile:

1 Like

Only now had a chance to try this out - very impressive man!! :slight_smile: …Gotta get my head around the double clicking and different modes, but some great ideas you’ve put in here.

One thing I’d like to check - When I go to the first page the track selection jumps previous and then back to the track I was on, is this normal? It may be because I was working on my own script and perhaps something i’ve got running is screwing with it! :slight_smile:

Also, I somehow stumbled on some native MCU emulation mode on the KK between uninstalling mine and what you’ve done - You ever encountered that before? I wish I took a photo now as the VU meters were a different scale, and it was natively responding to volume changes and such like.

But maybe something in your script triggered this before I had enabled it?

2 Likes

It’s a workaround for an issue in midi-remote upon changing pages, as described here:

You can disable this one in mapOfGeneralSettings.js, by setting generalSettings.syncMixConsoleBankToTheSelectedTrack=0 however, upon changing pages, they reset to the very first one. This has nothing to do with my script unfortunately :frowning:

Nope, it sounds interesting!

I don’t think so, I just a send a "Hello"message upon the device activation event.

2 Likes

I really like the double-click addition, since as we all know, we don’t have that many buttons available :slight_smile:
Note that there is a setting for the period between clicks in the mapOfGeneralSetttings.js file. I have set this to 200 (milliseconds), but this means you have to double-click really quick. You may want to try changing this, if you notice that you miss the double-click action and you get the single-click one. Here’s the setting:

generalSettings.delayMSForDoubleClick=200
2 Likes

A much needed tool—I’ve been looking for something like this for a few years now! Thank you for taking the time to create the script. Will be very beneficial for my workflow.

1 Like

Thank you Erik! Note that I implemented this one for my personal workflow, but I decided to share as I did with a script for the Arturia Keylab.
I take the chance to note that it’s a pity we don’t see an “ocean” of sharing in the community (and I’m not talking for Cubase only), and certainly not just for the midi remote.
For example, here’s a thread I opened, pretty similar to not say identical with one from our friend @skijumptoes for another project: Remote Editor Instrument Plugins Mappings
I truly believe in the power of sharing, and of course evolving source and so on.

2 Likes

Wow, what an impressive reverse engineering effort! Well done!

I’ve done a little of that type of investigation from time to time, so I appreciate how tedious it is!

———
If I may ask a followup question: Do you think the Komplete Kontrol hardware uses only MIDI to talk to it’s .dll, or is there also some non-MIDI communication going on over USB?

If its all MIDI, that would be great and allow various other scripting trickery in addition to the MIDI Remote. For example, I’ve done some investigation and custom scripting using a still relatively new competitor to Bome called CoyoteMIDI (unfortunately it’s Windows only).

I’m on a similar quest to create hardware control surfaces for instrument and fx plugins.

One of the biggest issues I’m still working on, is to create a taxonomy mapping the same (or at least similar) parameters across a wide variety of plugins to the same hardware controls, so my muscle memory can evolve.

And that’s a rather challenging undertaking beyond a handful of obvious parameters (like bypass, dry/wet mix, cutoff filters, and other widely used ones. — The blessing of working with a wide ecosystem of plugins is also the curse of widely different approaches and therefore required controls. And the real killer happens, when parameters are different between patches in the same plugin! In those cases, there’s not much hope to find an efficient way to achieve universal mapping.

Of course, I could restrict myself to a handful of plugin families, that can be mapped somewhat reasonably - but that would be totally counter to my love for new plugins that take different approaches.

So I’m stuck in a love/hate relationship with hardware control for music software. :crazy_face:

1 Like

I have to guess that it’s using usb transmission as well. For example, watch the KK VST updating the display. Most probably it would take a while to load if it was pure midi sysExes :slight_smile:

Interestingly I had a conversation for this with another friend in this forum earlier, I’m actually in the process of creating two utilities concerning this one. I’ll get back to this one soon, hopefully.

I feel you :grin:

1 Like