How to obtain the ability to browse through presets via ARTURIA Keylab MK 3

Dear Forum,

I just bougth a new Arturia Keylab Essential 49 MK3. The “normal” remote functions does work pretty well between cubase 13 pro and the AKE MK3.

But I never found any solution how to become able to scroll through presets from other Plugins (Steinberg) than the AnalogLab from Arturia itself? My thought was that all PlugIns loaded into Cubase were cabable to use this “scroll through preset” function. Well at last a push on the center Encoder will open the selected instrument, f.e. Retrologoue. But how to scroll them presets then?
Is there anyone suffering the same problem? Are there somewhere user midi remote script sources that may be capable of this feature?
Or maybe there is an easy task to fix that?

Thanks in advance

josh

You can use the Preset Next/Previous commands for this task, but from what I know you first need to store your presets as vstPresets, i.e. it won’t work out of the box for VSTs that don’t have already the vstPreset files stored.

Currently, many of the VSTs have internal browsers, and you can most of the time navigate through their presets by using the arrow keys. This means that you can use an external midi utility to translate CCs to these arrow keys.

Now, if you want a deeper integration, of the style of Analog Lab, the way to go would be the mediaBay. However, there is not yet a midi integration for it, I’m using an external utility to perform such tasks. Here’s a video demonstrating it.

And here’s my feature request for the midi remote:

But, now, let me tell you my opinion on this functionality after using it for months now. I found out that selecting categories/subcategories etc, using a controller is much more time consuming than simply clicking (or touching on a touchscreen) the corresponding filter. At the same time, browsing just through presets is really great. So as a final word, I think that the preset previous/next and/or the translation to arrow keys is sufficient for us.

In my script for the Keylab MK2 I have a special assignment of the jog wheel to preset previous/next. I can always show you how to alter the script of Arturia for the Essential MK3 to do the very same.

1 Like

Dear Minas,

first I like to say thank you for your fast reply regarding my question!

And yes, I already read your post related to your Keylab MK2 I several times, before I decided to ask my question in here myself. Before I came across lots of other forums, YouTube’s and whereever somthing was told abt. this preset browsing issue. But no one really seems interested in this, only a very few postings to find, with mostly no answers.

Well, the MK3 is my fourth Midi-Keyboard-Controller I bought to maintain my workflow a bit more convenient.

It seems every big player in this game is cooking their own soup and just want you (the customer) to swallow it, giving cheers for what they build. It’s just a matter of fact that nowadays we all get drowned in an ocean of presets, spending more time to find the sound that you really need or want for your creation. And the fear of missing out the next, the better, the more usefull preset is destroying any kind of creativity (at least for me). After 30 minutes of preset browsing without finding the right one (if there is any at last), I have forgotten what I wanted to do at the very beginning: putting the melody or bass line or whatever in my head into reality.

Yeah I do know that MIDI was never designed to do such tricks like preset browsing (I started with a Commodore 64, a Jellinghaus (JMS) Midi Interface for it and C-Lab Supertrack as recording software), but if you are willing to sell your soul to one of them big companies you will get at last a touch of that what I asked for in my posting.

So I got one more time bedazzled by a shiny product, that integrates “seamless” with my DAW, but in the end it doesnt. I really dont need another controller that is capable of transport controls and such stuff. I just want a fast way to scroll through them thousands of presets without twisting my arms and fingers into a Gordian knot.

I stumbled also across this option, but I did not manage to get it to work…

The next obstacle to deal with…

Why it has to be the MediaBay? I was thinking more about a scenario like this:

  • Push the encoder knob to open the specified intstrument
  • tabbing to the instruments own preset browser (or category first)
  • then use the encoder knob to rotate the cursor up and down like you do it with the arrow keys (as you have mentioned before)

Well, that’s just a noob idea of mine :slight_smile:

Of course I saw your video, but it seems there is a huge latency between the interrogation and the answer at last? But you got it to work somehow and that’s what counts I guess!

For sure it is! I agree 100% with your feature request! Sounds great!

As far as I can see for now you are totally right.

That would be much appreciated dear Minas. In the dungeon of broken promises you are the only one that shares the same ideas and thoughts regarding this issue as I do.

I am not quite sure if I have just to get my chainsaw and get rid off all this demotivating things I always stumble across :slight_smile: . But for now am waiting for your response, leaving the the saw unfired in the edge of my room waiting to do it’s job :slight_smile: .

