[linux-audio-dev] jack_process and pitch-shifting

Cournapeau David cournape at enst.fr
Sun Apr 24 09:26:01 UTC 2005


Erik de Castro Lopo wrote:

>On Fri, 22 Apr 2005 19:48:47 +0200
>Olivier Guilyardi <ml at 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



More information about the Linux-audio-dev mailing list