Convert Note Expression events to a different type


I have Cubase 12 Pro and I have a problem I’ve struggled for a long time and I could not yet find a solution for:

  • I’ve recorded some MIDI notes including Poly Aftertouch (Poly pressure) events from a MIDI device equipeed with poly aftertouch pads.
  • Then I converted (successfully) the Poly Aftertouch events to Note Expression “Poly Pressure” events using the menu MIDI->Note Expression->Convert to Note Expression
  • However there are VST (most notably Halion) that do not support Poly Pressure events. On the other side they have other Note Expression available such as Tuning, Cutoff, Resonance, etc
  • So my first thought was: well, I could just convert, copy or move the “Poly Pressure” Note Expression as “Cutoff” Note Expression events, for example, so I can use those note expressions for the Halion instrument. Also, as some Halion instruments might have different useful Note Expression types available, I thought it made sense to be able to convert among Note Expression types.

However I could not find how to do it. I could only find the following, but none of the next possibilities resolve the problem:

  • I can open the Note Expression editor in a note, copy all events, select the desired Note Expression type and paste them. However, I would have to do this note by note, which is absolutely unrealistic.
  • I can open the Note Expression editor for a group of notes, copy all events (in this case it copies all the events from all notes), select the desired Note Expression type and paste them. However (very dissappointingly) when it pastes the events, it repeats the events from the first note to all the notes, making this completely useless.
  • I can copy and paste Note Expression events from some notes to other notes, but it pastes them with the original types, not allowing to use a different destination Note Expression type

There is no way to edit the note expression in any event list editor, only the Note Expression Editor which has the limitations mentioned above.

I have also tried to convert the original MIDI Poly Aftertouch events to a different type of Note Expression in the first place, but it seems to be hardcoded to convert MIDI Poly Aftertouch always and only to Note Expression of type “Poly Pressure”

So basically I’m stuck with the Poly Pressure Note Expression without any (feasible) way to change it to another type of Note Expression

Of course, it would be possible to pre-assign the Poly Aftertouch MIDI to a different Note Expression before recording, but then the recording would be tied to that Note Expression, and if I wanted to change the instrument I would be in the very same situation.

So summarizing, is there any way to convert all note expressions from a group of notes from one type (i.e. Poly Pressure) to another type (i.e. Cutoff), and vice versa?

Thanks and best regards.

When changing the Type for controllers, the ‘conundrum’ is that aftertouch, polypressure, pitchbend etc., midi messages don’t have the same structure (value 1, value 2, etc) as CCs 0 to 127.

You can Dissolve Note Expression from the MIDI>Note Expression menu, and then copy the data from one controller lane to another. Then delete the unneeded data.

Hi, Steve.

Thanks for your reply. However, that’s not a solution for per-note controllers such as Poly Aftertouch / Poly Pressure. If I dissolve the Poly Pressure I get a the Poly Aftertouch controller lane which is set separately per note. However if I copy it to a different type of lane (i.e. CC1) the events would no longer be per-note but common for the channel, losing al polyphonic information in the process.

Additionally I would have to be copying all the events from each note, for example first all the Poly AT lane events for C2, then all the events for C#2, etc… also unfeasible

I can’t say I totally understand your workflow.

You have a keyboard with pads that send Poly-Pressure, and you want to direct the data from those to some other controller and you’re using a Halion instrument. Is this the idea?

Are you referring to changing the input assignment?

Hi, Steve.

The available Input assignments depend on the particular instrument you have chosen.

For example if you use a certain Halion instrument you might see “Cutoff”, “Resonance” and others.

If you assign the input such as Poly AT to “Cutoff” and record, it records correctly to Cutoff but if you want to change the instrument later (for example to Omnisphere or anything else) which does not have the Cutoff note expression, all those Note Expression events you recorded are unusable.

Same happens the other way around, if you record with an instrument that supports Poly AT, so you don’t need to pre-assign the Poly AT input to a particular note expression, you can record either pre-assign the Poly AT midi events to the Poly Pressure Note Expression (or record them normally and afterwards convert them to Poly Pressure Note Expression). However if you want to use a VST without Poly AT capabilities (such as Halion) those events are unusable.

So the inability to convert Note Expression events cause you to have to re-record the events again, and you cannot change the instrument afterwards.

