Hallo, Bj?rn Nielsen hat gesagt: // Bj?rn Nielsen wrote:
This is my first mail to the list and I am a newbie in PD, so please bear with me.
We're going to stompbox you hard! No, of course not, welcome on board! ;)
I am trying to make a patch that simulates the delay effects I use as a stompbox for my guitar. I.e. a signal delay line, with a parameter of feedback and a parameter of delay time. While changing the delay time parameter the ongoing sampled part should change pitch.
My first attempt (as in the attached patch) is to use delread~/delwrite~, but changing the lenght of the sampled part in delread~ makes a lot of clicks noises (which can be fun, but not what I intended) and it do not change pitch.
So you want to use the delay effect as a pitchshifter.
Pitchshifting with a delay works by constantly changing the delay time, i.e. making it continously become slower or faster. (Using a not changing, constant delay would not change pitch, it just delays the signal.) For that you should drive your delay reader with an audio signal, otherwise you don't get constant pitch shifting, but jumps which are audible as clicks.
The object to use when you want variable delay times is called [vd~], it takes a signal input. To get a constantly growing delay time, you could for example drive it by a [phasor~], multiplied by some scalign factor.
But now at some point in time the phasor~ will wrap around and restart at 0 or you may even reach the end of the delay buffer. To work against that you can use overlapping and windowed phasors which you make by adding 0.5 to a phasor~ and applying [wrap~] to that signal path to get a second phasor~-like signal that is half out ouf phase to the original.
Then you drive two [vd~] objects with these phasor~s and add them together. With the correct windowing they sound almost like one delay.
This procedure is implemented in the example 3.audio.examples/G09.pitchshift.pd and a more verbose explanation is in Miller Puckette's book (which also explains the strange-looking multiplication by 0.05776 in the example.)
See http://crca.ucsd.edu/~msp/techniques/latest/book-html/node115.html and http://crca.ucsd.edu/~msp/techniques/latest/book-html/node125.html
Frank