I’d just like to add the reason for the apparent “unnecessary” MIDI CC 7 (Main Volume) messages in case someone happens to stumble across this. It would be nice to get some feedback as well just in case I’ve messed something up.
A few days ago I realized that the additional messages have nothing to do with Generic Remote routing nor MIDI routing. They are also more likely generated by-design on Steinberg’s part as opposed to being a bug. Having said that, these can be reasonably considered duplicate MIDI messages.
Before reading this, I’d just like to note that Martin is right in the message above. You should read through that first to clear up some extra confusion. I’m also presuming that MIDI thru is enabled in preferences, and also presuming that filtering MIDI by channel is enabled using the Input Transformer within the Track Inspector.
For starters, it’s actually the MixConsole’s implementation. So if you use Generic Remote conditions to filter messages through to the Mixer (MixConsole) in the Device Setup, you will always notice additional messages generated when the corresponding value shifts. You will also notice additional messages if you use your mouse to change the MixConsole’s parameters in real-time. For example, whenever a MixConsole’s value is changed, the MixConsole generates a MIDI CC message pertaining to the parameter’s current value before it is changed. The MixConsole also generates a message pertaining to the parameter’s final value after it is changed. A good analogy would be to imagine the MixConsole as though it is a real-life hardware mixer. In the Cubase MixConsole’s case; the moment your hand touches the controller, a MIDI CC is sent that corresponds to the controllers position before your hand has moved. Then, as you slide (or turn, etc) the controller, the values you sweep over all get sent a single time. Lastly, as you finish your movement and lift your hand off the controller, a final MIDI CC is sent that corresponds to the controllers position your hand has let go. In this analogy, replace your hand with your left mouse button. Instead of touching, sliding and letting go: click, drag and release.
If you are controlling the MixConsole via a Generic Remote setup, then you will notice the same effect when you use your physical controller. Because Cubase can’t figure out when you place your hand on the physical controller, it waits until you first move the fader or knob. This can produce an annoying “unnecessary” MIDI message. It seems to be unnecessary because chances are, your MixConsole’s parameter was already set to that before movement occurred, and you only wanted the “sweeping” values to be sent. Cubase also has no way of knowing when you let go of the physical controller, so it waits a certain period of time before sending the “release” message. This will also produce an equally as annoying “unnecessary” MIDI message. Just to make sure you aren’t moving the fader or knob extremely slowly. By default, this period appears to be around 1 second.
The above behavior is pretty confusing and I’m not sure if it’s in the manual or not. The important thing to note, is that it occurs when using mapped physical controllers through the Generic Remote interface, as well as when using the mouse within the DAW itself. Either way, hopefully it’ll save someone a day of boring debugging. So I’m documenting it.
I only know of one configuration that can act as a possible workaround. It involves using the T (Transmit) flag from within the Generic Remote setup screen. If you enable the T flag for a controller in the top panel that corresponds to a parameter on the MixConsole in the bottom panel, then the MixConsole will transmit the control change message given in the top panel to whatever device is selected in the MIDI Output dropdown above both panels, as well as whatever device is selected in the Output Routing dropdown in the Track Inspector. The key, is that the T flag will only make the MixConsole transmit MIDI data when it is visibly changed. That is, when the value itself changes within the program. Unfortunately, the T flag won’t stop messages already flowing to the Output Routing device set in the Track Inspector. Enabling the T flag without doing anything else will make even more “unnecessary” duplicates. But, if you set the Output Routing to Not Connected, then this issue is technically resolved. However, it’s pretty limiting, because it forces you to use Generic Remote conditions for everything. Even Note On/Off messages. What you can do to get your other MIDI messages back without duplicates, is set up a MIDI send track with the Transformer MIDI plugin set. Within the transformer, you can delete the MIDI messages that directly from the MixConsole to the Output Routing dropdown whilst still transmitting those MIDI messages with the T flag through the MIDI Output dropdown within the Generic Remote setup.
Wrap your head around that. Of course, that’s if you must remove those “start” and “end” MIDI messages from the MixConsole at all costs. You could just choose to live with it knowing that they’re easily manually deleted from within the list editor or project browser.