t k = 0; k < feedback.length; ++k)
            yn -= feedback[k] * y[index - k];

          y[index] = yn;
        }

        return y.slice(workSize).map(Math.fround);
      }

      // Cascade the two given biquad filters to create one IIR filter.
      function cascadeBiquads(f1Coef, f2Coef) {
        // The biquad filters are:
        //
        // f1 = (b10 + b11/z + b12/z^2)/(1 + a11/z + a12/z^2);
        // f2 = (b20 + b21/z + b22/z^2)/(1 + a21/z + a22/z^2);
        //
        // To cascade them, mul