fixed-point: done with mix_pitch_and_residual() though a bit of cleaning up