Question regarding midi sends on midi track

Let’s say, I want to send some specific incoming midi data (CC#127) to an external midi channel (a virtual one, that goes to another program), but not to the midi data recorded on the track!
I tried it like this:

  1. activate a midi send without a midi plugin and set it to the desired side chain port/ channel. That part works. All CC 127 sent to that specific track is being sent to the virtual midi port, however, also being recorded to the track.
  2. Set a midi transformer on the midi insert of that track, that filters (delete) all incoming CC#127. To prevent the filtering of the CC on the midi send, I set the midi send to ‘pre’.

As I understand the midi data flow in Cubase, this should work, but unfortunately, I don’t get the CC127 data via the virtual side chain channel, as long as the transformer on the insert is active. Changing the send to or doesn’t seem to change this. Is that a misunderstanding on my side or should it work?

I’m afraid it’s one of those “Well, it works here” replies! :wink:
Are you absolutely certain that you have done as you describe? If so, then you might have some corruption in your Preferences (App Data) folder, so, if all else fails, try removing it temporarily, so that it gets rebuilt on next launch.

To be absolutely sure I tried to verify this behavior with a new Cubase project with just one midi track. I set its midi input to port 1 of my interface (Unitor 8) and deactivated its output port (not needed for the test).
The midi keyboard sends CC 1 via modulation wheel on Port 1 to the track.
I then set a midi send slot to >not effect >Output Unitor Port 8>ch1. By using the modulation wheel, the output control led of the interface lights up, so CC1 is sent via that port.
I then set the midi insert effect of the same channel like this:
Insert A.jpg

With these settings, the modulation wheel does not get recorded to the track. However, the port a led of the unitor 8 doesn’t light up either! So, the transformer on the insert definitively seems to prevent that signal from getting to the midi send section, even though it is still set to pre (as in the picture).

What you might have missed by trying to recreate my problem is to enable record to track button on the left side of the insert section:
Insert B.jpg
If that button is deactivated, the send works again, however, CC 1 is recorded to the track again …

I am pretty sure, I have no corrupt settings, as this is pretty much a fresh install on a fresh Mac pro 2010, Mac OS X 10.11.4
But in case you can repeat the simple test I did here with different results: What do you mean by the preferences (App data)? I looked in >library>application support>steinberg and I also opened the package contents of the cubase app, but I couldn’t find any folder or file with the name preferences for Cubase (only the preferences of some VSTis).

Aha! You are indeed correct :slight_smile: (on both counts… 1) I did miss it, and 2) it then behaves as you describe :wink: )
Unfortuntately (for you, in this case :wink: ), I think that is in fact correct behavior… when the Insert is set to “Record” (which you should think of as “Pre”), it then becomes also pre the MIDi Sends (the same as if you had used the Input Transformer).
Maybe, for your needs here, instead of using a MIDI Send, you should simply record-enable a 2nd MIDI track, routed/filtered as you wish?

Thanks, Vic. But IMO it doesn’t make sense for this being the correct behavior. Human logic (well, at least western one) goes from top to bottom and from left to right. So, from that logic I would assume the processing of e.g. the note expression module to happen before the midi inserts. The manual clearly states, that the pre for midi send effects means before the inserts. Then why would I want to enable the inserts (without the record a able button the inserts are superfluous anyway, as they don’t have any effect on the recorded midi data) and destroy that routing again?
I guess, the insert only effects the output sent to the midi target, when the record enable button is off? Well, there could be some cases where you would want to record something but not send it to the target … but not to many. The whole routing inside Cubase is really not easy to understand in relation to the UI.
Unfortunately, I cannot set up a different midi track, as the whole purpose is to tell max msp, which track is currently selected. Each time a track is selected, a generic remote sends a midi signal to max (via a dedicated port), which triggers max to send a CC 127 to the midi input of the tracks (the one that is set up as input port of all midi tracks). But only the record enabled tracks get this message, so, by setting up an individual side chain port/channel for each midi track (virtual IAC ports), Max msp can listen to where it got the CC 127 last from and therefore decide which channel is selected. I could also set that up via generic remote, of course, but then I cannot move or create any new midi tracks, therefore this kind of idea. It works great, but as soon as I switch tracks during recording, the CC127 is being recorded and max gets the wrong kind of information. If there is no other way, I will just block the sending of CC 127 during record and that should fix it.
I hope, you understand what I am saying here, as this is advanced stuff! :slight_smile: it is for my composing template and for a lemur interface to alway show the right controls for each track with the values already recorded being updated (midi feedback). I guess most People wouldn’t even begin to understand what I am talking about … :wink:

