class: mRingz
constant skirt resonant bandpass filter
Description
A pingable, resonant bandpass filter with a constant bandwidth. Peak gain will vary with different values of Q. Rather than setting Q directly, it is set through a 60dB ring decay time.
Inspired by Supercollider’s Ringz object which is in turn based on K. Steiglitz, “A Note on Constant-Gain Digital Resonators”, Computer Music Journal, vol 18, no 4. pp. 8-10, Winter 1994
Class Methods
Constructor
mRingz(float freq, float decay_time)freq: center frequency of bandpass filter, in Hz
decay_time: Time it takes for filter do decay 60dB (RT60), in seconds
void updateParameters(float freq, float decay_time)Sets center frequency and decay time of filter.
freq: center frequency of bandpass filter, in Hz
decay_time: Time it takes for filter to decay 60dB (RT60), in seconds
int32_t next(int32_t in_sample)Send a sample in the filter and return a sample back. If a short burst of noise is sent into the filter it will be “pinged”, generating an exponentially decaying sine tone.=
Example