Thanks Daniel, I am hardly trying not to enter the midi remote api programming! So I just follow the threads for the moment, but I am not programming. Thanks anyway!
I have the CMC-CH and tested it. It’s quite straightforward, and simple to reverse engineer to find the commands and values. Just route the CMC-CH output from Cubase to a midi logger. I use Bome Midi Translator. And hit the buttons and sliders in Cubase.
By the way, no segments for the Pan knob on the CH, just dimming. 0x1C for brightest full right, 0x11 for full left, 0x16 for center, and the LED is off.
I have. I have this manual opened the whole time I’m doing this… But I didn’t realize, it will be on the end
Finally got Pan knob LED working!
If anyone interested here’s my code (it’s a little bit “clumsy”, and it could be done in some more effective way for sure, but it works ):
/* Pan knob LED control */
panKnob.mSurfaceValue.mOnProcessValueChange = function (
/** @type {MR_ActiveDevice} */ activeDevice,
/** @type {number} */ value,
/** @type {number} */ diffValue
) {
var newValue = Math.round(127 * value);
// console.log(newValue.toString());
switch (true) {
// Pan L
case newValue == 0:
// Pan knob LED ON
midiOutput.sendMidi(activeDevice, [0xb0, 0x30, 0x11]);
break;
case newValue >= 1 && newValue <= 15:
// Pan knob LED DIM 1
midiOutput.sendMidi(activeDevice, [0xb0, 0x30, 0x12]);
break;
case newValue >= 16 && newValue <= 31:
// Pan knob LED DIM 2
midiOutput.sendMidi(activeDevice, [0xb0, 0x30, 0x13]);
break;
case newValue >= 32 && newValue <= 47:
// Pan knob LED DIM 3
midiOutput.sendMidi(activeDevice, [0xb0, 0x30, 0x14]);
break;
case newValue >= 48 && newValue <= 63:
// Pan knob LED DIM 4
midiOutput.sendMidi(activeDevice, [0xb0, 0x30, 0x15]);
break;
// Pan C
case newValue == 64:
// Pan knob LED OFF
midiOutput.sendMidi(activeDevice, [0xb0, 0x30, 0x16]);
break;
case newValue >= 65 && newValue <= 79:
// Pan knob LED DIM 4
midiOutput.sendMidi(activeDevice, [0xb0, 0x30, 0x17]);
break;
case newValue >= 80 && newValue <= 95:
// Pan knob LED DIM 3
midiOutput.sendMidi(activeDevice, [0xb0, 0x30, 0x18]);
break;
case newValue >= 96 && newValue <= 111:
// Pan knob LED DIM 2
midiOutput.sendMidi(activeDevice, [0xb0, 0x30, 0x19]);
break;
case newValue >= 112 && newValue <= 126:
// Pan knob LED DIM 1
midiOutput.sendMidi(activeDevice, [0xb0, 0x30, 0x1a]);
break;
// Pan R
case newValue == 127:
// Pan knob LED ON
midiOutput.sendMidi(activeDevice, [0xb0, 0x30, 0x1b]);
break;
}
};
Now only things, that remain for the perfectly working (as with old original drivers on older versions of Cubase) CMC-CH are:
- possibility for buttons with “makeActionBinding” and “makeCommandBinding” functions to be toggled (binded actions/commands works fine, just the LED of button won’t stay ON)
- make Pan knob steps resolution change - right now it’s working as the “finest” resolution possible, which is good for SHIFT page, but on Main page it should be much bigger (for Volume fader it’s working fine without any coding and I have no idea why
)…
- create switch for Volume fader from “Catch” to “Jump” operation modes
If anyone have some idea/suggestion, how to make these, please let me know
Anyway, thank you guys for all your help! This is the most helpful community I’ve ever encountered and it perfectly fills the lacking support from Steinberg staff!
Hi Daniel, I am just starting to use my CMC controllers with Cubase 13 and Mac Sonoma. For now I am happy using the shift button as a next page command. Using only two pages this switches between them nicely. I am just using the midi remote to program as not familiar with scripts. Having said that are you able to share the code to have the shift light toggle on and off so I can see when page 2 is selected. Hoping I can open the script created using midi remote and drop the code in.
Thanks