- reverb (&self->r, input0, input1, output0, output1, n_samples);
+ while (remain > 0) {
+ uint32_t p_samples = remain;
+ if (iterpolate && p_samples > 64) {
+ p_samples = 64;
+ }
+
+ if (iterpolate & 1) {
+ self->v_mix += tau * (mix - self->v_mix);
+ self->r.wet = self->v_mix;
+ self->r.dry = 1.0 - self->v_mix;
+ }
+ if (iterpolate & 2) {
+ self->v_roomsz += tau * ( *self->roomsz - self->v_roomsz);
+ self->r.gain[0] = 0.773 * self->v_roomsz;
+ self->r.gain[1] = 0.802 * self->v_roomsz;
+ self->r.gain[2] = 0.753 * self->v_roomsz;
+ self->r.gain[3] = 0.733 * self->v_roomsz;
+ }
+
+ reverb (&self->r,
+ &input0[offset], &input1[offset],
+ &output0[offset], &output1[offset],
+ p_samples);
+
+ offset += p_samples;
+ remain -= p_samples;
+ }