poly~ voice allocation and stuck notes - the old topic...

DominikK's icon

hey folks,

I've been developing a patch for a composer which has a lot of midi input together with sampler players and poly~ synths.
Although I'm programming max for quite some time now, handling stuck notes in poly synths is still an issue for me.
Whenever there is serious input (a lot of notes, like really a lot) stuck notes occur. In a lot of threads with this topic this link is posted: https://cycling74.com/tutorials/polyphonic-synthesizer-video-tutorial/
But even in that patch it's the same issue. If the att and decay times are a bit longer and you start sending a lot of midinotes some of them get stuck. It's obvious of course, that there are more notes than voices but isn't voice stealing activated to take care of that? Isn't that the whole point of that attribute?
I could actually live with some clicks now and then. Everything is better then stuck notes which are even out of reach for a panic button (note off everything).

maybe I'm totally on the wrong track and someone can clear this up for me?

I can't attach my subpatch because it's very complicated to pull it out of the whole patch.

thanks

DominikK's icon

Another thing that's driving me crazy since hours is an issue that i just can't track down.
Somehow a midinote message is not able to allocate properly if there is a chord of multiple notes (6 maximum) sent. With a delay between the notes it works absolutely fine, but as soon as the chord is hit really precise at the same time it allocates them to the same instance, leading to only one sounding note. I can't find any way to fix that because I have no idea what might be the cause for this behaviour....

broc's icon

It seems to be a timing/scheduling problem of midi events.
Make sure that 'Scheduler in Overdrive' is enabled (Options>DSP Status).

DominikK's icon

Overdrive is on. If I programm a delay between the notes of about 4-6ms it seems to work a bit better but still not perfect. That's not really a solution...

broc's icon

Apparently your patch can't handle a certain amount of midi events arriving at the "same" time. To investigate further you could try sending the midi input through [deferlow]. In theory this should ensure that all events are executed, but at the cost of perfect timing.

Masa's icon

I'm having the same problem regarding the 'same time note events' problem.

poly_test3.zip
zip
Masa's icon

I have solved the problem by changing it to [poly object, target message, poly~ object] based system. Only the drawback is that I don't have the voice stealing feature with this modified patch.

poly_test_1603112131.zip
zip
Masa's icon

I was told that the redundant and unconnected thispoly~ was doing something weird to my original patch. The problem was solved very easily, with keeping the voice stealing feature.

poly_test_steal.zip
zip
parkingsun's icon

For anyone else reading this topic having the same problems as me: please note that poly~ voice allocation is broken under max 7.2.0
The Max 7.2.1 update is largely about fixing this. See the 7.2.1 release notes. May you be spared from wasting days of your like on this as I did.