http://bugs.winehq.org/show_bug.cgi?id=14717
--- Comment #19 from Krzysztof Nikiel zzdz2@yahoo.pl 2010-11-24 13:00:50 CST --- Created an attachment (id=32114) --> (http://bugs.winehq.org/attachment.cgi?id=32114) Transfer function of the resample filter
Hopefully the attached image will get correct mime type from bugzilla. It's created using the same table as in the patch. The approach is rather conservative, transition is well below Nyquist frequency. Usually(in commercial/hardware apps) the transition band seems rather centered around Nyquist and that's probably the best setting.
As to the comparison to the other resampler engines, my goal is to create ultimate resampler. It may be the other way around, our resampler will be better than them.
cutoff = 1.0 - 1.0/filter_size; if (cutoff < 0.80) cutoff = 0.80;
What does it mean, is it passband width, start of the stopband?
The whole band may be divided into parts: passband: signal passes unattenuated; transition band: signal becomes more and more attenuated; and finally the stopband: signal is attenuated as much as possible.
In my code the passband if from 0 to (0.96-0.15)*Nyquist and transition from (0.96-0.15) to 0.96. Stopband ripples are more than 80dB below the main signal. That gives just top quality output.
I don't remember now where the "0.96" came from. It actually was quite old code of mine, initially based on the original "resample" source, but then rewritten a few times. Now rewritten again.