Help Needed: Accessing "Left Switch" and "Right Switch" in Remote Control Editor via MIDI Remote API

Hi everyone,

I’m working on a custom MIDI Remote script for Cubase, and I’m trying to access the “Left Switch” and “Right Switch” buttons in the Remote Control Editor. These buttons appear in the editor and can be assigned to plugin parameters, but I can’t find any documentation or clear guidance in the MIDI Remote API reference about how to target them programmatically.

I’ve explored the HostPluginParameterBankZone and mAction functionalities for plugin parameter banks, but these seem to only work for bank navigation or other predefined actions. The Left Switch and Right Switch don’t appear to be mentioned directly in the API.

Does anyone know if it’s possible to interact with these switches through the API? If so, could you point me in the right direction or provide an example?

Here’s what I’m trying to do:

  1. Detect or bind to the Left Switch and Right Switch. I’m trying to map them to the mute and solo buttons for each strip on my Faderport 16.
  2. Use them to toggle or adjust parameters of a plugin, for example in ProQ I will use them to change the slope type for that frequency band.

I’ve been testing with custom value bindings and actions, but I haven’t had any luck so far.

Any help or insight would be greatly appreciated! Thanks in advance

Can you elaborate on what exactly you mean with Left and Right Switch Buttons?
or ideally provide screenshots of where they are in your Remote Control Editor?

1 Like

@Joshua_Reiners Here’s a screenshot, I can access the actual knobs of each parameter within the API, but I’m wondering if there is a way to access the switches below each knob.

As you can see you can assign any parameter to the switches and you can set them to act in different ways such as cycle, on/off etc. I’m trying to figure out if these are accessible within the API so I can map them to some hardware buttons on my controller:

Hi, I don’t think this is possible. IF I understood correctly the underlying mechanism of the API, it parses whichever default mapping the VST has, by checking for the Generic 8 Cells.xml and if not found whichever default mapping the VST stores internally. The thing is that it parses only the knobs, again IF I understood correctly.
A workaround is to have everything setup as a knob. This way, for example, you can have the first row for your knobs, the second row for your left buttons, the third row for your right buttons, and so on. This way you can properly code it. I think this is the most straight forward approach, without overcomplicating things.

In recent Cubase versions, some additions were made that allow us to go to a lower control level, making it possible to bind our knobs/buttons to every available parameters of a vst. However, to use these for the purpose you want, you would still need an external app to parse the xml of the mapping, virtual ports, things will go nasty.

That’s unfortunate, this would have made for some really cool features on a midi remote.

I don’t think the workaround will work as expected, because the Faderport 16 accesses the sparate rows as parameter banks which can be scrolled through by turning a knob on the controller. It pulls each parametr name to display on the scribble strip, so each time the knob is turned to access the next parameter bank it would just map the faders to the bank that the buttons were mapped to.

To get it to work correctly I would need to somehow tell the faderport to skip 2 banks for the fader mappings, and then also do the same with the buttons. I guess it could be possible but may get a bit messy and I’m going to share this script so I’m trying to keep it as easy to use as possible.

Hopefully this will be added to the MIDI Remote API in the future, it seems like the Remote Control Editor could become really powerful with this

This is something you’ve implemented, right?
You don’t have to really change a lot of things. The trick is to have a bank of 24 elements, instead of 8, and then in your script, bind the first 8 to knobs and the other 16 to your buttons. The changeBank actions will still work and move in segments of 24.
The thing is that in order for this to work properly, one need to setup using the RCE their controls properly, as I’ve suggested in my previous post.

You can place a variable/flag in the script for how it should work: an ordinary mode, following just the 8 params per bank, or an extended mode for handling the 24 params.
In my scripts for the Arturia Keylab MK2 and the Novation SL MK3, where I have faders and knobs, I create (if user selects it) banks of 16 elements, 8 attached to the knobs and the other 8 to the faders. Especially in the case of the Keylab, I furthermore have banks of 80 parameters! (Using knobs/faders with 4 “state” buttons except for the “normal/no-state”. Here’s a screenshot demonstrating this:

2 Likes

Okay I see what you mean now, yeah this could work. The Faderport actually acts as 2 separate MIDI devices where the 8 parameters of bank 1 in the Remote Control Editor are assigned to the first 8 faders (Midi Input 1), and then the second bank of parameters is assigned to faders 9 - 16 (Midi Imput 2).

Hopefully if I set the parameters to 12 ber bank the Faderport will still assign the first 8 parameters of bank 1 and 2 to the faders so I can keep the additional parameters just for the button functions. I’ll play around with it and see if it works

Out of curiosity, why don’t you use both fader MIDI ports, so that you can have 16 params instead of 8?