Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.


Tree [988f83] master /

File Date Author Commit
cmake 2013-01-12 Rob Sykes Rob Sykes [a11a80] rm trailing whitespace
examples 2013-05-27 Rob Sykes Rob Sykes [988f83] Be more POSIX compliant w.r.t. errno; fixes err...
lsr-tests 2013-02-08 Rob Sykes Rob Sykes [3b54f5] avoid hidden/visible symbols by making this lib...
msvc 2013-02-27 Rob Sykes Rob Sykes [c5adbf] Add API version check macros
src 2013-04-09 Rob Sykes Rob Sykes [e55c47] correct defines for interpolation order selection
tests 2013-03-01 Rob Sykes Rob Sykes [3365b5] uniquify file names to allow parallelism
.gitignore 2012-12-03 Rob Sykes Rob Sykes [e36d0f] Initial commit
AUTHORS 2012-12-03 Rob Sykes Rob Sykes [e36d0f] Initial commit
CMakeLists.txt 2013-03-03 Rob Sykes Rob Sykes [aaee21] update versions, NEWS
COPYING.LGPL 2012-12-03 Rob Sykes Rob Sykes [e36d0f] Initial commit
INSTALL 2013-02-27 Rob Sykes Rob Sykes [4d9db7] add example of mingw build
LICENCE 2013-01-08 Rob Sykes Rob Sykes [54fdbf] bump copyright date
NEWS 2013-03-03 Rob Sykes Rob Sykes [aaee21] update versions, NEWS
README 2013-03-02 Rob Sykes Rob Sykes [5e2900] better URL
TODO 2012-12-03 Rob Sykes Rob Sykes [e36d0f] Initial commit 2013-01-13 Rob Sykes Rob Sykes [21874b] need to quote command on ms-win
dist 2013-03-01 Rob Sykes Rob Sykes [e8ce89] use parallelism for dist. build
go 2013-03-02 Rob Sykes Rob Sykes [04b83c] tidy comments
go.bat 2013-01-09 Rob Sykes Rob Sykes [08c170] build tests by default; install doc & examples
inst-check 2013-01-18 Rob Sykes Rob Sykes [81110c] document inst-check
inst-check-soxr 2013-03-24 Martin Pitt Martin Pitt [fe6ca5] Link examples with -lm, as some examples use fu...
inst-check-soxr-lsr 2013-01-09 Rob Sykes Rob Sykes [319293] add installation check scripts 2013-02-27 Rob Sykes Rob Sykes [c5adbf] Add API version check macros

Read Me

SoX Resampler Library       Copyright (c) 2007-13

The SoX Resampler library `libsoxr' performs one-dimensional sample-rate
conversion -- it may be used, for example, to resample PCM-encoded audio.
For higher-dimensional resampling, such as for visual-image processing, you
should look elsewhere.

It aims to give fast¹ and very high quality² results for any constant
(rational or irrational) resampling ratio.  Phase-response, preserved
bandwidth, aliasing, and rejection level parameters are all configurable;
alternatively, simple `preset' configurations may be selected.  An
experimental, variable-rate resampling mode of operation is also included.

The resampler is currently available either as part of `libsox' (the audio
file-format and effect library), or stand-alone as `libsoxr' (this package).
The interfaces to libsox and libsoxr are slightly different, with that of
libsoxr designed specifically for resampling.  An application requiring
support for other effects, or for reading-from or writing-to audio files or
devices, should use libsox (or other libraries such as libsndfile or

Libsoxr provides a simple API that allows interfacing using the most
commonly-used sample formats and buffering schemes: sample-formats may be
either floating-point or integer, and multiple channels either interleaved
or split in separate buffers.  The API is documented in the header file
`soxr.h', together with sample code found in the 'examples' directory.

For compatibility with the popular `libsamplerate' library, the header file
`soxr-lsr.h' is provided and may be used as an alternative API.³  Note
however, that libsoxr does not provide a full emulation of libsamplerate
and that using this approach, only a sub-set of libsoxr's features are

The design was inspired by Laurent De Soras' paper `The Quest For The
Perfect Resampler',;
in essence, it combines Julius O. Smith's `Bandlimited Interpolation'
technique ( with FFT-
based over-sampling.

Note that for real-time resampling, libsoxr may have a higher latency
than non-FFT based resamplers.  For example, when using the `High Quality'
configuration to resample between 44100Hz and 48000Hz, the latency is
around 1000 output samples, i.e. roughly 20ms (though passband and FFT-
size configuration parameters may be used to reduce this figure).

For build and installation instructions, see the file `INSTALL'; for
copyright and licensing information, see the file `LICENCE'.

For support and new versions, see
¹ For example, multi-channel resampling can utilise multiple CPU-cores.
² Bit-perfect within practical occupied-bandwidth limits.
³ For details of that API, see