http://sr-convert.sourceforge.net/

I just found it by accident searching for a commandline convolver. It seems like it has been never mentioned here before.

From the online help:
QUOTE
What It Is. sr-convert is a command-line utility which converts .WAV files from one sampling rate to another. It is designed to have high fidelity while also offering reasonable performance.

sr-convert supports both upsampling (converting to a higher sampling rate) and downsampling (converting to a lower sampling rate). When upsampling, sr-convert carefully preserves all the frequencies present in the original file while eliminating noise in higher frequencies. Low-frequency files upsampled with sr-convert usually sound better than the originals, because sr-convert eliminates all high-frequency noise, and most PC hardware is not designed to do that during playback. (In effect, the file sounds better because you’re using sr-convert’s digital filter instead of using the filters built into your sound card and/or device drivers.)

When downsampling, sr-convert preserves all the frequences that can be present in the output file while eliminating frequencies that cannot be represented correctly. Therefore, the kind of noise known as aliasing (produced when a high-frequency sound is sampled at a rate too low to represent it) is virtually eliminated.

Upsampling and downsampling are both done using linear convolution and an all-pass filter. This method is vastly superior to duplicating and dropping samples, and is also superior to linear or polynomial interpolation. One side effect of this approach is that a fraction of a second of silence is added to each end of the file.


It seems like it supports many sample rates but so far only 8 + 16 bit fixed point. I haven't read about dither/truncation algorithms used. Comparison to SSRC and other resamplers might be interesting.