Arturia Keylab MK2 Custom Midi Remote Script ( MKII )

Hi, note that the DAW port is in use by my script. I guess you’re trying to get functionality with the 5-pin port which has nothing to do with the mapping of the DAW port and this is why you’re getting these silly assignments you’ve noticed. Please read the Keylab’s manual for more details on its ports before trying things out.

Now, IF you really want to work with the physical midi port, you don’t even need this script, since you can go for working with the midi assistant of the midi remote, but you won’t get any visual feedback, since this is happening via the DAW port.

However, curious to know why not using the usb port for the remote.

I am using the usb actually. I think it has something to do with how the mioXL relays midi information, because I’m plugged directly into a USB host, which is thenrunning into a docking station via usb as well.

Oh I think I understand now. Cubase can’t register the DAW port since that isn’t what is being picked up by the mio. I’ll refer to the manual and see if I can’t get the DAW port to be the default send.

1 Like

Our friend @Brian_Roland is much more experienced than me in routing as far as I know. Maybe, Brian, you can shed some light here? :slight_smile:

I’m not sure I fully understand the problem, but it seems to me like we’d need to do some tests to see ‘exactly’ what the mkII sends over the true DIN MIDI port. I’m ‘guessing’ that it would mirror whatever is sent over the first USB input, but then again, it might be limited to the ‘user presets’?

I’m thinking…go USB if at all possible. The DIN port would be more like an ‘extra port’ to play with when using a DAW. Also good for a more ‘direct connection’ to instruments in a live setup.

To get whatever comes from the MIDIN2 port, USB might be ‘required’?

If it’s sending everything these scripts need, would it not simply be a matter of linking that as your Script’s input instead of the first USB MIDI in?

here is what “I Do” when it comes to ‘routing things MIDI’ and “Why”.

For years now, it’s apparent that many USB<>MIDI drivers for Windows are NOT multi-client friendly. This seems to be more of an issue with the ‘inputs’ than the outputs.

This means that the first app that grabs the MIDI ports can use them, but others cannot.

In the mkII’s case, I find that the ‘inputs’ are not happy with multiple clients on Windows systems. The outputs don’t seem to be a problem though, so I don’t bother to reroute those via virtual cables. I had the same issue with controller by Akai (MPK2, and a EWI-USB Wind controller)…so long ago I started grabbing such controllers with something at boot time and diverting them to a more ‘multi-client’ friendly virtual port.

Since I often like to run different Hosts/DAWs concurrently, my solution is to use a stand alone instance of something like Bidule (For MIDI, Bome works very well too. I go for Bidule since it also does Audio, hosts plugins, and features OSC server/client abilities).

I’ll run that FIRST as a stand alone app in Windows, and grab any ‘problem’ MIDI ports in this instance, and then direct things to the various Hosts via loopMIDI.

So, Bidule grabs my KeyLab USB inputs 1 & 2, and routes them to virtual ports A & B.

My mkII setup in Cubase using mchantzi’s ‘Custom’ scripts ends up looking like this:

I’ve created some logic through the bidule “mkII Transport Conversion” that goes out to a new port C for the sake of remote controlling Dorico. Basically all that does is listen to whatever the mkII sends in the Live/DAW mode, and turns it into simpler single CC events that Dorico can understand (for controling the transport and a few other things).

I also have a pass through out of the bidule in case I want to connect to other stuff in the main Bidule session.

I go a step further, in that I also have a kind of patch-bay set up for audio. Since I use ASIO Link Pro, I can route streams among any ASIO or WDM app running on my system, and also network streams over the LAN. So, this base Bidule instance is always running (I have it set up to start automatically when Windows boots). I route most of my ‘windows apps, browsers, etc’ to send audio through Channels 13-14, where I keep a compressor limiter (Can’t stand the way ads are so damn loud comparted to other content when browsing sources like Youtube. This takes care of that for me!).

A Workflow Example: Dorico’s ASIO outputs routed to the ASIO backend channels 15-16. Passes through Bidule back into ASIO Link, and then goes through the ASIO looback rail to end up in a mixer input in Cubase. I can ‘sync’ the Cubase transport as a slave to Dorico using a special TXL time code plugin. I could insert effects and such in the main Bidule instance ‘between’ these hosts if I like. Also, thanks to Bidule and those virtual MIDI ports (A & B), I can get at either host with my mk2 MIDI controller (Listen to virtual loopMIDI ports A and B).

1 Like

Wow mate, I was this close to mark your post as “Solution” to my own thread :smiley:
Thank you very much for sharing your knowledge, I truly believe it is very helpful!!!

P.S.

I should add that I take care to go into my host(s) settings and have them IGNORE the actual inputs of USB devices that don’t like multiple clients where possible.

Stienberg hosts like to grab everything, even if they aren’t using it (grabs it, but filters or ignores the data if disabled in settings)! So I always run them AFTER launching my main Bidule instance.

Stuff with a Plogue engine (Bidule/Finale/Sibelius) doesn’t grab devices unless directed to do so.

I’m not sure about the others these days (Studio One, Ableton, Etc). It’s been a while since I’ve used anything other than Steinberg and Plogue stuff.

1 Like

Hi Minas - this looks very good and a lot of work on your side. Well Done!

Does any of this work on a Keylab Essential 49 ? I would love to use it!

1 Like

Hi Hooby2, unfortunately I have no idea whether it could partly work, since this script heavily relies on the 16 pads for different actions and of course at the select buttons which are missing from the Essential Series. However, there is already a dedicated script for the Essential by Steinberg, tried it already?

I have just set it up with the Keylab 88 MKII. I really appreciate you creating this.

1 Like

Good Morning @Martin90 It mentions in pdf about full version or stripped back, which one do i have?

Hi, by default it’s the stripped-down version, and this is the recommended one when we start. You have to install it inside Cubase by “Import script” and that’s all for a start.
Once you feel comfortable with using the script and you really need the full version (it does offer some functionality important to some, not important to others) you can proceed by following the instructions in the pdf.

@m.c that makes sense. Thank you


THAT ANY GOOD SIR

Ok, uncheck the MIDIIN2 port from the “All MIDI”. You should have it as shown here:

But I don’t see this really connected to the issue you describe. Which port do you have selected in your instrument tracks? All MIDI or maybe a specific one (in particular the MIDIIN2)?

If all the above don’t work, you can try closing Cubase, turning your Keylab off and then on again and restarting Cubase. Note that my script works with the DAW port only and doesn’t conflict in any way with the Port 1 which is used to send notes to the DAW.

@m.c Hello buddy, the old method of, turn everytrhing off then back on, worked! Ha ha. Thanks very much again.

Note that the Keylab occasionally misbehaves, be it either in DAW/Analog Lab or even USER mode and we have to do this :slight_smile: Nothing to do with my script, and this is unfortunate because if it did have something to do with it I would at least try to solve it.

i Absolutely love the KB but, i will be honest and say i have had 2 replacements for power related issue (USB PORT on rear) but still love it. cheers anyway my friend. Have a good rest of the week. Chow.

1 Like

Yes, heard this from other friends as well. Never had a problem with it, just with my cables.
I love it too, I have two of them :slight_smile:

You too!

Hello my friend, I thought this would be solvable, however if I set a flag upon device’s activation in order to not trigger my workaround for the currently selected bank/track, things get worse: Our project resets to the very first bank of our mixer and selects its last (8th) track.

I’ve tried to further workaround the issue, to no luck. Maybe I can eventually sort this out, still, in order to not get things even more complicated, maybe we can just wait for an update by Steinberg, fixing the banks issues of the MR.

1 Like