Many thanks in advance dear Minas, I think you have put a lot of energy into this task and I am really happy you like to share it with me.

I just want to do some music and I remember the good ol day’s where my DX7-1 has the impossible amount of 32 presets stored in the internal memory. These days I found myself in heaven, cause them synths I used before did not have a memory for sounds, not alking about MIDI itself. But in present I found myself in the hell and maze of a billion sounds - maybe even never listen - before I close my eyes forever :).

Thank you,

Josh

Hi again,

For this you really need a translator tool. I’m using Bome MIDI Translator Pro, but there other utilities out there. The idea is to filter the Jog Wheel for example, then instead of sending MIDI CCs, send the arrow keys. This is actually my preferred way of browsing through presets these days, because as I’ve said previously, browsing through categories/etc, is much quicker using our mouse.

Nope :slight_smile: It’s just that in this video we don’t really see how presets are changed on our screen. The time it takes to really load a preset is the time Cubase needs to load the connected VST. In fact it’s a bit quicker than Komplete Kontrol VST.

And this is exactly the reason why lately I re-turned to building sounds from scratch. I’m using mostly analog synths simulators and usually it takes some secs to have a draft and maybe later tweak a bit to get where exactly I want the sound. For now I keep my sound libraries for fx, drum kits and sampled physical instruments.

I’ve altered a bit the core file of the script. I’ve made a special setting in it, so that when you keep pad8 pressed and turn the jog wheel, it will trigger the two commands Preset Previous/Next. But again this will only work with VSTs that already have vstPreset files installed. Steinberg ones, do have them already, so you can give it a try with Retrologue for example.

I attach here a zip file containing the file to be replaced:

KeyLab_Essential_mk3_Process.zip (7.7 KB)

Once you download and unzip it, you’ll have the following file: KeyLab_Essential_mk3_Process.js

Now, from inside Cubase, go to the lower zone, change to the MIDI Remote tab and click on the down-arrow of the Keylab (top right corner). A context menu will open, click on Open Script Folder

In this folder, replace the KeyLab_Essential_mk3_Process.js (after getting a backup of it, for example by simply renaming it adding a prefix/suffix) with the one you’ve just unzipped.
Now, go back to Cubase, and in Studio→MIDI Remote Manager click on the Refresh icon (top-right corner of the window). If everything went OK, the Keylab’s jog wheel can now be used to browse presets when pad8 (in the second layer of pads) is held.

I have added a setting in this file, which we can use to alter the behavior of the jog wheel, but I leave it for now, since I don’t have an Essential MK3 to give a try, so I will be expecting feedback if everything ran smoothly.

Dear Minas,

thnx for your effort at first! I received the .zip file, extracted it and took a quick check in Visual Studio Code where some lines of code are marked in red color.

Anyway, I exchanged the original KeyLab_Essential_mk3_Process.js into KeyLab_Essential_mk3_Process.js.original. Then put your script into the same location and did a complete reload of them scripts.

But it came up a console telling me something went wrong:

Even more warnings appear after i opened an instrument lane loades with a steinberg plug-in:

I am not able to get this windows closed. It alawys pops up when changing a parameter either in cubase or the loaded instrument or f.e. dialing the main encoder/push button at the MK3.

So it looks like I can not use it since it fails to work due to different errors.
Hope you got an idea how to make it work for the MK3.

If you do need some of the original files just let me know.

Thank you,

Josh

Hi, there is something totally wrong (obviously). I downloaded Arturia’s script and my additions had nothing to do with the errors you get (and I see the cause in the script). Please provide the link to Arturia’s script you’ve downloaded. I’m somehow sure it will be different. The link I got the script was:https://support.arturia.com/hc/en-us/articles/8905862388508-KeyLab-Essential-mk3-DAW-Integration

Thanks to @Xion, I downloaded a working version of the script (I hope) and applied the changes I wanted.

Here’s the altered version:

KeyLab_Essential_mk3_Process.zip (7.9 KB)

Hello Minas, hello Xion,

what a maze!

The Arturia original cubase integration script is coming from:

https://dl.arturia.net/products/keylab-essential-49-mk3/daw-integration-script/KeyLab_Essential_mk3_Cubase_DAW_Integration_Script_1_3_1.zip

That’s the location I got it from as a registered user. I haven’t tested your new one right now, but will as soon as possible (next 45 minutes).

Just in case somthing went wrong with Xion’s version - here is a part of the original .zip:

