Arturia Keylab MK2 Custom Midi Remote Script ( MKII )

Hi @Ya_nus, thank you for your kind words!

The script for the Essential model, is creating the mixer and the focused quick controls pages.
The one by me for the Keylab, goes much deeper, by adding many other areas, inserts, instrument quick controls, sends, commands sets and other stuff.
IF you’re happy with just a mixer layout, basic transports and a focused quick controls page, I see no reason to go for a Keylab MK2. However, from my personal experience, the more we use the more we want :slight_smile: If the price difference is not a problem for you, I would go for the keylab Mk2.

Now, since you’re talking about the V-Collections, which I do use too pretty extensively, here are my two notes:
Out of the box, Arturia’s keyboards integrate as expected with libraries/sounds browsing and have premapped our controls for 16-24 parameters. At the same time, they give us the functionality of layering two presets in a single combo. This one is very good and I use it all the time.
HOWEVER, if controlling more parameters is needed, you really then have to midi learn on your own, using the additional user banks these controllers offer.
At the same time, the Komplete Kontrol S-Series, offers that, with no user action needed. Arturia premapped its V-collection instruments in a pretty good way for the NKS and at the same time we can see (on these two small displays) which parameter is assigned to which knob. Now, on the other hand KK has just 8 knobs for controlling, meaning you have to switch between banks more frequently.
Every controller has pros and cons :slight_smile:

It’s a long discussion, I do have both KK MK2 and Keylab MK2 and never actually decided on whether I should keep the one or the other.

The Keylab comes with a “standard” MCU integration: Transports, mixer section. It’s NOT bad at all! Most probably users are referring to the extras the new midi remote API offer. Rest assured that my script covers many many of these extras :slight_smile:
As a side note, I’m preparing a utility for showing on a screen (I have one separate from my main one) all the assignments for each section of the Keylab.

Anyway, most probably my comments will confuse you more, instead of helping, I hope other users can be more helpful here.

Not yet, I reverted to the stripped down version of the previous script while troubleshooting my problem with the bug I previously mentioned (your workaround solved this), and haven’t had time to update to the new script yet. Will let you know when I do.

1 Like

Hi mchantzi,

thank you VERY MUCH for your prompt, comprehensive and very helpful answer. I really appreciate you taking the time and effort to help me!!! And, contrary to your assumption, your answers did NOT confuse me more, instead of helping. :blush:

Regarding my original question, your reply really helped me with my decision-making: I have ruled out the Minilab as well as the KeyLab essential. Luckily, I am not on a tight budget, so it will be the Keylab MK II.

That is, if I still decide to go with Arturia …

Originally, I ruled out everything BUT Arturia, as I assumed that this would be the controller that would work best with V- Collections. However, your statements about the Komplete Kontrol S-Series got me thinking. The better implementations regarding the V- Collections really is a big plus for the Komplete Kontrol S-Series. Another big advantage of the Komplete Kontrol S-Series would (to my understanding …) be its much better integration with other VST instruments (like e.g. Diva, which I currently do not own, but might buy in the future …). It is my understanding that the Komplete Kontrol S-Series would work with lots of other plugins just fine due to NKS, while with the Arturia the same thing would have to be achieved “manually”. An additional advantage of the Komplete Kontrol S-Series is, that it comes with additional software that I do not already own, while the Arturia comes with plugins that are already part of the V-collection (and therefor would be of no additional value for me). Furthermore, the displays of the Komplete Kontrol S-Series are nice for sure. The differences regarding the connections (a big plus of the Arturia) are not really important for me as I only really need the USB and the midi out.

However …. as you pointed out: The Arturia has (1) 8 Faders while the Komplete Kontrol S-Series has none, (2) one more knob and (3) touchpads. And I, personally, really like faders. If there is a plugin-synth using faders (e.g. for a-d-s-r) I really would like to address these parameters using faders. So, for me, it comes done to: Faders (Arturia) vs. better Midi-implementation (Komplete Kontrol S-Series).

