Forgot a help fix: Drag a dock's title bar, not divider, to reposition
[supercollider.git] / HelpSource / Classes / BufCombN.schelp
blob18e7ec436811f6e4591ee16e3757af8ca6d93c71
1 class:: BufCombN
2 summary:: Buffer based comb delay line with no interpolation.
3 related:: Classes/BufCombC, Classes/BufCombL, Classes/CombN
4 categories::  UGens>Delays>Buffer
7 Description::
9 Comb delay line with no interpolation which uses a buffer for its
10 internal memory. See also  link::Classes/BufCombL::  which uses linear
11 interpolation, and  link::Classes/BufCombC::  which uses cubic
12 interpolation. Cubic interpolation is more computationally
13 expensive than linear, but more accurate.
16 classmethods::
18 method::ar
20 argument::buf
21 Buffer number.
23 argument::in
24 The input signal.
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
34 argument::add
36 discussion::
37 Warning:: For reasons of efficiency, the effective buffer size is limited to the previous power of two. So, if 44100 samples are allocated, the maximum delay would be 32768 samples.
40 Examples::
42 code::
44 // These examples compare the variants, so that you can hear the difference in interpolation
46 // allocate buffer
47 b = Buffer.alloc(s,44100,1);
49 // Comb used as a resonator. The resonant fundamental is equal to
50 // reciprocal of the delay time.
51 { BufCombN.ar(b.bufnum, WhiteNoise.ar(0.01), XLine.kr(0.0001, 0.01, 20), 0.2) }.play;
53 { BufCombL.ar(b.bufnum, WhiteNoise.ar(0.01), XLine.kr(0.0001, 0.01, 20), 0.2) }.play;
55 { BufCombC.ar(b.bufnum, WhiteNoise.ar(0.01), XLine.kr(0.0001, 0.01, 20), 0.2) }.play;
57 // with negative feedback:
58 { BufCombN.ar(b.bufnum, WhiteNoise.ar(0.01), XLine.kr(0.0001, 0.01, 20), -0.2) }.play;
60 { BufCombL.ar(b.bufnum, WhiteNoise.ar(0.01), XLine.kr(0.0001, 0.01, 20), -0.2) }.play;
62 { BufCombC.ar(b.bufnum, WhiteNoise.ar(0.01), XLine.kr(0.0001, 0.01, 20), -0.2) }.play;
64 // used as an echo.
65 { BufCombN.ar(b.bufnum, Decay.ar(Dust.ar(1,0.5), 0.2, WhiteNoise.ar), 0.2, 3) }.play;