Skip to content

chirlu/soxr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Rob Sykes
Feb 24, 2018
945b592 · Feb 24, 2018
Feb 23, 2018
Feb 23, 2018
May 23, 2016
Jun 5, 2016
Feb 24, 2018
Aug 29, 2016
May 23, 2016
Dec 3, 2012
Feb 24, 2018
Dec 3, 2012
May 29, 2016
Feb 23, 2018
Feb 24, 2018
Feb 23, 2018
Jun 5, 2016
Jan 13, 2013
Feb 23, 2018
May 29, 2016
Jun 5, 2016
Jan 18, 2013
Aug 26, 2015
Jan 9, 2013
Jun 5, 2016
Jun 5, 2016

Repository files navigation

SoX Resampler Library       Copyright (c) 2007-18 [email protected]

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.

About

The SoX resampler library

Resources

License

Unknown, LGPL-2.1 licenses found

Licenses found

Unknown
LICENCE
LGPL-2.1
COPYING.LGPL

Stars

Watchers

Forks

Packages

No packages published