About MPE and Modwheel on the global channel

I think it would be good to get the modwheel on channel 1 (global MPE channel) to work in MPE mode.
Currently, if there are modulations assigned to the modwheel in a preset and you switch to MPE mode, the assignments won’t work - probably because the modwheel channel doesn’t match the channel a voice is using.

The good side is, that we can set our controller to send MPE modwheel, say, on slide gesture and presto, the modwheel assignment works per note, which is nice.
The bad side is, if you don’t want to do that, you can’t use a modwheel on the global channel to easily use the preset’s assignment (globally, aka non-MPE) with an MPE controller and use slide for something else we fancy.

I can imagine an at first glance not working modwheel may throw some MPE users off - thinking something is wrong.

One solution would be to offer a switch for the Slide modulator which would remap CC74 to CC1 if the user likes to do so. If this is not enabled, then use CC1 on channel 1 as a global all-channels modulator. If the switch is enabled, then do as is currently done, use CC1 in MPE fashion.

Come to think of it, a similar switch would be good for Pressure as well - of course it could be active on only one of the gestures at a time.

This would not only give us a global channel modwheel, but also simplify tweaking existing presets towards MPE use. If they have assignments for the modwheel we can use them polyphonically via Slide or Pressure with a flick of a button in Vital instead of digging into our controllers settings or pre-processing the MIDI messages.

Thanks for consideration.

As a follow-up note:
If I am dragging the on-screen modweel (next to the keyboard) with a mouse, this seems to work as expected in that it changes whatever parameters modwheel is assigned to on all MPE voices equally.
But while my hardware (channel 1) modwheel does move that same on-screen wheel (actually CC1 on any channel moves that widget), the result is not the same.

Maybe the solution is as easy as
if MPE mode is enabled and CC1 is received on channel 1, then duplicate those messages to channels 2-16.

Extra thoughts:
I don’t know whether the MPE specs have a say on it, but I think it might be a good idea to also do some adding math, so that the channel 1 modwheel values would be added to existing CC1 on the MPE channels instead of being absolute.
It would work like an offset to other channels CC1 data. That way we could still for example send CC1 with the slide or pressure gesture and at the same time use the modwheel on channel 1, a bit like how pitchbend on channel 1 offsets glide pitchbends on the other channels in MPE mode. Of course CC1 values would be clamped within 1-127.

Its not a feature request, its a request to fix a bug. The sustain pedal is also not working if sent on the global channel (1). It seems Vital implemented voice per channel, which is better than nothing, but its not MPE as advertised…

1 Like

I was thinking about whether I tag this thread FR or bug report. Because I am not entirely sure about what the MPE specs say about modwheel, I found it nicer to label it FR, also because I have the impression it was coded like this on purpose, hopefully as a placeholder until it gets improved upon.

Sustain pedal sent on channel 1 does work as expected for me with Vital in MPE mode. Sustains all voices. Channel 1 pitchbend also works as an offset for the MPE bend, so I think it’s not just a multichannel mode, but at least partly a proper MPE implementation with global channel.

Can you please elaborate on this one? I also would like to automate the mode wheel and from what I checked Slide notes don’t apply here.

You mean elaborate on MPE? That could take a while :nerd_face: So I won’t, unless you ask more specific questions.

I rather have a hunch that you mean to ask why I mention the slide gesture in the opening post, right? I did, because currently you can use modwheel on channels 2-16 independently, sort of one more polyphonic message than MPE actually provides.
For example if you have a note on channel 2 and another one on channel 3, you can use individual modwheel curves on those channels to change the parameters assigned to modwheel independently for those two notes.

If you can assigne the slide gesture of your MPE controller to send CC1 instead of CC74, then you can directly play whatever is assigned to modwheel in your Vital patch polyphonically with slide. ROLI has such a setting for their controllers in their Dashboard software, but of course it’s also possible to map CC74 to CC1 with 3rd party MIDI processing plugins as well.

An alternative is to draw the modwheel messages into the piano roll of your DAW after the fact.

This is a really neat feature and I wanted to make sure that we don’t lose that possibility in the process of making modwheel work as a global message. But I agree that it made the request quite convoluted and confusing. That’s typical me - wanting to squeeze all my thoughts into a single post and fall into rambling mode, kinda like what’s happening right now :laughing: