48000.0 => float srate; fun void setLP(BiQuad filter, float freq, float Q) { (2.0 * pi * freq) / srate => float w0; math.sin(w0) / (2.0 * Q) => float alpha; math.cos(w0) => float cosw0; 1.0 + alpha => float a0; ((1.0 - cosw0) / 2.0) / a0 => filter.b0; (1.0 - cosw0) / a0 => filter.b1; ((1.0 - cosw0) / 2.0) / a0 => filter.b2; (-2.0 * cosw0) / a0 => filter.a1; (1.0 - alpha) / a0 => filter.a2; } fun void setHP(BiQuad filter, float freq, float Q) { (2.0 * pi * freq) / srate => float w0; math.sin(w0) / (2.0 * Q) => float alpha; math.cos(w0) => float cosw0; 1.0 + alpha => float a0; ((1.0 + cosw0) / 2.0) / a0 => filter.b0; (-1.0 - cosw0) / a0 => filter.b1; ((1.0 + cosw0) / 2.0) / a0 => filter.b2; (-2.0 * cosw0) / a0 => filter.a1; (1.0 - alpha) / a0 => filter.a2; }