[PD] MPE in Pd Vanilla?

Alexandre Torres Porres porres at gmail.com
Fri Nov 3 02:55:25 CET 2023


Ok, I received my cheap MPE aware controller from keith mcmillen, it
doesn't do much, but I was able to have some basic tests.

This one doesn't let me configure "zones" as I see it, cause it's too
simple, and I kinda expected that.

It does send a proper 'Note Off' message, but it doesn't handle any release
velocity, just gives me '0', and Pd's [notein] object actually responds to
this message, or any release velocity message, but always outputs zeroes
(and I did document this in the documentation branch now).

So. it seems quite simple indeed to work with vanilla objects to make a Pd
patch. Maybe not bother then with a specific object.

Most people won't use MPE in the first place and most of those who do maybe
will not need anything too fancy, like setting and handling separate zones.
This is where someone out there should stop me and tell me otherwise.

I'll keep looking into it but I don't have a better controller with full
blast MPE support to go any further... and maybe an external here is the
case.

For those controllers that use MPE with a release velocity, my take is then
to just add proper Note Off support for [notein] and [noteoff]. I already
have a PR that works for it and we're discussing it on github.

I'm thinking of adding an example to the documentation on how to handle MPE
soon.

cheers



Em sex., 27 de out. de 2023 às 13:20, Alexandre Torres Porres <
porres at gmail.com> escreveu:

> Awesome. My external is definitely working fine, but it's simple and maybe
> sensel morph uses more stuff, so you gotta tell me and explain what you
> need. This is what I was hoping asking around about this, someone with a
> particular need.
>
> I took that external as a base and out of all midi messages possible, it
> listens to note on, note off, CC #74 (commonly used for moving through the
> 'y' axis), channel pressure and pitch bend  (commonly used for moving
> through the 'x' axis), but I know the [mpeparse] in MAX listens to ALL Midi
> messages possible, even polyphonic aftertouch, which doesn't seem to make
> sense to me, since using MPE for channel pressure is basically the same as
> using polyphonic aftertouch, and polyphonic aftertouch is already much
> better anyway!
>
> The reason I guess that MPE came up is that, besides pressure, these more
> fancy new and modern controllers do care about a bidimensional axis (x, y),
> and then it makes sense to group them all in the same idea and use pressure
> (as a 'z' dimension) instead of polyphonic aftertouch.
>
> I see some fancy new controllers are also using note off and part of all
> this, which is something I really find cool and too bad it kinda got lost
> to oblivion for the most part.
>
> And there are also other messages, like program change, other control
> numbers you can use and whatever, not sure if sensel uses any of that.
>
> I can expand my external so it listens to all messages and so be it. So
> far it just does the same as the original one I had a look at.
>
> Now, besides all that, which you could even use regular simple vanilla
> objects (excluding 'note off'), MPE can also define different 'zones', and
> the starting channel for each zone. This is where it's still tricky to me.
> I have no idea yet how to deal with it in an external, and it seems obvious
> to me that you can't do that in Vanilla. And my original request to add MPE
> support into Vanilla would require also managing this bit.
>
> Anyway, this is what I can make of all this for now. We can also talk in
> private so you can explain me the full features of sensel morph, what you
> need, and what I need to do so you can test it.
>
> and btw, thanks to github actions, you can download linux externals from
> current master, see if you can get and load 'else/mpe.in' here
> https://github.com/porres/pd-else/actions/runs/6659549237
>
> cheers
>
> Em sex., 27 de out. de 2023 às 11:46, James Correa <jcorrea.mus at gmail.com>
> escreveu:
>
>> Hi Alexandre, I have a MPE controller, sensel morph. I can test your
>> external if you compile it to linux. I don't use Mac anymore.
>>
>> On Thu, 26 Oct 2023, 19:24 Alexandre Torres Porres, <porres at gmail.com>
>> wrote:
>>
>>> I’m not even sure if the cheap gear I bought allows much editing
>>> actually:) let’s see
>>>
>>> On Thu, 26 Oct 2023 at 19:21 Alexandre Torres Porres <porres at gmail.com>
>>> wrote:
>>>
>>>> Why is that? I need to get my hands on an actual controller before I
>>>> feel like reading in that much depth. I won’t try to code things if I can’t
>>>> test them. For now I have the simple parsing object that does the same
>>>> thing as that external I reffered to, which was something I could test.
>>>>
>>>>
>>>>
>>>> On Thu, 26 Oct 2023 at 18:43 José de Abreu <abreubacelar at gmail.com>
>>>> wrote:
>>>>
>>>>> You can also read the mpe specs, i have a feeling you want to somehow
>>>>> reverse engineer it... and maybe you don't need to...
>>>>>
>>>>> https://www.midi.org/midi-articles/midi-polyphonic-expression-mpe
>>>>>
>>>>> i am sending the pdf on this e-mail too
>>>>>
>>>>> Em qui., 26 de out. de 2023 às 17:51, Alexandre Torres Porres <
>>>>> porres at gmail.com> escreveu:
>>>>>
>>>>>> Ok, I wrote something similar to that [mpe] external (btw, there's a
>>>>>> small bug in how it handles pitch bend)
>>>>>>
>>>>>> this one takes raw midi input, such as from [midiin], and gives you
>>>>>> something you can connect directly to a [clone] object, so you can route
>>>>>> inside it the most commonly supported mpe messages, note off, note on,
>>>>>> aftertouch, CC 74 (aka slide) and pitch bend (aka 'glide'?).
>>>>>>
>>>>>>
>>>>>> https://github.com/porres/pd-else/blob/master/Code_source/Compiled/control/mpe.in.c
>>>>>>
>>>>>> will work more on this when my new controller arrives.
>>>>>>
>>>>>> cheers
>>>>>>
>>>>>> Em qui., 26 de out. de 2023 às 15:36, Alexandre Torres Porres <
>>>>>> porres at gmail.com> escreveu:
>>>>>>
>>>>>>> Em qui., 26 de out. de 2023 às 13:36, Alexandre Torres Porres <
>>>>>>> porres at gmail.com> escreveu:
>>>>>>>
>>>>>>>> People use MPE to control virtual synth plugins
>>>>>>>>
>>>>>>>
>>>>>>> this could be of interest for christoph's [vstplugin~] external
>>>>>>> then, just realized it.
>>>>>>>
>>>>>>>> _______________________________________________
>>>>>
>>>>>
>>>>>> Pd-list at lists.iem.at mailing list
>>>>>> UNSUBSCRIBE and account-management ->
>>>>>> https://lists.puredata.info/listinfo/pd-list
>>>>>>
>>>>> _______________________________________________
>>> Pd-list at lists.iem.at mailing list
>>> UNSUBSCRIBE and account-management ->
>>> https://lists.puredata.info/listinfo/pd-list
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20231102/be390905/attachment.htm>


More information about the Pd-list mailing list