Komplete Kontrol S49/61/88 Mk2 - API Script with FQC screen feedback

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.


Nice great nob wish someone would make one foe the MPC X…

Thanks man. I already have a control surface though so I’d be more interested in your light guide idea. I always load up Kontakt without the Komplete Kontrol plugin which means the key switches don’t light up but I find it silly to keep loading Komplete Kontrol all the time.

Do you use Maschine? I have my Maschine Studio mapped using the old method, not the new mapping thing. It works well but the screens only display midi data, not nice faders like you have going on with yours.

I think it would be more practical to map the encoders to the Cubase quick controls and show quick control data to we can map our synths within Cubase without using the Komplete Kontrol software.

That’s basically what this is doing, I only have a Maschine Mk2 here at the moment though, but it would be relatively easy to run it on the Maschine Mk3/Studio as the concept is the same, just some of the variables at the top of the script would need changing, and the port detection.

I’ve only had a few hours with it yet, so early days - but I was pleased to have the basic quick control, knobs, buttons and screenfeedback running - I was exploring the HALion content and it made a big difference having the parameters automatically changing on the KK, really enjoyed it.

Here on Win10 CB12 with s61mk2,
in C:\Program Files\Common Files\Steinberg\Shared Components\KOMPLETE KONTROL S-Series.dll just rename file and remove extension .dll

i try with few VSTi and VST. No problems, work’s like charm

Nice ! Any chance to see a Midi Remote for the Maschine Mk3 ?

Have a look on YouTube under Jeff Gibbons. He just posted a video on developing a remote control for Maschine.in Cubase 12 A lot of good suggestions to avoid hiccups.

I have programmed the buttons, (dynamics and microphone cc channels) and light guide for most orchestral instruments as templates in The KK stand-alone app. A template contains the pitch range as light guide for the instrument and if sufficient key space remains ( I have an S61 MK2) also the key switches. This then allows you to browse to the instrument you need to control with the arrow keys on your keyboard without the need to go through the KK plugin I use it in cubase, Logic and Dorico.

What you do have to check is the range for a certain instrument in all your libraries as it may vary by a few notes up and or down. Everything not lighted in a template would normally not send any midi,

This is cool, thanks for posting this up. Have been hoping for some visual feedback for the Kontrol S mkii ever since C12 dropped.

Still not entirely sure i like it being on the Mixer page and losing that functionality and not sure if it can be implemented in the Midi page instead(?), but still, excited to see how you bring some of the other ideas to the table.

As it is it’s very cool to be able to see my synth parameters instantly show up and be able to tweak!

Nice 1

It’s all you can get to on the NI Controllers unless you start mapping direct into the USB driver - at which point it gets really complicated, involves additional driver installs and could vary across O/S’s. But maybe in future, for now, this is something that will just run as a vanilla script.

This is the current version I have running if you want more control:

Komplete Kontrol S Mk2 - Cubase (JS): Web Link (Right Click & Save As)
Komplete Kontrol S Mk2 - Cubase (JS): Forum Link (20.1 KB)

As before, you press the ‘Mixer’ button to enter the script once Cubase has detected it.

It’s a little buggy but there’s five main pages which you access using the left and right arrows (under the preset buttons).

Note: You may need to scroll through all the pages to populate everything first time the DAW opens.

Pages are as follows:

1. Mixer Page (mixer)
Display :
Upper: Shows Track Name
Lower: Track volume
VU meters - Reacts to track audio - (Raw attempt at matching the correct meter values, it’s ‘close’.)
Knobs - Control volume for each track
Top Buttons - Select each track
Top Buttons (Mute Held) - Mutes each track
Top Buttons (Mute Solo) - Solo’s each track

2. Quick Controls Page (fqc)

Row 1: Upper Button function (Yellow line)
Row 2: List of pages (Green) - Selected page has two arrows ‘<<’.
Row 3+4: Quick Control parameter name, and values (Blue Line)
VU meters : Disabled
Knobs: Quick controls as per row 3+4
Top Buttons: Carries out function displayed on row 1
(Last function button swaps between currently open plugins, allowing quick control across multiple devices).

