Friday, July 10, 2015

pd34. Delay Lines in Pure Data

Time and frequency have reciprocal relationships. Thus a lot of audio effects depend on delays.


A delwrite~ object delays the incoming audio signal. Since it is audio rate, we have a tilde at the end. It has two arguments; the name of the delay line as well as its length (in milliseconds). The length has to be greater than any delays you might have later on. While you might want to make this very large, so to have any amount of delay, this will increase memory requirements. Thus, it should be a little more than the greatest delay required.


A delread~ object reads the delay line at the specified delay.


Here the input is a sinusoidal with amplitude of 0.5. The frequency of the sinusoid is 440 Hz, which corresponds to a period of 2.2727 milliseconds. A delay of 10 periods corresponds to 22.727 milliseconds, while a delay of 10.5 periods corresponds to a delay of 23.8636 milliseconds.


If a periodic signal is added with a delayed wave which is a multiple of period, there is constructive interference and leads to a wave double the amplitude, which is 0.5*2 = 1 in this case. If a periodic signal is added with a delay which is a multiple of the period plus half a period, destructive interference occurs and the new amplitude is 0.



The top shows destructive interference (it should be zero, however the amplitude is not totally zero because we approximated delay time to 4 decimal positions, etc.) The bottom shows constructive interference. If the signal had not been halved originally, there would have been clipping.


No comments:

Post a Comment