Original Arturia Win Cubase Scripts for MK3 49.zip (2.8 MB)

Now will check your new one got from Xion and reply after I got some news.

Thanks again for your support and effort (Minas, Xion)

cu

josh

…the results using the new .js from Xion:

I replaced the original .js with the new version you provided in your last post. After realoading all scripts in the MIDI Remote Editor it shows no errors, it just came up with the surface picture of the MK3 49.

MK3 49 is set to DAW Mode. If I restart Cubase with a simple test project, the MK3 49 switches it’s Display to the last selelected MIDI Track . In this case it shows HAL 01 (for HalionSonic Midi Channel 01).

In the first screenshot you can see my Cubase main window with the MIDI Remote Editor in the lower zone and Pads Layer is A (1-8). As you can see Pads 1-8 has in Layer A no assignments.

Here a more detailed view of Pad Bank A:

If I switch to Layer B (Pads 9-16) I do see some assignments but Pad 16 has none.

When I rotate the jog under the display, Cubase switches only up and down the MIDI Tracks. That is the normal remote function.
If I hold Pad 8 in Layer A or Pad 16 in Layer B a note is triggered (D is 1 in Bank A Pad 8 and H 1 in Bank B Pad 16) and if I rotate the jog while pressing Pad 8 or 16 it switches also only the MIDI Tracks up and down. I can not see any presets changing. Also I created a new Instrument in HalionSonic on MIDI Channel 2 to see if the results differs but - no.

The next screenshots showing some details of my setup, just in case I did something wrong in them:

  1. MIDI Track Settings:

  2. Cubase Studio Settings:

  3. Cubase Studio MIDI Settings:

And the script you got from Xion in Visual Studio Code (no errrors shown):

As you can see I was too confident abt my 45 min result report :).

That’s all as far as I can tell for the moment. Maybe you have another idea how to get this under control?

In Germany we say always in such cases: The biggest error is always sitting in front of the computer screen… :slight_smile:

Hopefully it was not me…

Thanks in advance

josh

Yes, there is a silly typo of mine.

Please open the file I sent you, at its current directory, go to line 661, and remove one of the equal signs.

It should be:

image

Save the file, and hit on reload script, and let’s see if it now works.

Just to be clear we’re talking about pressing Pad 8 of the second layer of pads, the one you correctly state as Pad 16.

1 Like

Hey Minas,

thanks again for your effort - and now I can tell you that your modifications do work fine!

Just exchanged the comparison with type conversion sign “==” againt the normal var assign sign “=” in the line you specified - and it works right from the start!

I took a while for me to find out where the “magic” happens in cubase and its instruments.
Right now it looks like that:

We got in Cubase 2 kinds of Preset Browser:
1 - The new Load Panel (in MediaBay Mode) beneath the instrument since Cubase 12 (if I recall
it right)


The new Load Panel does not react to Pad 16 pressed and jog wheel movement, but the instrument is changing presets even it’s not shown in the Load Panal.

2 - The vintage way via the preset management of the active instrument

Here I am able to pre-select some kind of filter of the desired preset type for the selected instrument. After that the combination of Pad 16 pressed and rotating the jog wheel the presets from the selected category are changed and loads up immediately (updates) to the new preset. As long as the preset management window is open I am not able to use the QC of the instrument. This is only possible, if I close the preset management window. Then the QC Controls nicely works with the assigned encoder knobs of the MK3 49.
Also using Pad 16 and the jog wheel without the preset management window open, it changes the presets up and down (of the before selected preset category in the preset management window), related to the jog dial encoder.

I have tested it right now with HALionSonic 7 and 2 different instrument slots and the preset browsing works fine. Also checked with the Retrologue and the result is the same. It just works!
I also did a quick test with one of NI Plugs - Battery 4. But it dont work, since they are not using the vst3preset format.

So am pretty happy abt the results of your modified .js file!

My chainsaw is not longer needed - thanks to your .js modification. I will keep the MK3 49, since now its able to do trick I was searching for so long.

I have a suggestion: While testing around this morning I found the actual procedure to scroll through them sounds a bit laborious related to the fact, I have to hold down the Pad No. 16 until I found a preset I was looking for. Maybe it is possible to change this routine of holding Pad 16 to trigger the jog wheel into preset changing mode. I think looking for presets can took a while and it would be a better idea to use one of the available switches of the MK3 49 (like an on/off switch). If the switch is set to on (that you only pressed once) the jog encoder is always in preset changing mode. If the switch is set to off, you fall back into normal remote mode for either Cubase or the loaded instrument. Advantage: you dont have to hold the Pad 16 all time long as you are searching for presets, so you got your left hand free for other tasks.

