Go to file
Rob Sykes 945b592b70 update NEWS, versions 2018-02-24 10:53:13 +00:00
cmake/Modules fix incorrect include-dir variable names 2018-02-23 19:24:20 +00:00
examples minor clean-ups 2018-02-23 21:39:08 +00:00
lsr-tests reorg/SIMD 2016-05-23 07:55:16 +01:00
msvc clean-up; set version as 0.1.3b1 2016-06-05 19:12:38 +01:00
src update NEWS, versions 2018-02-24 10:53:13 +00:00
tests minor fixes 2016-08-29 10:26:26 +01:00
.gitignore fix prev. 2016-05-23 21:53:27 +01:00
AUTHORS Initial commit 2012-12-03 17:25:33 +00:00
CMakeLists.txt update NEWS, versions 2018-02-24 10:53:13 +00:00
COPYING.LGPL Initial commit 2012-12-03 17:25:33 +00:00
INSTALL clean-up 2016-05-29 20:47:44 +01:00
LICENCE minor clean-ups 2018-02-23 21:39:08 +00:00
NEWS update NEWS, versions 2018-02-24 10:53:13 +00:00
README minor clean-ups 2018-02-23 21:39:08 +00:00
TODO clean-up; set version as 0.1.3b1 2016-06-05 19:12:38 +01:00
deinstall.cmake.in need to quote command on ms-win 2013-01-13 21:10:21 +00:00
dist minor clean-ups 2018-02-23 21:39:08 +00:00
go clean-up 2016-05-29 20:47:44 +01:00
go.bat clean-up; set version as 0.1.3b1 2016-06-05 19:12:38 +01:00
inst-check document inst-check 2013-01-18 08:11:57 +00:00
inst-check-soxr white-space 2015-08-26 20:08:13 +01:00
inst-check-soxr-lsr add installation check scripts 2013-01-09 19:43:37 +00:00
multi-arch clean-up; set version as 0.1.3b1 2016-06-05 19:12:38 +01:00
soxr-config.h.in clean-up; set version as 0.1.3b1 2016-06-05 19:12:38 +01:00

README

SoX Resampler Library       Copyright (c) 2007-18 robs@users.sourceforge.net

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.  A
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
libavformat).

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
available.

The design was inspired by Laurent De Soras' paper `The Quest For The
Perfect Resampler', http://ldesoras.free.fr/doc/articles/resampler-en.pdf;
in essence, it combines Julius O. Smith's `Bandlimited Interpolation'
technique (https://ccrma.stanford.edu/~jos/resample/resample.pdf) 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 https://soxr.sourceforge.net
________
¹ For example, multi-channel resampling can utilise multiple CPU-cores.
² Bit-perfect within practical occupied-bandwidth limits.
³ For details of that API, see http://www.mega-nerd.com/SRC/api.html.