Klank is a bank of fixed frequency resonators which can be used to simulate the resonant modes of an object. Each mode is given a ring time, which is the time for the mode to decay by 60 dB.
Klank is a bank of Ringz filters. Formlet is equivalent to Ringz.ar(... decay...) - Ring.ar(... attack...)
. Therefore, a more efficient way to make a bank of fixed-parameter Formlet filters is Klank(`decaySpecs, ...) - Klank.ar(`attackSpecs, ...)
or Klank.ar(`specs, ..., decayscale: decay) - Klank.ar(`specs, ..., decayscale: attack)
.
specificationsArrayRef |
A Ref to an Array of three Arrays:
All subarrays, if not nil, should have the same length. |
input |
The excitation input to the resonant filter bank. |
freqscale |
A scale factor multiplied by all frequencies at initialization time. |
freqoffset |
An offset added to all frequencies at initialization time. |
decayscale |
A scale factor multiplied by all ring times at initialization time. |
The parameters in specificationsArrayRef
can't be changed after it has been started. For a modulatable but less efficient version, see DynKlank.
Four resonators each at maximum amplitude of 1.0 and ring times of 1 second, different exciters and no scaling:
Three resonators at maximum amplitude of 1.0, random frequency and ring times. Excited by two pulses at 2 and 2.5 Hz:
Multichannel Expansion via an array of specs (note the ` before the opening bracket of the parameter array!):
A SynthDef that generates 4 partials used in different configurations:
Advanced examples: