The New MIDI Remote is

In the API it’s possible but not in an intuitive way. Let me guess, you want to trigger “Prev Track” and “Next Track” by turning the knob to the left or to the right?

Please could you explain how to do it in the API? Just a copy paste example would be great, if you could.

Yes, I’m more interested in Zoom In/Out, Nudge Loop Range Left/Right, nudge left or right locator left/right (those are macros) by twisting left and right, you get the picture.

I don’t know how to go about it. It seems that all assignments I can make are 1:1.

Why are you starting with the difficult things first, I am afraid that pushes the thing in the wrong direction. Nevertheless, here’s some pseudo-code that I haven’t even run. Just a blind shot:

var knob = deviceDriver.mSurface.makeFader(0, 0, 1, 3)
knob.mSurfaceValue.mMidiBinding.setInputPort(midiInput).bindToControlChange(15, 21)

var triggerValue1 = deviceDriver.mSurface.makeCustomValueVariable('Trigger1')
var triggerValue2 = deviceDriver.mSurface.makeCustomValueVariable('Trigger2')

var page = deviceDriver.mMapping.makePage('Default')

page.makeCommandBinding(triggerValue1, 'Nudge', 'Left')
page.makeCommandBinding(triggerValue2, 'Nudge', 'Right')

knob.mSurfaceValue.mOnProcessValueChange = function(activeDevice, value) {
	if(value < 0.3)
		triggerValue1.setProcessValue(activeDevice, 1 - value / 0.3)
	else if (value > 0.7)
		triggerValue2.setProcessValue(activeDevice, (value - 0.7) / 0.3)

The “processvalue” represents the CC-value or note-velocity in a normalized format (from 0 to 1 floating point). Here I have made a security gap between 0.3 and 0.7, otherwise you would always nudge back and forth and stay put.



Is there any chance to have buttons work to have them pressed only once? (aka press a button once to close the left zone, press it again to open it). As of right now, I have to double press it and even though it’s not the end of the world, I find it a bit annoying.

I changed the Value Mod. a bit around from absolute to Relative Binary Offset, and voila, it worked (minus for edit channel settings). But when you restart Cubase, that no longer works.

Don’t do that! The Value mode is for endless encoders only. There are different ways endless encoders notify about increment/decrement-events. All other control types MUST always use ABSOLUTE mode.
Please have a look into the Mapping Assistant. Hit the hardware-button your command is mapped to, the according mapping entry should be selected in the mapping list. You can change the behaviour of your button-command-mapping like “toggle” mode etc. If the hardware already does toggling, you’ll need to switch that off here, otherwise you must always hit it twice. And if the target command has a toggling behaviour like “Open/Close Preset Browser” you’d again switch that toggle mode off here.

1 Like

I’m not starting with these. I am done with all those regular functions I needed, they have already been assigned, since it was so easy! :smiley:

Ah, thank you very much for the code. Ok, I suppose the numbers would change depending on the hardware device’s knob? Absolute, INC/DEC, NRPN etc?

Is it required to start a script from scratch for this, or is it possible to edit the one I have from the surface editor?


I have made a feature request topic, about this, it could be a huge leap forward!


The Value-Mode has nothing to do with that. This “normalized” value is already on the “higher level” side and the inc/dec thing has been resolved by the system. But maybe you should just set the value mode to ABSOLUTE here and have a look at the values coming in then. You can make debug-prints in the code to monitor the values. just use

console.log('value: ' + value.toString())

They will be written into the MIDI Remote scripts console.


Thanks for your reply, apreciated. Couldn’t find any settings I could modify in the Mapping Assistant, but could turn it off in my software that comes with my hardware. Now it works like a charm. Thanks alot.

lol because we’re crazy users! :slight_smile:
Thanks for the snippet, really appreciated to give an idea of the concept.



Yes, you must be crazy asking a highly under-vacated (I just invented that word) developer such things ON A FRIDAY! :rofl:


Jochen, it is very nice to have you, Matthias and Ben here answering our questions and requests!


Thank you Jochen, since I have copied “keylab_essential_common.js” file from “Public/arturia” to “Local/arturia”, I don’t have any script error anymore.
But that did not solve the detection issue.
I also had to remove the line .expectSysexIdentityResponse(‘00206B’, ‘0200’, ‘0548’) in the script.
The parameters seem to be incorrect.
Without this line, my Keylab Essential 88 is detected.
Thanks again

Hi @music95 , could you do me a favour? If the Sysex-ID is wrong here, that’s most likely the reason it doesn’t get detected. As I don’t have that device here (you can imagine how my office looks like already), can you please figure out the correct Sysex-ID?

If you’re on MAC that’s easier, just install the free App “MIDI Monitor” which sniffers/monitors incoming and outgoing midi messages. On Windows there are other options, but I believe you cannot run Cubase and another MIDI-App simultaneously.

I believe that the lack of the ‘selected track’ function makes this new set of features little more than a toy.
It’s nice to have an easier way to map functions on the fly, & the GUI is fantastic, but as the functions are then ‘stuck’ to one particular channel, it makes this feature pretty useless. For all of its faults, the Generic Remote control is far more powerful.
Have I got this right? Once a parameter is assigned, it is only functional on the track it was assigned? I can’t seem to make it work any other way.
Has anyone noticed that there is no QC functionality in the Channel Settings ( channel strip) window. Is that being phased out too?
How long do we have before the Generic Remote is removed?
So many questions!


Thank you for bringing that up!
Please have a look at the Mapping Assistant and its Functions Browser on the right. There is a section for the selected track which covers the common parameters of a channel. And please have a look at our new Focus Quick Controls section in the Functions Browser. You can map hardware knobs to them and have control over those Quick Controls that are in focus.


I use the “selected” option in Generic Remote, deactivated the new “Midi controller script”, when I open Cubase Help -GR (Legacy) -so support and functionality will wither, hope the new feature improves to include 3Rd party VST parameters.

I understand new module- we want it to work with our flagship platform-let’s not immediately open up issues with 3rd party plugins. I don’t have a long history with Cubase so don’t understand how they think. I’m not sure I want “MIDI controller” to automatically map Console 1 Fader, which works perfectly, I though it was interesting which parameters it identified.

If not will have a script written.

1 Like

Thank you for your prompt reply.
I am aware of the Functions Browser, but once again, all of the options for the Channel Settings Window, with the exception of the EQ and Pre Section, aren’t available. This leads me to the conclusion that the Channel Settings window components, are being made redundant.
Please tell me that is not the case!

1 Like