68 lines
1.9 KiB
Text
68 lines
1.9 KiB
Text
class:: BufCombN
|
|
summary:: Buffer based comb delay line with no interpolation.
|
|
related:: Classes/BufCombC, Classes/BufCombL, Classes/CombN
|
|
categories:: UGens>Delays>Buffer
|
|
|
|
|
|
Description::
|
|
|
|
Comb delay line with no interpolation which uses a buffer for its
|
|
internal memory. See also link::Classes/BufCombL:: which uses linear
|
|
interpolation, and link::Classes/BufCombC:: which uses cubic
|
|
interpolation. Cubic interpolation is more computationally
|
|
expensive than linear, but more accurate.
|
|
|
|
|
|
classmethods::
|
|
|
|
method::ar
|
|
|
|
argument::buf
|
|
Buffer number.
|
|
|
|
argument::in
|
|
The input signal.
|
|
|
|
argument::delaytime
|
|
Delay time in seconds.
|
|
|
|
argument::decaytime
|
|
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.
|
|
|
|
argument::mul
|
|
|
|
argument::add
|
|
|
|
discussion::
|
|
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.
|
|
::
|
|
|
|
Examples::
|
|
|
|
code::
|
|
|
|
// These examples compare the variants, so that you can hear the difference in interpolation
|
|
|
|
// allocate buffer
|
|
b = Buffer.alloc(s,44100,1);
|
|
|
|
// Comb used as a resonator. The resonant fundamental is equal to
|
|
// reciprocal of the delay time.
|
|
{ BufCombN.ar(b.bufnum, WhiteNoise.ar(0.01), XLine.kr(0.0001, 0.01, 20), 0.2) }.play;
|
|
|
|
{ BufCombL.ar(b.bufnum, WhiteNoise.ar(0.01), XLine.kr(0.0001, 0.01, 20), 0.2) }.play;
|
|
|
|
{ BufCombC.ar(b.bufnum, WhiteNoise.ar(0.01), XLine.kr(0.0001, 0.01, 20), 0.2) }.play;
|
|
|
|
// with negative feedback:
|
|
{ BufCombN.ar(b.bufnum, WhiteNoise.ar(0.01), XLine.kr(0.0001, 0.01, 20), -0.2) }.play;
|
|
|
|
{ BufCombL.ar(b.bufnum, WhiteNoise.ar(0.01), XLine.kr(0.0001, 0.01, 20), -0.2) }.play;
|
|
|
|
{ BufCombC.ar(b.bufnum, WhiteNoise.ar(0.01), XLine.kr(0.0001, 0.01, 20), -0.2) }.play;
|
|
|
|
// used as an echo.
|
|
{ BufCombN.ar(b.bufnum, Decay.ar(Dust.ar(1,0.5), 0.2, WhiteNoise.ar), 0.2, 3) }.play;
|
|
|
|
::
|
|
|