Arturia Keylab MK2 Custom Midi Remote Script ( MKII )

M.C. Offered a version as midiremote just under my previous post. I’m not sure the differences.

Good afternoon m.c!

Thanks for the welcome to the forum.
Let me tell you, however, I’m not new here, although this account it is indeed.:smiling_face::wink:

Let me that k you again for developing this magnificent script.
It is.
Truly superb.

About this:

If you do, please let us know, I would gladly donate something for your effort, and I’m sure I would not be the only one!

Thank you as well for providing this file scrip vesion to help with your Arturia Kaylab Remote Surface to start correctly, and also for the clarifications about the unresolved issues in the MIDI Remote API.

As Brian’s 1.12.28.0 version seems to work in my set up, and as you say it is similar to the one you provide in your post, I will try the ports solution editing the customMIDIPorts.js file included there first, unless you say otherwise.

I have one doubt doing so, though
See below :backhand_index_pointing_down:t2:

I’m not so sure how to proceed here when selecting the ports in this file.

You mean we have to follow the same order and names as they are found in Cubase MIDi Port Setup, right?

My Port names are the default ones in the LoopMIDi set up, BTW.

Thanks for your patience. :sweat_smile:

1 Like

Thanks Brian,
I’m writing him a reply about it ATM

Regards.

1 Like

Look at the MIDI port names in your Cubase Studio settings.
Enter them exactly the same in the extension script (customMIDIPorts.js) M.C. describes.

You’ll need to move that customMIDIPorts.js script into the same directory with the main script.

I remember now, that I’d requested a version of the script that can handle ‘custom port names’ because I reroute a bunch of stuff through virtual ports, so M.C. built in the ability to skip the sysex checks and force the script to attach to whatever MIDI device/port we like.

1 Like

Hi Brian

Thanks mate, the names are the same AFAIA, that’s why I was asking the order I have follow to set them.

I will try again later this evening to see if I can get the script starting in Cubase 14.0.20 successfully.

Later.

Yes, but the actual mkII ports are named?
Didn’t you say you have an mkII 49, AND an mkII 61?
Are the actual device ports named the same?

In that case, I think you could set up two of these, in two different folders (slightly different names for the folders), one for the 49 and one for the 61.

If you run both keyboards at the same time, you’ll want another set of virtual ports with unique names as well.

1 Like

Here’s the config file:

//Here we can define the custom ports assigned to Port 2 of the Keylab (DAW Port)
var keyLabDawIn="MIDIIN2 (KeyLab mkII 61)" //DAW MIDI IN Port of the KeyLab 
var keyLabDawOut="MIDIOUT2 (KeyLab mkII 61)" //DAW MIDI Out Port of the KeyLab 

//When using the full version, here we can define the names of the virtual ports
//There are two pairs
//The first pair is for connecting to the generic remote and mackie
//while the second one is for custom inputs/outputs

var loopMIDIPortIn="loopMIDI Port" //First Pair MIDI IN Port 
var loopMIDIPort1Out="loopMIDI Port 1" //First Pair MIDI Out Port 

var loopMIDIPort2In="loopMIDI Port 2" //Second Pair MIDI IN Port 
var loopMIDIPort3Out="loopMIDI Port 3" //Second Pair MIDI OUT Port 


module.exports = {
    keyLabDawIn,keyLabDawOut,loopMIDIPortIn,loopMIDIPort1Out,loopMIDIPort2In,loopMIDIPort3Out
}

For each port I have specified its name in the quotes, for example the line for the MIDI In of the Keylab is this:

var keyLabDawIn="MIDIIN2 (KeyLab mkII 61)"

If your MIDI In of the Keylab inside Cubase is differently named, you have to put it inside the quotes.
Now, if your loopMIDI ports are defined as described in the setup file, you obviously won’t have to change them in this config file.

The only difference is the names that Brian defined in his own config file in order for it to work.

Hi Brian, this was another user from an earlier post :slight_smile:

Please don’t. The changes suggested are based on personal MIDI Port names setup, so this won’t be universal. Furthermore, whenever I feel the need to upload an update, I do so in the original (wiki) post, so that users can always be sure that the one supplied there is the latest one :slight_smile:

1 Like

I see, then you might not need to change anything in the custom script, just move it to the proper directory.

1 Like

Good evening Minas.

Thanks so much for providing it, I ended up figuring out but I followed your cofing file in order to ensure everything goes as expected.

Of course.
It’s your script, you creature.
Be sure I wouldn’t post anything you doesn’t approve first, that’s the reason I was asking about it.

The idea was to provide a working version of the 1.12.28.0 Script that Brian uploaded in a Zip file in case someone would need it, but as you described the minor changes on it then theres no need.

Everything seems ok now.

Thanks once more for you patience and help mate. It means a lot.

Best Regards!

1 Like

I did Brian.
And everything works as expected.

Thank you so much for you time and your help!

Kind regards

1 Like

I know, no worries :slight_smile:

1 Like

Bonjour,
Je viens d’acheter un petit arturia Keylab mk22 pour pouvoir utiliser les potentiomètres rotatifs pour modifier en temps réel les paramètres des effets de mes plugins dans cubase.
Si j’ai bien compris, il est possible de le faire avec tes scripts ?

un grand bravo pour le travail réalisé en tout cas !Je vais tester tout ça …
Belle journée à toi et encore merci ;o)

1 Like

Welcome to this forum!
Yes, you can use this script for controlling both instrument and inserts fx parameters.

The script is great thanks a lot sir.
Maybe it is too silly to ask, why I can’t record the midi CC controllers on the “key editor” (only the mode wheel works but other faders wouldn’t) while use faders through QC to write “track automations” perfectly fine?


I believe there must be a way directly use faders to record the expression CC on the key editor( on the midi events) instead manually drawing. Could you give me a hint please?

The script uses the DAW port/mode of the Keylab. You can always set the controller to its USER mode. There, faders/knobs/buttons can indeed send CC messages and you can custom define them using Arturia’s MIDI Control Center, or even directly from the keyboard.
Recording these CC messages happens exactly as we record notes, these don’t need the R/W options enabled. We only need to hit Record, and then move our controls

Follow the question about Can’t save the Midi Remote here are my ports set up:





Please follow the instructions in this post:

By the way, you shouldn’t have an HUI assigned to the Keylab.

Not related to your question, but I see another remote, maybe assigned to the other port of the Keylab. What do you want this for?

Do you mean if only the User Mode it is impossible to use Transport Function? It works when has both Daw Mode (your scripted) and User Mode Midi Remotes though.

On the Key Lab Midi Control Center neither DAW nor User the transport is configurable.


Go to “DEVICE SETTINGS”. You’ll see an option for the DAW controls, to stay functioning while in USER mode.

I just want to record the CC message to midi part not track automation, as you mentioned I have to go to User Mode to record the Midi CC, it worked but I hope work in one mode, so I build another user midi remote. Since there two Midi Remote, the transport is working. I just hope I can save your script properly don’t have to reset very time.