MPE control module

Is there any plan in the foreseen future for an MPE WXYZ module so I can use MPE control in VCV Rack 2 Pro? Cherry Audio Voltage Modular introduced an MPE interface now VCV needs one! My vote for MPE!!!

2 Likes
1 Like
2 Likes

VCV Rack introduced 2 MPE interfaces, now Cherry Audio needs one …

4 Likes

My module is made for use withe the LinnStrument. AFAIK someone tested it with the Continuum Mini and it worked.

@quantextkbd what ist your use case, what controller do you want to connect?

I am planning on buying an Expressive E Osmose which uses the same synth engine that the Continuum uses called the Eagan Matrix and has the same sounds as it. It’s supposed to be available soon.

I think, you will see some updates on my module before the Osmose keayboard will be available :sunglasses:

I made some tiny changes to my VCV MPE module: No you can access pitch-bend independently from the note pitch, e.g. to use the x-axis for something different than a pitch slide.

9 Likes

Ok - I love that these two modules exist: thank you to the creators!

Small request in both directions:

  • i love that the Ahornberg module splits up the Note info with the per-note Pitch Bend info - I love being able to remap per-note PB to other things

  • but the Ahornberg doesn’t have initial key on velocity or final key off velocity, like the moDllz MIDIpolyMPE does

Seems like a natural extension for both modules?

cheers,

-j-

Jumping in a year later - i just got a used LUMI Keys controller and am using it with this module just fine. There’s no “Y” axis on this controller, which is too bad, but everything else works.

Is there a way to access initial key-on and final key-off velocities? W is just on/off and Z is, of course, the poly aftertouch…

In the right-click-menu you can enable Gate Velocity Mode to use key-on velocity.

1 Like

Oh! Should’ve though to look there. Thank you!

AH, ok - i have the new problem now: when i’m in “Gate Velocity Mode” the signal is a full -10v/+10v with “key off velocity” in the negative half - but very light touches fail to climb above 0v and trigger a gate. Is there a mode that only listens for key-on velocity, or splits on/off up somehow?

use an offset module to move it up to the range you need (BogAudio Offset or the like)

2 Likes

Yeah - i tried scaling it and the like, but the difference between note-on vel and note-off vel is such that sometimes a note goes “off” with a large negative value and then a soft “on” doesn’t push it over the line. OR, if I raise everybody high enough to get the soft notes, then soft “note offs” don’t turn the sound off…

Every offset module also has a scale knob, so just push it up by 10V and set scale to 50%, which should end up making it 0-10V, further scale to taste

No, but you can use 2 modules listening to the same MIDI in port, and if you set one in velocity mode and you set the other one not in velocity mode, I think you will get what you need.

Also be aware that my module is tested only with the Linnstrument because I don’t own any other MPE controller.

Why I created this module:

At the beginning I was disappointed by the LinnStrument because no MPE capable VST can reproduce all the fine details that happen in the attack-phase of a note when playing on the LinnStrument, in contrast to the Continuum synth/controller (listen to the sound compairson in the link below). HakenAudio is also aware of this problem and published a detailled explanation including a possible solution called MPE+ (but up to now I don’t know any VST that implements MPE+ and also the LinnStrument only sends out “vanilla” MPE).

So I coded my own MPE-to-CV module to address this problem just a bit by making it possible to play notes with soft attack when gently pushing a pad on the LinnStrument but also to play notes with a sharp attack and an adjustable release when hitting/tapping a pad quickly (like a mallet or a drum stick would do on a percussion instrument).

In my MPE module I also corrected some bumpyness in volume that appears when I do a very slow pitch-slide on the LinnStrument (maybe my particular controller is a bit broken, I dont’t know).

At the end (at the moment) the LinnStrument ties me to the VCV Rack because of the the fine-grained articulations I can express while playing that no VST can actually give me, regardless of all that beautiful crafted sounds these VSTs come with (I am not a good sound designer). Also some DAWs do something to the MPE signal (mostly data reduction) that kills the details in the articulation especially in the attack of a note, so using VCV standalone is my way to go (and this leads me to dive more and more into coding a DAW-like or more tracker-like sequencer module that fits my personal needs).

But in compairson to other MPE controllers like Eigenharp or Seaboard (on both I had played around a bit) the LinnStrument clearly stands out.

When it comes to attack velocity, I find that almost all VSTs (and even most of the preset sounds on the Osmose hardware - today I went to a local music store and tried the Osmose) make it impossible to play a sharp/percussive attack on one note and then a soft attack on another note using the same sound/patch/preset.

In my MPE module I use a different slew rate during the first miliseconds of a note (the attack phase) than for the rest of the note. In addition to that, when the MIDI note-off message occours in this first phase, the release time will be longer than on a longer note. This makes it possible to play percussive notes like on a vibraphone or a glockenspiel while applying a pad-style soft envelope to another note following exactly my finger/pressure movement on the controller at the same time.

Pitch tracking on the LinnStrument works superior. The “problem” I found is that when I do a very slow pitch slide across some semitones/pads, the volume/pressure tends to be bumpy when the finger moves from one pad to the next. Maybe this could be corrected in the firmware of the LinnStrument, but I think nearly no one but me has ever noticed this. Nearly all LinnStrument players use VSTs or hardware synths that put a relatively large slope on volume changes during a note to avoid unwanted aliasing artefacts. I watched a lot of videos showing someone playing the LinnStrument, and I noticed that slow pitch slides are rarely part of the game. The following video shows my solution:

I found that Bitwig Studio does some data reduction after recording MPE data to a MIDI clip. Ableton Live 11 (maybe version 12 works better, I don’t know) sometimes rearranges MIDI channels and does some data reduction but less than Bitwig Studio. Cubase and Ardour do a good job and preserve all MIDI data.

I also found that latency adds up when using VCV Rack as VST inside a DAW compared to VCV standalone. My audio device runs at 256 samples block size at 44.1 kHz, and when playing the LinnStrument I feel a difference in latency. When I play a regular MIDI keyboard, the latency inside a DAW is not an issue for me. It’s like playing a violin compared to playing a trombone. On the violin, the smallest movement of the bow produces a sound immediately (no other instrument I’ve ever played is so latency-free), while on a trombone every note has a slightly longer and a bit breathy attack before the pure horn sound comes up.

4 Likes

Hi, thanks for your work! Is it possible to port this to the 4MS MetaModule?

Cheers Mike

I can’t answer this question. Please ask the developer of the 4ms Metamodule. My MPE module needs MIDI input. Maybe the USB port on the Metamodule (hardware) could be used as MIDI input, I don’t know. :thinking:

Addendum: I read the manual

and the manual says While VCV Rack supports polyphonic cables, only monophonic cables are supported on the current version of the MetaModule. From my perspective, MPE (MIDI Poly Expression) in mono doesn’t make that much sense.

Furthermore the manual says You can patch MIDI signals to input jacks. From my understanding, there’s no way that a module has direct access to the MIDI data. The Meta Module already converts MIDI messages to CV values. But my MPE module needs the raw MIDI data to work properly.

Conclusion: A simple port of my MPE module (in)to the 4ms Meta Module won’t work. :frowning_face: