Hello. I am looking for opinions of experienced JUCE users about how to do
conversion between 44.1 kHz and 48 kHz.
My original thought was an exact solution to the problem, that is upsampling,
low-pass filtering, down-sampling. That is, sinc filtering. The 147 / 160
ratio is a pain of course. I faintly recall that polyphase filters are the way
to go to efficiently solve these problems.
I have not found any such solution in JUCE though, maybe I am missing
something? I’ve found the Lagrange and Catmull-Rom interpolator, but both of
these are just approximations, not the real thing, so I distrust them. Are
these acceptable in professional grade audio applications?
I also found https://github.com/justinfrankel/WDL/tree/master/WDL where
resample.cpp contain implementations that offer sinc
interpolation. They also seem to be an approximation, because you can specify
the width of the sinc, whereas the upsample, filter, dowsample approach
corresponds to a theoretically infinite sinc. The code also seems suspiciously
linear, although the compiler may be able to efficiently vectorize it. Does
anybody have any experience with this?
There is also
lots of configurable parameters. Maybe this is the way to go.
What are you thinking? How would you do 44.1 kHz and 48 kHz sample rate