armBPsvf

Bandpass filter, state-variable type, audiorate modulation inputs (use with complexSH oscillator and armMOD for complex filtering)
Author: Remco van der Most
License: BSD
Github: sss/filter/armBPsvf.axo

Inlets

frac32buffer filter input

frac32buffer pitch

frac32buffer reso

Outlets

frac32buffer filter output

Parameters

frac32.s.map.pitch pitch

frac32.u.map.filterq reso

int32 mode

Declaration
int32_t low;
int32_t band;
int32_t hp;
Init
low = 0;
band = 0;
Audio Rate
int32_t damp = (0x80 << 24) - (__USAT(inlet_reso + param_reso, 27) << 4);
damp = ___SMMUL(damp, damp);
int32_t alpha;
int32_t freq;
MTOFEXTENDED(param_pitch + inlet_pitch, alpha);
SINE2TINTERP(alpha, freq);

int32_t in1 = inlet_in;
int32_t notch = inlet_in - (___SMMUL(damp, band) << 1);
low = low + (___SMMUL(freq, band) << 1);
int32_t high = notch - low;
band = (___SMMUL(freq, high) << 1) + band -
       (___SMMUL(band << 1, ___SMMUL(band << 1, band << 1) << 4));
switch (param_mode) {
case 0:
  outlet_out = low;
  break;
case 1:
  outlet_out = band;
  break;
case 2:
  outlet_out = high;
  break;
case 3:
  outlet_out = notch;
  break;
}
hp += outlet_out - hp >> 9;
outlet_out -= hp;

Privacy

© 2024 Zrna Research