sclang: ServerShmInterface - try to avoid multiple destructor calls
[supercollider.git] / HelpSource / Classes / AllpassC.schelp
blob2f966bf9a75e6ebd8bf8cb8e58ac8a2090f9c565
1 class:: AllpassC
2 summary:: All pass delay line with cubic interpolation.
3 related:: Classes/AllpassL, Classes/AllpassN, Classes/BufAllpassC
4 categories::  UGens>Delays
7 Description::
9 All pass delay line with cubic interpolation. See also
10 link::Classes/AllpassN::  which uses no interpolation, and
11 link::Classes/AllpassL::  which uses linear interpolation.
12 Cubic interpolation is more computationally expensive than linear,
13 but more accurate.
16 classmethods::
18 method::ar, kr
20 argument::in
21 The input signal.
23 argument::maxdelaytime
24 The maximum delay time in seconds. Used to initialize the delay buffer size.
26 argument::delaytime
27 Delay time in seconds.
29 argument::decaytime
30 Time for the echoes to decay by 60 decibels. If this time is negative then the feedback coefficient will be negative, thus emphasizing only odd harmonics at an octave lower.
32 argument::mul
33 Output will be multiplied by this value.
35 argument::add
36 This value will be added to the output.
38 Examples::
40 code::
42 // Since the allpass delay has no audible effect as a resonator on
43 // steady state sound ...
45 { AllpassC.ar(WhiteNoise.ar(0.1), 0.01, XLine.kr(0.0001, 0.01, 20), 0.2) }.play;
47 // ...these examples add the input to the effected sound and compare variants so that you can hear
48 // the effect of the phase comb:
52         z = WhiteNoise.ar(0.2);
53         z + AllpassN.ar(z, 0.01, XLine.kr(0.0001, 0.01, 20), 0.2)
54 }.play)
58         z = WhiteNoise.ar(0.2);
59         z + AllpassL.ar(z, 0.01, XLine.kr(0.0001, 0.01, 20), 0.2)
60 }.play)
64         z = WhiteNoise.ar(0.2);
65         z + AllpassC.ar(z, 0.01, XLine.kr(0.0001, 0.01, 20), 0.2)
66 }.play)
69 // used as an echo - doesn't really sound different than Comb,
70 // but it outputs the input signal immediately (inverted) and the echoes
71 // are lower in amplitude.
72 { AllpassC.ar(Decay.ar(Dust.ar(1,0.5), 0.2, WhiteNoise.ar), 0.2, 0.2, 3) }.play;