frac32buffer input
frac32 semitone
frac32 harmshift
frac32 ratioshift
frac32buffer output
frac32.s.map.pitch freq
int32_t val;
val = 0;
int32_t f;
MTOF(param_freq + inlet_semitone, f);
// val =
// ___SMMLA((inlet_in-val)<<1,___SMMUL((f+___SMMUL(f<<7,inlet_harmshift<<2))<<6,inlet_ratioshift<<3),val);
int32_t g = (f + ___SMMUL(f << 5, inlet_harmshift << 2));
int32_t h = ___SMMUL(g << 4, inlet_ratioshift << 4);
int32_t i = ((h > 0) ? h : -h);
val = ___SMMLA((inlet_in - val) << 1, i, val);
outlet_out = val;