mike;

What?!  That's sweet!  

The .period( ) one? Yeah I like that one and I should as I wishlisted it it :¬). It's good for optimising stuff like this and for setting LFO speeds to match BPM and so on.
 
What other methods are there in there undocumented?  ;-)


Hmmm, is that undocumented? I think it was at least in the VERSIONS file, I think it is in other places too and I used it on the list before as well.

As for other undocumented features; there is a complete list of all undocumented features, libraries and UGens on the WiKi but I lost the URL when my bookmarks got lost in a HD format.
;¬)

Anyway, making the time-advancing of a controler loop a harmonic (or sub-harmonic) of the pitch is a great trick for good trades in CPU vs fidelity. As a extra bonus the artefacts of such operations should be hamonics as well so less objectionable then the less related artefacts caused by more or less random periods like 10::ms. This is of course without taking the quantizing effects of the sample-rate into account, at least rounding errors shouldn't carry like they will in some other systems where the control rate will be quantised as well and not just it's effects.

From your other post;

> Here, you'd have to pick something closer to the sample rate for gain-changes.

Yes, I think so. Of course we need to take the context into account when trying to optimise like this. Personally I'd look into using one of the Gen UGens or some similar method to generate a envelope. You could also use a SndBuf to store a wave-table and use that as a arbitarily shaped envelope with a Gain used as a VCA. In that case, because of the memory usage of the buffers I'd definitely re-cycle shreds using Events and signalling.

All of these have advantages and disadvantages; we *always* have to trade, I fear, but there are definitely interesting options open to you.

Yours,
Kas.