O2 multimode svf m

multimode filter, state-variable type, modulation inputs
Author: Smashed Transistors based on code by Johannes Taelman
License: BSD
Github: tiar/dev/O2 multimode svf m.axo

Inlets

frac32buffer.bipolar x1

frac32buffer.bipolar x0

frac32 pitch

frac32 resonance

Outlets

frac32buffer highpass filter output

frac32buffer hp0

frac32buffer bandpass filter output

frac32buffer bp0

frac32buffer lowpass filter output

frac32buffer lp0

Parameters

frac32.u.map.filterq reso

frac32.s.map.pitch pitch

Declaration
int32_t low;
int32_t band;
Init
low = 0;
band = 0;
Control Rate
int32_t damp = (0x80 << 24) - (__USAT(inlet_reso + param_reso, 27) << 4);
damp = ___SMMUL(damp, damp);
int32_t alpha;
int32_t freq;
int32_t pitch = __SSAT(param_pitch + inlet_pitch, 28);
MTOFEXTENDED(pitch, alpha);
SINE2TINTERP(alpha >> 1, freq);
Audio Rate
int32_t in1 = inlet_x1;
int32_t notch = inlet_x1 - (___SMMUL(damp, band) << 1);
low = low + (___SMMUL(freq, band) << 1);
int32_t high = notch - low;
band = (___SMMUL(freq, high) << 1) + band; // - drive*band*band*band;
outlet_lp1 = low;
outlet_hp1 = high;
outlet_bp1 = band;

in1 = inlet_x0;
notch = inlet_x0 - (___SMMUL(damp, band) << 1);
low = low + (___SMMUL(freq, band) << 1);
high = notch - low;
band = (___SMMUL(freq, high) << 1) + band; // - drive*band*band*band;
outlet_lp0 = low;
outlet_hp0 = high;
outlet_bp0 = band;

Privacy

© 2024 Zrna Research