- Finally a real web forum for Max/MSP! Very nice. Joining a mailing list never was an option for me, and trying to find answers for my problems in the mail archives was kind of... discouraging, to say the least.
So, anyway, here's a question I'd appreciate some help with. I'm doing something as awkward as making a sampler and a synth in Max/MSP (...those of you who also have experiences with Reaktor will know what I mean by "awkward"...). Among the most serious problems is the poly~ object not doing voice stealing very well - it does not steal from the oldest note. So I made my own voice allocation system, which works exactly the way I want it to.
That is, as long as the cpu load is less than 50%. If it's higher, I get serious timing problems. The note events get way too slow, and - even though I've forced note-on events to be sent after pitch events into the poly~ instances - the voice instance is very likely to start sounding long before it catches the right pitch, especially at very high cpu loads.
Is there a known solution to this? Either - make MSP's poly~ steal mode behave properly, or some clever external which does the job with reliable timing? Or a way to force event priority for a specific part of a patch to the highest level? I mean, as high as audio processing - in this situation there's no need for reliable audio if you can't have reliable voice allocation. I know about the defer and deferlow objects, but they don't seem to be appropriate - Max is supposed to prioritize MIDI events anyway. It seems the heavy audio processing is messing with the MIDI timing, and that's not the way it should be.
BTW, is there any way at all to get reliable event timing? (...Yes, overdrie is on.) Trying to generate events off an audio object didn't get me any closer to it. I'm not at all sure the timing would be better if I used poly~'s own voice allocation, because the metro object is supposed to belong to the same prioritized category as MIDI events, and I've heard what a little cpu sweat does to the metro timing...
Any input appreciated - thanks in advance,