I’ve been messing around with a custom controller config for the first time.
I’m struggling conceptually with how the MIDI remote manger works in conjunction with scripts, and how they are saved on disk (if I’m going to send spend half a day creating a complex controller, i want to know how saving of it works behind the scenes so i can make a back-up!)
What I noticed is that when you create a new controller, assign a knob and open the mapping page, a .json file gets created in:
If i choose to “Export Script” in: MIDI remote manager > Scripts, it will create a .midiremote file in the place of my choosing.
Can someone tell me why there are these to formats? (.json & .midiremote)
What i also find a little strange is that if i create a controller, shut Cubase down, edit the name of the .json file, then reopen Cubase, my script will no longer be included in the MIDI remote manager list of scripts. Like there’s another list of scripts someone behind the scenes.
I have more questions, but maybe this is a good start!
Because as an author, you can write your script in the code (JavaScript). Later on, you want to export it, but you don’t want to let the users edit (mess) with the functions. Then you can export the *.midiremote file.
Because the filename is coded in the script as identifier. For example: var deviceDriver = midiremote_api.makeDeviceDriver('Akai', 'APC40 MKII', 'Steinberg Media Technologies GmbH')
Akai (vendor) is the folder, apc40mkII (product) is the subfolder and the *.js file has to be named in the format vendor_product.js, i.e.: akai_apc40mk2.js.
I think Steinberg could streamline the whole MIDI controller workflow, because it’s not very intuitive, especially the distinction between a controller and a script.
For example, when you disable a script, the controller also disappears.
But what if you want to have two controllers with exactly the same button / knob layout, but try difference functions of the buttons? Seems like it’s not possible.
So if a controller is tied to a script, with have scripts? Why not just have controllers?
Probably i’m not understanding something properly, if so, please let me know!
I have mapped transport rewind and forward to two buttons on my controller and this works great. If i hold the button, the playline (cursor) with rewind backwards and when i release the button, the playline stops moving. This is the behaviour that i want and is achieved by setting the button mapping value mode to “jump” (see image below). If you leave it to toggle, it’ll require a second press to stop the playline moving.
But to take it further i decided that i also want any audio or MIDI object that’s under the playline to be selected, so i can use yet another button to split the audio at the point where the playline stops (this is all with a view to getting away from the mouse as much as possible).
So i made a macro that will first rewind the playline, and then select under cursor (playline).
This works, but there’s a problem. I no longer have access to the dropdown menu choosing between jump, pickup, scaled, toggle.
It seems these options are not available to key commands, which is what a macro is i guess.
This is really frustrating.
Any idea how to get around this issue? Specifically to get a macro to move from the green box to the red box in the second image below. It seems that all functions have this selectable button option apart from key commands!
I would go for scripting in this case. When you press the button, call the Rewind function. When you release the button, call the Select > Event under Cursor function.
I can’t imagine a way to do this within the Mapping Assistant.
Exactly. This is because commands don’t have a value attached to them, they’re just getting triggered (OK let’s say this is value 1).
Even in my more advanced scripts, I avoided such manipulations/complications, simply because we can always have the Preferences→Editing→Auto Select Events under Cursor always enabled. To my workflow it’s crucial, because this way I split, glue, cut/copy/paste etc etc. So I didn’t find a good reason not to have it enabled. But then again, it’s my personal way of working.