summaryrefslogtreecommitdiff
path: root/lib/libsamplerate/libsamplerate-0.2.2/docs/quality.md
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2023-08-01 14:00:31 +1000
committerjacqueline <me@jacqueline.id.au>2023-08-01 14:00:31 +1000
commitfbebc525117f18d5751e6951bc4ffcc51f70dcc4 (patch)
tree5725146701b816060fdd1f0979b2ff83fc4f7e24 /lib/libsamplerate/libsamplerate-0.2.2/docs/quality.md
parent55429fa6231cb576a79bbc7d6b0bf0732f5ea7a4 (diff)
downloadtangara-fw-fbebc525117f18d5751e6951bc4ffcc51f70dcc4.tar.gz
Add libsamplerate for resampling decoder output
Diffstat (limited to 'lib/libsamplerate/libsamplerate-0.2.2/docs/quality.md')
-rwxr-xr-xlib/libsamplerate/libsamplerate-0.2.2/docs/quality.md84
1 files changed, 84 insertions, 0 deletions
diff --git a/lib/libsamplerate/libsamplerate-0.2.2/docs/quality.md b/lib/libsamplerate/libsamplerate-0.2.2/docs/quality.md
new file mode 100755
index 00000000..5c69578e
--- /dev/null
+++ b/lib/libsamplerate/libsamplerate-0.2.2/docs/quality.md
@@ -0,0 +1,84 @@
+---
+layout: default
+---
+
+# SRC Quality
+
+**This document not yet complete.**
+
+When measuring the performance of a Sample Rate Converter, there are three
+factors to consider:
+
+- **Signal-to-Noise Ratio** - a measure of how much noise the sample rate
+ conversion process adds to the signal. This is measured in decibels (dB) and
+ the higher this value the better. For most sample rate converters, the SNR
+ will vary depending on the input signal and the ratio between input and output
+ sample rates. The only valid comparison of SNR is between the worst case for
+ each converter.
+- **Bandwidth** - most sample rate converters attenuate high frequencies as part
+ of their operation. Bandwidth can be measured by finding the frequency where
+ the attenuation is 3dB and expressing that as a percentage of the full
+ bandwidth at that sampling rate.
+- **Speed** - the faster the better **:-)**.
+
+There are a number of sample rate converters available for downloading but I
+will limit the comparison of Secret Rabbit Code to the following:
+
+- [sndfile-resample](http://libsndfile.github.io/libsamplerate/download.html)
+ which is a program (which uses libsamplerate) from the **examples/** directory
+ of the Secret Rabbit Code source code distribution.
+- [Resample](https://ccrma.stanford.edu/~jos/resample/) by Julius O Smiths which
+ seems to have been the first high quality converter available as source code.
+- [ResampAudio](http://www.tsp.ece.mcgill.ca/MMSP/Documents/Software/AFsp/ResampAudio.html)
+ which is part of [Audio File Programs and Routines](http://www.tsp.ece.mcgill.ca/MMSP/Documents/Software/AFsp/AFsp.html)
+ by Peter Kabal.
+- [SoX](http://home.sprynet.com/~cbagwell/sox.html) which is maintained by Chris
+ Bagwell. SoX is also able to perform some low quality sample rate conversions
+ but these will not be investigated.
+- [Shibatch](http://shibatch.sourceforge.net/) which seems to be a frequency
+ domain sample rate converter. Unfortunately, this converter does not handle
+ arbitrary conversion ratios and hence could not be properly compared to the
+ other converters.
+- [sr-convert](http://sr-convert.sourceforge.net/) is another converter which
+ does not handle arbitrary conversion ratios.
+
+It should be noted that the first three converters above are based on the
+algorithm by [Julius O. Smith](http://www-ccrma.stanford.edu/~jos/resample/)
+which emulates the conversion of the digital signal to an analogue one and then
+samples the analogue signal at the new sample rate.
+
+## Methodology
+
+Measuring the SNR of a converter is relatively straightforward. Generate an
+input signal consisting of a windowed sine wave, sample rate convert it and
+measure the signal-to-noise ratio of the output signal. A typical length for the
+original file is 30000 samples.
+
+The bandwidth of a sample rate converter is a little more difficult to measure.
+Currently this is done by generating two short files containing a windowed sine
+wave. The frequencies of the sine waves are 0.35 and 0.495 of the sample rate.
+These files are then upsampled by a factor of 2 using the converter under test.
+If the attenuation of the lower frequency is less than 3dB and higher frequency
+is more than 3dB, it is then possible to iteratively increase the lower
+frequency and decrease the upper frequency keeping the -3dB point bracketed.
+When the distance between the upper and lower frequency is sufficiently small,
+it is possible to obtain a very accurate estimate of the -3dB frequency.
+
+The speed of a sample rate converter is easy to measure; simply perform a
+conversion on a large file or a number of smaller files and time the conversion
+process.
+
+The above measurement techniques are built into a test program which is
+delivered with the Secret Rabbit Code source code distribution. This program is
+able to test the first four of the above converters.
+
+## SoX
+
+SoX provides three methods of resampling; a linear interpolator, a polyphase
+resampler and the Julius O. Smith simulated analogue filter method.
+
+## Shibatch
+
+Shibach
+
+**More Coming Soon.**