Soxr
The SoX resampler library
Install / Use
/learn @chirlu/SoxrREADME
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.
Related Skills
node-connect
336.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
336.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.0kCommit, push, and open a PR