And, maybe (hopefully …) you can help me with my decision-making there, as my decision largely depends on how complicated it is to achieve my goals with “midi programming” with the Arturia using Cubase.
My main goal can be described as follows:
I own an old Roland JP 8000. If I have programmed a pattern or melody and send the mididata to the synth, I just love to play with the controls (Filtersweep, change the attack etc. etc.). It´s just not the same if you try to duplicate that by programming an automation under Cubase. So, I really would like to do such things with my softsynths using my Midi-controller. I´m competent with basic computer stuff in general (I can build and install my own PC, do normal troubleshooting etc.) and do not mind learning and working with a new program. However, I cannot script in Java or do any “real coding”. I have seen videos about “midi learning” where you just click on the knob/fader/button in the softsynth, select “midi learn”, then move the knob/fader/button in the softsynth and then save the whole thing in a pre-set. I understand that it might take some time to connect everything doing this, but the process itself seems pretty straight forward to me. If I realistically could achieve my goal doing just this with all plugins, I definitely could live with that. However, if I would have to write a java script (like you did) or similar to achieve my goals with the Arturia, that would be a dealbreaker for me and I would go with the Komplete Kontrol S-Series.

So …. Any thoughts? :blush:

I really would appreciate your input!

Thanks a lot in advance.


Note that in my both script, for the Keylab MK2 and the Komplete Kontrol MK2, I’m taking advantage of the default mapping system of Cubase, thus, most of the plugins are accessible by both keyboards using this system. The difference is that on KK you can actually see the bindings on its tiny screens, while on the Keylab you can see what you turn once you turn it. I just couldn’t make something better with the 16x2 display it (currently) has. At the same time, on the Keylab my banks are organized in sections of 16 (faders/knobs) while on the KK I have them in the “usual” 8-knobs banks.
And here’s another thing to consider: Both keyboards are some like 5 (?) years in production. IF you’re not in a hurry, perhaps you should wait a while, because there is always a chance that both companies come with something, perhaps better.
On the other hand, if we wait, then there is not a good time for buying :slight_smile:

What puzzles me is your JP8000. Do you want to keep using it and controlling from the outside? If that’s the case, the Keylab is a better option the way I see it. Even more, it has cv/gate outputs.

Anyway, as you probably understand, I love both keyboards, I cannot even be really objective here, sorry about that :slight_smile:

I’m doing something wrong - on a mac. I’ve set up new ports and named them per the LoopMIDI, and I think followed all instructions but I dont get the loopin ports showing in the midi controller surface. Images attached. Im a bit concerned by the “legacy” note on the generic remote too.

Screenshot 2023-05-17 at 11.20.11 am


In order for them to show up, you first need to change the strippedDown variable to 0, in the mapOfGeneralSettings.js file:


And of course, save this file after the change.

However, if you’ve already done that, you have to go to the midi remote manager and disable the script (this is done in order for Cubase to “forget” the previous MIDI ports):


Click “Disable Controller Script”.

Next, click the little “Refresh” icon, the last one at the right side, in order to reload all scripts:

Now, click “Enable Controller Script”:


You now have to go to the MIDI Remote section and add the controller again. This time, all ports should be there to map:

Thank you very much for your helpful input.

I have decided to go with the Arturia (I dont want to wait if somethng new comes out. With my luck they will anounce it the day after my purchase if I buy it and wait another 5 years if I decide to stay put … :slight_smile: ).

And as soon as I have it I will check out your script !

To answer your question: I don´t know if I will use the JP8000 much as in general I prefer VST Syths these days. However, should I choose to use it I should be able to adress it via midi the same way as before (I think). (Just playing on the JP8000 and using the midi in and midi out from the JP 8000 to got to my DAW in back)

Thanks for your help and and all the best!



1 Like


Sure, no problem at all!

Excellent choice, and if you like the Analog Lab, it’s a pretty robust setup on its own . I’ve made songs (ALWAYS for my personal joy) purely using only the V-collection (OK OK, and Spark2 for let’s say a bit more “modern” drumsets) :slight_smile:

Thanks that seems to have worked. Is there a function map anywhere?

Sorry, I don’t quite understand this. You mean which button/knob does what? It’s right there in the UI of the Midi Remote.

Hello Mchantzi,

I just received my KeyLab 61 MK 2 and immediately tried to implement your script. And I have to say the script looks AMAZING!!! Thanks a lot for all your work and effort!!! Relay appreciated!!! With all the possibilities it will take some time getting used to … but just wow!

The installation took me some time and it can be a bit overwhelming for someone who does not do this things on a regular basis. The pdf file was really helpful but still it took me some time to figure some things out.

