Generic Remote Setup

I have set up some button to control Cubase, but things are not working as I would expect.

Eg I defind a controller:
Control Name: buttonStart
MIDI Status: Controller
MIDI Channel: 1
Address: 0
Max.Val: 127
Flags: R,T

and in the lower half:
Control Name: buttonStart
Device: Transport
Category: Device
Value/Action: stop
Flags: ,

So when I start playback, the start button lights up on my controller. When I stop Cubase, the button of the controller gets dark again. So far it’s working I expected.
But now, when I hit the start button on my controller, Cubase starts playback, but the start button on my external controller is not lighted.
It seems that Cubase Generic Remote does not reflect the external MIDI message.
I mean, the configuration cannot be that wrong, since the start button lights up, when I start playback via Space or Enter key or another controller.
The other way round, when I hit the start button on my controller, Cubase starts playback and the green play button in Cubase and all other controllers light up.

Is there some kind of configuration, to make Cubase reflect(/send back) the MIDI message to the controller, that triggered an action via Generic Remote control?

Hi you,
could it be that the light on your controler lights up very very short time?
I would suggest to try some of the flags in the lower half of the generic remote setup.

Just an attempt to help.
Ernst

I’d suggest:

Upper half:
Flags: R, , ,

Lower half:
Flags: P,T,

Works perfecty here…

Aside from the info posted by Mister 9 Volt, it also depends on the controller you’re using. For most commands Cubase sends out the same message it received. So the device must respond properly to that.

“The Controller” is a self written app, and I can see very clearly which MIDI data are send to it.

@Mister 9 Volt
When I remove the T in the upper half, I don’t get any message at all that the start/stop key was pressed. With the T in the upper half, this is working.

@ -steve-
Cubase does send out the same message.

  • When I hit play on my S61 keyboard, the play button of my controller get’s green.
  • When I hit play on the Cubase transport panel, the play button of my controller get’s green.
    but,
  • When I hit play on my Controller itself, the play button in Cubase and on my S61 keyboard get’s green, but there is not Midi message send back to my controller. It’s only working, when the play is activated on another device.

So Cubase does not send feedback to the same controller that triggered the action.

I think that nothing or P in the lower half is the same? I have just a push button, not a toggle button.

I don’t understand your setup, and I can’t really make sense of what you’re saying is going on.

Can you just list what you have hooked up exactly? What is the self written app? What is the controller device, etc…

I understand what you are saying (steve, read carefully - he expained it really clearly twice!):

You have several controlers connected to your computer (and to cubase). One of them being your app.
When you press “play” on any of the “other” controllers (or via mouse click the corresponing transport button in cubase) ALL controllers, including YOUR controller reflect the state correctly.
Opposed to that, when you press the play button on your own controller (the app) cubase reacts correctly concerning the desired action, but the state is NOT reflected on your controller.

Ok. Have you tried altering the flags in the lower section? It is NOT a good idea to remove the “T” Flag in the upper section.
Your conclusion, that cubase never sends feedback to the same controller that triggered the action is definitely wrong (I have several controllers and it works here).

Maybe it has to do with your midi connections? Is YOUR controller communicating via the correct two midi ports (in and out)?

Elien, you have asked a question for the same purpose as I – finding out precisely how things are connected.

Steve, I was referring to your statement “I can’t really make sense of what you are saying is going on” :slight_smile:

Peace :slight_smile:

Elien, you exactly understand that I mean.

Are you sure, that your controller displays the feedback from Cubase or can it be that your controller “knows” the correct state (because it is source of the action) and just displays that know state?

I mean I can lit up the Play button on my app by myself. But it makes more sense to just send a command and display the feedback. Why? Imagin the Play function or any other function is disabled. You controller sends the command, displays that the button was pressed, but the receiver does not react, because the function is currently disabled. With the feedback solution, you only get feedback when the receiver desides that the function is carried out. Otherwise I can press the button as often as I can, but because of the disabled function, you’ll get no feedback.

The setup is very ease: I use loopMIDI tool to create 2 virtual MIDI connections. One from Cubase to my controller, the other from my controller to Cubase. If the setup was not working, I couldn’t send data to Cubase and display the state of eg Play. But it’s all working.

