frac32 pitch
frac32 filter resonance
frac32buffer filter input
frac32buffer filter output
frac32.s.map pitch
frac32.u.map.filterq reso
data_filter_biquad_A fd[2];
init_filter_biquad_A(&fd[0]);
init_filter_biquad_A(&fd[1]);
{
int32_t freq;
MTOF(param_pitch + inlet_pitch, freq);
f_filter_biquad_A(&fd[0], inlet_in, outlet_out, freq,
INT_MAX - (__USAT(inlet_reso + param_reso, 27) << 4));
for (int i = 0; i < BUFSIZE; i++) {
int32_t ts = __SSAT(outlet_out[i], 28);
int32_t tsq31 = ts << 3;
int32_t tsq31p3 = ___SMMUL(tsq31, ___SMMUL(tsq31, tsq31));
outlet_out[i] = ts + (ts >> 1) - (tsq31p3) >> 1;
}
f_filter_biquad_A(&fd[1], outlet_out, outlet_out, freq,
INT_MAX - (__USAT(inlet_reso + param_reso, 27) << 4));
}