[PD] Realtime-version of I07.phase.vocoder.pd
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,
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