3. Channel Pre’s (pre)
Row 1: Functions - LowCut On/Off, HiCut On/Off, Phase Sw, Bypass.
Row 2: List of pages and current selected
Row 3+4: Knob parameters
VU Meters: Disabled
Knobs: As per Row 3+4.

4. Channel EQ (eq)
Row 1: Functions - EQ ON/OFF & EQ TYPE x4 Bands
Row 2: List of pages and current selected
Row 3+4: EQ Freq and Gain for each band
VU Meters: Disabled
Knobs: As per Row 3+4.

5. Channel Sends (send)
Row 1: Just plain text for now (Send1, Send2 …etc).
Row 2: List of pages and current selected
Row 3: “Level”
VU Meters: Disabled
Knobs: Set level of send
Upper buttons: Enable/Disable send

Global controls (Left side):-
Arrows Left/Right (Under preset buttons)- Swap mapping pages
Shift - Hold to slows knobs to a more precise speed
Undo & Redo - As expected
Quantize - Opens quantize window
Auto - Toggles Automation Write state for track (Lights up)
Loop - As expected (Light feedback)
Metro & Tempo - Rewind & Forward
Play, Rec & Stop - As expected (Light feedback).
Hold shift + Play - Plays back from last cursor position
Hold shift+ Rec - Drops a marker point

Global controls (Joystick)
Left - Navigate Left (Can be used in editor windows etc.)
Right - Navigate Right (Can be used in editor, and also for switching categories in preset browser)
Up - Prev Track
Down - Next Track

Global controls (Joystick turn)
Click - Opens preset browser
Clockwise - Navigate down
Anti-Clockwise - Navigate up
Shift+Clockwise - Nudge Right
Shift+Anti-Clockwise - Nudge Left

I’ve mapped them in that way for the following reasons:

Joystick control concept ideas:
1. Preset browsing:-

  1. Open up HALion, Padshop, Groove Agent, Retrologue etc.
  2. Click the joystick and the preset browser opens.
  3. Quickly scroll between presets using the wheel.
  4. (If ‘filters’ is enabled in the preset browser you can use the joystick right to move between the columns):-1:

2. MIDI Editor (Lower zone) control:-
Joystick Left/Right - Moves between notes
Joystick turn - Raises/Lowers notes
Joystick turn (With shift) - Moves notes left/right

3. Variaudio Editor control:-
Joystick Left/Right - Moves between edits
Joystick turn - Raises/Lowers tuning.

Known bugs (Next to be fixed/implemented)
Changing elements outside of the screens being active can lose sync
Pages don’t always populate on startup
No ‘Q’ control on EQ page, need to think about that.
Ability to have multiple pages of functions across top buttons, user customisable.
User customise joystick behaviour (i.e. if jog functions are prefered).

See how you get on! If you get any problems let me know, as I think having the previous version can cause issues as the old pages seem to get left over when I’ve been testing it.

Of course, this uses the DAW port on the hardware, so you can still create your own ‘MIDI’ mapping on top as a separate remote script.


Hey, again thanks so much for sharing your hard work!

This latest script is cool with many functions, but i think i’ll stick with your first script as it’s nice and simple and along the lines of what i had setup in my MIDI page mapping but now with the nice ‘text’ feedback. Would be cool to keep the mute/solo functionality on the dedicated buttons of the controller, but guessing something is not working right for now?

Unfortunately those mute/solo buttons don’t send any messages on their own (in the DAW control mode), they only act as modifiers to the 8 buttons along the top.

Still getting myhead around it all right now, so it’s just early testing at this point really. :slight_smile:

Wish I could get a similar view to what you get with Komplete Kontrol, or the MIDI view but none of that is accessible outside of direct USB Driver interrogation, which is beyond this initial scope of MIDI/SysEx access.


Does anyone have an original script for Native Instruments Komplete Kontrol s61?

Hello everyone, is there an update on this? Anything we can do to help? Or any way to ask NI to write a script?

Verry exciting!

Looks very promising! How can i get this to work on MAC M1? I’ve tried to copy the file to the MIDI remote driver script folder, but that doesn’t seem to work?..