Control Room Direct Access (Midi Remote) parameters missing?

I need Direct Access to the Control Room Level and Phones Level. Trying to direct access “page.mHostAccess.mControlRoom” does not work, as it somehow connects to “VST Mixer” instead. I searched the forum and saw @m.c give an example where he went one level deeper, which worked, such as:

var ctrlRmMain = page.mHostAccess.mControlRoom.mMainChannel;
Then:
var da_ctrlRmMain = page.mHostAccess.makeDirectAccess(ctrlRmMain);

Upon looking up the “Control Room Main” parameters, there are only 11:

Param 0: Listen Volume
Param 1: inputMergerProxy
Param 2: Enable Listen
Param 3: Select Ext. Input
Param 4: Select Mix
Param 5: Select Cue 1
Param 6: Select Cue 2
Param 7: Select Cue 3
Param 8: Select Cue 4
Param 9: Enable Main Dim
Param 10: Apply Ref. Volume

There are only 3 child objects, which “Outputs” is one of them. There are 4 child objects inside Outputs, and “Monitor 1” is one of them. There are 5 parameters here:
Param 0: On
Param 1: Level
Param 2: Pre
Param 3: Edit
Param 4: Out
“Level” doesn’t affect the monitor 1 volume level as I expected it to. Turning it up or down updates the control as expected but doesn’t change the level coming out of my monitors, which are connected to Monitor 1. It also doesn’t affect the big red control room dial, which I suspected it wouldn’t.

Where are the rest of the Control Room parameters via Direct Access (e.g., Control Room Level, Click Level, Click Panning, Talk Level, Talk Dim)? This is the only time I’ve experienced where a DA section has fewer parameters than via standard Midi Remote.

I’d really like to avoid using the standard MIDI Remote mappings for this, for reasons I can get into another time.

P.S. The “quick controls” child also fires via the “da_ctrlRmMain.mOnObjectChange” callback when I rotate the direct access Monitor 1 Level, where normally this callback provides the main control room object ID, to populate child index 2, which is the outputs. However, once monitor 1 is populated and ready to go, every time the monitor 1 level is turned, this ID is coming through this callback during every rotation, which then triggers child index 2, which is the quick controls (relative to the outputs instead of index 2 being relative to the control room main object ID). The other DA callbacks usually only provide the parent Object ID, which we then dig down to what we want.

Hi, I don’t personally use CR so didn’t get deep into it, but I will share what I know (or seem to know).

The parameters you’re looking for belong to VST Control Room\Channels\ControlRoomChannel.
I recall I scanned for VST Control Room without success. So I have to guess that’s not exposed, at least up to this day. I may be wrong though, and it’s somehow accessible.

Out of curiosity, why do you want to use da instead of the included methods?

The reason I need DA for Control Room is for two reasons:

  1. I need access to the default parameters
  2. The standard callbacks do not consistently trigger in a timeframe that allows me to update the controller’s display with one draw call, leading to a wait timer requirement of 40ms for both data streams to arrive before pushing the graphics update to the hardware.
    With DA, I can always send the sysex display value and the midi value in one DA callback and they always arrive within 1ms of each other, making the control much more snappy, and never has to wait around for two data streams that arrive at time distances apart from each other.

For two-state controls, the standard methods are fine, since there’s no sysex being used and it’s only an on and off graphic. But for anything that rotates, onDisplayValueChange and onValueChange callbacks sometimes arrive 40ms from each other and, unless I use a wait timer on the hardware side for both data streams to arrive before pushing a single json update to the hardware, the two data streams each request a hardware refresh for every dial turn.

@Jochen_Trappe - if these parameters are not available via direct access, my kind request is to expose the control room main/phones levels, click level, click pan, talk dim, and any other control room parameter that has more than two states to direct access in Cubase 16 please.

Hi,
With the help of Claude AI, I made a bridge to use Cubase/Nuendo with the Ableton Push 2 controller. I’m not a developper, I can’t go in the specifics of it, but you can have a look here GitHub - mbourque-mix/Push2Nuendo-Bridge: A bridge to use Ableton Push 2 controller with Steinberg Nuendo/Cubase · GitHub. The Control Room is fully integrated, maybe you’ll find something worthy in it.