[linux-audio-user] Converting sample rate: failed...

Erik de Castro Lopo erikd-lad at mega-nerd.com
Tue Sep 14 08:15:14 EDT 2004

I am posting this to the list because I am pretty sure that
Mikhail intended to reply to the list rather than directly
to me. I also think the explanation below will be useful 
for others.

On Tue, 14 Sep 2004 15:49:36 +0400
Mikhail Ramendik <mr at ramendik.ru> wrote:

> This probably means that the libsamplerate resampler kills off higher
> frequencies.

Lowpass filtering is an absolute MUST when doing sample rate
reduction (ie 48kHz to 44.1kHz like you are doing). Failure to 
low pass filter results in audio artifacts which you will hear 
on source material without too much background noise.

That said, libsamplerate applies the absolute minimum lowpass
filtering possible. For instance, with the highest quality
converter provided by libsamplerate, the bandwidth (measured
from 0Hz to the frequency where the lowpass filter has its
-3dB point) is 96.6% of the theoretical best bandwidth. For
a source sample rate of 48kHz and a destination sample rate
of 44.1kHz, the -3dB point would be:

    0.966 * 0.5 * 44100 = 21300 Hz

I think you will agree that this lowpass filter will not kill
off any frequencies that you can hear unless you happen to be
a dog :-).

> When encoding this same source to MP3, I found that it sounds better
> with frequencies above 16 khz suppressed (with lame --lowpass). The
> better sound of libsamplerate is probably of the same nature.

That is a completely different situation and not a valid comparison.

> If I get to encode better recordings, I might not want a lowpass filter

If you fail to lowpass filter before downsampling you WILL get
a crappy sound output.


  Erik de Castro Lopo  nospam at mega-nerd.com (Yes it's valid)
"Windows was created to keep stupid people away from UNIX."
  -- Tom Christiansen

More information about the linux-audio-user mailing list