Poly Voice Dispatcher MPE

Dispatch an incoming MPE (MIDI Polyphonic Expression) stream to the voices of a polyphonic sub-patch — one voice per active MPE member channel — and decompose each note's expression axes into ready-to-use outputs.

Used to create polyphonic MPE synthesizers with per-note pitch bend, timbre and pressure.

What is MPE? On an MPE controller (Roli Seaboard, LinnStrument, Haken Continuum, Osmose…) each finger gets its own MIDI channel, so pitch bend, timbre (CC74) and pressure can be applied per note instead of globally. The channels are organized in a zone: one master channel carrying zone-global messages, and the remaining member channels carrying one note each:

zone master channel member channels
lower (most common) 1 2–16
upper 16 1–15

Where Poly Voice Dispatcher MIDI assigns incoming notes to voices in arrival order, this module assigns one voice per active member channel and follows that channel's expression for the whole life of the note. Each expression axis is extracted to a dedicated output:

  • pitch bend (glide / X axis) → scaled to semitones through the pb range fader
  • CC74 (slide / Y axis) → normalized [0..1]
  • pressure (channel or key aftertouch / Z axis) → normalized [0..1]

MPE controllers may send bend, slide or pressure on a channel before the note-on. The module latches the expression state of every member channel, so a new note starts with the correct initial values instead of jumping after the first expression message.

A pitch bend received on the master channel is a zone-global bend: it shifts every held voice, scaled by the master pb range fader, and is added to the per-note bend on the pitch bend output.

When used outside a polyphonic sub-patch (or with a polyphony of 1), the module behaves as a monophonic MPE voice: the most recent note-on takes over the voice (previously held notes are not retriggered when it is released).

Settings

midi in

MIDI input flow(s).

master channel

Selects the MPE zone: master ch 1 (lower zone) with member channels 2–16, or master ch 16 (upper zone) with member channels 1–15. The master channel is excluded from voice allocation; its pitch bend shifts all voices globally.

pb range

Pitch bend range of the member channels in semitones, applied to the pitch bend output. Set it to the value configured in your MPE controller (default 48 semitones, the MPE standard for member channels).

master pb range

Pitch bend range of the master channel in semitones (default 2 semitones, the MPE standard for the master channel).

release time

Release time applied to the active output.

Should be set to the release time of the ADSR or 0 otherwise.

midi out

MIDI output flow(s).

The note gate of the voice. Notes are re-channelized to channel 1, so any downstream module sees a channel-neutral mono stream; the expression is exposed through the outputs below.

pass trigger

Sends a 1 value when a MIDI event is sent to the output.

note ON

Sends a 1 value when a NOTE-ON MIDI event is sent to the output.

note OFF

Sends a 1 value when a NOTE-OFF MIDI event is sent to the output.

data 1 (pitch)

Pitch of the current note ON.

data 2 (velo)

Velocity of the current note ON.

pitch bend

Pitch bend of the voice in semitones: per-note bend scaled by pb range, plus the zone-global master bend scaled by master pb range.

Typically added to data 1 (pitch) before feeding the oscillator's pitch input.

pb normalized

Raw per-note pitch bend position as [0..1] (0.5 = center), independent of the range faders and of the master bend.

slide (CC74)

Per-note timbre (Y axis of the controller, CC74), normalized [0..1].

pressure

Per-note pressure (Z axis of the controller, channel or key aftertouch), normalized [0..1].

active

Lights when the current voice is active.

Can be connected to patch-on-off to save CPU when the voice is not used.

Example

A minimal MPE synth voice inside a polyphonic sub-patch:

midi in -> [Poly Voice Dispatcher MPE] -> data 1 (pitch) + pitch bend -> [MIDI Note to Freq] -> oscillator
                                          pressure -> voice gain (Z = loudness)
                                          slide (CC74) -> filter cutoff (Y = brightness)
                                          note ON / note OFF -> ADSR triggers
                                          active -> [patch-on-off]

Set the sub-patch polyphony to the number of simultaneous notes you want (typically 10 to 15 — one per available member channel), and match pb range with the pitch bend range configured in the controller.

Common Settings

info

show manual

Opens the web browser to display information or help about the selected object, if it exists.

For more details about information/help creation, see create-help-file.

description

Description of the module for internal help purposes only. The description is not displayed in the interface.

ID's

visible only in god mode, see setup-panel-tab-expert.

unique ID

Current private ID for this control used to identify the object.

preset ID

Current private preset ID for this control used for presets.

recreate ID

If you experience difficulties in Polyphonic mode, try to recreate new id(s) with this button.

repair ID s

Each Patch shared on the local network uses its own ID (identification number). If you experience issues of Patches that don't send information to the good target, this button will rebuild all these id's.

Object Remote Address

absolute

Absolute remote address. see objects-address.

local

Local to the current patch remote address. see objects-address.

user addr

User defined remote address. see objects-address.

See also

version 7.0.250121

Edit All Pages