Libsamplerate 2016
Introduction
Secret Rabbit Code (aka libsamplerate) is a Sample Rate Converter for audio. One example of where such a thing would be useful is converting audio from the CD sample rate of 44.1kHz to the 48kHz sample rate used by DAT players.
SRC is capable of arbitrary and time varying conversions, from downsampling by a factor of 256 to upsampling by the same factor. Arbitrary in this case means that the ratio of input and output sample rates can be an irrational number. The conversion ratio can also vary with time for speeding up and slowing down effects.
SRC provides a small set of converters to allow quality to be traded off against computation cost. The current best converter provides a signal-to-noise ratio of 145dB with -3dB passband extending from DC to 96% of the theoretical best bandwidth for a given pair of input and output sample rates. 1
In this Wiki article, we will refer to SRC always as libsamplerate.
Additionally to libsamplerate, this Wiki article contains information about sndfile-tools. They can be seen as an addition to libsamplerate and some tools were part of it before version 0.2.x.
Installed version(s)
The following versions are installed and currently available...
... on environment hpc-env/8.3:
- libsamplerate/0.1.9-GCCcore-8.3.0
- libsamplerate/0.2.2-GCCcore-8.3.0
- sndfile-tools/1.5-GCCcore-8.3.0
Loading libsamplerate & sndfile-tools
To load the desired version of the module, use the module load command, e.g.
module load hpc-env/8.3 module load libsamplerate module load sndfile-tools
Always remember: this commands are case sensitive!
Using libsamplerate
A side note first: Since libsamplerate can makle use of FLAC, you might be also interested in reading about our FLAC module, which is automatically loaded with libsamplerate and sndfile-tools and therefore can be also dedicately used.
Since libsamplerate itself does not have any binaries, it is mostly used as a library by other packages and tools, e.g. sndfile-tools.
It might be worth mentioning though, that after loading the software module, you have access to an examples folder which might be of help for you:
ls $EBROOTLIBSAMPLERATE/examples
Using sndfile-tools
To find out on how to use the different sndfile-tools you can call the help function of every single tool. The tools are as follows (as of version 1.5):
- sndfile-generate-chirp
- sndfile-mix-to-mono
- sndfile-resample
- sndfile-spectrogram
- sndfile-waveform
For example, just type in sndfile-generate-chirp --help after loading the module to print out a help text for this specific tool to get you started:
$ sndfile-generate-chirp --help Create a sound file containing a swept sine wave (ie a chirp). Usage : sndfile-generate-chirp [options] <sample rate> <length in seconds> <sound file> Options include: -from <start> Sweep start frequency in Hz (default 200Hz). -to <end> Sweep end frequency in Hz (default fs/2). -amp <value> Amplitude of generated sine (default 1.0). <sweep type> One of (default -log): -log logarithmic sweep -quad quadratic sweep -linear linear sweep The <lengths in seconds> parameter can be a decimal like 1.5. The output file will contain floating point samples in the range [-1.0, 1.0]. The output file type is determined by the file name extension which should be one of 'wav', 'aifc', 'aif', 'aiff', 'au', 'caf' and 'w64'.
Documentation
The full documentation of libsamplerate (aka Secret Rabbit Code) can be found here or at the github page.
The full documentation of sndfile-tools can be found here or at the github page.