I need to perform some sample rate conversion on a buffer holding samples of std::complex<float>
samples. I’d like to use the interpolator classes provided by JUCE, e.g. LagrangeInterpolator
or CatmullRomInterpolator
, however they are designed to interpolate a buffer of non-interleaved float samples. As std::complex
samples are interleaved real / imag data I need to de-interleave the buffer, perform the conversion on real and imag part with two interpolator instances and re-interleave the result afterwards.
This seems to be a lot of overhead, especially given the fact that as far as I understand the algorithms it would be perfectly possible to make it templated and directly operate on complex values or SIMD registers, just like the filters from the dsp module. Are there any chances that it gets re-designed to fit the templated style of the dsp module or does anyone know a good third party implementation that can works with interleaved sample buffers?