diff options
Diffstat (limited to 'libs/rubberband/README')
-rw-r--r-- | libs/rubberband/README | 158 |
1 files changed, 0 insertions, 158 deletions
diff --git a/libs/rubberband/README b/libs/rubberband/README deleted file mode 100644 index 178234e9b5..0000000000 --- a/libs/rubberband/README +++ /dev/null @@ -1,158 +0,0 @@ - -Rubber Band -=========== - -An audio time-stretching and pitch-shifting library and utility program. - -Copyright 2007 Chris Cannam, cannam@all-day-breakfast.com. - -Distributed under the GNU General Public License. - -Rubber Band is a library and utility program that permits you to -change the tempo and pitch of an audio recording independently of one -another. - - -Attractive features -~~~~~~~~~~~~~~~~~~~ - - * High quality results suitable for musical use - - Rubber Band is a phase-vocoder-based frequency domain time - stretcher with partial phase locking to peak frequencies and phase - resynchronisation at noisy transients. It is suitable for most - musical uses with its default settings, and has a range of options - for fine tuning. - - * Real-time capable - - In addition to the offline mode (for use in situations where all - audio data is available beforehand), Rubber Band supports a true - real-time, lock-free streaming mode, in which the time and pitch - scaling ratios may be dynamically adjusted during use. - - * Sample-accurate duration adjustment - - In offline mode, Rubber Band ensures that the output has exactly - the right number of samples for the given stretch ratio. (In - real-time mode Rubber Band aims to keep as closely as possible to - the exact ratio, although this depends on the audio material - itself.) - - * Multiprocessor/multi-core support - - Rubber Band's offline mode can take advantage of more than one - processor core if available, when processing data with two or more - audio channels. - - * No job too big, or too small - - Rubber Band is tuned so as to work well with the default settings - for any stretch ratio, from tiny deviations from the original - speed to very extreme stretches. - - * Handy utilities included - - The Rubber Band code includes a useful command-line time-stretch - and pitch shift utility (called simply rubberband), two LADSPA - pitch shifter plugins (Rubber Band Mono Pitch Shifter and Rubber - Band Stereo Pitch Shifter), and a Vamp audio analysis plugin which - may be used to inspect the stretch profile decisions Rubber Band - is taking. - - * Free Software - - Rubber Band is Free Software published under the GNU General - Public License. - - -Limitations -~~~~~~~~~~~ - - * Not especially fast - - The algorithm used by Rubber Band is very processor intensive, and - Rubber Band is not the fastest implementation on earth. - - * Not especially state of the art - - Rubber Band employs well known algorithms which work well in many - situations, but it isn't "cutting edge" in any interesting sense. - - * Relatively complex - - While the fundamental algorithms in Rubber Band are not especially - complex, the implementation is complicated by the support for - multiple processing modes, exact sample precision, threading, and - other features that add to the flexibility of the API. - - -Compiling Rubber Band ---------------------- - -Rubber Band is supplied with build scripts that have been tested on -Linux platforms. It is also possible to build Rubber Band on other -platforms, including both POSIX platforms such as OS/X and non-POSIX -platforms such as Win32. There are some example Makefiles in the misc -directory, but if you're using a proprietary platform and you get -stuck I'm afraid you're on your own, unless you want to pay us... - -To build Rubber Band you will also need libsndfile, libsamplerate, -FFTW3, the Vamp plugin SDK, the LADSPA plugin header, the pthread -library (except on Win32), and a C++ compiler. The code has been -tested with GCC 4.x and with the Intel C++ compiler. - -Rubber Band comes with a simple autoconf script. Run - - $ ./configure - $ make - -to compile, and optionally - - # make install - -to install. - - -Using the Rubber Band utility ------------------------------ - -The Rubber Band command-line utility builds as bin/rubberband. The -basic incantation is - - $ rubberband -t <timeratio> -p <pitchratio> <infile.wav> <outfile.wav> - -For example, - - $ rubberband -t 1.5 -p 2.0 test.wav output.wav - -stretches the file test.wav to 50% longer than its original duration, -shifts it up in pitch by one octave, and writes the output to output.wav. - -Several further options are available: run "rubberband -h" for help. -In particular, different types of music may benefit from different -"crispness" options (-c <n> where <n> is from 0 to 5). - - -Using the 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. - -The source code for the command-line utility (src/main.cpp) provides a -good example of how to use Rubber Band in offline mode; the LADSPA -pitch shifter plugin (src/ladspa/RubberBandPitchShifter.cpp) may be -used as an example of Rubber Band in real-time mode. - -IMPORTANT: Please ensure you have read and understood the licensing -terms for Rubber Band before using it in another application. This -library is provided under the GNU General Public License, which means -that any application that uses it must also be published under the GPL -or a compatible license (i.e. with its full source code also available -for modification and redistribution). See the file COPYING for more -details. Alternative commercial and proprietary licensing terms are -available; please contact the author if you are interested. - |