Komplete Kontrol S-Series MK2 Custom Script

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

Thanks - yes, that’s what I had also always assumed. I think there’s also another Steinberg SDK, for developing such extensions for Cubase. But I don’t think that SDK is easily available for ordinary people who don’t manufacture their own hardware. So there would seem to be an additional communication channel between Cubase and the outside world, that’s simply not available to us. :frowning_face:

1 Like

Ah, the sdk, yes :slight_smile:
Not sure if most of us would benefit from using it instead of the new api. I think that the api is the goto in the future. It certainly needs some (not much really in terms of functionality) additional work, but hey, we’re just on version 1.0, aren’t we? :slight_smile:

1 Like

I share your hope for the new API. The fear for some of us longtime users remains that it will be left in similar unfinished state as some previous Cubase features (the Generic Remote prominently comes to mind). Steinberg has been puzzling to some of us long time users in what is strategic and what is a temporary priority. I don’t think Steinberg are the only company behaving that way, so I don’t really hold it against them. Every company (and human being - including me) muddles their way through shifting life realities as best as they can. But it also means, that as users we can’t necessarily count on future goodness. Sometimes version 1.0 is all there will ever be. :grimacing:

1 Like

It’s the first time I read about an api staying at 1.0, I hope you’re wrong :rofl:

1 Like

A word of CAUTION to all users of this script.
Last night, I’ve updated via Native Access the Komplete Kontrol VST. Upon updating, I’ve noticed that the KOMPLETE KONTROL S-Series.dll was restored to its original form (pretty logical). So, in case you update, 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).

I meant to ask you, of you really have to rename it, or if you could simply remove it from the Cubase Studio setup environment?

Hi Nico, sure you can remove it, but I go for the “lazy” way of simply renaming it. I’m still using Cubase11 for some projects, and I still need the original integration there, with a BMT script I have for the CB11 :slight_smile:

Oh but now that I read more carefully your question, removing it from the setup won’t work! Upon restart of Cubase, the dll is recreating the integration!

1 Like

It’s like a Charles Dickens ghost, it comes back the following night! :slight_smile:

2 Likes