txt -> md

This commit is contained in:
Chris Cannam
2019-08-30 11:24:07 +01:00
parent 8efc278c44
commit b6c90029c0

View File

@@ -122,23 +122,23 @@ In particular, different types of music may benefit from different
The Rubber Band library has a public API that consists of one C++ The Rubber Band library has a public API that consists of one C++
class, called RubberBandStretcher in the RubberBand namespace. You class, called RubberBandStretcher in the RubberBand namespace. You
should #include <rubberband/RubberBandStretcher.h> to use this class. should `#include <rubberband/RubberBandStretcher.h>` to use this
There is extensive documentation in the class header. class. 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++
implementation, and as the implementation is the same, it also implementation, and as the implementation is the same, it also
requires linkage against the C++ standard libraries. It is not yet requires linkage against the C++ standard libraries. It is not yet
documented separately from the C++ header. You should include only documented separately from the C++ header. You should include only
one of the two headers, not both. one of the two headers, not both.
A .NET interface is also included, contributed by Jonathan Gilbert; A .NET interface is also included, contributed by Jonathan Gilbert;
see the files in the rubberband-sharp/ directory for details. see the files in the `rubberband-sharp/` directory for details.
The source code for the command-line utility (main/main.cpp) provides The source code for the command-line utility (`main/main.cpp`)
a good example of how to use Rubber Band in offline mode; the LADSPA provides a good example of how to use Rubber Band in offline mode; the
pitch shifter plugin (ladspa/RubberBandPitchShifter.cpp) may be used LADSPA pitch shifter plugin (`ladspa/RubberBandPitchShifter.cpp`) may
as an example of Rubber Band in real-time mode. be used as an example of Rubber Band in real-time mode.
IMPORTANT: Please ensure you have read and understood the licensing IMPORTANT: Please ensure you have read and understood the licensing
terms for Rubber Band before using it in your application. This terms for Rubber Band before using it in your application. This
@@ -178,6 +178,7 @@ FFT libraries supported
Name Flags required Notes Name Flags required Notes
---- -------------- ----- ---- -------------- -----
```
FFTW3 -DHAVE_FFTW3 GPL. FFTW3 -DHAVE_FFTW3 GPL.
Accelerate -DHAVE_VDSP Platform library on macOS and iOS. Accelerate -DHAVE_VDSP Platform library on macOS and iOS.
@@ -191,6 +192,7 @@ KissFFT -DUSE_KISSFFT Bundled, can be distributed with either the
Rubber Band GPL or commercial licence. Rubber Band GPL or commercial licence.
Single-precision. Slower than the above Single-precision. Slower than the above
options. options.
```
Resampler libraries supported Resampler libraries supported
----------------------------- -----------------------------
@@ -198,13 +200,14 @@ Resampler libraries supported
Name Flags required Notes Name Flags required Notes
---- -------------- ----- ---- -------------- -----
```
libsamplerate -DHAVE_LIBSAMPLERATE GPL until v0.1.8, BSD for v0.1.9 and later. libsamplerate -DHAVE_LIBSAMPLERATE GPL until v0.1.8, BSD for v0.1.9 and later.
libresample -DHAVE_LIBRESAMPLE LGPL. libresample -DHAVE_LIBRESAMPLE LGPL.
Speex -DUSE_SPEEX Bundled, can be distributed with either the Speex -DUSE_SPEEX Bundled, can be distributed with either the
Rubber Band GPL or commercial licence. Rubber Band GPL or commercial licence.
```
4b. Other supported #defines 4b. Other supported #defines
---------------------------- ----------------------------
@@ -212,6 +215,7 @@ Speex -DUSE_SPEEX Bundled, can be distributed with either the
Other symbols you may define at compile time are as follows. (Usually Other symbols you may define at compile time are as follows. (Usually
the supplied build files will handle these for you.) the supplied build files will handle these for you.)
```
-DLACK_BAD_ALLOC -DLACK_BAD_ALLOC
Define on systems lacking std::bad_alloc in the C++ library. Define on systems lacking std::bad_alloc in the C++ library.
@@ -243,7 +247,7 @@ the supplied build files will handle these for you.)
NEON or x86 SSE architectures. These are usually faster but may be NEON or x86 SSE architectures. These are usually faster but may be
of lower precision than system implementations. Consider using this of lower precision than system implementations. Consider using this
for mobile architectures. for mobile architectures.
```
4c. Building on Linux 4c. Building on Linux
--------------------- ---------------------
@@ -251,9 +255,9 @@ the supplied build files will handle these for you.)
A GNU-style configure script is included for use on Linux and similar A GNU-style configure script is included for use on Linux and similar
systems. systems.
Run ./configure, then adjust the generated Makefile according to your Run `./configure`, then adjust the generated Makefile according to
preference for FFT and resampler implementations. The default is to your preference for FFT and resampler implementations. The default is
use FFTW3 and libsamplerate. to use FFTW3 and libsamplerate.
The following Makefile targets are available: The following Makefile targets are available:
@@ -271,16 +275,16 @@ The default target is "all".
4d. Building on macOS 4d. Building on macOS
--------------------- ---------------------
A Makefile for macOS is provided as Makefile.osx. A Makefile for macOS is provided as `Makefile.osx`.
Adjust the Makefile according to your preference for compiler and Adjust the Makefile according to your preference for compiler and
platform SDK, FFT and resampler implementations. The default is to platform SDK, FFT and resampler implementations. The default is to
use the Accelerate framework and the Speex resampler. Then run use the Accelerate framework and the Speex resampler. Then run
e.g. "make -f Makefile.osx library" in a terminal window to build. e.g. `make -f Makefile.osx library` in a terminal window to build.
You will need the Xcode command-line tools installed. You will need the Xcode command-line tools installed.
(You probably don't want to use the configure script on macOS -- just (You probably don't want to use the configure script on macOS -- just
use Makefile.osx directly.) use `Makefile.osx` directly.)
The following Makefile targets are available: The following Makefile targets are available:
@@ -297,9 +301,9 @@ the command line tool. The sndfile library is required for the
command line tool. command line tool.
If you prefer to add the Rubber Band library files to an existing If you prefer to add the Rubber Band library files to an existing
build project instead of using the Makefile, the files in src/ (except build project instead of using the Makefile, the files in `src/`
for RubberBandStretcherJNI.cpp) and the API headers in rubberband/ (except for `RubberBandStretcherJNI.cpp`) and the API headers in
should be all you need. `rubberband/` should be all you need.
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
@@ -311,17 +315,17 @@ commercial terms.
4e. Building for iOS 4e. Building for iOS
-------------------- --------------------
A Makefile for iOS is provided as Makefile.ios. It produces a single A Makefile for iOS is provided as `Makefile.ios`. It produces a
static library containing both simulator and device binaries, in both single static library containing both simulator and device binaries,
32- and 64-bit architectures. in both 32- and 64-bit architectures.
Run e.g. "make -f Makefile.ios" in a terminal window to build. You Run e.g. `make -f Makefile.ios` in a terminal window to build. You
will need the Xcode command-line tools installed. will need the Xcode command-line tools installed.
If you prefer to add the Rubber Band library files to an existing If you prefer to add the Rubber Band library files to an existing
build project instead of using the Makefile, the files in src/ (except build project instead of using the Makefile, the files in `src/`
for RubberBandStretcherJNI.cpp) and the API headers in rubberband/ (except for `RubberBandStretcherJNI.cpp`) and the API headers in
should be all you need. `rubberband/` should be all you need.
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
@@ -334,10 +338,10 @@ commercial terms.
--------------------------------------- ---------------------------------------
A Visual Studio solution, targeted to VC 2015, with two projects is A Visual Studio solution, targeted to VC 2015, with two projects is
supplied. The rubberband-library project builds the Rubber Band static supplied. The `rubberband-library` project builds the Rubber Band
libraries only. The rubberband-program project builds the Rubber Band static libraries only. The `rubberband-program` project builds the
command-line tool (which requires the Rubber Band libraries, and Rubber Band command-line tool (which requires the Rubber Band
libsndfile). libraries, and libsndfile).
You will need to adjust the project settings so as to set the compile You will need to adjust the project settings so as to set the compile
flags according to your preference for FFT and resampler flags according to your preference for FFT and resampler
@@ -346,27 +350,27 @@ appropriately. The default is to use the bundled KissFFT and the
Speex resampler. Speex resampler.
If you prefer to add the Rubber Band library files to an existing If you prefer to add the Rubber Band library files to an existing
build project instead of using the supplied one, the files in src/ build project instead of using the supplied one, the files in `src/`
(except for RubberBandStretcherJNI.cpp) and the API headers in (except for `RubberBandStretcherJNI.cpp`) and the API headers in
rubberband/ should be all you need. `rubberband/` should be all you need.
4g. Building for Android and Java integration 4g. Building for Android and Java integration
--------------------------------------------- ---------------------------------------------
An Android NDK build file is provided as Android.mk. This includes An Android NDK build file is provided as `Android.mk`. This includes
compile definitions for a shared library built for ARM architectures compile definitions for a shared library built for ARM architectures
which can be loaded from a Java application using the Java native which can be loaded from a Java application using the Java native
interface (i.e. the Android NDK). interface (i.e. the Android NDK).
The Java side of the interface can be found in The Java side of the interface can be found in
com/breakfastquay/rubberband/RubberBandStretcher.java. `com/breakfastquay/rubberband/RubberBandStretcher.java`.
See See
https://bitbucket.org/breakfastquay/rubberband-android-simple-sample https://hg.sr.ht/~breakfastquay/rubberband-android-simple-sample
for a very trivial example of integration with Android Java code. for a very trivial example of integration with Android Java code.
The supplied .mk file uses KissFFT and the Speex resampler. The supplied `.mk` file uses KissFFT and the Speex resampler.
5. Copyright notes for bundled libraries 5. Copyright notes for bundled libraries
@@ -375,6 +379,7 @@ The supplied .mk file uses KissFFT and the Speex resampler.
5a. Speex 5a. Speex
--------- ---------
```
[files in src/speex] [files in src/speex]
Copyright 2002-2007 Xiph.org Foundation Copyright 2002-2007 Xiph.org Foundation
@@ -412,11 +417,12 @@ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
```
5b. KissFFT 5b. KissFFT
----------- -----------
```
[files in src/kissfft] [files in src/kissfft]
Copyright (c) 2003-2004 Mark Borgerding Copyright (c) 2003-2004 Mark Borgerding
@@ -448,11 +454,12 @@ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
```
5c. Pommier math functions 5c. Pommier math functions
-------------------------- --------------------------
```
[files in src/pommier] [files in src/pommier]
Copyright (C) 2011 Julien Pommier Copyright (C) 2011 Julien Pommier
@@ -472,11 +479,12 @@ Copyright (C) 2011 Julien Pommier
2. Altered source versions must be plainly marked as such, and must not be 2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software. misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution. 3. This notice may not be removed or altered from any source distribution.
```
5d. float_cast 5d. float_cast
-------------- --------------
```
[files in src/float_cast] [files in src/float_cast]
Copyright (C) 2001 Erik de Castro Lopo <erikd AT mega-nerd DOT com> Copyright (C) 2001 Erik de Castro Lopo <erikd AT mega-nerd DOT com>
@@ -486,11 +494,12 @@ purpose is hereby granted without fee, provided that the above copyright
and this permission notice appear in all copies. No representations are and this permission notice appear in all copies. No representations are
made about the suitability of this software for any purpose. It is made about the suitability of this software for any purpose. It is
provided "as is" without express or implied warranty. provided "as is" without express or implied warranty.
```
5e. getopt 5e. getopt
---------- ----------
```
[files in src/getopt, used by command-line tool on some platforms] [files in src/getopt, used by command-line tool on some platforms]
Copyright (c) 2000 The NetBSD Foundation, Inc. Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -526,11 +535,12 @@ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
```
5f. rubberband-sharp 5f. rubberband-sharp
-------------------- --------------------
```
[files in rubberband-dll and rubberband-sharp] [files in rubberband-dll and rubberband-sharp]
Copyright 2018-2019 Jonathan Gilbert Copyright 2018-2019 Jonathan Gilbert
@@ -558,3 +568,4 @@ Except as contained in this notice, the name of Jonathan Gilbert
shall not be used in advertising or otherwise to promote the sale, shall not be used in advertising or otherwise to promote the sale,
use or other dealings in this Software without prior written use or other dealings in this Software without prior written
authorization. authorization.
```