[PD] Realtime-version of I07.phase.vocoder.pd

Claude Heiland-Allen claudiusmaximus at goto10.org
Sun May 20 01:53:31 CEST 2007

Luigi Rensinghoff wrote:
> 1) How to avoid clicks when the whole contents of a table is replaced/ 
> updated. I tried something with vline....are there some "zero- 
> crossing" modules for that ?

Fade playback volume to zero, do the switch, fade playback volume up. 
Vary curve to suit the sound, but that's the general approach I think.

A variation uses two tables played back simultaneously, staggered like:

aAa aAa aAa aAa ...
. bBb bBb bBb bBb ...

with volume envelopes such that the total volume is constant.  I think 
this is used in a delay-based pitchshifting example in the docs.

> 2) It seems to be possible to replace the contents of a table (the  
> beginning) while playing the later contents of it. Is it possible to  
> replace just a portion of a table without overwriting until the end ?

Yes, see [tabwrite~] help (the "stop" message in particular).

>       the whole patch becomes somewhat unstable because of the  
> graphics-display, any idea for a workaround ?

Use [table] instead of a graphical array.

> 3) if i have a quite fast running number (index). "select" seems to  
> be to slow or unstable in any way quite unreliable. i made a  
> workaround with moses and ">" ...not very elegant.

This is a limitation of floating point arithmetic, once you go past a 
certain size absolute precision becomes less, so integers are missing 
(ie, there is a floating point number where a + 1 => a, this might also 
extend to "for any given b, you can find an a such that a + b => a", but 
I'm not sure).

The solution / workaround is to use chained counters all counting with 
[+ 1]-[mod n]-[select 0], much like a clock uses seconds, minutes, 
hours, etc.

Either that or recompile Pd to use double-precision floats, which isn't 
trivial, and would only postpone the issue (although by a great deal).


More information about the Pd-list mailing list