SDL
SDL copied to clipboard
New resampler: aliasing when downsampling
This bug report was migrated from our old Bugzilla tracker.
These attachments are available in the static archive:
Reported in version: 2.0.7 Reported for operating system, platform: Other, x86
Comments on the original bug report:
On 2017-11-11 18:44:49 +0000, Eric Wasylishen wrote:
Created attachment 3084 sine sweep test case
The issue is SDL_ResampleAudio currently lowpass filters at 0.5*inrate, even in the case when outrate < inrate. In other words, the part of the "band-limited resampling" paper that says - "if rho < 1... the step-size through the filter table is reduced.." is not implemented.
Here is a test case with a 0-48kHz sine sweep sampled at 96kHz.
testresample sweep96k.wav sweep44100.wav 44100 1 sox sweep44100.wav -n spectrogram -o sweep44100.png open sweep44100.png
(careful with the volume if you play these!)
It should be resampled as a single upward sweep that stops at the 22kHz nyquist limit with silence after that, but currently you get a siren effect due to the aliasing. I have a patch in the works for this.