Version 1.4.9.0 - 09/04/2023
In this version I’ve added the combination of states (Shift, Ctrl, Alt and FN) with our 8 knobs, in all pages except from the ones for the Commands Sets. You can set them up by altering the new file mapOfActionsOfKnobsByState.js. I’ve added remarks there on how to do this.
However, if you don’t need this functionality, you can deactivate it by setting generalSettings.allowCustomKnobsStates=0 in our mapOfGeneralSettings.js file.
We have three types of mapping for each knob and each state:
- Normal MIDI CC. Upon turning a knob, we send its CC value to a CC we’ve set up in the mapOfActionsOfKnobsByState.js file.
- Dual MIDI CC. In this one, upon turning a knob, we send a 127 to one of two CCs we have defined, based on our turning direction, i.e., if we turn our knob left or right.
- Commands. Upon turning a knob, based on the turning direction, we execute a command assigned to either left or right turn.
Now, this update needs some justification. The Keylab has a set of 10 user templates to assist us in pretty much every mapping we can think of when controlling DAW and/or our plugins. In fact, I personally mapped most of my plugins to these templates.
However, there is a lack of DUAL handling of knobs. This is to be expected, and most of the time we’re adding this by either coding in this new midi remote API by Steinberg, or by using third-party apps (I personally use Bome’s MIDI Translator Pro but there are other wonderful tools out there as well).
So, I thought it would be a nice addition after all. I personally use this new feature of the script a) for controlling the browser of my plugins and b) for dual commands (that are not already assigned to other controls).
PLEASE, ALWAYS BACK-UP your working script folder before updating.
A screenshot demonstrating the new addition:
Version 1.4.12.0 - 12/04/2023
The change in this version may seem a cosmetic one, but it’s actually a bit deeper, at least the way I see it and thus I’ve decided to do it.
We now have two versions of the UI we can choose from, by altering the variable generalSettings.UIType in our mapOfGeneralSettings.js file, to either 0 or 1.
The first one (0) is the “default”, the way that our display is built up since the initial appearance of my script.
The second one, and here’s the change, rebuilds the layout in a way that more accurately represents our Keylab’s surface.
However, this is not the real reason for rearranging the elements of my design. The real reason is that we can now place for example a second monitor/tablet upon our Keylab’s mixer section, and by zooming the remote environment, have a much better overview of our controls.
At the same time, when we need to, we can see the other section of our surface (Pads, Track Controls, Transports and Jog) and have a much better overview of the assignments in this area.
I personally, after memorising my own assignments for the pads/track controls/transport/jog section, I find it very useful to zoom the remote window to our mixer assignments, because simply I always get to see the available controls in instrument’s and insert effects’ page. This helps a lot, because obviously I cannot easily memorise all the controls of all my plugins, nor I ever thought of doing so, actually
Now, here are some screenshots to better understand this update.
Original one (Default):
Now the NEW one:
This looks so shrink, when we look at it at a 100% zoom (unless of course we use a wide monitor just for the remote).
HOWEVER, if we zoom in it, we can easily get two sections:
Here we have a much better view of the first section. This can be helpful upon memorising the almost standard assignments this section provides.
And here’s the second section:
Now, imagine a second monitor/table at our Keylab’s Mixer section. We can now see our controls “connected” to our surface. This may mean nothing to some, but to me, while controlling instruments, is a big help.
Version 1.4.14.0 - 14/04/2023
Motivation: It’s been always a pleasure for me to watch all these hardware synths with their tremendous number of knobs/faders handled by experts to generate all these phenomenal sounds by tweaking – usually very quickly – the parameters that those knobs/faders exposed to the lucky owner.
In this version, I’ve added an option (by setting generalSettings.UISpecialTabForControls=1 [default] in our mapOfGeneralSettings.js file, or if you want to deactivate it, by setting it to 0) to have an 80-parameters bank in our Instrument’s Quick Controls page, in an attempt to make this experience a bit more feasible while using our controller, which lacks this number of knobs/faders, since our Keylab has a set of 8 knobs and 8 faders (OK, plus another two but I don’t use them in this implementation).
In order to get these 80 parameters’ control, we’re going to use our knobs and faders as we normally do, and this is called state 1, and state buttons (i.e., Shift-Pad 13, Ctrl-Pad14, Alt-Pad15 and FN-Pad16) held down while we turn/move our knobs/faders, to gain access to the other 4 states. That gives as a total number of 5 states multiplied by our knobs/faders number, giving us a total of 80 parameters per plugin bank.
On our midi remote window, we’re going to see all these parameters plus a lamp showing which exactly row of them we’re dealing with.
Hint: In order to best view these assignments, zooming-in is needed when we are in the Instrument Quick Controls mode.
Note: It may take up to 1-2 seconds for the controls’ bank to refresh. That’s probably logical given the overhead produced upon the page’s creation.
And here’s a screenshot (Retrologue) of how this 80-parameters banks concept will look like inside our midi remote window (when properly zoomed):
Version 1.4.14.1 - 14/04/2023
The default mode of the script is changed to the stripped-down version.
This decision was made to help the less experienced users to begin testing the script using the two ports of the Keylab for DAW handling, i.e., MIDIIN2 and MIDIOUT2.
You can always use the full version of the script by setting
generalSettings.strippedDown=1
in our mapOfGeneralSettings.js file.
I advise you to do so, once you get comfortable with the stripped-down functionalities provided, and only IF you need the following extra ones (by following the additional instructions on how to implement these):
Browsing instruments and effects plugins (FN+Jog Wheel)
Custom functionality of our knobs (sending midi messages to loopMIDI Port 3)
Change metronome click level (Metro+Jog Wheel)
Correctly light up the Punch In/Out leds
Show on our LCD display:
MIDI Record mode,
MIDI Cycle Record mode,
Metronome Pre-count.
Version 1.4.14.2 - 14/04/2023
I’ve noticed that the lcd display was not updating properly when in 80-controls instrument banks. Fixed.
Added in the script’s folder, two new subfolders:
DefaultSettings
This one contains the default settings files, just in case we mess around and we want to restore them by copying & pasting them inside our main folder (replacing the old ones),
MyPersonalSettings
This one contains my preferred mapOfGeneralSettings.js file.
Version 1.5.03.0 - 03/05/2023
- This version makes a big change, when we’re using the full version of the script. For users of the stripped down version, no change here.
From now on, there’s no need anymore for assigning port 1 of the Keylab when setting up our controller.
This means, that we have to setup just the DAW ports, plus the loopMidi ones.
This makes it possible to create another midi remote instance which can now use the Port 1 of our Keylab.
Thus, we can now use the midi assistant of the midi remote API (or even writing a separate script), in order to add functionalities not implemented by my own script, when we have our Keylab in USER mode!
For example, one can now setup a full ControlRoom page (my script currently does not implement ControlRoom) by using a user preset.
- Added a file named mapOfMasterFaderAndKnobBindings.js.
In this file we can define what our master fader and knob do, when Ctrl, Alt or FN pads are pushed, in the Mixer page.
- Minor change to avoid an error when we have enabled the pads’ changing color upon beat, when our primary time display is not set to Bars+Beats.
Arturia_KeyLab MK2 MC Custom.midiremote (914.3 KB)
Arturia Keylab MK2 Custom Script.pdf (476.7 KB)
versionChangesLog.pdf (122.3 KB)