MPE - MIDI Polyphonic Expression
Note: work in progress. Page content incomplete.
Note: the content of this page needs to be reworked.
MPE Summary
- MPE uses the MIDI standard.
- All the messages from an MPE controller are regular pitch bend, note, aftertouch, and Control Change (CC) messages.
- Wherever possible, every sounding note is assigned its own MIDI Channel for the lifetime of that note.
- Channel-wide expression messages can be applied to each note individually.
- Channel 1 is reserved for global parameters: parameters that will affect all notes.
- This leaves 15 channels available.
- That means that you could play 15 notes at once, all with their own string of data.
- By default, Pitch Bend is set to of ±48 semitones for per-note bend and ±2 semitones for Master bend.
- Either range may be changed to a number of semitones between 0 and ±96 using RPN 0.
- Aftertouch is sent using the Channel Pressure message.
- To preserve compatibility with existing MIDI devices, Polyphonic Key Pressure may be used with notes on the Master Channel, but not on other Channels.
- A third dimension of per-note control may be expressed using MIDI CC #74.
- A Registered Parameter Number (RPN) is used to set the range of Channels over which notes are sent and received.
- The MIDI Channel space can be divided into sub-spaces called Zones, so that multi-timbral playing is still possible using only one MIDI cable.
- Each Zone has a dedicated extra Channel, called the Master Channel, which conveys information common to all notes in that Zone, including pedal data and overall Pitch Bend.
Channel rotation
The clever secret is in channel rotation. For example, when you play a chord, every new note with its unique bend, timbre, pressure, and (eventual) release is sent on its own MIDI channel. So instead of pitch bend affecting all notes, MPE assigns a unique pitch bend, timbre, and pressure value to each note.
When a device is transmitting MIDI according to MPE, it will use a range of channels:
- One channel (usually Channel 1) is used for global messages – data such as preset changes and pedal positions are transmitted on this channel to apply to all notes equally.
- The global channel is set by the MPE Zone:
- When the MPE Zone is the Lower Zone, Channel 1 is used for global messages.
- When the MPE Zone is Upper Zone is, Channel 16 is used for global messages.
- The global channel is set by the MPE Zone:
- Note information is sent on channels with the range set by No. of MIDI Channel, by default 2–16.
Typical 3 dimensions defined with MPE:
- X : Pitch Bend transmitted with Pitch Bend messages.
- Y : Timbre transmitted with Control Change messages with controller number 74 (CC74).
- Z : Aftertouch transmitted with Channel Pressure messages.
MPE controller with non-MPE synth or DAW:
MPE-enabled controller can be used with non-MPE devices or DAW since all the MPE messages are regular MIDI messages. But they are spreads accrross all channels, so all the device/DAW channels will be used.
Doc and resources
- https://www.midi.org/articles-old/midi-polyphonic-expression-mpe
- https://sensel.com/pages/mpe
- https://www.kvraudio.com/plugins/mpe
- https://community.polyexpression.com/
- https://www.rogerlinndesign.com/support/support-linnstrument-recommended-sounds
Pitch Bend
Pitch Range:
Allows you to specify the pitch range of your input device. If you glide from one pitch to another one, release the key, and press it again on the same position and pitch, the pitch range is set correctly.
Pitch Bend Range – allows you to match the pitch bend range of the software or hardware instrument your Block is controlling. By default the Pitch Bend Range is 48 to match the default pitch bend range of MPE synthesizers like Equator and Strobe2.
Example setups
LinnStrument configuration
https://www.rogerlinndesign.com/support/linnstrument-support-panel-settings
- MIDI Mode: ChPerNote
- Left split: Main Ch 1, Per-Note Chs 2-8
- Right split: Main Ch 16, Per-Note Chs 9-15
- Bend Range: 24
- Timbre/Y: CC74
- Loudness/Z: Chan Pres
With the above settings, a slide across 24 columns will use the full pitch bend range (8192).
Hydrasynth configuration
Set the Pitch Bend Range in the Page 2 of Voice Parameters.
LinnStrument with ASM Hydrasynth
To be documented...
https://www.kvraudio.com/forum/viewtopic.php?f=263&t=538346
LinnStrument | ASM Hydrasynth | |
---|---|---|
Pitch Bend | 24 | |
timbre | ||
Aftertouch |
Sensel Morph with ASM Hydrasynth
To be documented...
Sensel Morph | ASM Hydrasynth | |
---|---|---|
Pitch Bend | ||
timbre | ||
Aftertouch |
LinnStrument with Equator synth plugin
To be documented...
LinnStrument | Equator | |
---|---|---|
Pitch Bend | ||
timbre | ||
Aftertouch |
Sensel Morph with Equator synth plugin
To be documented...
Sensel Morph | Equator | |
---|---|---|
Pitch Bend | ||
timbre | ||
Aftertouch |
LinnStrument with iOS Moog Model 15 app
To be documented...
LinnStrument | Model 15 | |
---|---|---|
Pitch Bend | ||
timbre | ||
Aftertouch |
Sensel Morph with iOS Moog Model 15 app
To be documented...
Sensel Morph | Model 15 | |
---|---|---|
Pitch Bend | ||
timbre | ||
Aftertouch |
Sensel Morph
https://forum.sensel.com/t/morph-to-midi-hardware-compatibility/886
ASM Hydrasynth
Pitch Bend This parameter enables the pitch bend wheel to cover as much as a four-octave range: two octaves up and two octaves down (+/- 24 semitones). You can set the range to a whole step, or a musical fifth, or whatever you prefer. The setting is saved when you save the patch.
Voice Parameters: page 2 Control knob Parameter Range Description 1 Pitch Bend 0-24 Positive/negative pitch bend range in semitones
MPE Controllers
There are several MPE controllers available, ranging from something as small as ROLI’s Lightpad Block to something relatively humongous like the Continuum Fingerboard from Haken Audio. Additional robust, MPE-enabled keyboard controllers include the ROLI’s Seaboard series and the Osmose from Expressive E.
Some MPE controllers are designed to emulate the experience of playing common instruments, such as INSTRUMENT 1 from Artiphon and the Eigenharp by Eigenlabs. There are also grid-based controllers like the Linnstrument from Roger Linn Design, and those that don’t really fit into any of these categories, like the Touché from Expressive E, the Joué Board, or the Sensel Morph.