New Midi remote how to access multiple pages on a touch screen

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

and the page selection buttons

I tried to ask ChatGPT but
no solution yet
the configurations are saved as VSTpresets and the only elements I found are

Hi,

Use MIDI Monitor to inspect, which MIDI Message has been sent.

The design of the MIDI Remote is that the given control sends the same MIDI Message, which is assigned to different functions via the Pages.

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.

So Solution: We need to write a script in JavaScript to listen to the NRPNs and change the mappings dynamically.

Here is the script in question proposed:

/**

  • 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! :control_knobs:”);

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.

Hi,

The bindToControlChange14BitNRPN in the API References is your fried.

1 Like

This script can allow me to change pages?

Hi,

Any script allows you to change pages (if there are not multiple pages, you can create them).

1 Like

yes but for that you need to know how to use the midi remote API

Hi,

No, you can create the Pages even in the Mapping Assistant.

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.

Example page:
REPERTOIRE(row by editor)

With associated functions:

then come the pages:
INSTRUMENTS-WOODWINDS-BRASS-STRINGS-PERC KEYS GUITARS BASS-MIX AUDIO ETC…