I'm attempting to remove the zipper noise from the standard G02.delay.loop patch. Unlike with a variable delay, within this patch there seems to be no viable place to hook a [line~] object in. I'm sorry if this is a rather novice question, but how would i go about removing the zipper noise from this patch?
-
Removing zipper noise from 602.delay.loop?
-
[sound input]
|
| [342] <------------creates zipper noise when adjusted
| |
| [delread~ G02-del 160]
| |
| [*~ 0.7]
| /
[+~]
| \
| [delwrite~ G02-del 2000]
|
|
outputI've tried to add a [line~] as well as a [line] in here but there seems to be no viable place for it. Any suggestions?
-
the reason you experience a zipper noise is that the audio in pd only interacts with messages every signal block which is by default 64 samples. because the inlet for delread~ is a message-rate inlet, you can not pass it a signal in that inlet. so every 64 samples delread~ essentially samples the last message received in it's inlet, which controls the delay time.
internally delwrite~, delread~, and vd~ use a circular buffer. the delay time corresponds to how far away the current reading point is from the current writing point in the buffer. The writing point and the reading point always move 1 index forward (modulo the buffer size) every sample. However the user can set the delay time with a message in the case of delread~ which, every 64 samples, changes how far away the reading point is from the writing point. If changed at message rate this results in a signal discontinuity because the "voltage" of the new read point usually has a very different amplitude than it would have if it had just progressed 1 sample. (instead it progressed 1 sample and jumped to the new delay time, which is a new distance between the write point and the read point)the solution? use the vd~ object instead. You can change the delay time with line~, and when the signal delay time would be in between samples vd also interpolates with lagrange interpolation, which attempts to smooth the transition between samples
edit: just re-read your post, was there any reason for avoiding vd~?
-
I avoided vd~ because I could not figure out how to use it to get a feedback loop like the looping delay example, since it behaves a bit differently. I am going to try to figure it out again, but please let me know if anything comes to mind.
I'm still really new to pd, but thanks for your help! -
It doesn't behave differently except that it accepts a signal instead of messages, you can just replace delread~ with vd~ in the above patch and then replace the message box with something like
[number box)
|
[pack f 50]
|
[line~]
| -
cool! i'll try that
-
that worked! Thanks, guys!
I appreciate you two dealing with my noviceness.