I hope you don´t take this the wrong way but I have one suggestion you might want to add to your pdf file to make the installing process easier.
Text pdf:
„The next step is to make some adjustments if needed.
If you need the FULL version of the script, you have to edit the
mapOfGeneralSettings.js file and set:
generalSettings.strippedDown=0 (Save and Close this file after this edit)“

Suggested addition:

To do so open the midi remote manager, open the rider “script”, make sure that “keylab MK2 mc custom is selected, and use “scripted path”. This will take you to the ride folder. Open “MyPersonalSettings” and open “mapOfGeneralSettings” with an appropriate program and make the change.

Furthermore there is one thing in the pdf where I just don’t know what to do:

It states:

You really have to disable the original Mackie Device of the
default Arturia’s implementation by setting its ports to None,
upon testing my script. Otherwise, there will be conflicts and
erratic controller’s behavior.“

Can you please explain what I have to do there?

Furthermore, I have the same problem as aural_sculpture. (When I activate the MIDI Controller Surface (press the big +) I can only select daw in and daw out). I made sure the generalsetting = 0, deactivated the script, refreshed and active unfortunately with no change of results.
I include the screenshots.

Hope you can help 

All the bests and thanks a lot!



Hi Ya_nus, thank you for taking the time to propose these additions, I will surely make them!

Can you confirm that you have the following activated as well in the mapOfGeneralSettings.js file? It is activated by default, but you never know :slight_smile:

If the problem persists, let me know either here or by PM.

Since you’ve just got your controller, (congrats on your purchase!) you don’t have to do anything about it! This one is for users who previously “installed” the Arturia’s Mackie Device for using Arturia’s integration.

All settings you’ve done concerning Mackie and Generic Remote, seem pretty good!

Hey, maybe you’ve changed the mapOfGeneralSettings.js which is inside “MyPersonalSettings”?
In order to enable the non-stripped version, you have to edit the mapOfGeneralSettings.js in the root folder, NOT in the “MyPersonalSettings” one. This subfolder is there in order to copy-paste things to the root folder.

OK I get it … the sis WAY deeper than I thought… needs its own screen!

1 Like

Though I’ve memorised pretty much stuff, I totally agree!
In fact, I’m preparing something about this, and not just for this particular script.
I think it will be of help to have precious info, for example instrument and effect parameters, shown.
Have a look at a draft I’m currently on.

You are absolutly right. Thanks a lot for your quick response, that solved the problem! :slight_smile:

Evrything seems to work now and the script looks absolutley impressive. Thanks a lot!!!

1 Like

Hi Mchantzi. This morning i’ve follow step by step your guide and its’ perfect. Thank you so much for your share :slight_smile: it’s really really usefull

1 Like

Glad you liked it!

1 Like

A new curiosity…

Anything we need to know when it comes to slaving Cubase to some other clock?


I have Dorico hosting a TXL Timecode plugin. It sends MTC over a virtual port I’ve named ‘MTC’. Cubase is configured to slave with Dorico.

If I have your MKII script loaded and active I get a pop up like this if I set the transport to display time code instead of bars+beats.

If I ignore it and close the dialog things seem to be OK. Obviously the display on the mkII doesn’t do it’s bar+beat thing, but seems to work fine otherwise.

Note, in this scenario that the transport is largely controlled by Dorico.

I’ve just begun experimenting with this scenario so I’m not sure what all this means. Just wondering if ‘perhaps’ the script has a way to deal with the time display instead of bar+beat, and if so, the proper way to get it connected.

Looking for ideas. If that’s not supported yet (or impossible to support) it’s not a huge deal. I’ll gradually figure out the best way proceed.

Hi Brian! Nothing is impossible in such trivial cases :slight_smile:

Here’s however the issue: As you have obviously already seen, I have setup the second row of the display to Bars | BPM | Left Locator - Right Locator.
It’s a tiny display (just 16 chars available). Now, if we decide to offer the full MTC representation, we’re going to need 11 chars just for that. If we decide to drop the frames, we can live with 8 chars. This won’t leave enough space for BPM and locators.
I have no problem to add an option to display MTC but this will mean we will have to remove some things. If we remove the BPM we gain 3 chars. Not enough. We can however, remove the locators. If they are not useful to you, it won’t be a problem at all, let me know.

Now, concerning the popup, could you please post the same popup BUT after clicking the “Error Messages” tab? Have you updated to the latest version of the script by the way? If I remember correctly, it fixed an error while not Bars+Beats were set.