Store
Store logo
Community
Forum logo
MPE



MPE Fundamentals
MPE, or Midi Polyphonic Expression, is a recent specification of musical instruments data exchanges, based on MIDI.

It allows to play a synthesizer in an expressive, articulated way, that approaches the sound and feel of acoustic instruments. Hapax can record MPE controllers, with which you can simultaneously modulate several parameters on distinct notes, like timbre, tonality, pressure or volume.

MPE and Poly Track Types are very similar, but in MPE type, Hapax can record and playback the 3–dimension XYZ expressions of individual notes, even when playing polyphonically. It’s like having 3 automation inside each recorded note:



These per–note messages are often named:
– X = MIDI Pitchbend
– Y = Timbre = Slide = MIDI cc74
– Z = Pressure = Press = MIDI Aftertouch

In addition to XYZ data, note–on Velocity (Strike) and note–off Velocity (Lift) are also recorded per note.
Set up an MPE track
To configure a track as an MPE track, Hold a step button and rotate the menu encoder to set the Track Type to MPE.

 Note  Using an MPE track only makes sense when an MPE-compatible synthesizer is connected to Hapax.

Hold the  track  button to enter the Track Settings menu. From there, you can configure the input and output ports for the track.

This menu differs slightly from the standard Poly track settings. MPE requires a high bandwidth, as a large number of MIDI messages may be sent and received simultaneously. For this reason, USB MIDI is recommended.

In addition, MPE typically uses all available MIDI channels on the selected input/output port:
• MIDI Channel 1 is the global channel, used for messages that apply to all notes.
• MIDI Channels 2 to 16 are the expressive channels, carrying individual notes and per-note expression data.
 OUTPUT PORT   USB DEVICE   USB HOST 
 OUTPUT CHANNEL   2..2   2..3   ...   2..16   15..15   15..14   ...   15..1 
The LOWER ZONE configuration is the most common. In this mode, the global channel is MIDI Channel 1, and the note channels start at Channel 2 and extend up to the selected end channel. For example, if the range is set to 2..14, notes will be internally distributed by Hapax across Channels 2 to 14. Channels 15 and 16 will not be used by this track.
The UPPER ZONE configuration is much less common. The global channel is MIDI Channel 16, and the note channels start at Channel 15.
 INPUT PORT   USB DEVICE   USB HOST 
 INPUT CHANNEL   1..16 
On an MPE track, all incoming MIDI channels are always routed to the track.
 Tip  The MIDI IN setting ACTIVE TRACK CHANNEL = ALL (MPE CONTROL) allows using an MPE MIDI controller to play the active track (with polyphonic expression if the selected track is MPE, or without if the selected track is Poly or Drum).
Virtual Cables (Advanced)
An MPE connection to a synthesizer can easily use all 16 MIDI channels available on a single USB cable. When controlling a device capable of hosting multiple MPE instruments, such as a computer DAW running several VSTs, a single USB cable quickly becomes a limitation for multi-track composition.

To address this, Hapax supports Virtual Cables. One physical USB connection can carry up to 16 virtual MIDI cables, providing a total of 16 channels × 16 cables per input and per output.

These Virtual Cables can be used to connect multiple MPE instruments (one virtual cable per MPE instrument), or to route standard (non-MPE) MIDI devices.

By default, USB communication uses Port 1 (Virtual Cable 1 out of 16).

When USB DEVICE or USB HOST is selected, Hold and rotate the encoder to choose a different port. On screen, ports are displayed as HOST, HOST 2, HOST 3, …, HOST 16.

 Note  Even if your projects do not explicitly use Virtual Cables, when Hapax is connected to a computer it will appear as 16 separate MIDI input ports and 16 separate MIDI output ports.

 Tip  Instruments definitions files now allow configuring Virtual Cables (see the updated template file for more information).
MPE Live Mode
In  Live  mode, functionality mirrors that of default Poly tracks. Notes played on the isomorphic keyboard are transmitted via the configured MPE MIDI channels.

As some MPE synthesizers require the Pressure and Timbre (cc74) messages to be sent together with the Note–on and Note–off messages, Hapax sends these two messages with initial values when a note is triggered. You can adjust these initial values in the Livemode Scale left screen:

 Note  Recording long MPE performance sessions may consume a significant amount of internal RAM due to the high-resolution, per-note automation data.
