[PD] audio delay

joel silvestre j.silvestre at wanadoo.fr
Tue Dec 2 15:37:02 CET 2008


Hi Franck,

very interesting!

I've tried delwrite~ / delread~ and it's looks like to me that the
minimum delay can't be less than one audio block ( sound card buffer ).
Am I wrong?

Thanks a lot!
Joël


Le mardi 02 décembre 2008 à 14:50 +0100, Frank Barknecht a écrit :
> Hallo,
> joel silvestre hat gesagt: // joel silvestre wrote:
> 
> > I'm searching how to do a sample resolution audio delay. Is it possible?
> 
> Yes, even in multiple ways: One would involve [rzero~]. rzero acts like
> this on audio input: 
> 
>  y[n] = x[n] - a[n] * x[n-1]
> 
>  y[n]: output sample n
>  x[n]: input sample n
> 
> If you set a = 1 and substract this from the original signal, you get: 
> 
>  y[n] = x[n] - (x[n] - x[n-1]) = x[n-1]
> 
> You could also set a = -1 and substract the original from rzero's output:
> 
>  y[n] = (x[n] + x[n-1]) - x[n]) = x[n-1]
> 
> Both are a one sample delays. In Pd the first approach would realised as:
> 
>  [inlet~]
>  | \
>  |  [rzero~ 1]
>  |  |
>  [-~]
>  |
>  [outlet~]
> 
> Another way would be to use a normal delay with [delwrite~] and
> [delread~] and set the delay time to be one sample. One sample at a
> samplerate SR takes 1/SR seconds or 1000/SR milliseconds, so do this: 
> 
>  [samplerate~]
>  |
>  [swap 1000]
>  |     /
>  [/~  ]
>  |
>  [* 1]
>  |
>  [delread~ mydelay]
> 
> Use this approach if you want to calculate delay times with more than
> one sample. Just change the [* 1] to [* 5] to get a delay of five
> samples, for example.
> 
> Ciao
> 
> _______________________________________________
> Pd-list at iem.at mailing list
> UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
> 






More information about the Pd-list mailing list