SDL icon indicating copy to clipboard operation
SDL copied to clipboard

New resampler: aliasing when downsampling

Open SDLBugzilla opened this issue 4 years ago • 0 comments

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.

SDLBugzilla avatar Feb 11 '21 00:02 SDLBugzilla