What can MIDI Remote Scripts do?

Hi everyone. I recently bought an iCON P1-M and not long after I noticed you peeps talking about Midi Remote Scripts. Now I have been participating in some posts here and trying to understand more what it is, but I find it difficult to understand it’s whole.

What I do know is that you can enable things for your controller, things such as color strips. Now color strips are nice, but I imagine people do scripts for different reasons also. Now what are these things? What are the “hidden gems”?

Can you change your midi resolution on your encoders? Can you change what is seen on the display of your controller? Can you remap physical buttons that previously was not possible?

If anyone has the time and the will to tell me what the potential is I would be grateful!


Kinda, but not trivial, and it depends on your controller capabilities.



It’s also possible to define more pages and subpages which can change mappings for all controls or just some of them depending on what you wish them to do.


Thank you Thomas.
Are these the biggest “selling points” ?

Well, it depends a lot on the user habits, workflow, what they use cubase/nuendo for…

Basically, it’s there to replace the “generic remote” function, which was the way a cubase user could map an incoming midi input to a cubase parameter / key command. This was (and still do) work up to a certain point, but became a bit broken over time. Also, it was not possible to use relative midi values or send a sysex stream to display parameter name / value on a controlller’s lcd… or to send track color…

I think this is especially powerful with tablet apps like touchOSC because you can display a lot of info that was just not accessible before.

BUT, it’s a pretty recent addition (though it’s been two years now) and there are still some quirks here and there. And some functions are just not accessible at all (yet).

In the end I think it allows a deeper integration between midi controllers and cubase. Whether you’re using a tablet, a modern daw controller with colored lcds, or giving a new life to an old controller.

Also you have to understand that 'MIDI remote", has two separate ways to work. the "mapping assistant, is a quick and easy way to map your controller using the GUI but has limited functionalities, whereas the ‘MIDI remote API’, allows you deeper integration using the provided JavaScript API.

Some user created wonderful scripts for lots of device. Some are provided by Steinberg and the device manufacturer. You can use them and customize them using the mapping assistant or the API.

Hope it helps,



Thanks for this Thomas, I’m not the OP but have been watching with interest.

I’ve been using the mapping assistant and I’m wondering whether I actually need to dive into the API… it feels like somewhere I could spend many happy / frustrating hours, whilst not actually making any music…!

Thanks, JP.

Color strips is one of these deeper integration I’d assume. Do you know where I can find out more about the deeper integration possibilities?

It’s not that difficult to make a basic script even when a noob at coding like me. It’s a bit more difficult to script for 25 channels with around 250 parameters per channel though, but I’m figuring it out.

Well, you can start with the documentation:

Maybe a quick tutorial about javascript so you understand syntax and variables scope? You don’t need to go very deep at first, but my feeling is that these two elements are the very minimum to know about any language you might use, it helps avoid a lot of mistakes.

And you can also take a look at the various scripts provided by steinberg. They are located in ~/Documents/Steinberg/Cubase/MIDI Remote/Drive Scrips/Public/

1 Like

Your thread convinced me to revisit the API and ask myself, what is possible? As I look through the Javacript and examples I realize one thing that could be done is altering the nature of the values our knobs and encoders can send. We could remap those values. Change them exponentially. Change the values based on curves, etc.

Based on this API, that should be possible. However, this can’t be done directly through the software interface.

That’s true,

Actually i’ve done this for my meters. I was not satisfied by the way meter values displayed on my touchOSC template so i changed the curve by applying x^1/3 to cubase value. Now i get a much more meaningful display.

1 Like

I have a feeling I should try to learn the API. Im just about worried how much time it would take…

1 Like

In theory, could a script allow to fine adjust, I down know, the channel eq? I would love to be able to “notch out” frequencies without having to use the mouse, but at the moment the frequency steps are too big. Perhaps with the help of pressing the encoder it activates the “fine movement” as when you hold shift when using the mouse.

Here’s one of the drawbacks of the API.

Currently, if you have an encoder sending relative values (like the icon P1-m or any MCU clone), the internal processing still uses 128 steps.
In order to get finer resolution, you have to use NRPN if your device supports it.
Or you need to be creative in the API.
Or you hope for Steinberg to fix this issue…

Personnally, I don’t think 128 steps on the EQ frequency is much of a problem. This equals about 12 steps / octave which reminds me of something. But your mileage may vary. (I do use 2000 steps NRPN for frequency).

when doing general cuts or boosts with the eq, the current 128 steps is no problem. It is simply when you want to notch, which I do tend to do quite a bit. Whistling frequencies in cymbals or distorted guitar amps for example.

How could Steinberg fix this exactly?

by assigning a finer resolution to internal parameter bound to a relative MIDI message.
I have no clue about the amount of work that this could involve or the will for Steinberg to do it, so don’t expect much from there.

Thank you again Thomas for your provided assistance. I know you have been trying to help me in other posts I’ve made/participated in.