Dear community,
what I´m trying to achieve using midi remote script is:
- Access the desired insert slots of a selected track
- Control its parameters with for example knobs 1-8
- Choose another insert slot and control its parameters with the same knobs 1-8
This is a starting point but I cannot adapt it to my needs:
https://forums.steinberg.net/t/where-im-still-using-the-generic-remote/999096/4?u=emre_akca
My approach uses one subpage for each insert slot. When activating the subpage the knobs get bind to the insertViewer of the according slot but the parameters are not controlled though Cubase indicates midi coming in and going out.
This is a condensed excerpt of my code just using two subpages and two knobs:
var subPagesInsertSlots = [];
var buttons = [];
var knobs = [];
for (var i = 0; i < 2; i++) {
// create subPages and buttons for activation
subPagesInsertSlots[i] = subPageAreaB.makeSubPage("insertSlot" + i);
buttons[i] = surface.makeCustomValueVariable("button for subpage insertSlot" + i);
buttons[i].mMidiBinding
.setInputPort(midiInput)
.setOutputPort(midiOutput)
.bindToNote(2, 32 + i);
page.makeActionBinding(buttons[i], subPagesInsertSlots[i].mAction.mActivate);
// create knobs for controlling insert parameters
var knob = surface.makeCustomValueVariable("knob" + i);
knob.mMidiBinding
.setInputPort(midiInput)
.setOutputPort(midiOutput)
.bindToControlChange(1, 81 + i);
knobs[i] = knob;
}
// create insertViewers for each slot
var insertViewers = [];
for (var insertSlot = 0; insertSlot < 16; insertSlot++) {
var insertViewer = selectedTrackChannel.mInsertAndStripEffects.makeInsertEffectViewer("Slot " + insertSlot);
insertViewer.accessSlotAtIndex(insertSlot);
insertViewers[insertSlot] = insertViewer;
}
// when activating subpages bind knobs to according slots insert params
for (var insertSlot = 0; insertSlot < subPagesInsertSlots.length; insertSlot++) {
subPagesInsertSlots[insertSlot].mOnActivate = function () {
console.log("insert" + this.insertSlot);
for (var paramIdx = 0; paramIdx < 2; paramIdx++) {
var param = insertViewers[this.insertSlot].mParameterBankZone.makeParameterValue();
page.makeValueBinding(knobs[paramIdx], param);
}
}.bind({insertSlot});
}
It would be great if someone could help out, thanks in advance!
Cheers, Emre