Update docs for library support

This commit is contained in:
Chris Cannam
2022-09-02 16:20:17 +01:00
parent 45e8bef4cf
commit 8ee381efe6

View File

@@ -239,66 +239,67 @@ resampler or libsamplerate.
### FFT libraries supported ### FFT libraries supported
The choice of FFT library makes no difference to output quality, only
to CPU usage.
``` ```
Library Build option CPP define Notes Library Build option CPP define Notes
---- ------------ ---------- ----- ---- ------------ ---------- -----
Built-in -Dfft=builtin -DUSE_BUILTIN_FFT Built-in -Dfft=builtin -DUSE_BUILTIN_FFT Default except on macOS/iOS.
Default except on macOS/iOS.
Can be distributed with either
the Rubber Band GPL or
commercial licence.
Accelerate -Dfft=vdsp -DHAVE_VDSP Default on macOS/iOS. Accelerate -Dfft=vdsp -DHAVE_VDSP Default on macOS/iOS.
Best option on these platforms. Best option on these platforms.
FFTW3 -Dfft=fftw -DHAVE_FFTW3 GPL. FFTW3 -Dfft=fftw -DHAVE_FFTW3 A bit faster than built-in,
A bit faster than built-in, a bit slower than Accelerate.
a bit slower than Accelerate. GPL licence.
SLEEF -Dfft=sleef -DHAVE_SLEEF Usually very fast. Not as widely SLEEF -Dfft=sleef -DHAVE_SLEEF Usually very fast. Not as widely
distributed as FFTW3. Requires distributed as FFTW3. Requires
both libsleef and libsleefdft. both libsleef and libsleefdft.
Can be distributed with either BSD-ish licence.
the Rubber Band GPL or
commercial licence.
KissFFT -Dfft=kissfft -DHAVE_KISSFFT KissFFT -Dfft=kissfft -DHAVE_KISSFFT Single precision.
Single precision. Only advisable when using
Only indicated for use with single-precision sample type
single-precision sample type (see below).
(see below). BSD-ish licence.
Bundled, can be distributed with
either the Rubber Band GPL or
commercial licence.
Intel IPP -Dfft=ipp -DHAVE_IPP Proprietary, can only be used with Intel IPP -Dfft=ipp -DHAVE_IPP Very fast on Intel hardware.
Rubber Band commercial licence. Proprietary, can only be used with
Rubber Band commercial licence.
``` ```
### Resampler libraries supported ### Resampler libraries supported
The choice of resampler affects both output quality, when
pitch-shifting, and CPU usage.
``` ```
Library Build option CPP define Notes Library Build option CPP define Notes
---- ------------ ---------- ----- ------- ------------ ---------- -----
Built-in -Dfft=builtin -DUSE_BQRESAMPLER Built-in -Dfft=builtin -DUSE_BQRESAMPLER Default.
Default. Intended to give high quality
Can be distributed with either for time-varying pitch shifts
the Rubber Band GPL or in real-time mode.
commercial licence. Intended to Not the fastest option.
give best quality for time-varying
pitch shifts in real-time mode.
Newer than, and not as well-tested
as, libsamplerate.
libsamplerate -DHAVE_LIBSAMPLERATE libsamplerate -Dresampler=libsamplerate -DHAVE_LIBSAMPLERATE Good choice in most cases.
-Dresampler=libsamplerate Good choice in most cases. High quality and usually a bit
faster than the built-in option.
BSD-ish licence.
Speex -DUSE_SPEEX libspeexdsp -Dresampler=libspeexdsp -DHAVE_LIBSPEEXDSP Very fast.
-Dresampler=speex Can be distributed with May not be artifact-free for
either the Rubber Band GPL or time-varying pitch shifts.
commercial licence. BSD-ish licence.
Bundled Speex -Dresampler=speex -DUSE_SPEEX Older Speex code, bundled for
compatibility with some existing
projects.
Avoid for new projects.
``` ```
## 8. Other supported #defines ## 8. Other supported #defines