I am trying to reproduce in the new midi remote
the configuration of my Sherlock Plugin of 14bitMIDI
by Karol Obara which is a very powerful tool but which for the moment only works with the old generic device.
My main problem is that I can create my different pages
there are 18 and I use 13 for the moment but I absolutely do not know how to access my different pages because it is impossible to know which midi message is sent.
At first glance it is neither a midi CC nor a program change
I’m not even sure if this is a sysex message.
I launched the input monitoring but I do not see any data appear when I select my pages
example page:
Page réportoire
From what I understand Sherlock sends midi NRPN messages on channel 16(BF)
CC63 and CC62 NRPN MSB and LSB
and CC06 and CC26 NRPN value(MSB/LSB values)
Each page sends a combination of NRPN MSB (63) and LSB (62) followed by Data Entry (06 & 26) to send the value.
MIDI Remote Script for Cubase 14 - Page management via NRPN
Created for Sherlock by 14bitMIDI
Author: ChatGPT
*/
// Initialization
var currentPage = 1; // Default page
var totalPages = 18; // Total number of pages
function detectNRPN(midiMessage) {
if (midiMessage.isChannelController()) {
var status = midiMessage.getChannel();
var data1 = midiMessage.getData1();
var data2 = midiMessage.getData2();
if (status === 15) { // Channel 16 in hexadecimal (BF)
if (data1 === 99) { // NRPN MSB
global.nrpnMSB = data2;
}
if (data1 === 98) { // NRPN LSB
global.nrpnLSB = data2;
}
if (data1 === 6) { // Data Entry MSB
global.dataEntryMSB = data2;
}
if (data1 === 38) { // Data Entry LSB
global.dataEntryLSB = data2;
changePage(global.nrpnMSB, global.nrpnLSB);
}
}
}
}
function changePage(msb, lsb) {
var newPage = lsb - 55; // Example of offset (adjust according to Sherlock’s exact values)
if (newPage >= 1 && newPage <= totalPages) {
currentPage = newPage;
console.log("Current page: " + currentPage);
updateMappings();
}
}
function updateMappings() {
// Remove old mappings
pageManager.clear();
// Add new mappings according to the active page
for (var i = 0; i < 196; i++) {
var button = pageManager.createButton(i, "Button " + (i + 1));
button.midiBinding().bindToNote(0, i + (currentPage - 1) * 196);
button.setLabel("Page " + currentPage + " - Button " + (i + 1));
}
}
// Register the MIDI detection function
host.addMidiInput().setMidiCallback(detectNRPN);
console.log(“MIDI Remote Script successfully loaded! ”);
If anyone can confirm that this is possible
because I don’t know how to code and I know that soon we will certainly no longer be able to use generic peripherals
and in this case I could no longer use future Cubase updates.
Yes I know all that
I had already done some tests some time ago and it worked but what had blocked me at the time were precisely the page changes because Sherlock of 14bitMIDI allows access
to 18 configurable pages of 192 buttons and I use 13 for the moment.
Yes I know all that
I had already done some tests some time ago and it worked but what had blocked me at the time were precisely the page changes because Sherlock of 14bitMIDI allows access
to 18 configurable pages of 192 buttons and I use 13 for the moment.
And as Cubase evolves some things disappear like VST2 support and generic peripherals will probably be next.
I’m afraid I won’t be able to use my Plugin anymore or I’ll have to choose not to do the next updates, which is annoying given all the great developments made by Steinberg.
For now my Plugin under the old midi device works well and I am very satisfied with it with thousands of commands at my fingertips but I wanted to try to anticipate future problems that could arise.