Midi Insert Transformer problem

The Transformer always does my head in… very grateful if someone can give me a pointer as to where I’m going wrong.

Task: To ADD Midi CC19 value 127 onto every outgoing note on a midi track (this will Enable a VE Pro channel ie Wake On Midi Note).

I set Transformer to Insert.

UPPER ROW
Type Is Equal to Note and
Velocity Bigger or Equal to 1 and
Pitch Bigger or Equal to C-2

LOWER ROW
Type Set to Fixed Value Contoller
Value 1…

…and here is where it goes wrong. I want to type Value 1 = 19, Value 2-127, right? However, I only have an option to set a NOTE range in the value 1 box, which makes no sense to me at all. Consequently, I can’t get this working. Grateful for any pointers as to my stupidity - thanks.

For future searchers - solved. There’s a sort of bug with it displaying the notes when it should be numbers, but if you put the number in it converts it note value and this still works. The other mistake I made was I needed a value 2 of 0, not 127.

the whole system needs an overhaul if you ask me…

glad you got it sorted=)

In the LE and transformer you can also play a midi note and the ntoe number/name will be inserted.

Also, the pref Event Display-Chords & Pitches affects this, and you can display both decimal and note name together. (maybe you already know this? But Cubase is a labyrinthine mindfudge sometimes :wink: )

Thanks Steve, useful tips!

Now I have a new problem (how else do you spend Christmas Eve except fault finding the Midi Transformer?)

I had to modify my code as I was getting VE Pro glitches on every Note Off event. I therefore set it as:

(still set as Insert, btw). The good news - no more glitching on note off, but the bad news, no more activating on a note on either. Also I seem to get occasional vicious full deflection howl rounds with VE Pro sometimes. Monitoring the midi, indeed it no longer sends a CC19 message.

So what I need is a condition that is only triggered by a Note On event, not a note off. What are my options? Seemingly just 3 - a condition based on value 1, 2 or 3. Here’s what I get:

Value 1 is pitch. Set to greater than C-2. Result - Controller triggered by both Note On and Note Off.
Value 2 is velocity. Set to greater than 0. Result - Controller is triggered by Note On and not Note off. Great - except Note Off is now transformed to G-1, leaving every note hanging! A bug, surely?
Value 3 is Off Velocity. If set to 0, Result - Controller is triggered by both Note on and Note off. If set to anything else, Controller is never triggered.

At this point I feel I’m out of options. Can anyone think of a condition that reliably ONLY triggers on a Note On and never a Note Off event?

Set the second line in the filter section to velocity, that should stop the second CC event from being sent.

Value 2 | Bigger | 0

The problem is Note Off velocity isn’t used out in the real world, instead, Note On with velocity 0 = Note Off. Not part of the Midi Spec, but common usage. :unamused:

Thanks Steve - as mentioned above, this works BUT it then changes my Note Off event to be the pitch value of CC19 ie G-1! So I get hanging notes everywhere, as the note offs don’t correlate to the note ons. That must be a bug, right?

Gotta be that you have the function on transform. With it set to Insert this is what is sent out:

1: MIDI IN [BMT In]: 90 3E 3A ← Note On (62)
2: MIDI IN [BMT In]: B0 13 00 ← CC19 value 0
3: MIDI IN [BMT In]: 80 13 00 ← Note Off

LE looks like this: https://imgur.com/YUKxaXD.gif

Thanks Steve, I’m no hex expert, but that looks exactly like what I’m getting - that Note Off value isn’t the same as Note On - its 19 and should be 62. It IS the same value as the CC insert that has been set. You’re right in that the behaviour is to transform, but it is actually set to insert - and transforming something that does not meet the conditions set. Sure looks like a bug to me.

It won’t show inline because of forum size limitations, but here’s a screengrab of transform next to midi monitor, to show the madness in one handy png:

I’m actually running a beta version of Cubase 10 so thought I should check an older one too for behaviour, and I have 9.0.40 installed. Exact same behaviour.

Oops. I totally missed that. It’s right there in my post :blush: But now– now I understand everything, truly. okay… some things… Well, all right, maybe this thing… hopefully.

Could be a bug, so it’s worth reporting.

I can see one way to mostly deal with this, by putting the transformer on a Midi Send instead of insert. (routed to the same VEPro port.)

The note on and off are sent out from the track, so that’s good, and the transformer result is sent through the send, and that’s the mostly good part, because an extra and unnecessary note off is sent for note #19. That would be a problem if you play a chord contain g-1 and release the g-1 last- it’ll end when you release any other notes in the chord. But an 88 key piano stops a whole step higher than G-1 so maybe it can work?

Sorry for the runaround!

PS Could you tell me what this is doing in VEPro? I know Wake-on-Midi note as a trigger to start recording- is that it? I have had VEPro for a few months, and only use it for VSTs to take a load off Cubase and speed up loading and saving. So learning something new would be nice.

Thanks Steve, great idea for a workaround, I think you’re right that an additional G-1 note off should be benign - so same Transformer script except set to Transform and put on a midi send. I’ll give that a try post-Christmas thanks v much - and I must file a Jira report on the seeming bug too. This one has clearly been around a long time… I do seem to have a knack of falling head first into those…

So in VE Pro I have channels saved in a disabled state, consuming almost no RAM and being super-quick to load a complete template. Then just playing a note (in theory) wakes it up. Similar really to disabled tracks in Cubase, but with this it should be a little more elegant, and I’d rather have hundreds of disabled tracks in VE Pro than in Cubase, as the latter can make .cprs really big and when enabled should be more efficient.