I think that I’ve just found a workaround. It’s slow and far from ideal, but it’s better than anything else I’ve tried until now and I think it might be a possible way out of that situation.

In case anybody else has the same problem this is what I’ve done. I have to do more tests but from the few tests I’ve just done I think it might work:

  • I’ve used the software LoopBe to create a virtual midi port (01 Internal Midi). You could use any similar software as long as it allows you to create a virtual midi port that Cubase can use.
  • I’ve created a Midi track (not an instrument track) and I’ve copied the original MIDI parts from the recording (containing the Poly Aftertouch midi events, not converted yet to Note Expression)
  • I’ve set the output of that Midi track to the virtual midi port “01 Internal Midi”
  • I’ve created an Instrument track with the desired instrument (i.e. Halion), using the virtual midi port “01 internal Midi” as the input
  • In the instrument track, in the Note Expression panel, I’ve assigned the Poly Pressure to the Cutoff (for example) Note Expression for that Halion instrument
  • Then I set the instrument track in recording mode and started to record. The midi events from the midi track (raw Poly aftertouch events) were recorded in the Halion instrument track as Cutoff Note expression, which is what I wanted! :slight_smile:

I need to fine tune my workflow, and see if I can use a similar technique to go back from the Cutoff Note Expression to a Poly Pressure Note Expression somehow, but at least it’s some progress in the right direction for me :slight_smile:

I understand this might be a strange one but as more people get more Poly Aftertouch capable MIDI devices I guess this question might happen more often.

Thanks Steve for your interest and best regards!

Update: it seems that this could be what I was looking for. If I have a recording (made from scratch or converted with the steps above) that have for example “Cutoff” Note Expression, if I want to convert it to a different type of Note Expression I can dissolve it (it gets converted into regular Poly Pressure MIDI events) and then copy the MIDI part to a new Midi track, set its output to the virtual midi port, set the instrument track input to that virtual midi port, select the Poly Pressure as input for any desired Note Expression and record. It seems to work, but I will do more tests of course.

Only downside is having to wait for the recording to be completed “in real time”. Maybe there is a way to do this kind of internal virtual recording faster than realtime but at least it seems to work, and I don’t expect having to change instrument types that often so I think it’s acceptable for me.

Thanks again for your interest!

Doesn’t this entire Rube Goldberg type solution come from the fact that you are sending poly-pressure (or other 7bit controllers?) Can the pads send a CCs instead? Then you’d have total flexibility.

Yes, the pads can send CC but then it would not be polyphonic, the CCs would affect the entire channel.

Another solution would be MPE, but MPE is a pain due to having to manage multiple channels. I think it’s much easier and flexible to have all the polyphonic data in Note Expression in each note.

But Note Expression is polyphonic as long as the instrument recognizes the signal, which Halion (Sonic) does.

Yes, but if I set the pads to send CC, they would send the CC per channel. Unless I use some kind of MPE setup, that would not be converted properly to Note Expression due to MIDI limitations.

The only way I could find to record polyphonic note expression until and use it for Halion is to:

  • Set the pads to Poly Pressure / Poly Aftertouch
  • Set the instrument Note Expression (for example Cutoff) assigned to the MIDI Poly Pressure
  • Record

That works but only if I use Halion and if I wanted to change Halion instruments and reuse those recorded events to a different Note Expression I would be in the same problem.

If I wanted to switch later to Omnisphere, etc, those “Cutoff” Note expressions would not even appear, having to re-record them in the new instrument.

For example imagine this example, I’ve recorded (or manually edited) the Crescendo Note Expression in this particular Halion Sonic SE instrument:

If I wanted to change to another instrument (even to another Halion Sonic SE instrument) and reuse those recorded events in a different Note Expression for example Emphasis in this example, I would be unable to (unless I use the workaround I described)

“Migrating” a Halion instrument to a different instrument like Omnisphere or Vital (or any Poly Pressure capable VST) seems to be ok if I just dissolve the Note Expression (which seems to be converted to Poly Pressure MIDI events), but the other way is not possible: going from recorded Poly Pressure MIDI events to a usable Note Expression for Halion, etc, unless I re-record or use the virtual MIDI port to simulate a re-recording using the original events as a source for recording.