What do you think abt that?

I am also pretty interested in the changes you made to the .js file. Until now I did not check the code if you maybe have commented your changes in the code itself. I like to understand how this remote script adjustments works, since I was never in touch with it before.

A quick test to see the assignments for the trigger pad failed, cause when I check it in the MIDI Remote Lower Tab it looks the pad has still no assignment.

Well, last words: I am totally happy it works at last this way with instruments using vst3preset format. And am also pretty happy you share your time with me to managed it to work the it does right now.

So thank you alot dear Minas, you did a really good job!

josh

Hi,

Exactly. This is because I’m using it as a “Shift” button, and this is not an assignment.

Sure, which switch would you like to use? Note that you can even have preset browsing without holding this Pad, however you’ll lose the track previous/next functionality. I can even toggle this, and set preset browsing to the jog wheel, while track previous/next to Pad+Jog Wheel.

You can search for 20240713 in the file I sent you and it will reveal the code segments I’ve added/edited.

In my script for the Keylab MK2, I have prepared a set of actions (Navigate Right, Toggle selection, Navigate Up/Down) so that we can even choose categories/types/etc. Let me know if you’d be interested in something like this, though I don’t actually recommend it, since using the mouse is much faster.

1 Like

Dear Minas,

If I am not totally wrong is the Tap Tempo Switch/Button not in use. So this is a possible Button for your SHIFT (on/off) function, originally placed at Pad 8 Layer B.

My thought is to leave mostly the original functions of the remote script untouched, so a unused Button looks ok to me. What do you think?

It is surely tempting to give it a try, but follwing your advice. I also guess mouse is the faster way to do that task.

Thanks for the info, within the next days I will take a closer look into.

Meanwhile I got a quick response from Arturia Support Team regarding this “seamless DAW Integration” thing. This is what they should have named much more in their advertising campaign instead of the misleading “seamless DAW Integration” phrases:

The only nice thing abt their answer is that they replied pretty fast. The content was expected.

  • Yesterday I played a bit around with the MK3 49 and I really like the option you implemented in the remote script. It’s just nice to turn the jog wheel and have a new preset at hand, I could just use it, even without raising my head at the computer screen to see if it works. It just works! And that’s a real genius feature!

…and for whatever reason I found out that MK3 49 in mixer mode just deals with the first 5 sliders to adjust the volume output of the aligned instrument channel in Cubase. Sliders 6-8 dont cause any changes, even I found in the Remote Editor that they are somewhat “pre-configured” but not really active. I have tried to change that, but I failed. Do you have any idea how to get them active?

Thanks again dear Minas,

josh

Just checked the original code, I see no issue with it. All 8 channels’ volume/pan are properly assigned to faders/knobs. Maybe you have accidentally reassigned some of them to other things? What happens when you move faders 6-8? Isn’t there a visual change in the UI of the MIDI remote?

I’ve checked the code, this button is assigned to Beat Calculator which was there in CB12 but not in CB13 anymore. In CB13 there is a “Tap Tempo” function, so if you’re not really interested in having this, I can surely turn this button to a toggle for the jog wheel.

Dear Minas,

I don’t have played around without setting it back to the default state it was before.

Yeah, all them Faders in the remote editor are moving correctly if I move the fader on the MK3 49. But I found something out: Them Faders seems to get grouped (each group of 8). If I use the jog wheel to scroll in the Cubase project main window the different tracks (that means all Audio and MIDI Tracks) the fader group starts switching. Depending what kind of track is selected in the main project window I get access to different fader groups. Problem is: If I am in the MIDI fader group, not every single instrument reacts the same as the next one. BACKBONE f.e. is not reacting to MIDI Volume while HALionSonic does. So I have tried to reach a group that is assgned to the stereo outs of the plug-ins. This works only if you open in the main window of Cubase the respective automation lane. Then I can control the stereo outs of f.e. BACKBONE. Problem at this point is: If am in the automation lane from BACKBONE to control it’s volume from there, I cannot send a note from the MK3 49 Keyboard since am not on the relating MIDI track. It is not possible to stay at the MIDI Track of Backbone and move at the same time the stereo out fader of it, because this is only possible if I am in the automation lane from BACKBONE. This is really stupid. I can either do this or do that. But not both at once, what should be possible imho. I also have no clue how to rearrange this settings to something that makes more sense. It’s getting even worser if I show in the mixer preferences only the stereo out’s of the instruments. Then the faders are completely getting fuzzy in their assignments.

