Typical usage of pitch bend and pressure data in MPE synths (eg. Roli)?


From what I’ve seen, it appears the pitch bends in MPE controllers like the Roli ones (whether from shaking your finger or sliding it down the bottom pad between notes) are being transmitted as simple Pitch Bends. ie. The only difference between them and a pitch wheel is:

  • The MPE bends are being transmitted per note (ie. per channel).
  • The MPE bends are easier to calibrate on a per pitch basis using an appropriate controller. ie. If you vibrato, you can set that in your controller/synth to say it can go 1/2 pitch increment max in either direction. If you glide from C down to A, that can easily be recognized clearly as a 3 note pitch change.

I presume that the vibrato pitch bend range must be established on the device, since both vibratos and finger slides between notes are both being transmitted as pitch bends in the MIDI. So the synth can’t tell the difference between which it’s dealing with.

I’ll have to review the example synths but this I think should be pretty straight forward. Is that correct? Anything I’m missing there?

What is the typical application of the aftertouch “pressure” data? From what I got in the recent ADC video, it looks like they’re using it is as “gain” multiplier.

ie. In a typical ADSR based synthesiser, you could multiply the envelope by another gain variable. The envelope max level of the ADSR would be set by the velocity like usual. But if you then lean into the note or lighten your touch, the gain multiplier will change accordingly to amplify or reduce the total envelope output by whatever factor you dictate.

I presume you would want somewhere in the synth to dictate the range of the gain control. eg. To max of +6 db and min of -6 db and map the pressure data linearly to the decibel scale before converting those dB changes to a basic multiplication factor.

I also presume you would want the aftertouch pressure data to be relative to the initial pressure level, so the pressure starting point always gives a factor of “1” in the gain multiplier.

Is this the correct idea behind a basic application for these functions? Thanks.