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).
All subarrays, if not nil, should have the same length.
The excitation input to the resonant filter bank.
A scale factor multiplied by all frequencies at initialization time.
An offset added to all frequencies at initialization time.
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: