How to send x/y midi cc before velocity

dirtyHeaven

2016-12-23 20:39:12

Been trying to figure out how to send cc data (like aftertouch or x/y position) before note on. I'm using a midi controller that sends velocity, x/y position, and pressure (aftertouch) per pad. My VST would like to to see the x/y position before it senses a note on message. Ultimately i'd like to translate the Y position from the pads into velocity. Any help with this challenge would be greatly appreciated.

florian

2017-01-29 16:11:42

Hi dirtyHeaven,
sorry for the VERY late response. We've been swamped...

If the pads always send in the order, it's quite simple with MT.
Let's assume that it first sends Note On with velocity, then CC position x, then CC position y, then pressure.
Now you want to ignore the note velocity, and defer the Note message until after the control change, using the y position.

Then create these translators (schematic):
  1. Incoming: Note On, set g0 to note number.
    Outgoing: none (swallow)
  2. Incoming: Note Off, any note.
    Outgoing: none (swallow)
  3. Incoming: CC position Y, set pp to value.
    Outgoing: CC position Y, value: pp (pass through)
  4. Incoming: CC position Y, set pp to value.
    Outgoing: Note On, note: g0, velocity: pp
  5. Incoming: CC position Y, any value.
    Outgoing: Note Off, note: g0, velocity: 0
The "swallow" checkbox must be checked for ALL incoming actions!

For passing the CC position X and the pressure messages, use the MIDI Router. We "manually" route the CC position Y so that we ensure that the CC is sent before the Note On. I also assume that the pads send instantaneous drum notes only, where Note On is immediately followed by Note Off and there cannot be overlapping notes. If that's not true, it's possible to enhance the preset, but it will need a little more logic.

If that doesn't work, please include a log of the Log Window in MT Pro -- having activated ALL checkboxes including timestamp.

Thanks,
Florian