10 Filter Filter::lpf(float cutoff_radians)
12 float resonance = 1.0f / sqrt(2.0f);
13 float sn = sin(cutoff_radians), cs = cos(cutoff_radians);
14 float alpha = float(sn / (2 * resonance));
16 // coefficients for lowpass filter
18 float b0 = (1 - cs) * 0.5f;
24 return Filter(a0, a1, a2, b0, b1, b2);
27 Filter Filter::hpf(float cutoff_radians)
29 float resonance = 1.0f / sqrt(2.0f);
30 float sn = sin(cutoff_radians), cs = cos(cutoff_radians);
31 float alpha = float(sn / (2 * resonance));
33 // coefficients for highpass filter
35 float b0 = (1 + cs) * 0.5f;
41 return Filter(a0, a1, a2, b0, b1, b2);