MPE (Mid polyphonic expression)

DSP, Plug-in and Host development discussion.
Markus Krause
KVRist
103 posts since 2 Jul, 2018

Post Wed Aug 21, 2019 1:15 am

Today i ordered a MPE-controller. I got mixed feelings about implementing the MPE specification. My opinion is that it is not very well-designed and looks more like a dirty hack. Why?

- It only supports 16 voices properly
- It opens the door for bugs
- I can create incompatibilities between manufacturers
- It breaks the midi specification
- If a midi device is disconnected and re-connected it will play wrong notes, because the midi-in device can't know that MPE mode is currently used
- Why do they not use NRPNs?
- Why is "polyphonic key pressure / aftertouch" not used which does exactly the same and is a well-defined midi command?

What do you think?

Jeff McClintock
KVRist
302 posts since 30 Jan, 2005 from New Zealand

Re: MPE (Mid polyphonic expression)

Post Thu Aug 22, 2019 7:37 pm

Markus Krause wrote:
Wed Aug 21, 2019 1:15 am
The MPE specification looks more like a dirty hack. Why?
Short answer: It is a dirty hack.

Long answer: Polyphonic expression was LONG overdue, and Roli did the best they could within the limitation of MIDI 1.0 to finally support it. I suspect also that MPE goaded the big companies into releasing the MIDI 2.0 spec (after many years of procrastination). MIDI 2 is "MPE done right" and doesn't suffer the same limitations.

I'm guessing Roli are now working on MIDI 2.0 support for Roli keyboards, and perhaps it's wiser make preparations for supporting MIDI 2.0 at this point (in addition to MIDI 1.0 of course).

Jeff McClintock
KVRist
302 posts since 30 Jan, 2005 from New Zealand

Re: MPE (Mid polyphonic expression)

Post Thu Aug 22, 2019 7:40 pm

[double-post, ignore]
Last edited by Jeff McClintock on Thu Aug 22, 2019 7:42 pm, edited 1 time in total.

Jeff McClintock
KVRist
302 posts since 30 Jan, 2005 from New Zealand

Re: MPE (Mid polyphonic expression)

Post Thu Aug 22, 2019 7:41 pm

[double-post, ignore]

dusted william
KVRAF
4795 posts since 18 Dec, 2000

Re: MPE (Mid polyphonic expression)

Post Thu Aug 22, 2019 9:03 pm

I love mpe I No way I could go back. I hope you do it!

Markus Krause
KVRist
103 posts since 2 Jul, 2018

Re: MPE (Mid polyphonic expression)

Post Fri Aug 23, 2019 4:16 am

If the spec of MIDI2 different from the MPE spec that Roli uses?

jussi_neuraldsp
KVRer
3 posts since 24 Oct, 2018

Re: MPE (Mid polyphonic expression)

Post Fri Aug 23, 2019 5:06 am

AUTO-ADMIN: Non-MP3, WAV, OGG, SoundCloud, YouTube, Vimeo, Twitter and Facebook links in this post have been protected automatically. Once the member reaches 5 posts the links will function as normal.
Markus Krause wrote:
Fri Aug 23, 2019 4:16 am
If the spec of MIDI2 different from the MPE spec that Roli uses?
MIDI 2.0 is quite different comparent to MIDI 1.0 (and it's extensions like MPE).

https://www.midi.org/articles-old/detai ... y-exchange (https://www.midi.org/articles-old/details-about-midi-2-0-midi-ci-profiles-and-property-exchange)

Markus Krause
KVRist
103 posts since 2 Jul, 2018

Re: MPE (Mid polyphonic expression)

Post Fri Aug 23, 2019 8:02 am

Thanks for the link. So

Midi 2.0 != Midi 1.0 + MPE

Midi 2.0 = Midi 1.0 + Systex for Midi 2.0 data + bidirectional communication

The Midi 2.0 specification seems to be a lot better than the 'MPE hack' with midi channels.

From what i can read Midi 2.0 should work with the existing interfaces. Will it work also with VST 2.4 ?

User avatar
Tj Shredder
KVRAF
3157 posts since 6 Jan, 2017 from Outer Space

Re: MPE (Mid polyphonic expression)

Post Tue Oct 08, 2019 7:45 am

Most of MPE is plain old Midi, just use Midi and assign all dimensions to the voice which received a noteon on the same Midi channel. Nothing will break... It could even do more than 15 voices if you could live with having two voices react on the same controls or let the older one ignore the controls (would be better probably...)
The voice limit is due to the limitations of Midi 1.0 there is no way around and its meant for expressive Instruments. 15 Voices are plenty for 10 Fingers, I am mostly happy already with 6 Voices... If you need more in a DAW context, use VST3 expressions...
MPE is the core feature which made me go back to synthesizers. I don't buy any synth without it anymore...

User avatar
S0lo
KVRian
717 posts since 31 Dec, 2008

Re: MPE (Mid polyphonic expression)

Post Thu Oct 10, 2019 2:25 am

I happen to have implemented MPE support before so I'll try to answer some of your questions:
Markus Krause wrote:
Wed Aug 21, 2019 1:15 am
- Why do they not use NRPNs?
They could have. The thing is NRPN (and also SysEx). Is just too open ended for what they want to do. This entails that they have to add more on specification/standardization which means that they have to convince vendors to adopt the extra new spec. The more minimal changes they make, the more probable that companies will adopt.

Second reason probably is that NRPN requires two CC messages (98 and 99) prior to each and every parameter change. These would be made to select the parameter/note combination you want to change. Then you send an additional CC that carries the new value. So each change would require 3 CC messages instead of 1. This would reduce available bandwidth to a third. And you can imagine how many messages there will be if each and every note the musician presses can have it's own multiple CC messages changing rapidly all the time.

On the other hand the current MPE spec sends only 1 CC embedding the note selection in the channel number.
Markus Krause wrote:
Wed Aug 21, 2019 1:15 am
- Why is "polyphonic key pressure / aftertouch" not used which does exactly the same and is a well-defined midi command?
Polyphonic aftertouch is only ONE parameter. What if you wanted to change 2,3,4... parameters per note concurrently?


MPE is a hack indeed. But it's a hack that doesn't seemingly break anything. It's only a hack on the sender/receiver side on how to interpret MIDI. Well thats at least as far as I understand it. I could be wrong :wink:

Markus Krause
KVRist
103 posts since 2 Jul, 2018

Re: MPE (Mid polyphonic expression)

Post Fri Oct 11, 2019 5:27 am

I bought a seaboard blocks and MPE is implemented on Icarus2 now.
It works pretty well with the existing factory patches.

One thing that worries me a bit is that the Roli Seabord does not seem to be sending the MPE configuration message. How else should a receiver know that a MPE device is connected? Or must the host create this message and send it to the plugin?

Return to “DSP and Plug-in Development”