• 2015-09-05 Maintenance release, version 0.1.2. Details.
  • 2013-03-03 Maintenance release, version 0.1.1. Details.
  • 2013-01-19 First public release, version 0.1.0. Thanks for helping to make this release happen go to the good folk at the FFmpeg and Audacity projects, and to Benjamin Drung.



How do I unpack a .xz file?
On a unix-like system, you should use ‘xz’ (or xz-enabled ‘tar’); on MS-windows, 7-Zip will do the job.

How should I create my first application using the resampler?
Have a look at the provided examples: each takes a different approach to interfacing with the library. Choose the one which seems most suitable for your application, then base your application code on the example (you can freely copy the example code into your application, if you like).

How can I try out the example code with real audio files?
For simplicity, the examples work with ‘raw’ audio files (or piped streams), but you can easily convert between raw and other formats using the ‘sox’ command-line utility. For example, using example #3 to convert a stereo ‘wav’ file from 44100 to 48000 Hz:

sox input.wav input.f32
./3-options-input-fn 44100 48000 2 <input.f32 >output.f32
sox -c 2 -r 48000 output.f32 output.wav

(the ./ should be omitted on MS-windows)

How should soxr_quality_spec.flags be set?
For constant-rate resampling, the flags are mainly for test purposes so should normally be set to zero. For variable-rate resampling, set flags to SOXR_VR (see example #5).

Why is my resampled output slightly shorter than it should be?
A resampler holds a few samples in memory to meet the needs of the resampling filter. In order to ‘flush’ the last few samples through to the output, the resampler must be told to do so (i.e. by informing it that no more input samples are or will be available), then the application must continue to read output samples until no more are available. See examples # 2–4.