MPE Step Mode
In  Step  Mode, when a note is moved left or right, transposed, copied, or pasted, its associated XYZ curves (Pitchbend, Timbre, Pressure) are preserved. These expressive automations are stored directly within each note. The primary use this mode is to display, arrange and delete the recorded MPE notes.

Step–by–step editing of XYZ curves within an MPE note is not supported. These expressive parameters automation can only be created during live recording using an external MPE-capable controller.

However, you can also use this mode to add MPE notes manually, without parameter automation. Since some MPE synthesizers require Pressure and Timbre (cc74) messages to be sent along with Note–on and Note–off messages, we have added controls for these messages (as well as Pitchbend) to the note properties. You can set their initial values by clicking multiple times on the VELOCITY encoder (to scroll through PRESSURE TIMBRE PITCHBEND), and then rotating the encoder to adjust the value. If you select an existing note event that you added in  Step  mode without recorded expressions, a popup will appear displaying the associated flat expression:

It is also possible to display and offset the expressions (XYZ automation) of a recorded note. Hold an MPE recorded note using to the 128–pad matrix, then click multiple times on the VELOCITY encoder to scroll through PRESSURE TIMBRE PITCHBEND. The screen will display the corresponding expression curve, which your can offset by rotating the encoder:


 Tip  When holding a note containing expressions, Hold the encoder to reset all expression events to their default values. You can even select  all  notes (or multiple notes) of your recording and reset all expressions for the selected curve type. For example, this is a quick and efficient way to reset all Pitchbend expressions to 0% if you want to correct your performance.
MPE Automation Mode
All  Autom  lanes are transmitted on the MIDI channel 01, as defined in the MPE specification. This channel is used for standard, non-expressive note data.
MPE Effects Mode
 Note  Some internal effects in Hapax are not MPE-compatible and may not preserve the association between a note and its corresponding XYZ curves.
MCM (Advanced)
The MPE Configuration Message (MCM) purpose is to tell a connected MIDI device (like an MPE synthesizer) how to organize its MIDI channels into "Zones" (Lower or Upper) so that it can correctly interpret the per-note expression data Hapax sends.

 Note  Using MCM messages is not necessary for MPE functionality, as most MPE synthesizers have default settings that work well with Hapax. We introduced this feature for advanced users who want to ensure optimal compatibility with specific MPE devices that may have unique channel configurations, and because this MCM feature is part of the MPE specification. However, not all MPE devices support MCM messages yet, and some may not respond to them as expected.

To send the MCM messages, Hold  2ND  + Track and click the MCM encoder:
Connecting Hapax to Osmose
As the ExpressiveE Osmose is one of the most popular MPE-compatible synthesizers used with Hapax, here are the recommended settings to connect the two devices via USB.

On the Osmose Settings:
• MIDI I/O → USB HAKEN MODE = 3/3 DISABLED
• MIDI I/O → HAKEN LOCAL CONTROL = OFF (this ensure that the Osmose keybed sends MIDI externally and does not internally trigger the EaganMatrix engine)

On the Hapax:
• Select a  track  you want to use for the Osmose.
• Hold  Step , choose MPE as the track type.
Hold the  track 
• Set OUTPUT = USB HOST
• Set CHANNEL = 2..12 LOWER Z.

⚠️ Known Issue: In the current version of the Osmose firmware, a timing issue may occur when Osmose sends MIDI MPE data to Hapax and receives MIDI MPE data back over the same USB connection.
When playing a large number of notes with extensive XYZ expression data, audible latency may be noticeable.
This behavior appears to be related to the high amount of bidirectional MIDI data transmitted over a single USB cable.
Workaround – use separate connections for each MIDI direction:
• Use a MIDI DIN cable for one direction (e.g. Osmose ➡️ Hapax)
• Use the USB cable for the opposite direction (e.g. Hapax ➡️ Osmose)

 Note  Regarding USB Virtual Cables:
• The Osmose keybed transmits its MIDI data on USB Virtual Cable 1.
• The Osmose synthesis engine (EaganMatrix) only responds on USB Virtual Cable 2.
• When Hapax is connected to the Osmose via USB, it automatically detects Osmose and routes the USB Host output to Virtual Cable 2, regardless of the virtual cable you have selected in the Track Hold menu. You do not need to change this manually.

⬇ Download Instruments Definition File for Expressive E Osmose – including PC presets names and CC names