1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
6
Secret Rabbit Code (aka libsamplerate)
8
<META NAME="Author" CONTENT="Erik de Castro Lopo (erikd AT mega-nerd DOT com)">
9
<META NAME="Version" CONTENT="libsamplerate-0.1.0">
10
<META NAME="Description" CONTENT="The Secret Rabbit Code Home Page">
11
<META NAME="Keywords" CONTENT="libsamplerate sound audio dsp Linux">
12
<LINK REL=StyleSheet HREF="SRC.css" TYPE="text/css" MEDIA="all">
15
<BODY TEXT="#FFFFFF" BGCOLOR="#000000" LINK="#FB1465" VLINK="#FB1465" ALINK="#FB1465">
18
<IMG SRC="SRC.png" HEIGHT=100 WIDTH=760 ALT="SRC.png">
23
<TABLE ALIGN="center" WIDTH="98%">
29
<A HREF="index.html">Home</A><BR>
30
<A HREF="license.html">License</A><BR>
31
<A HREF="history.html">History</A><BR>
32
<A HREF="download.html">Download</A><BR>
33
<A HREF="quality.html">Quality</A><BR>
34
<A HREF="api.html">API</A><BR>
35
<A HREF="bugs.html">Bug Reporting</A><BR>
36
<A HREF="win32.html">On Win32</A><BR>
37
<A HREF="faq.html">FAQ</A><BR>
38
<A HREF="lists.html">Mailing Lists</A><BR>
39
<A HREF="ChangeLog">ChangeLog</A><BR>
42
Author :<BR>Erik de Castro Lopo
49
"/cgi-bin/Count.cgi?ft=6|frgb=55;55;55|tr=0|md=6|dd=B|st=1|sh=1|df=src_qual.dat"
50
HEIGHT=30 WIDTH=100 ALT="counter.gif">
55
<!-- ######################################################################## -->
60
<H1><B>SRC Quality</B></H1>
62
<B>This document not yet complete.</B><BR>
65
When measuring the performance of a Sample Rate Converter, there are three
69
<LI><B>Signal-to-Noise Ratio</B> - a measure of how much noise the sample
70
rate conversion process adds to the signal.
71
This is measured in decibels (dB) and the higher this value the
73
For most sample rate converters, the SNR will vary depending on
74
the input signal and the ratio between input and output sample
76
The only valid comparison of SNR is between the worst case for
78
<LI><B>Bandwidth</B> - most sample rate converters attenuate high
79
frequencies as part of their operation.
80
Bandwidth can be measured by finding the frequency where the
81
attenuation is 3dB and expressing that as a percentage of the full
82
bandwidth at that sampling rate.
83
<LI><B>Speed</B> - the faster the better <B>:-)</B>.
87
There are a number of sample rate converters available for downloading
88
but I will limit the comparison ot Secret Rabbit Code to the following:
91
<LI><A HREF="http://www.mega-nerd.com/SRC/download.html">sndfile-resample</A>
92
which is a program (which uses libsamplerate) from the <B>examples/</B>
93
directory of the Secret Rabbit Code source code distribution.
94
<LI><A HREF="http://www-ccrma.stanford.edu/~jos/resample/Available_Software.html">
96
by Julius O Smiths which seems to have been the first high quality converter
97
available as source code.
98
<LI><A HREF="http://www.tsp.ece.mcgill.ca/MMSP/Documents/Software/AFsp/ResampAudio.html">ResampAudio</A>
100
<A HREF="http://www.tsp.ece.mcgill.ca/MMSP/Documents/Software/AFsp/AFsp.html">
101
Audio File Programs and Routines</A>
103
<LI><A HREF="http://home.sprynet.com/~cbagwell/sox.html">SoX</A> which is maintained
105
SoX is also able to perfrom some low quality sample rate conversions but these
106
will not be investigated.
107
<LI><A HREF="http://shibatch.sourceforge.net/">Shibatch</A> which seems to be a
108
frequency domain sample rate converter.
109
Unfortunately, this converter does not handle arbitrary conversion ratios and
110
hence could not be properly compared to the other converters.
111
<LI><A HREF="http://sr-convert.sourceforge.net/">sr-convert</A> is another
112
converter which does not handle arbitrary conversion ratios.
116
It should be noted that the first three converters above are based on the algorithm
117
by <A HREF="http://www-ccrma.stanford.edu/~jos/resample/"> Julius O. Smith</A>
118
which emulates the conversion of the digital signal to an analogue one and then
119
sampling the analogue signal at the new sample rate.
122
<!--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-->
124
<H3><B>Methodology</B></H3>
126
Measuring the SNR of a converter is relatively straight forward.
127
Generate an input signal consisting of a windowed sine wave, sample rate
128
convert it and measure the signal-to-noise ratio of the output signal.
129
A typical length for the original file is 30000 samples.
132
The bandwidth of a sample rate converter is a little more difficult to measure.
133
Currently this is done by generating two short files containing a windowed
135
The frequencies of the sine waves are 0.35 and 0.495 of the sample rate.
136
These file are then upsampled by a factor of 2 using the converter under test.
137
If the attenutaion of the lower frquency is less than 3dB and higher frequency is
138
more than 3dB, it is then possible to iteratively increase the lower frequency
139
and decrease the upper frequency keeping the -3dB point bracketed.
140
When the distance between the upper and lower frequency is sufficiently small,
141
it is possible to obtain a very accurate estimate of the -3dB frequency.
144
The speed of a sample rate converter is easy to measure; simply perform a
145
conversion on a large file or a number of smaller files and time the conversion
150
The above measurement techniques are built into a test program which is delivered
151
with the Secret Rabbit Code source code distibution.
152
This program is able to test the first four of the above converters.
154
<!--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-->
158
SoX provides three methods of resampling; a linear interpolator, a polyphase
159
resampler and the Julius O. Smith simulated analogue filter method.
162
<H3><B>Shibatch</B></H3>
168
<B>More Coming Soon.</B>
171
<!-- <A HREF="mailto:aldel@mega-nerd.com">For the spam bots</A> -->
181
Do not edit or modify anything in this comment block.
182
The arch-tag line is a file identity tag for the GNU Arch
183
revision control system.
185
arch-tag: 1cd07ec3-2507-48f9-955f-6b9b0d4bb3d0