Erik de Castro Lopo wrote:
On Fri, 22 Apr 2005 19:48:47 +0200
Olivier Guilyardi <ml(a)xung.org> wrote:
About vary speed : I could use libsoundtouch
instead of libsamplerate,
but I'm not sure the former can compare to the later's quality.
Last time I looked, libsoundtouch used linear interpolation for
doing vary speed. Linear interpolation is evil. Here is a table
from a talk I presented a the audio minconf attached the LCA.
The table is for doing linear interpolation for sample rate
converting from 44100 to 48000. The signal is a single sine wave
at the frequencies in the left column. The right column is the
measured signal to noise ratio at the output:
333 Hz & 146.0 dB \\
666 Hz & 115.8 dB \\
1332 Hz & 103.8 dB \\
2664 Hz & 49.8 dB \\
5328 Hz & 38.7 dB \\
10656 Hz & 28.4 dB \\
21312 Hz & 19.5 dB \\
Linear interpolation is simply no damn good unless you are *positive*
the maximum frequency in your source material is less that 0.06 of
the sample rate. For any real world signal, this is simply not the
case.
S
Well, I agree with you that linear interpolation is not great, but
realisticaly, compare to the artefacts created by a standart
time-stretching algorithm, it is not that significant. It all depends on
the time-stretch algorithm, and soundtouch is using a wsola algorithm.
Having implemented and tested a WSOLA algorithm myself, I would say the
sample rate convertor has almost no impact compared to the artefacts of
WSOLA.
Cheers,
David