PitchShift


PitchShift.ar(in, windowSize, pitchRatio, pitchDispersion, timeDispersion, mul, add)


A time domain granular pitch shifter.

Grains have a triangular amplitude envelope and an overlap of 4:1.

in - the input signal.

windowSize - the size of the grain window in seconds. This value cannot be modulated.

pitchRatio - the ratio of the pitch shift. Must be from 0.0 to 4.0.

pitchDispersion - the maximum random deviation of the pitch from the pitchRatio.

timeDispersion - a random offset of from zero to timeDispersion seconds is added to the delay

of each grain. Use of some dispersion can alleviate a hard comb filter effect due to uniform

grain placement. It can also be an effect in itself. timeDispersion can be no larger than windowSize.


(

play({

z = Blip.ar(800, 6, 0.1);

PitchShift.ar(z, 0.02, Line.kr(0.1,4,20), 0, 0.0001)

}))


(

// pitch shift input - USE HEADPHONES to prevent feedback.

play({

PitchShift.ar(

SoundIn.ar([0,1]), // stereo audio input

0.1, // grain size

MouseX.kr(0,2), // mouse x controls pitch shift ratio

0, // pitch dispersion

0.004 // time dispersion

)

}))


(

// use PitchShift to granulate input - USE HEADPHONES to prevent feedback.

// upper left corner is normal playback. x = pitch dispersion, y = time dispersion

var grainSize;

grainSize = 0.5;

play({

PitchShift.ar(

SoundIn.ar([0,1]), 

grainSize, 

1, // nominal pitch rate = 1

MouseX.kr(0,1), // pitch dispersion

MouseY.kr(0, grainSize) // time dispersion

)

}))