I'm implementing a variable fractional delay element for use in online audio processing. Applications include ie. Karplus-Strong synthesis, flanger, chorus, echo, vibrato. I'm not oversampling, so drop-sample and linear interpolation are not really acceptable for interpolation.
Could a low order sinc FIR work as an alternative to 2:nd+ order polynomial interpolation? By low order I mean on the order of just a few zero crossings.
I really like sinc interpolation because it offers two advantages over polynomial interpolation.
- Coefficients (table of windowed sinc values) are independent of the delay amount, whereas in polynomial interpolation the filter coefficients are an N:th order polynomial of the delay amount. This complicates the code when the amount of delay is variable.
- Coefficients are independent of interpolation order. For polynomial interpolation you need precomputed polynomials in the delay amount for all the orders you might need.
The main drawback I see with higher order sinc interpolation is the amount of latency it imposes. N+1 point polynomial interpolation of order N gives just N/2 samples of latency.
I have also considered 1 pole allpass interpolation, but I suspect it will have bandwidth problems similar to linear interpolation. (Is multi pole allpass interpolation a thing?)