MIDI Polyphonic Expression (MPE) support?

If I understand correctly, the MPE (MIDI Polyphonic Expression) adds per-note pitchbends (and I guess other things too). Previously such stuff was impossible with standard MIDI, so in DAWs like FL Studio or LMMS only the internal plug-ins could use such features, using DAW-specific internal APIs.

But with MPE there’s a standard way of doing it, so all plug-ins can do this and work between different DAWs!

I know that Vital supports MPE, and I’ve seen some people testing the per-note pitchbends in Ableton Live using Vital.

As for now Vital is still in closed beta but I believe it will be released as free software.

I don’t know if there’s any other open-source instruments plug-ins that support MPE.

I don’t know if it’s even supported by LV2.

I’d be neat to see it being supported in Ardour, so we can use the polyphonic pitchbends with plug-ins like Vital

Does anybody have an idea how likely that is to happen in Ardour?

Is anybody interested to see support for MPE in Ardour?


Ardour does record and play back MPE data just fine already. There are uses who use a ROLI™ seaboard™ and some MPE synths with Ardour as we speak.

In short: For MPE, each note is assigned its own MIDI Channel in a round-robin fashion.

The task will be to add nice UI integration and streamline editing to show this as per-note-properties instead of global per channel automation lanes. It is already somewhere on the Ardour ToDo list.


Nice! I’m not in a possesion of a MPE-enabled MIDI controller, but I’d love to manually edit my MIDI regions with that functionality and make use of that fro Vital, and hopefully also other synths down the line.

That’s also interesting to see how it’s being done within the original MIDI specification.

Do you think one could “fake” an MPE polyphonic pitch bend by splitting the notes across multiple MIDI channels and manually automating the respective Bender parameters?

I should stress that even though the task can be described as simply as Robin has put it above, the task itself is immense and will require a substantial and deep redesign of how we represent MIDI data internally.

Changing from “this is a note, and that’s a bunch of uncorrelated CC data” to “this is a note, and here are all the other messages that describe the evolution of this note in time, and you can edit them all” is a massive undertaking.


I see.

Maybe it’d open the gate for doing other usability improvements, like easing up editing the note velocity (a lollipop graph)?

in 6.0, we already have per-note graphical velocity editing. The changes for editing MPE would have (almost) nothing to do with adding things like “velocity curves”.