hi,
I have just tried embedding grain~.pd abstraction (the one used in nqpoly~-test.pd) in rabin~. Maximum number of non-crackling voices in nqpoly~-test.pd on my 800Mhz box is 90. In rabin~ it went down to 75. The reason why rabin~ is slower is my checking for under- and overflows in each of the voices before adding to the mixdown. The reason why nqpoly~ does not have this penalty is that if there are several signals input into one inlet, they are all summed without checking (vide plus_perf8()).
Without these checks rabin~'s performance is exactly equal to nqpoly~'s. Further speedup is probably impossible.
The question is: are the checks necessary in this context?
Krzysztof
pix wrote: ...
tell, my nqpoly~ abstraction does at least what rabin~ is trying to do... only it does it using a self-constructing abstraction rather than as an external. still, it gets pretty good performance.