<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>

<HEAD>
	<TITLE>
	Secret Rabbit Code (aka libsamplerate)
	</TITLE>
	<META NAME="Author"      CONTENT="Erik de Castro Lopo (erikd AT mega-nerd DOT com)">
    <META NAME="Version"     CONTENT="libsamplerate-0.1.8">
	<META NAME="Description" CONTENT="The Secret Rabbit Code Home Page">
	<META NAME="Keywords"    CONTENT="libsamplerate sound resample audio dsp Linux">
	<LINK REL=StyleSheet HREF="SRC.css" TYPE="text/css" MEDIA="all">
</HEAD>

<BODY TEXT="#FFFFFF" BGCOLOR="#000000" LINK="#FB1465" VLINK="#FB1465" ALINK="#FB1465">
<!-- pepper -->
<CENTER>
	<IMG SRC="SRC.png" HEIGHT=100 WIDTH=760 ALT="SRC.png">
</CENTER>
<!-- pepper -->
<BR>
<!-- pepper -->
<TABLE ALIGN="center" WIDTH="98%">
<TR>
<TD VALIGN="top">
<BR>
<DIV CLASS="nav">
	<BR>
	<A HREF="index.html">Home</A><BR>
	<A HREF="license.html">License</A><BR>
	<A HREF="history.html">History</A><BR>
	<A HREF="download.html">Download</A><BR>
	<A HREF="quality.html">Quality</A><BR>
	<A HREF="api.html">API</A><BR>
	<A HREF="bugs.html">Bug Reporting</A><BR>
	<A HREF="win32.html">On Win32</A><BR>
	<A HREF="faq.html">FAQ</A><BR>
	<A HREF="lists.html">Mailing Lists</A><BR>
	<A HREF="ChangeLog">ChangeLog</A><BR>
<BR>
<DIV CLASS="block">
Author :<BR>Erik de Castro Lopo
<!-- pepper -->
<BR><BR>
<!-- pepper -->

</DIV>
	<IMG SRC=
	"/cgi-bin/Count.cgi?ft=6|frgb=55;55;55|tr=0|md=6|dd=B|st=1|sh=1|df=src_qual.dat" 
	HEIGHT=30 WIDTH=100 ALT="counter.gif">
</DIV>

</TD>
<!-- pepper -->
<!-- ######################################################################## -->
<!-- pepper -->
<TD VALIGN="top">
<DIV CLASS="block">

<H1><B>SRC Quality</B></H1>
<CENTER><P>
	<B>This document not yet complete.</B><BR>
</P></CENTER>
<P>
	When measuring the performance of a Sample Rate Converter, there are three 
	factors to consider:
</P>
<UL>
	<LI><B>Signal-to-Noise Ratio</B> - 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
			for each converter.
	<LI><B>Bandwidth</B> - 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.
	<LI><B>Speed</B> - the faster the better <B>:-)</B>.
</UL>

<P>
	There are a number of sample rate converters available for downloading
	but I will limit the comparison ot Secret Rabbit Code to the following:
</P>
<UL>
	<LI><A HREF="http://www.mega-nerd.com/SRC/download.html">sndfile-resample</A>
		which is a program (which uses libsamplerate) from the <B>examples/</B> 
		directory of the Secret Rabbit Code source code distribution.
	<LI><A HREF="http://www-ccrma.stanford.edu/~jos/resample/Available_Software.html">
			Resample</A>
		by Julius O Smiths which seems to have been the first high quality converter 
		available as source code.
	<LI><A HREF="http://www.tsp.ece.mcgill.ca/MMSP/Documents/Software/AFsp/ResampAudio.html">ResampAudio</A> 
		which is part of 
		<A HREF="http://www.tsp.ece.mcgill.ca/MMSP/Documents/Software/AFsp/AFsp.html">
			Audio File Programs and Routines</A>
		by Peter Kabal.
	<LI><A HREF="http://home.sprynet.com/~cbagwell/sox.html">SoX</A> which is maintained
		by Chris Bagwell.
		SoX is also able to perform some low quality sample rate conversions but these
		will not be investigated.
	<LI><A HREF="http://shibatch.sourceforge.net/">Shibatch</A> 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.
	<LI><A HREF="http://sr-convert.sourceforge.net/">sr-convert</A> is another
		converter which does not handle arbitrary conversion ratios.
</UL>

<P>
It should be noted that the first three converters above are based on the algorithm
by <A HREF="http://www-ccrma.stanford.edu/~jos/resample/"> Julius O. Smith</A>
which emulates the conversion of the digital signal to an analogue one and then
sampling the analogue signal at the new sample rate.
</P>

<!--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-->

<H3><B>Methodology</B></H3>
<P>
	Measuring the SNR of a converter is relatively straight forward. 
	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.
</P>
<P>
	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 file are then upsampled by a factor of 2 using the converter under test.
	If the attenutaion of the lower frquency 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.
</P>
<P>
	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.
</P>

<P>
	The above measurement techniques are built into a test program which is delivered
	with the Secret Rabbit Code source code distibution.
	This program is able to test the first four of the above converters.
</P>
<!--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-->

<H3><B>SoX</B></H3>
<P>
	SoX provides three methods of resampling; a linear interpolator, a polyphase
	resampler and the Julius O. Smith simulated analogue filter method. 
</P>

<H3><B>Shibatch</B></H3>
<P>
	Shibach 
</P>

<P>
	<B>More Coming Soon.</B> 
</P>

<!-- <A HREF="mailto:aldel@mega-nerd.com">For the spam bots</A> -->

</DIV>
</TD></TR>
</TABLE>

</BODY>
</HTML>

