diff --git a/ladspa-lv2/RubberBandLivePitchShifter.cpp b/ladspa-lv2/RubberBandLivePitchShifter.cpp index 9ff0432..25ad132 100644 --- a/ladspa-lv2/RubberBandLivePitchShifter.cpp +++ b/ladspa-lv2/RubberBandLivePitchShifter.cpp @@ -220,7 +220,7 @@ RubberBandLivePitchShifter::getDescriptor(unsigned long index) const LV2_Descriptor RubberBandLivePitchShifter::lv2DescriptorMono = { - "http://breakfastquay.com/rdf/lv2-rubberband-live#mono", + "http://breakfastquay.com/rdf/lv2-rubberband#livemono", instantiate, connectPort, activate, @@ -233,7 +233,7 @@ RubberBandLivePitchShifter::lv2DescriptorMono = const LV2_Descriptor RubberBandLivePitchShifter::lv2DescriptorStereo = { - "http://breakfastquay.com/rdf/lv2-rubberband-live#stereo", + "http://breakfastquay.com/rdf/lv2-rubberband#livestereo", instantiate, connectPort, activate, diff --git a/ladspa-lv2/RubberBandR3PitchShifter.cpp b/ladspa-lv2/RubberBandR3PitchShifter.cpp index bb98026..262bdc7 100644 --- a/ladspa-lv2/RubberBandR3PitchShifter.cpp +++ b/ladspa-lv2/RubberBandR3PitchShifter.cpp @@ -220,7 +220,7 @@ RubberBandR3PitchShifter::getDescriptor(unsigned long index) const LV2_Descriptor RubberBandR3PitchShifter::lv2DescriptorMono = { - "http://breakfastquay.com/rdf/lv2-rubberband-r3#mono", + "http://breakfastquay.com/rdf/lv2-rubberband#r3mono", instantiate, connectPort, activate, @@ -233,7 +233,7 @@ RubberBandR3PitchShifter::lv2DescriptorMono = const LV2_Descriptor RubberBandR3PitchShifter::lv2DescriptorStereo = { - "http://breakfastquay.com/rdf/lv2-rubberband-r3#stereo", + "http://breakfastquay.com/rdf/lv2-rubberband#r3stereo", instantiate, connectPort, activate, diff --git a/meson.build b/meson.build index 6eda474..1fabcc3 100644 --- a/meson.build +++ b/meson.build @@ -2,7 +2,7 @@ project( 'Rubber Band Library', 'c', 'cpp', - version: '3.3.0', + version: '4.0.0', license: 'GPL-2.0-or-later', default_options: [ 'cpp_std=c++11', @@ -15,7 +15,7 @@ project( meson_version: '>= 0.53.0' ) -rubberband_dynamic_library_version = '2.3.0' +rubberband_dynamic_library_version = '3.0.0' system = host_machine.system() architecture = host_machine.cpu_family() diff --git a/rubberband/RubberBandLiveShifter.h b/rubberband/RubberBandLiveShifter.h index 3276a7c..dbc23d6 100644 --- a/rubberband/RubberBandLiveShifter.h +++ b/rubberband/RubberBandLiveShifter.h @@ -23,10 +23,10 @@ #ifndef RUBBERBAND_LIVE_SHIFTER_H #define RUBBERBAND_LIVE_SHIFTER_H - -#define RUBBERBAND_LIVE_VERSION "0.0.1" -#define RUBBERBAND_LIVE_API_MAJOR_VERSION 0 -#define RUBBERBAND_LIVE_API_MINOR_VERSION 0 + +#define RUBBERBAND_VERSION "4.0.0" +#define RUBBERBAND_API_MAJOR_VERSION 3 +#define RUBBERBAND_API_MINOR_VERSION 0 #undef RUBBERBAND_LIVE_DLLEXPORT #ifdef _MSC_VER @@ -49,8 +49,9 @@ namespace RubberBand * * RubberBand::RubberBandLiveShifter is an interface to the Rubber * Band Library designed for applications that need to perform - * pitch-shifting only, without time-stretching, and to do so with the - * shortest available processing delay. + * pitch-shifting only, without time-stretching, and to do so in a + * straightforward block-by-block process with the shortest available + * processing delay. * * RubberBandLiveShifter has a much simpler API than the general * RubberBandStretcher. Its process function, called @@ -67,15 +68,15 @@ namespace RubberBand * it only needs to be queried once and then fixed-size buffers may be * passed. * - * Using RubberBandLiveShifter also gives a substantially shorter - * processing delay than a typical buffering setup using - * RubberBandStretcher, making it a useful choice for some live - * situations, although it is still not a low-latency effect (and - * never will be) with a delay of 50ms or more between input and - * output signals depending on configuration. The actual value may be - * queried via RubberBandLiveShifter::getStartDelay(). The shifter is - * real-time safe in the sense of avoiding allocation, locking, or - * blocking operations in the processing path. + * Using RubberBandLiveShifter also gives a shorter processing delay + * than a typical buffering setup using RubberBandStretcher, making it + * a useful choice for some streamed or live situations. However, it + * is still not a low-latency effect, with a delay of 50ms or more + * between input and output signals depending on configuration. (The + * actual value may be queried via + * RubberBandLiveShifter::getStartDelay().) The shifter is real-time + * safe in the sense of avoiding allocation, locking, or blocking + * operations in the processing path. * * ### Thread safety * diff --git a/rubberband/RubberBandStretcher.h b/rubberband/RubberBandStretcher.h index 85d6a78..295677c 100644 --- a/rubberband/RubberBandStretcher.h +++ b/rubberband/RubberBandStretcher.h @@ -24,9 +24,9 @@ #ifndef RUBBERBAND_STRETCHER_H #define RUBBERBAND_STRETCHER_H -#define RUBBERBAND_VERSION "3.3.0" -#define RUBBERBAND_API_MAJOR_VERSION 2 -#define RUBBERBAND_API_MINOR_VERSION 8 +#define RUBBERBAND_VERSION "4.0.0" +#define RUBBERBAND_API_MAJOR_VERSION 3 +#define RUBBERBAND_API_MINOR_VERSION 0 #undef RUBBERBAND_DLLEXPORT #ifdef _MSC_VER @@ -53,13 +53,16 @@ namespace RubberBand * * ### Summary * - * The Rubber Band Library API is contained in the single class - * RubberBand::RubberBandStretcher. + * The primary Rubber Band Library API is contained in the class + * RubberBand::RubberBandStretcher. This class can perform both pitch + * shifting and time stretching and supports every feature of the + * library. A simpler, more limited alternative API that supports only + * pitch-shifting can be found in RubberBand::RubberBandLiveShifter. * - * The Rubber Band stretcher supports two processing modes, offline - * and real-time, and two processing "engines", known as the R2 or - * Faster engine and the R3 or Finer engine. The choices of processing - * mode and engine are fixed on construction: see + * RubberBandStretcher supports two processing modes, offline and + * real-time, and two processing "engines", known as the R2 or Faster + * engine and the R3 or Finer engine. The choices of processing mode + * and engine are fixed on construction: see * RubberBandStretcher::RubberBandStretcher. The two engines work * identically in API terms, and both of them support both offline and * real-time modes as described below. diff --git a/rubberband/rubberband-c.h b/rubberband/rubberband-c.h index 0167f3d..66d584b 100644 --- a/rubberband/rubberband-c.h +++ b/rubberband/rubberband-c.h @@ -28,10 +28,10 @@ #ifdef __cplusplus extern "C" { #endif - -#define RUBBERBAND_VERSION "3.3.0" -#define RUBBERBAND_API_MAJOR_VERSION 2 -#define RUBBERBAND_API_MINOR_VERSION 8 + +#define RUBBERBAND_VERSION "4.0.0" +#define RUBBERBAND_API_MAJOR_VERSION 3 +#define RUBBERBAND_API_MINOR_VERSION 0 #undef RB_EXTERN #ifdef _MSC_VER diff --git a/single/RubberBandSingle.cpp b/single/RubberBandSingle.cpp index 45a8b3e..3c0f51d 100644 --- a/single/RubberBandSingle.cpp +++ b/single/RubberBandSingle.cpp @@ -27,9 +27,10 @@ This is a single-file compilation unit for Rubber Band Library. To use the library in your project without building it separately, - include in your code either rubberband/RubberBandStretcher.h for - use in C++ or rubberband/rubberband-c.h if you need the C - interface, then add this single C++ source file to your build. + include in your code either rubberband/RubberBandStretcher.h + and/or rubberband/RubberBandLiveShifter.h for use in C++, or + rubberband/rubberband-c.h if you need the C interface, then add + this single C++ source file to your build. Don't move this file into your source tree - keep it in the same place relative to the other Rubber Band code, so that the relative @@ -79,7 +80,9 @@ #include "../src/faster/R2Stretcher.cpp" #include "../src/faster/StretcherProcess.cpp" #include "../src/finer/R3Stretcher.cpp" +#include "../src/finer/R3LiveShifter.cpp" #include "../src/RubberBandStretcher.cpp" +#include "../src/RubberBandLiveShifter.cpp" #include "../src/rubberband-c.cpp"