Using multiple devices with the same MIDI Remote API script

Hi all,
Is there a way to define multiple ports in a MIDI Remote API script so that I can, for instance, re-direct some controls to the Cubase MacKie virtual device, and some others to the virtual device defined in the MIDI Remote API script, to do some specific tasks (or have the same controls do different things depending on a state variable) ?
The idea is to assign one In and one Out ports to the Cubase MacKie, and another couple of In/Out ports to the API script virtual device, and manage the controls sent by the hardware device (here an X-Touch) so that they have the standard MacKie “effect” OR do something else defined by the script.
That way, by default, my hardware control surface behaves like a MacKie MCU, by merely forwarding the controls to the MCU port, but by using some hardware button I can change that state and do some other things.
I was able to do something like that using Max language (see this video if you’re interested) and I’m wondering if I could do that with Steinberg’s new MIDI Remote API in C12

I use my X-Touch with MCU and have the 1-8 buttons and F1-F8 assigned to a MIDI Remote API.
Best solution I’ve found.

What do you call “Buttons 1-8” ? Do you mean the 8 knobs ? F1-F8 are not used by the MCU, but how can you use the other “buttons” for the Remote virtual device without sending the control to the MCU virtual; device ?

If I remember correctly, buttons 1-8 are above the f1-f8 buttons and every button, knob or fader you assign with the midi remote api is disabled from the mcu protocol so you can use it without sending the original command.
I use that 16 buttons because as you say f1-f8 are not assigned by default and the 1-8 buttons are for visibility agents that I don’t use so I use that 16 buttons for macros and key commands and reserve buttons 7 and 8 to navigate midi pages back and forward.

Ah that’s interesting. Thanks for the hint. I do want to use the knobs in my virtual device so I hope that works for that too (I don’t use those knobs much in MacKie mode, and i can use Flip button anyway). I’ll check it out. Thanks again.

Yep. I just checked it and that works for the knobs too.
Still is a shame that I can’t define multiple in/out ports. Using a state machine in the script, I could decide whether to use them in MacKie mode, or my own personalized mode on the fly… unless I use mapping pages to achieve that ? mmmh… I’ll investigate…
[EDIT] YES ! Mapping pages is the way to go ! I use one page with no binding, to default to MacKie behavior, with one button to go to other modes (using different mapping pages. It looks obvious now (duh…)
Thanks again Sonico, you opened the way !

Arrrgh ! … The API (using javascript) behaves differently: when I bind buttons or knobs, their commands are sent both to the MIDI remote script AND to the McKie virtual device. This did not happen when using the graphic designer and the mapping assistant…

Sad news!!
I haven’t messed with the script editor yet because I don’t have a clue about programming.
What additional features can we have with the script editor?
I really hope that steinberg keep developing the MIDI remote feature because there’s a lot of potential.
I’d like to see focus QC pages to assign more that 8 parameters to a plugin or VST.

The API allows to send back specific messages to your hardware control surface.
You can access hundreds of parameters if you wish using mapping pages. And the new (12.0.20) version of C12 allows to apply those bindings on the selected track’s instrument, for example.

Colored scribble strips, just to name one :heart_eyes: I just finished a MIDI Remote script for the X-Touch. Feel free to try it out and let me know if anything is odd (except of the known drawbacks listed in the readme) – the GitHub repository is here.

1 Like

Wow thanks a lot!!

Gonna try it for sure and and let you know.

Great work!!

1 Like