midiremote-userscripts
midiremote-userscripts copied to clipboard
A place for user created MIDI Remote API scripts
MIDI Remote API - User Scripts
About
Welcome to the Steinberg MIDI Remote API.
This document will guide you through the steps of writing a MIDI Remote API Script for a specific MIDI Controller Hardware.
NOTE: Scripts are written in the ES5 version of JavaScript
How to work with this repository
-
Make a fork of steinbergmedia/midiremote-userscripts
-
Rename your existing …/Driver Scripts/Local folder to something else (like Local_backup)
-
Create a new empty folder Local to replace it
-
Clone your forked repository inside the newly created empty Local folder
-
Copy your existing scripts from within the Local_backup folder into the Local folder
-
Still use the parent folder of Local, the Drive Scripts folder, as the workspace folder in Visual Studio Code
-
Make commits/pushes to your forked repo
-
Make pull requests to the upstream repo (steinbergmedia/midiremote-userscripts)
And don't forget to regulary do “fetch and merge” from the upstream repo (steinbergmedia/midiremote-userscripts) to stay in sync.
Basic Concept
The MIDI Remote API Script acts as a mediator between a Hardware Controller and Cubase / Nuendo
The MIDI Remote API Script emulates the hardware surface. This improves usability and recognizability.

Script Structure
The MIDI Remote API Script consists of three building blocks
-
Driver Setup
- create driver object
- define driver ports to be associated with existing hardware midi ports
- specify all possible port namings for automatic device detection
-
Surface Layout
- visualize the hardware's surface elements (e.g. knobs, faders, buttons)
- bind surface elements to midi messages
-
Host Mapping
- create mapping pages for each user workflow (e.g. mixing, playing instruments, track navigation)
The following image illustrates that:
Getting Started
To get started please perform these steps:
- Make sure you have Visual Studio Code installed.

-
Make sure the folder of the Visual Studio Code executable is added to the PATH environment variable.
-
Make sure you have the newest Cubase / Nuendo installed.
-
Start Cubase / Nuendo.
-
Create a project with audio and/or instrument tracks.
-
Open the Remote tab in the lower zone.

- Open the MIDI Remote Driver Scripts folder.
Mac: /Users/<Username>/Documents/Steinberg/<Cubase or Nuendo>/MIDI Remote/Driver Scripts
Windows: C:\Users\<Username>\Documents\Steinberg<Cubase or Nuendo>\MIDI Remote\Driver Scripts
-
Open a console (win: cmd, mac: terminal) and go to the MIDI Remote Driver Scripts folder.
-
Open Visual Studio Code from the command line like this:
code .

- Create a script file.
The MIDI Remote API Script file follows the structure:
<Driver Scripts Folder>/<Local or Public>/<vendor>/<device>/<vendor>_<device>.js
Example:
<Driver Scripts Folder>/Local/Nektar/Impact_LX49Plus/Nektar_Impact_LX49Plus.js
-
Connect your MIDI hardware controller.
-
Open script console.

The Script Console appears like this:

After modifying the script file press the 'Reload Scripts' button.