You see I do have lots of questions but Google or Handbook don’t provide me with answers.

Now to the TAP Button issue.

I took a screenshot and commented it in yellow. There you see the assignment window. I ticked the TAP Button and the result is seen in the picture. All related information tells either “not assigned”, or “not found”. Only one box deep down tells something like “Beat Calculator” but in the list of available Cubase functions this “Beat Calculator” or a german equivalent “Tempo Berechnen” is not available. That is the reason why this Button has no function right now. It might be assigned, but with a value that doesnt exist. Here is the Screenshot with comments (I do hope you can read them).

It comes more and more enigmatic for me, mostly cause I can not find any detailed information netwide. There’s is mostly advertising videos. But it seems nobody cares abt fader grouping or something like that.

Thats all for now, have a nice one dear Minas!

josh

Sorry, I don’t have this VST. Maybe you should start a new thread specifically for the issues you face with the mixer controlled by the MIDI remote, since I don’t see this as something faulty in Arturia’s implementation.

This is because you’re on CB13.
Cool, since you don’t need it to change its behavior to the new “Tap Tempo” command in CB13, I can come up with toggling the Jog Wheel. Will provide an update soon.

EDIT: Here’s the new version of the script file:

KeyLab_Essential_mk3_Process (2).zip (7.8 KB)

Dear Minas,

thnx again for providing a new .js using the TAP Button as on off switch for the jog wheel action selctet next/previous preset.

I put the new .js in place, reloaded all them scripts. But the TAP Button does not set the jog wheel to previous/next preset as it was before holding the Pad 8/16 while rotating the jog wheel.

In whateever state I tick the Tap Button (should work as SHIFT is ON or SHIFT is off) to set the jog wheel either in preset scrolling mode (if TAB is set to on) or to change the track position (if TAB is set to off).

Am I missing somthing? Or Did I misunderstood your last post?
Maybe there’s a little trick i need to get it to work?

I did saw in the source code of the .js you did somthing with the TAP Button, but I can not browse them presets as before.

Yeah, mabe you are right to start a new thread with this special fader issue.
I created just for testing a user assignment to them left/right buttons - orig to move the cursor in the main window forward and backwards. I assigned this 2 buttons to shift the mixer banks to left or right. Just have to play around a bit to see if this will solve my fader issue.

For now I would be happy if this on/off (shift?) function for the TAP Button would be functional in some way. Is it maybe possible to add a feedback (f.e. another color for the TAP Button’s different states) to see in what mode it’s actually set?

regards

josh

Hi, we need to debug this together.

Please open the file I’ve sent you in its current directory and search for this line (line 647):

surfaceElements.transport.btn_Tap_Tempo.mSurfaceValue.mOnProcessValueChange=function(activeDevice,value,diff){

Just right below it, paste this:

console.log(""+value)

Refresh the script, and now go to the lower zone, tab MIDI remote, and click on Open MIDI Remote Script Console, in the area shown in the screenshot I attach.

If this area is not visible, right click on the header of this window and check Scripting Tools
image

Now that we have the MIDI Remote Script Console open, just start pressing/releasing the Tap Tempo button, so that we can see which values it sends to Cubase.

Please attach here a screenshot of this logging window, so we can see what goes wrong.

Hey Minas,

yeah, I did what you told me.

…reloaded them scripts, opened the logging window and when I tick the TAP Button several times - absolutly nothing appears in the console log.

To crosscheck if something is wrong with my system I just replaced the TAP version against the PAD version. I placed the console debug in here:

…reloaded them scripts and first I have checked if the PAD version is still working. And yes, it is. It changes the presets when I press PAD 8/16 and turn the jog wheel. It changes the presets as expected. The cosnsole log shows this:

So the debug produces some output. Here you see the moment I have hold down PAD 8/16 while turning the jog wheel and then released PAD 8/16.

HALionSonic has changed its sound.

The last screenshot shows left side the PAD version (with debug) and right side is the TAP version (also with debug).

Did I follow your orders in the right way?

Thanks in advance

josh

Sure.

Please download this one:

KeyLab_Essential_mk3_Process (3).zip (7.8 KB)