When the Insert is set to “Record” (remember, this “Record” status for MIDI Inserts is relatively recent :wink: ) it is then as if it were physically near the top (like I said, just like the Input Transformer). The real fault here is that the manual wasn’t updated to accommodate this new function :wink:.

Unfortunately, I cannot set up a different midi track, as the whole purpose is to tell max msp, which track is currently selected…

Yep, you’ve just struck unlucky with that setup in this case :wink:.
A “left field” question… what are the undesirable consequences of the main record-enabled MIDI track receiving CC 127 data? I mean, if you left the Insert as post? (I am guessing you aren’t just using it as the default “Poly Mode”, but rather using it as a non-invasive CC# to which you add various values, for the benefit of the Generic Remote?)
In other words… why do you actually need to filter it out of the main MIDI track?

These CC 127 go to Max Msp to tell it, when a track in cubase gets selected, to alter the UI of my touch surface (lemur) and the processing of the incoming and outgoing midi data properly. So those CC 127s of course should only be sent from cubase back to max, when the track IS indeed selected. Once they get recorded, they would send false information to max, if you will.
And since I don’t want to be careful all the time not to record them (it only happens when switching tracks during recording,not something I typically do, but it could happen), I will rather try to prevent it from happening at all!

(Slight parenthesis, but I missed this side-question :wink: )…

At the time I replied, I didn’t know which Operating system you are using. (“app data” folder is the PC equivalent for “Preferences” folder on Mac). Also, knowing now that your Mac OS is OS X 10.11.x, the User Library is, by default, hidden from the Finder.
Here’s a web article on how to get the User Library to appear…
It is inside the User Library that you will find the Preferences/Cubase 8 folder (although, during our conversation, it wasn’t a problem of preferences anyways… so the above was just for info :wink: )

To ease my aching head this morning :stuck_out_tongue:, please answer (again?) some basic questions…
What data do you want transmitted from a record-enabled track (and its MIDI Send)? And to what destinations?
What data do you want transmitted from a track (and its MIDI Send, presumably to those same destinations as above?) that is in Playback mode?
In other words…

  1. the circumstances in which you want CC#127 to be transmitted, and from where (main output from the MIDi track and/or its MIDI Send)
  2. the circumstances in which you want CC#127 to be filtered, and from where (main output from the MIDi track and/or its MIDI Send)
    And also…
    Why does it matter if the CC#127 data does get recorded, seeing as how the main output from the track will still be filtered out on playback/thruput because of the Transformer Insert anyways?

I know, it is complicated! :wink: alright:

  1. What is the purpose: I have a lemur controller on a tablet and Cubase and Max MSP (a program to process midi data) on the Mac Pro. Max can process the incoming hardware midi data (like my keyboards, vdrums etc) and also the incoming data from lemur. For the lemur, it can also change the interface I am seeing by sending data to it. But for that purpose it needs to know, which track I am working on in Cubase (I could select that via menus, but I want it to happen automatically). So, there has to be a way for Cubase to inform Max, which track is selected. Also, I want to intercept the already recorded midi data during playback from all channels, as this can give feed back to the lemur controllers. That is why I have set up a return port or every 16 midi tracks.
  2. To know, which track is selected, I could use just a generic remote, and set it up fear every midi track individually with the option ‘midi mixer-selection’. This way I could even select the tracks from the tablet, which is nice! But there is the big disadvantage, that you cannot move any track or insert a new one anywhere without changing the whole setup, which is more than cumbersome! So, I came up with an alternative:

Cubase sends via remote control a midi message to Max, once ANY midi track is selected
Max sends back CC 127 0 to Cubase, but not to the Remote port, but to the midi record (sequencer) port
since the selected midi track must be record enabled, it will also send the CC 127 via its return port back to Max
since every Midi track has a dedicated return port channel, max can generate a number from the information of port an channel, where CC 127 arrived and therefore decide, which channel is selected (e.g. Port 2 ch 15 is midi track 31)
The only situation, where this does not work, is if multiple channels are selected or record enabled. For this situation I will includ a lock featur to this auto selection later. So, what remains is the problem, that, if by accident I would record the CC 127, it would be sent back to max every time I play back there. So max would think, I had chosen the that track at that moment and switch the lemur interface to those settings. I hope, you understand now …?
As I said: the easiest solution will probably be to automatically not send CC 127 from Max, during recording, as switching tracks during recording is something, that would only happen by accident.

That’s the bit I don’t get… if the Transformer FX (with the setting for filtering CC#127) on the MIDI track is not in Record Mode (i.e. its standard status), o.k. so the CC#127 dat would get recorded, but it would be filtered by the Transformer on its way out to the port (both when record-enabled, and when in Playback), so it wouldn’t get sent back to Max anyways. And you’ve already found that, in this mode, so long as the MIDI Send on that track is set to “Pre”, then CC#127 (either from the incoming data when the track is record-enabled, or the CC#127 that did get recorded, when the track is in Playback) will get out to the Send port (which , if I understand, is what you wanted in the first place?). Have I gotten that wrong?

You can completely forget the output port of the midi tracks. Just consider those return ports on the midi sends. I only want to get the CC127 over them, when I select a track. Not, not when I recorded one and it plays it during playback.

o.k. so the CC#127 dat would get recorded, but it would be filtered by the Transformer on its way out to the port (both when record-enabled, and when in Playback), so it wouldn’t get sent back to Max anyways.

Yes it would, because it gets send via the insert return channel. The output port of the instruments is connected software instruments or hardware - just as usual! Remember: I use these return ports to just copy-send the signal, that the instruments get (plus that CC127, which is irrelevant for the instruments)!
Basically, I would want that kind of chain, to make it easy:
Max Midi out > Cubase Midi input for Tracks > Rec enabled Track > Midi send with no FX sending back to Max on a dedicated port and channel per track > sequencer Input (what is being recorded)
The Playback of the already recorded parts would have the same chain, starting from Midi send. But it seems to work all different …

I have found an even easier description of what I wanted: I just want CC127 to be received and sent over the midi sends when the track is record enabled, but not recorded to the track. That is it in a nutshell :wink:

I don’t see any way for that to be possible just by the record-enable status of the MIDI track… somewhere, you will have to toggle either the pre/post status of the Send (or maybe even the Send Enable?), or activate/deactivate the Transformer FX.

No, then it should not be sent, but that would not matter, as then the track would not receive CC 127 from Max (which is where the midi input to all midi tracks comes from) and as it would not be recorded, it would also not come from playback.

But that’s exactly the “Catch 22”… the only way it would not come from playback is if it either hadn’t been recorded (therefore, Transformer FX in Pre), or if it were filtered out on playback (Transformer FX in Post). But you’ve already seen that for it not to get recorded, it also doesn’t get sent out when record-enabled. And for it to get filtered out on Playback (Transform FX in Post), the Send would have to be not in Record mode (i.e; Post also).

Well, as I said: I you could specify the routing per track exactly as you want, it would be possible. Think of it as a series of gates:
Gate 1: Record enable - All Midi data gets passed or blocked, depending of the rec enable state of the track
Gate 2: Midi send FX (the side chain midi channel going back to max, sending all midi data, including CC 127.
Gate 3: Midi insert Transformer, filtering all CC 127
Gate 4: Sequencer Input (this is were all midi data gets passed to the track, when recording)
Gate 5: Midi output (to the VSTi)
What is on the track would be processed in the same way, starting from Gate 2.

But I hope, you can see, that it could of course be possible to always receive and send CC127 via the send, once the track is record enabled, but never record it, as long as the insert is active. However, it seems like the routing is working in a different way. In Logic, this wouldn’t be possible either, although you have the environment. But there, I can easily understand the routing of midi signals, at least! So, if you could explain, how the routing works in Cubase, which, unfortunately is not as obvious as in Logic, that would be great!
What I would wish for, is a way to exactly specify the midi routing in Cubase per track, as it is possible to achieve what I want. I guess, it won’t happen though …

Well, I already sort of did so :slight_smile:.

When the new “Record Mode” on MIDI Inserts is not activated…
(i.e. like Cubase has always been until a few versions ago), the routing is exactly as per the Cubase Operation Manual… the Inserts work on the MIDI data on its way out of the MIDI track (whether the recorded data on the track, or the thruput, but post record in either case).
The MIDI Sends are, normally, post all that, unless switched to Pre, in which case they are of course before the Inserts (and VST Expression), but still post the Input Transformer.
So… the Input Transformer will always transform incoming MIDI (apart from VST Expression), both to the main MIDI output and to the MIDI Sends.
The only thing higher up the chain than the Input Transformer is VST Expression (so VST Expression is never transformed, neither by the Input Transformer, nor by the MIDI Inserts).
The MIDI Sends will be transformed by the Inserts, unless the MIDI Sends are set to Pre.

When the “Record Mode” on MIDI Inserts is activated…
it effectively then places the Insert higher up the chain… at the next level down from the Input Transformer. The transformed data will get recorded (and the incoming thruput will of course be transformed also).
The MIDI Sends will always be transformed by an Insert that is in Record mode (same as if using the Input Transformer), whether the Sends are set to “Pre” or not. (I am aware you’d prefer that not to be the case, or at least, have the option. :wink: )

Thank you, Vic! That explains everything. But wouldn’t it be great, if there was a midi routing option, where you could set that up yourself? That would really expand the possibilities, of what these modules could accomplish. Just whishful thinking! :wink: