Make mention of built-in resampler; wording tweaks
This commit is contained in:
73
README.md
73
README.md
@@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
# Rubber Band
|
# Rubber Band Library
|
||||||
|
|
||||||
An audio time-stretching and pitch-shifting library and utility program.
|
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)
|
terms of the GPL; either version 2 of the License, or (at your option)
|
||||||
any later version. See the file COPYING for more information.
|
any later version. See the file COPYING for more information.
|
||||||
|
|
||||||
If you wish to distribute code using the Rubber Band Library under
|
If you wish to distribute code using Rubber Band Library under terms
|
||||||
terms other than those of the GNU General Public License, you must
|
other than those of the GNU General Public License, you must obtain a
|
||||||
obtain a commercial licence from us before doing so. In particular,
|
commercial licence from us before doing so. In particular, you may not
|
||||||
you may not legally distribute through any Apple App Store unless you
|
legally distribute through any Apple App Store unless you have a
|
||||||
have a commercial licence. See https://breakfastquay.com/rubberband/
|
commercial licence. See https://breakfastquay.com/rubberband/ for
|
||||||
for licence terms.
|
licence terms.
|
||||||
|
|
||||||
If you have obtained a valid commercial licence, your licence
|
If you have obtained a valid commercial licence, your licence
|
||||||
supersedes this README and the enclosed COPYING file and you may
|
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
|
1. Code components
|
||||||
2. Using the Rubber Band command-line tool
|
2. Using the Rubber Band command-line tool
|
||||||
3. Using the Rubber Band Library
|
3. Using Rubber Band Library
|
||||||
4. Compiling Rubber Band
|
4. Compiling Rubber Band
|
||||||
a. Building on Linux
|
a. Building on Linux
|
||||||
b. Building on macOS
|
b. Building on macOS
|
||||||
@@ -91,7 +91,7 @@ Rubber Band consists of:
|
|||||||
and FFT code; see section 3a below for details.
|
and FFT code; see section 3a below for details.
|
||||||
|
|
||||||
* The Rubber Band command-line tool. This is in main/main.cpp.
|
* 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
|
(http://www.mega-nerd.com/libsndfile/, licensed under the GNU Lesser
|
||||||
General Public License) for audio file loading.
|
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).
|
"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++
|
Rubber Band has a public API that consists of one C++ class, called
|
||||||
class, called RubberBandStretcher in the RubberBand namespace. You
|
`RubberBandStretcher` in the `RubberBand` namespace. You should
|
||||||
should `#include <rubberband/RubberBandStretcher.h>` to use this
|
`#include <rubberband/RubberBandStretcher.h>` to use this class.
|
||||||
class. There is extensive documentation in the class header.
|
There is extensive documentation in the class header.
|
||||||
|
|
||||||
A header with C language bindings is also provided in
|
A header with C language bindings is also provided in
|
||||||
`<rubberband/rubberband-c.h>`. This is a wrapper around the C++
|
`<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.
|
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
|
The primary supported build system for Rubber Band on all platforms is
|
||||||
platforms is Meson (https://mesonbuild.com). The Meson build system
|
Meson (https://mesonbuild.com). The Meson build system can be used to
|
||||||
can be used to build all targets (static and dynamic library,
|
build all targets (static and dynamic library, command-line utility,
|
||||||
command-line utility, and plugins) and to cross-compile.
|
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
|
alternative build files (Makefiles and Visual C++ projects) are
|
||||||
included in the `otherbuilds` directory. See the platform-specific
|
included in the `otherbuilds` directory. See the platform-specific
|
||||||
build sections below for more details.
|
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:
|
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
|
The options are documented in the library- and platform-specific
|
||||||
sections below.
|
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
|
standard. It is unlikely to make any difference (performance or
|
||||||
otherwise) which C++ standard your compiler uses - as long as it's no
|
otherwise) which C++ standard your compiler uses - as long as it's no
|
||||||
older than C++98!
|
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
|
Note that you cannot legally distribute applications using Rubber Band
|
||||||
in the Mac App Store, unless you have first obtained a commercial
|
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
|
licence for Rubber Band Library. GPL code is not permitted in the app
|
||||||
app store. See https://breakfastquay.com/technology/license.html for
|
store. See https://breakfastquay.com/technology/license.html for
|
||||||
commercial terms.
|
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
|
Note that you cannot legally distribute applications using Rubber Band
|
||||||
in the iOS App Store, unless you have a first obtained a commercial
|
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
|
licence for Rubber Band Library. GPL code is not permitted in the app
|
||||||
app store. See https://breakfastquay.com/technology/license.html for
|
store. See https://breakfastquay.com/technology/license.html for
|
||||||
commercial terms.
|
commercial terms.
|
||||||
|
|
||||||
|
|
||||||
@@ -409,10 +417,21 @@ Library Build option CPP define Notes
|
|||||||
---- ------------ ---------- -----
|
---- ------------ ---------- -----
|
||||||
|
|
||||||
libsamplerate -DHAVE_LIBSAMPLERATE
|
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
|
Speex -DUSE_SPEEX
|
||||||
-Dresampler=speex Bundled, can be distributed with
|
-Dresampler=speex Can be distributed with
|
||||||
either the Rubber Band GPL or
|
either the Rubber Band GPL or
|
||||||
commercial licence.
|
commercial licence.
|
||||||
```
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user