From Audacity Wiki
Revision as of 16:57, 29 August 2007 by Zowie (talk | contribs)
Jump to: navigation, search

This is a page for technical questions about the algorithms used in Audacity. If you have questions about how Audacity works, please post them here and the developers will answer them. Eventually we will get a lot more organised and have explanations of the audacity algorithms in Doxygen format, where they can be both in the source code for Audacity and on a web page like here.

Audacity Resampling

Q: I'd like to know which resampling algorithm does audacity use. I`m studying resampling for my thesis and I`m testing Audacity resampler` influence on perceived audio quality..

A: Audacity uses the resampling algorithm from Julius Orion Smith's Resample project. Audacity also contains code to use libsamplerate, but we can't distribute librample with Audacity because of licensing issues.

See these discussions for more information on our choice of resampling algorithms:

Audacity Noise Removal

Q: How do you actually remove noise? What is the algorithm? What causes the 'tinkling' artefacts, and what steps can and have been taken to remove them?

A: The noise removal algorithm uses Fourier analysis: it finds the spectrum of pure tones that make up the background noise in the quiet sound segment that you selected - that's called the "frequency spectrum" of the sound. That forms a fingerprint of the static background noise in your sound file. When you remove noise from the music as a whole, the algorithm finds the frequency spectrum of each short segment of sound in your music. Any pure tones that aren't enough louder than the fingerprint are greatly reduced in volume. That way, (say) a guitar note or an overtone of the singer's voice are preserved, but hiss, hum, and even crowd noises can be minimized. The tinkly artifacts happen when individual pure tones are near the threshold to be preserved -- they are small pieces of the background soundscape that survived the thresholding.

That technique is called spectral noise gating and it is great for reducing the effect of static or hum in a recording.

While the Audacity noise gating algorithm could perhaps be improved, any Fourier-based noise removal algorithm will have some artifacts like the "tinkle-bells". They are a symptom of the problem of discrimination - deciding whether a particular analog signal is above or below a decision threshold - that is central to the fields of digital data processing and information theory.