/usr/share/SuperCollider/HelpSource/Classes/PitchShift.schelp is in supercollider-common 1:3.8.0~repack-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | class:: PitchShift
summary:: Time domain pitch shifter.
categories:: UGens>Filters>Pitch
Description::
A time domain granular pitch shifter. Grains have a triangular amplitude
envelope and an overlap of 4:1.
classmethods::
method::ar
argument::in
The input signal.
argument::windowSize
The size of the grain window in seconds. This value cannot be
modulated.
argument::pitchRatio
The ratio of the pitch shift. Must be from 0 to 4.
argument::pitchDispersion
The maximum random deviation of the pitch from the
code::pitchRatio:: .
argument::timeDispersion
A random offset of from zero to
code::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.
code::timeDispersion:: can be
no larger than
code::windowSize:: .
argument::mul
Output will be multiplied by this value.
argument::add
This value will be added to the output.
Examples::
code::
(
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(
AudioIn.ar([1,2]), // 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(
AudioIn.ar([1,2]),
grainSize,
1, // nominal pitch rate = 1
MouseX.kr(0,1), // pitch dispersion
MouseY.kr(0, grainSize) // time dispersion
)
}))
::
|