In the Generic Remote setup the control acts on device=“Transport”, Channel/Category=“Device” and Value/Action=“start”. I’m sending a CC with the value 0xB0, 0x00, 0x7F. In the upper part Receive and Transmit are checked. Otherwise the rest wouldn’t be working either.


But there is another funny thing. When I send 0xB0, 0x00, 0x00, the Play button in Cubase get’s dark, but the playback does not stop. The Stop button is not lighted. Does that behavour make any sence. But I just don’t send value 0 for start.

Now I played a little and found the following.
I switched from 0xb0, 0, 127 to 0x90, 94,127 which is Note A#5 and used by the Mackie Control protocol to trigger start. When I use Mackie Control protocol, I get feedback and the button on my controller lights up. When I configure A#5 in Generic Remote control, I don’t get any feedback when the command came from my controller. Setup was the same as above. Is Transport/Device/start the wrong parameter? But it is working, as long as the trigger is not send by my application.

So the question is, Is my configuration wrong, is it a bug in Cubase or is it intended?

Just tried it again using a Korg nanoKontrol2. Works with Mackie Control Protocol, but I don’t get it to work with Generic Remote Protocol.

Mayby someone can tell me the necessary setup to use a Mackie Control compatible controller (eg Korg nanoKontrol2) and configure Play/Stop functionality with Generic Remote Control. So that the lights work correctly.

The Mackie Control driver simply maps controls to the commands, so if you emulate an MCU in your application, you would get same results as Korg does with their unit in Mackie mode.

Certain exceptions might be present in transport controls as far as what Cubase sends out, have you tested your application by addressing the transport controls using MMC?

Personally, I don’t want to use Mackie Mode. I even don’t know if using of the Protocol is free for everybody. Especially when your device sends Mackie SysEx messages, in case that the software might get published at some point in the future. I used Mackie Control Protocol only for testing. And my findings were that Mackie Protocol behaves as expected. Now I need a solution for Generic Remote protocol. I hope that there is a way to manage that.

No, I didn’t use MMC so far. I want a one solution that I can use for every purpose. Are you working for Steinberg, though you are an External Moderator?

currently I think that it might be the only way to use different messages for controlling and feedback. But that produces more editing work to create the Generic Remote Assignements.

Btw: Does anyone know if you are free to use MCU and HUI protocols?

I’m not a Steinberg employee, but I do product intro and training as a subcontractor to Yamaha USA, among other things, like programming remote controllers, and re-purposing devices like the Steinberg CMCs, Behringer BCF or Korg nanoKontrol.

You need to use MMC for the transport controls if you want Cubase to send the midi chunk to the output routed to your app.

But there is another funny thing. When I send 0xB0, 0x00, 0x00, the Play button in Cubase get’s dark,

iirc, a value <=63 turns the play button ‘led’ on the Cubase transport off, and >=64 turns it on.

  • When I hit play on my Controller itself, the play button in Cubase and on my S61 keyboard get’s green, but there is not Midi message send back to my controller. It’s only working, when the play is activated on another device.

btw, Make sure you send value 127 to start play, and 0 to stop. and note that the leds on the transport are being controlled separately from the play/stop functions- so it’s possible for them to get out of sync with the current transport state. But I know this only from experience, as there’s no documentation afaik.

The mackie control driver is using sysex-looking strings to control Cubase, and has a deeper integration than can be achieved with the Generic Remote alone.

ah sorry I didn’t know what kind of controller you are using. I use an ipad with Lemur and it doesn’t need midi in from cubase to show the correct button states.

The funny thing was not the getting dark. You are right, below 64 it get’s dark. But Cubase does not stop playing. So the question is, what is the purpose of switching of the play button, but continue playing.

That’s probably how it’s done programmatically in Cubase, and also so people who program their own remote controllers can create flashing lights. :wink: :stuck_out_tongue:

I found a solution. Maybe not that nice, but working.

I created 2 Generic Remote Controls with the same configuration.
In one I only set the MIDI input, On the other I only set the MIDI output. Thus Cubase thinks, I have 2 different devices and gives me the desired feedback for my app.

If somebody knows a way to get feedback using only one Generic Remote setup, please let me know. Otherwise, this is my way to go.

Did you try using MMC?