Make mention of built-in resampler; wording tweaks

This commit is contained in:
Chris Cannam
2021-10-05 09:59:43 +01:00
parent 18907f92f7
commit 91c44fc8b8

View File

@@ -1,5 +1,5 @@
# Rubber Band
# Rubber Band Library
An audio time-stretching and pitch-shifting library and utility program.
@@ -29,12 +29,12 @@ License (GPL). You can redistribute it and/or modify it under the
terms of the GPL; either version 2 of the License, or (at your option)
any later version. See the file COPYING for more information.
If you wish to distribute code using the Rubber Band Library under
terms other than those of the GNU General Public License, you must
obtain a commercial licence from us before doing so. In particular,
you may not legally distribute through any Apple App Store unless you
have a commercial licence. See https://breakfastquay.com/rubberband/
for licence terms.
If you wish to distribute code using Rubber Band Library under terms
other than those of the GNU General Public License, you must obtain a
commercial licence from us before doing so. In particular, you may not
legally distribute through any Apple App Store unless you have a
commercial licence. See https://breakfastquay.com/rubberband/ for
licence terms.
If you have obtained a valid commercial licence, your licence
supersedes this README and the enclosed COPYING file and you may
@@ -68,7 +68,7 @@ our knowledge. See also the end of this README for detailed terms.
1. Code components
2. Using the Rubber Band command-line tool
3. Using the Rubber Band Library
3. Using Rubber Band Library
4. Compiling Rubber Band
a. Building on Linux
b. Building on macOS
@@ -91,7 +91,7 @@ Rubber Band consists of:
and FFT code; see section 3a below for details.
* The Rubber Band command-line tool. This is in main/main.cpp.
This program uses the Rubber Band Library and also requires libsndfile
This program uses Rubber Band Library and also requires libsndfile
(http://www.mega-nerd.com/libsndfile/, licensed under the GNU Lesser
General Public License) for audio file loading.
@@ -127,12 +127,12 @@ In particular, different types of music may benefit from different
"crispness" options (-c flag with a numerical argument from 0 to 6).
## 3. Using the Rubber Band Library
## 3. Using Rubber Band Library
The Rubber Band Library has a public API that consists of one C++
class, called RubberBandStretcher in the RubberBand namespace. You
should `#include <rubberband/RubberBandStretcher.h>` to use this
class. There is extensive documentation in the class header.
Rubber Band has a public API that consists of one C++ class, called
`RubberBandStretcher` in the `RubberBand` namespace. You should
`#include <rubberband/RubberBandStretcher.h>` to use this class.
There is extensive documentation in the class header.
A header with C language bindings is also provided in
`<rubberband/rubberband-c.h>`. This is a wrapper around the C++
@@ -158,18 +158,26 @@ for modification and redistribution) unless you have separately
acquired a commercial licence from the author.
## 4. Compiling the Rubber Band Library
## 4. Compiling Rubber Band Library
The primary supported build system for the Rubber Band Library on all
platforms is Meson (https://mesonbuild.com). The Meson build system
can be used to build all targets (static and dynamic library,
command-line utility, and plugins) and to cross-compile.
The primary supported build system for Rubber Band on all platforms is
Meson (https://mesonbuild.com). The Meson build system can be used to
build all targets (static and dynamic library, command-line utility,
and plugins) and to cross-compile.
If you only need a static library and don't wish to use Meson, some
If you only need a static library and don't wish to use Meson, some
alternative build files (Makefiles and Visual C++ projects) are
included in the `otherbuilds` directory. See the platform-specific
build sections below for more details.
☞ If you want to include Rubber Band in a C++ project and would prefer
not to compile a separate library, there is a single `.cpp` file at
`single/RubberBandSingle.cpp` which can be added to your project
as-is. It produces a single compilation-unit build with the built-in
FFT and resampler implementations with no further library
dependencies. See the comments at the top of that file for more
information.
To build with Meson, ensure Meson and Ninja are installed and run:
```
@@ -193,7 +201,7 @@ $ meson build -Dipp_path=/opt/intel/ipp
The options are documented in the library- and platform-specific
sections below.
The Rubber Band Library is written entirely in C++ to the C++98
Rubber Band Library is written entirely in C++ to the C++98
standard. It is unlikely to make any difference (performance or
otherwise) which C++ standard your compiler uses - as long as it's no
older than C++98!
@@ -268,8 +276,8 @@ See "FFT and resampler selection" below for further build options.
Note that you cannot legally distribute applications using Rubber Band
in the Mac App Store, unless you have first obtained a commercial
licence for the Rubber Band Library. GPL code is not permitted in the
app store. See https://breakfastquay.com/technology/license.html for
licence for Rubber Band Library. GPL code is not permitted in the app
store. See https://breakfastquay.com/technology/license.html for
commercial terms.
@@ -295,8 +303,8 @@ See "FFT and resampler selection" below for further build options.
Note that you cannot legally distribute applications using Rubber Band
in the iOS App Store, unless you have a first obtained a commercial
licence for the Rubber Band Library. GPL code is not permitted in the
app store. See https://breakfastquay.com/technology/license.html for
licence for Rubber Band Library. GPL code is not permitted in the app
store. See https://breakfastquay.com/technology/license.html for
commercial terms.
@@ -409,10 +417,21 @@ Library Build option CPP define Notes
---- ------------ ---------- -----
libsamplerate -DHAVE_LIBSAMPLERATE
-Dresampler=libsamplerate Best choice in most cases.
-Dresampler=libsamplerate Default when found.
Good choice in most cases.
Built-in -Dfft=builtin -DUSE_BQRESAMPLER
Default when libsamplerate not found.
Can be distributed with either
the Rubber Band GPL or
commercial licence. Intended to
give best quality for time-varying
pitch shifts in real-time mode.
Newer than, and not as well-tested
as, libsamplerate.
Speex -DUSE_SPEEX
-Dresampler=speex Bundled, can be distributed with
-Dresampler=speex Can be distributed with
either the Rubber Band GPL or
commercial licence.
```