From Audacity Wiki
Revision as of 15:57, 2 December 2007 by Richardash1981 (talk | contribs) (note on disabling both libs plus why not)
Jump to: navigation, search

Resampling is the operation of converting from audio represented at one sampling rate to a representation at another sample rate with minimum losses.

libresample is audacity's implementation of the sinc function re-sampling algorithm, originally produced by Dominic Mazzoni based on Julius Smith's code at Stanford. The interface is very similar to Erik de Castro Lopo's [SRC].

Why didn't we just use SRC? Basically it's all down to licensing. SRC and Audacity are both under the [GNU GPL], so there shouldn't be a problem. However, the GPL requires that all the other libraries that an application links against (and so depends on) must also be under compatible licenses. If audacity loads a bunch of non-free, non-open source VST plug-ins, does this break the GPL? We (the Audacity developers) don't think so because they are optional, run-time plug-ins. The FSF is not terribly clear on the issue, and Erik de Castro Lopo thinks it breaks the GPL.

It's his library, so we don't release versions of audacity with SRC. However if you are building audacity for Linux, where the chances of using a closed-source binary plug-in are very low, you can configure audacity to link against an external copy of SRC if you wish.

In principal it's possible to disable both libresample and libsamplerate, however because you get a version of audacity with no support for changing sample rates, it's not recommended. For a start, if you open a file created with a sample rate that your sound card doesn't support, then you won't be able to play it back.