How to put mpe messages together?
I'm having trouble putting all the separate elements and examples of MIDI / MPE together.
I want to have a maximum of 4 voice numbers.
I also want to be able to send to Slide, AfterTouch, and Pitchbend.
I know the poly object can index notes, but i don't see a way for mpeformat or midiformat to receive an index, unless the right inlet of midiformat is for this? Although thats called "midi channel"
I thought this is where poly~ would be useful, since it seems like polymidiin handles a lot of that, but multiple forum posts say it's not necessary. ( here , here )
So I'm using a poly to index, then a [route 1 2 3 4], to direct to the mpeformats "note channel" (assuming same thing as "voice number". ) but poly was giving my note-offs a different index than the note-ons depending on where in the network i put it.
Either way, this seems to work, but i don't think its very scalable. Is there a better way to execute such a thing?

what is your input ? if your midi source is single midi channel,
I don't see how you want to link a note with a pitch bend or aftertouch.
only poly pressure is per note based message.
if you have 4 channels input, then simply route that into mpeformat.
P.S. maybe I did not understand correctly what your flow is.
it seems your input is live.step with 4 values.
in that case all you need is poly object NOT poly~
small simulation here, note input generates 2 extra vlues.

Thanks for the response and example. That helps confirm things.
I think i'm sort of confused as to how someone would patch something where aftertouch, and slide where coming from a polyphonic input, such as an actual mpe device, could poly actually keep those notes together?
i real mpe stream, you would have each note/ channel completely separated with all controls.
That is what MPE is about. a bit more sofisticated multichannel midi.
in max we can try to simulate that by trying to route notes using poly or whatever
to MPE objects and form messages like that.
but linking all controls with a note is the tricky part.
at the moment a note gets created, it must have all controls bound,
let's say you had note 44 with Pbend shifted, and turned the note off.
what when that note gets played again ? should Pbend start resetted or use last seen value ?
Real MPE instrument with all the gimmicks of sliding and vibrating resets all cotrols once note gets released, at least that is what I think or expect.
the RISE package has some MPE Tools, mpepolygen, mpestartremap
in a simplest scenario, let's say one note and a bit of aftertouch, you press another note.
there is no chance to ignore current aftertouch value for that new note, not in non mpe midi world.
Maybe grab it if it changed after 2nd note got pressed, but then what about 1st note ?
should it ignore common aftertouch only because another note got pressed ?
in simple words: standard 1 channel midi input conversion to mpe is possible only for notes and polypressure.
Thanks for all this.
source_audio: Luckily the poly -> route strategy works for my situation, but was wondering how someone who was dealing with a mpe device input would handle having 16 individual pitchbend, aftertouch, slide parameters outside of copy/pasting.
double_ug,: Oh yea I saw this, but just assumed for the device only. But this mpepolygen object is amazing
Data is data, no matter if it is contained in 16 normal midi channels, or in MPE format.
A good DAW should offer grouping of tracks, intelligent selection (over the bar) of tracked controls etc for editing and arranging blocks of data.
I remember Opcode Studio Vision from the past , Max was at that time also part of their software.
Till today no company managed to create such powerfull sequencer.