diff --git a/meson.build b/meson.build
index 28786fc..fb28dd7 100644
--- a/meson.build
+++ b/meson.build
@@ -2,7 +2,7 @@
project(
'Rubber Band Library',
'c', 'cpp',
- version: '3.0.0-beta2',
+ version: '3.0.0',
license: 'GPL-2.0-or-later',
default_options: [
'cpp_std=c++11',
diff --git a/otherbuilds/Makefile.ios b/otherbuilds/Makefile.ios
index 938435a..d1a1977 100644
--- a/otherbuilds/Makefile.ios
+++ b/otherbuilds/Makefile.ios
@@ -44,18 +44,19 @@ LIBRARY_SOURCES := \
src/faster/HighFrequencyAudioCurve.cpp \
src/faster/SilentAudioCurve.cpp \
src/faster/PercussiveAudioCurve.cpp \
+ src/faster/R2Stretcher.cpp \
src/faster/StretcherChannelData.cpp \
- src/faster/StretcherImpl.cpp \
src/faster/StretcherProcess.cpp \
+ src/common/Allocators.cpp \
src/common/BQResampler.cpp \
+ src/common/FFT.cpp \
+ src/common/Log.cpp \
src/common/Profiler.cpp \
src/common/Resampler.cpp \
- src/common/FFT.cpp \
- src/common/Allocators.cpp \
src/common/StretchCalculator.cpp \
src/common/sysutils.cpp \
src/common/Thread.cpp \
- src/finer/R3StretcherImpl.cpp
+ src/finer/R3Stretcher.cpp
LIBRARY_OBJECTS_DEV := $(LIBRARY_SOURCES:.cpp=.dev.o)
LIBRARY_OBJECTS_DEV := $(LIBRARY_OBJECTS_DEV:.c=.dev.o)
diff --git a/otherbuilds/Makefile.linux b/otherbuilds/Makefile.linux
index e721c4b..e12cbcd 100644
--- a/otherbuilds/Makefile.linux
+++ b/otherbuilds/Makefile.linux
@@ -33,18 +33,19 @@ LIBRARY_SOURCES := \
src/faster/HighFrequencyAudioCurve.cpp \
src/faster/SilentAudioCurve.cpp \
src/faster/PercussiveAudioCurve.cpp \
+ src/faster/R2Stretcher.cpp \
src/faster/StretcherChannelData.cpp \
- src/faster/StretcherImpl.cpp \
src/faster/StretcherProcess.cpp \
+ src/common/Allocators.cpp \
src/common/BQResampler.cpp \
+ src/common/FFT.cpp \
+ src/common/Log.cpp \
src/common/Profiler.cpp \
src/common/Resampler.cpp \
- src/common/FFT.cpp \
- src/common/Allocators.cpp \
src/common/StretchCalculator.cpp \
src/common/sysutils.cpp \
src/common/Thread.cpp \
- src/finer/R3StretcherImpl.cpp
+ src/finer/R3Stretcher.cpp
LIBRARY_OBJECTS := $(LIBRARY_SOURCES:.cpp=.o)
LIBRARY_OBJECTS := $(LIBRARY_OBJECTS:.c=.o)
@@ -69,21 +70,20 @@ depend:
src/rubberband-c.o: rubberband/rubberband-c.h
src/rubberband-c.o: rubberband/RubberBandStretcher.h
-src/RubberBandStretcher.o: src/faster/StretcherImpl.h
+src/RubberBandStretcher.o: src/faster/R2Stretcher.h
src/RubberBandStretcher.o: rubberband/RubberBandStretcher.h
src/RubberBandStretcher.o: src/common/Window.h src/common/sysutils.h
src/RubberBandStretcher.o: src/common/VectorOps.h src/common/Allocators.h
src/RubberBandStretcher.o: src/common/FFT.h src/common/RingBuffer.h
src/RubberBandStretcher.o: src/common/Scavenger.h src/common/Thread.h
-src/RubberBandStretcher.o: src/common/Thread.h src/common/sysutils.h
-src/RubberBandStretcher.o: src/faster/SincWindow.h src/common/VectorOps.h
-src/RubberBandStretcher.o: src/common/Allocators.h
+src/RubberBandStretcher.o: src/common/Thread.h src/common/Log.h
+src/RubberBandStretcher.o: src/common/sysutils.h src/faster/SincWindow.h
+src/RubberBandStretcher.o: src/common/VectorOps.h src/common/Allocators.h
src/RubberBandStretcher.o: src/faster/CompoundAudioCurve.h
src/RubberBandStretcher.o: src/faster/PercussiveAudioCurve.h
src/RubberBandStretcher.o: src/faster/AudioCurveCalculator.h
src/RubberBandStretcher.o: src/faster/HighFrequencyAudioCurve.h
-src/RubberBandStretcher.o: src/common/SampleFilter.h
-src/RubberBandStretcher.o: src/finer/R3StretcherImpl.h
+src/RubberBandStretcher.o: src/common/SampleFilter.h src/finer/R3Stretcher.h
src/RubberBandStretcher.o: src/finer/BinSegmenter.h src/finer/BinClassifier.h
src/RubberBandStretcher.o: src/common/MovingMedian.h
src/RubberBandStretcher.o: src/common/SampleFilter.h src/common/FixedVector.h
@@ -91,9 +91,9 @@ src/RubberBandStretcher.o: src/common/SingleThreadRingBuffer.h
src/RubberBandStretcher.o: src/common/HistogramFilter.h src/common/mathmisc.h
src/RubberBandStretcher.o: src/finer/Guide.h src/finer/Peak.h
src/RubberBandStretcher.o: src/finer/PhaseAdvance.h
-src/RubberBandStretcher.o: src/common/StretchCalculator.h
+src/RubberBandStretcher.o: src/common/StretchCalculator.h src/common/Log.h
src/RubberBandStretcher.o: src/common/Resampler.h src/common/FixedVector.h
-src/RubberBandStretcher.o: rubberband/RubberBandStretcher.h
+src/RubberBandStretcher.o: src/common/VectorOpsComplex.h
src/faster/AudioCurveCalculator.o: src/faster/AudioCurveCalculator.h
src/faster/AudioCurveCalculator.o: src/common/sysutils.h
src/faster/CompoundAudioCurve.o: src/faster/CompoundAudioCurve.h
@@ -119,15 +119,34 @@ src/faster/PercussiveAudioCurve.o: src/faster/AudioCurveCalculator.h
src/faster/PercussiveAudioCurve.o: src/common/sysutils.h
src/faster/PercussiveAudioCurve.o: src/common/Allocators.h
src/faster/PercussiveAudioCurve.o: src/common/VectorOps.h
+src/faster/R2Stretcher.o: src/faster/R2Stretcher.h
+src/faster/R2Stretcher.o: rubberband/RubberBandStretcher.h
+src/faster/R2Stretcher.o: src/common/Window.h src/common/sysutils.h
+src/faster/R2Stretcher.o: src/common/VectorOps.h src/common/Allocators.h
+src/faster/R2Stretcher.o: src/common/FFT.h src/common/RingBuffer.h
+src/faster/R2Stretcher.o: src/common/Scavenger.h src/common/Thread.h
+src/faster/R2Stretcher.o: src/common/Thread.h src/common/Log.h
+src/faster/R2Stretcher.o: src/common/sysutils.h src/faster/SincWindow.h
+src/faster/R2Stretcher.o: src/common/VectorOps.h src/common/Allocators.h
+src/faster/R2Stretcher.o: src/faster/CompoundAudioCurve.h
+src/faster/R2Stretcher.o: src/faster/PercussiveAudioCurve.h
+src/faster/R2Stretcher.o: src/faster/AudioCurveCalculator.h
+src/faster/R2Stretcher.o: src/faster/HighFrequencyAudioCurve.h
+src/faster/R2Stretcher.o: src/common/SampleFilter.h
+src/faster/R2Stretcher.o: src/faster/SilentAudioCurve.h
+src/faster/R2Stretcher.o: src/faster/StretcherChannelData.h
+src/faster/R2Stretcher.o: src/common/StretchCalculator.h src/common/Log.h
+src/faster/R2Stretcher.o: src/common/Resampler.h src/common/Profiler.h
src/faster/StretcherChannelData.o: src/faster/StretcherChannelData.h
-src/faster/StretcherChannelData.o: src/faster/StretcherImpl.h
+src/faster/StretcherChannelData.o: src/faster/R2Stretcher.h
src/faster/StretcherChannelData.o: rubberband/RubberBandStretcher.h
src/faster/StretcherChannelData.o: src/common/Window.h src/common/sysutils.h
src/faster/StretcherChannelData.o: src/common/VectorOps.h
src/faster/StretcherChannelData.o: src/common/Allocators.h src/common/FFT.h
src/faster/StretcherChannelData.o: src/common/RingBuffer.h
src/faster/StretcherChannelData.o: src/common/Scavenger.h src/common/Thread.h
-src/faster/StretcherChannelData.o: src/common/Thread.h src/common/sysutils.h
+src/faster/StretcherChannelData.o: src/common/Thread.h src/common/Log.h
+src/faster/StretcherChannelData.o: src/common/sysutils.h
src/faster/StretcherChannelData.o: src/faster/SincWindow.h
src/faster/StretcherChannelData.o: src/common/VectorOps.h
src/faster/StretcherChannelData.o: src/common/Allocators.h
@@ -137,33 +156,15 @@ src/faster/StretcherChannelData.o: src/faster/AudioCurveCalculator.h
src/faster/StretcherChannelData.o: src/faster/HighFrequencyAudioCurve.h
src/faster/StretcherChannelData.o: src/common/SampleFilter.h
src/faster/StretcherChannelData.o: src/common/Resampler.h
-src/faster/StretcherImpl.o: src/faster/StretcherImpl.h
-src/faster/StretcherImpl.o: rubberband/RubberBandStretcher.h
-src/faster/StretcherImpl.o: src/common/Window.h src/common/sysutils.h
-src/faster/StretcherImpl.o: src/common/VectorOps.h src/common/Allocators.h
-src/faster/StretcherImpl.o: src/common/FFT.h src/common/RingBuffer.h
-src/faster/StretcherImpl.o: src/common/Scavenger.h src/common/Thread.h
-src/faster/StretcherImpl.o: src/common/Thread.h src/common/sysutils.h
-src/faster/StretcherImpl.o: src/faster/SincWindow.h src/common/VectorOps.h
-src/faster/StretcherImpl.o: src/common/Allocators.h
-src/faster/StretcherImpl.o: src/faster/CompoundAudioCurve.h
-src/faster/StretcherImpl.o: src/faster/PercussiveAudioCurve.h
-src/faster/StretcherImpl.o: src/faster/AudioCurveCalculator.h
-src/faster/StretcherImpl.o: src/faster/HighFrequencyAudioCurve.h
-src/faster/StretcherImpl.o: src/common/SampleFilter.h
-src/faster/StretcherImpl.o: src/faster/SilentAudioCurve.h
-src/faster/StretcherImpl.o: src/faster/StretcherChannelData.h
-src/faster/StretcherImpl.o: src/common/StretchCalculator.h
-src/faster/StretcherImpl.o: src/common/Resampler.h src/common/Profiler.h
-src/faster/StretcherProcess.o: src/faster/StretcherImpl.h
+src/faster/StretcherProcess.o: src/faster/R2Stretcher.h
src/faster/StretcherProcess.o: rubberband/RubberBandStretcher.h
src/faster/StretcherProcess.o: src/common/Window.h src/common/sysutils.h
src/faster/StretcherProcess.o: src/common/VectorOps.h src/common/Allocators.h
src/faster/StretcherProcess.o: src/common/FFT.h src/common/RingBuffer.h
src/faster/StretcherProcess.o: src/common/Scavenger.h src/common/Thread.h
-src/faster/StretcherProcess.o: src/common/Thread.h src/common/sysutils.h
-src/faster/StretcherProcess.o: src/faster/SincWindow.h src/common/VectorOps.h
-src/faster/StretcherProcess.o: src/common/Allocators.h
+src/faster/StretcherProcess.o: src/common/Thread.h src/common/Log.h
+src/faster/StretcherProcess.o: src/common/sysutils.h src/faster/SincWindow.h
+src/faster/StretcherProcess.o: src/common/VectorOps.h src/common/Allocators.h
src/faster/StretcherProcess.o: src/faster/CompoundAudioCurve.h
src/faster/StretcherProcess.o: src/faster/PercussiveAudioCurve.h
src/faster/StretcherProcess.o: src/faster/AudioCurveCalculator.h
@@ -171,36 +172,36 @@ src/faster/StretcherProcess.o: src/faster/HighFrequencyAudioCurve.h
src/faster/StretcherProcess.o: src/common/SampleFilter.h
src/faster/StretcherProcess.o: src/faster/StretcherChannelData.h
src/faster/StretcherProcess.o: src/common/StretchCalculator.h
-src/faster/StretcherProcess.o: src/common/Resampler.h src/common/Profiler.h
-src/faster/StretcherProcess.o: src/common/mathmisc.h
+src/faster/StretcherProcess.o: src/common/Log.h src/common/Resampler.h
+src/faster/StretcherProcess.o: src/common/Profiler.h src/common/mathmisc.h
+src/common/Allocators.o: src/common/Allocators.h src/common/VectorOps.h
+src/common/Allocators.o: src/common/sysutils.h
+src/common/BQResampler.o: src/common/BQResampler.h src/common/Allocators.h
+src/common/BQResampler.o: src/common/VectorOps.h src/common/sysutils.h
+src/common/FFT.o: src/common/FFT.h src/common/sysutils.h src/common/Thread.h
+src/common/FFT.o: src/common/Profiler.h src/common/Allocators.h
+src/common/FFT.o: src/common/VectorOps.h src/common/VectorOpsComplex.h
+src/common/Log.o: src/common/Log.h
src/common/Profiler.o: src/common/Profiler.h src/common/sysutils.h
src/common/Profiler.o: src/common/Thread.h
src/common/Resampler.o: src/common/Resampler.h src/common/sysutils.h
src/common/Resampler.o: src/common/Allocators.h src/common/VectorOps.h
-src/common/FFT.o: src/common/FFT.h src/common/sysutils.h src/common/Thread.h
-src/common/FFT.o: src/common/Profiler.h src/common/Allocators.h
-src/common/FFT.o: src/common/VectorOps.h src/common/VectorOpsComplex.h
-src/common/Allocators.o: src/common/Allocators.h src/common/VectorOps.h
-src/common/Allocators.o: src/common/sysutils.h
src/common/StretchCalculator.o: src/common/StretchCalculator.h
-src/common/StretchCalculator.o: src/common/sysutils.h
+src/common/StretchCalculator.o: src/common/Log.h src/common/sysutils.h
src/common/sysutils.o: src/common/sysutils.h
src/common/Thread.o: src/common/Thread.h
-src/finer/R3StretcherImpl.o: src/finer/R3StretcherImpl.h
-src/finer/R3StretcherImpl.o: src/finer/BinSegmenter.h
-src/finer/R3StretcherImpl.o: src/finer/BinClassifier.h
-src/finer/R3StretcherImpl.o: src/common/Allocators.h
-src/finer/R3StretcherImpl.o: src/common/MovingMedian.h
-src/finer/R3StretcherImpl.o: src/common/SampleFilter.h
-src/finer/R3StretcherImpl.o: src/common/FixedVector.h src/common/Allocators.h
-src/finer/R3StretcherImpl.o: src/common/VectorOps.h src/common/sysutils.h
-src/finer/R3StretcherImpl.o: src/common/SingleThreadRingBuffer.h
-src/finer/R3StretcherImpl.o: src/common/RingBuffer.h
-src/finer/R3StretcherImpl.o: src/common/HistogramFilter.h
-src/finer/R3StretcherImpl.o: src/common/mathmisc.h src/finer/Guide.h
-src/finer/R3StretcherImpl.o: src/finer/Peak.h src/finer/PhaseAdvance.h
-src/finer/R3StretcherImpl.o: src/common/StretchCalculator.h
-src/finer/R3StretcherImpl.o: src/common/Resampler.h src/common/FFT.h
-src/finer/R3StretcherImpl.o: src/common/FixedVector.h src/common/Window.h
-src/finer/R3StretcherImpl.o: rubberband/RubberBandStretcher.h
-src/finer/R3StretcherImpl.o: src/common/VectorOpsComplex.h
+src/finer/R3Stretcher.o: src/finer/R3Stretcher.h src/finer/BinSegmenter.h
+src/finer/R3Stretcher.o: src/finer/BinClassifier.h src/common/Allocators.h
+src/finer/R3Stretcher.o: src/common/MovingMedian.h src/common/SampleFilter.h
+src/finer/R3Stretcher.o: src/common/FixedVector.h src/common/Allocators.h
+src/finer/R3Stretcher.o: src/common/VectorOps.h src/common/sysutils.h
+src/finer/R3Stretcher.o: src/common/SingleThreadRingBuffer.h
+src/finer/R3Stretcher.o: src/common/RingBuffer.h src/common/HistogramFilter.h
+src/finer/R3Stretcher.o: src/common/mathmisc.h src/finer/Guide.h
+src/finer/R3Stretcher.o: src/common/Log.h src/finer/Peak.h
+src/finer/R3Stretcher.o: src/finer/PhaseAdvance.h
+src/finer/R3Stretcher.o: src/common/StretchCalculator.h src/common/Log.h
+src/finer/R3Stretcher.o: src/common/Resampler.h src/common/FFT.h
+src/finer/R3Stretcher.o: src/common/FixedVector.h src/common/Window.h
+src/finer/R3Stretcher.o: src/common/VectorOpsComplex.h
+src/finer/R3Stretcher.o: rubberband/RubberBandStretcher.h
diff --git a/otherbuilds/Makefile.macos b/otherbuilds/Makefile.macos
index db68eae..5819dbd 100644
--- a/otherbuilds/Makefile.macos
+++ b/otherbuilds/Makefile.macos
@@ -33,18 +33,19 @@ LIBRARY_SOURCES := \
src/faster/HighFrequencyAudioCurve.cpp \
src/faster/SilentAudioCurve.cpp \
src/faster/PercussiveAudioCurve.cpp \
+ src/faster/R2Stretcher.cpp \
src/faster/StretcherChannelData.cpp \
- src/faster/StretcherImpl.cpp \
src/faster/StretcherProcess.cpp \
+ src/common/Allocators.cpp \
src/common/BQResampler.cpp \
+ src/common/FFT.cpp \
+ src/common/Log.cpp \
src/common/Profiler.cpp \
src/common/Resampler.cpp \
- src/common/FFT.cpp \
- src/common/Allocators.cpp \
src/common/StretchCalculator.cpp \
src/common/sysutils.cpp \
src/common/Thread.cpp \
- src/finer/R3StretcherImpl.cpp
+ src/finer/R3Stretcher.cpp
LIBRARY_OBJECTS := $(LIBRARY_SOURCES:.cpp=.o)
LIBRARY_OBJECTS := $(LIBRARY_OBJECTS:.c=.o)
@@ -70,21 +71,20 @@ depend:
src/rubberband-c.o: rubberband/rubberband-c.h
src/rubberband-c.o: rubberband/RubberBandStretcher.h
-src/RubberBandStretcher.o: src/faster/StretcherImpl.h
+src/RubberBandStretcher.o: src/faster/R2Stretcher.h
src/RubberBandStretcher.o: rubberband/RubberBandStretcher.h
src/RubberBandStretcher.o: src/common/Window.h src/common/sysutils.h
src/RubberBandStretcher.o: src/common/VectorOps.h src/common/Allocators.h
src/RubberBandStretcher.o: src/common/FFT.h src/common/RingBuffer.h
src/RubberBandStretcher.o: src/common/Scavenger.h src/common/Thread.h
-src/RubberBandStretcher.o: src/common/Thread.h src/common/sysutils.h
-src/RubberBandStretcher.o: src/faster/SincWindow.h src/common/VectorOps.h
-src/RubberBandStretcher.o: src/common/Allocators.h
+src/RubberBandStretcher.o: src/common/Thread.h src/common/Log.h
+src/RubberBandStretcher.o: src/common/sysutils.h src/faster/SincWindow.h
+src/RubberBandStretcher.o: src/common/VectorOps.h src/common/Allocators.h
src/RubberBandStretcher.o: src/faster/CompoundAudioCurve.h
src/RubberBandStretcher.o: src/faster/PercussiveAudioCurve.h
src/RubberBandStretcher.o: src/faster/AudioCurveCalculator.h
src/RubberBandStretcher.o: src/faster/HighFrequencyAudioCurve.h
-src/RubberBandStretcher.o: src/common/SampleFilter.h
-src/RubberBandStretcher.o: src/finer/R3StretcherImpl.h
+src/RubberBandStretcher.o: src/common/SampleFilter.h src/finer/R3Stretcher.h
src/RubberBandStretcher.o: src/finer/BinSegmenter.h src/finer/BinClassifier.h
src/RubberBandStretcher.o: src/common/MovingMedian.h
src/RubberBandStretcher.o: src/common/SampleFilter.h src/common/FixedVector.h
@@ -92,9 +92,9 @@ src/RubberBandStretcher.o: src/common/SingleThreadRingBuffer.h
src/RubberBandStretcher.o: src/common/HistogramFilter.h src/common/mathmisc.h
src/RubberBandStretcher.o: src/finer/Guide.h src/finer/Peak.h
src/RubberBandStretcher.o: src/finer/PhaseAdvance.h
-src/RubberBandStretcher.o: src/common/StretchCalculator.h
+src/RubberBandStretcher.o: src/common/StretchCalculator.h src/common/Log.h
src/RubberBandStretcher.o: src/common/Resampler.h src/common/FixedVector.h
-src/RubberBandStretcher.o: rubberband/RubberBandStretcher.h
+src/RubberBandStretcher.o: src/common/VectorOpsComplex.h
src/faster/AudioCurveCalculator.o: src/faster/AudioCurveCalculator.h
src/faster/AudioCurveCalculator.o: src/common/sysutils.h
src/faster/CompoundAudioCurve.o: src/faster/CompoundAudioCurve.h
@@ -120,15 +120,34 @@ src/faster/PercussiveAudioCurve.o: src/faster/AudioCurveCalculator.h
src/faster/PercussiveAudioCurve.o: src/common/sysutils.h
src/faster/PercussiveAudioCurve.o: src/common/Allocators.h
src/faster/PercussiveAudioCurve.o: src/common/VectorOps.h
+src/faster/R2Stretcher.o: src/faster/R2Stretcher.h
+src/faster/R2Stretcher.o: rubberband/RubberBandStretcher.h
+src/faster/R2Stretcher.o: src/common/Window.h src/common/sysutils.h
+src/faster/R2Stretcher.o: src/common/VectorOps.h src/common/Allocators.h
+src/faster/R2Stretcher.o: src/common/FFT.h src/common/RingBuffer.h
+src/faster/R2Stretcher.o: src/common/Scavenger.h src/common/Thread.h
+src/faster/R2Stretcher.o: src/common/Thread.h src/common/Log.h
+src/faster/R2Stretcher.o: src/common/sysutils.h src/faster/SincWindow.h
+src/faster/R2Stretcher.o: src/common/VectorOps.h src/common/Allocators.h
+src/faster/R2Stretcher.o: src/faster/CompoundAudioCurve.h
+src/faster/R2Stretcher.o: src/faster/PercussiveAudioCurve.h
+src/faster/R2Stretcher.o: src/faster/AudioCurveCalculator.h
+src/faster/R2Stretcher.o: src/faster/HighFrequencyAudioCurve.h
+src/faster/R2Stretcher.o: src/common/SampleFilter.h
+src/faster/R2Stretcher.o: src/faster/SilentAudioCurve.h
+src/faster/R2Stretcher.o: src/faster/StretcherChannelData.h
+src/faster/R2Stretcher.o: src/common/StretchCalculator.h src/common/Log.h
+src/faster/R2Stretcher.o: src/common/Resampler.h src/common/Profiler.h
src/faster/StretcherChannelData.o: src/faster/StretcherChannelData.h
-src/faster/StretcherChannelData.o: src/faster/StretcherImpl.h
+src/faster/StretcherChannelData.o: src/faster/R2Stretcher.h
src/faster/StretcherChannelData.o: rubberband/RubberBandStretcher.h
src/faster/StretcherChannelData.o: src/common/Window.h src/common/sysutils.h
src/faster/StretcherChannelData.o: src/common/VectorOps.h
src/faster/StretcherChannelData.o: src/common/Allocators.h src/common/FFT.h
src/faster/StretcherChannelData.o: src/common/RingBuffer.h
src/faster/StretcherChannelData.o: src/common/Scavenger.h src/common/Thread.h
-src/faster/StretcherChannelData.o: src/common/Thread.h src/common/sysutils.h
+src/faster/StretcherChannelData.o: src/common/Thread.h src/common/Log.h
+src/faster/StretcherChannelData.o: src/common/sysutils.h
src/faster/StretcherChannelData.o: src/faster/SincWindow.h
src/faster/StretcherChannelData.o: src/common/VectorOps.h
src/faster/StretcherChannelData.o: src/common/Allocators.h
@@ -138,33 +157,15 @@ src/faster/StretcherChannelData.o: src/faster/AudioCurveCalculator.h
src/faster/StretcherChannelData.o: src/faster/HighFrequencyAudioCurve.h
src/faster/StretcherChannelData.o: src/common/SampleFilter.h
src/faster/StretcherChannelData.o: src/common/Resampler.h
-src/faster/StretcherImpl.o: src/faster/StretcherImpl.h
-src/faster/StretcherImpl.o: rubberband/RubberBandStretcher.h
-src/faster/StretcherImpl.o: src/common/Window.h src/common/sysutils.h
-src/faster/StretcherImpl.o: src/common/VectorOps.h src/common/Allocators.h
-src/faster/StretcherImpl.o: src/common/FFT.h src/common/RingBuffer.h
-src/faster/StretcherImpl.o: src/common/Scavenger.h src/common/Thread.h
-src/faster/StretcherImpl.o: src/common/Thread.h src/common/sysutils.h
-src/faster/StretcherImpl.o: src/faster/SincWindow.h src/common/VectorOps.h
-src/faster/StretcherImpl.o: src/common/Allocators.h
-src/faster/StretcherImpl.o: src/faster/CompoundAudioCurve.h
-src/faster/StretcherImpl.o: src/faster/PercussiveAudioCurve.h
-src/faster/StretcherImpl.o: src/faster/AudioCurveCalculator.h
-src/faster/StretcherImpl.o: src/faster/HighFrequencyAudioCurve.h
-src/faster/StretcherImpl.o: src/common/SampleFilter.h
-src/faster/StretcherImpl.o: src/faster/SilentAudioCurve.h
-src/faster/StretcherImpl.o: src/faster/StretcherChannelData.h
-src/faster/StretcherImpl.o: src/common/StretchCalculator.h
-src/faster/StretcherImpl.o: src/common/Resampler.h src/common/Profiler.h
-src/faster/StretcherProcess.o: src/faster/StretcherImpl.h
+src/faster/StretcherProcess.o: src/faster/R2Stretcher.h
src/faster/StretcherProcess.o: rubberband/RubberBandStretcher.h
src/faster/StretcherProcess.o: src/common/Window.h src/common/sysutils.h
src/faster/StretcherProcess.o: src/common/VectorOps.h src/common/Allocators.h
src/faster/StretcherProcess.o: src/common/FFT.h src/common/RingBuffer.h
src/faster/StretcherProcess.o: src/common/Scavenger.h src/common/Thread.h
-src/faster/StretcherProcess.o: src/common/Thread.h src/common/sysutils.h
-src/faster/StretcherProcess.o: src/faster/SincWindow.h src/common/VectorOps.h
-src/faster/StretcherProcess.o: src/common/Allocators.h
+src/faster/StretcherProcess.o: src/common/Thread.h src/common/Log.h
+src/faster/StretcherProcess.o: src/common/sysutils.h src/faster/SincWindow.h
+src/faster/StretcherProcess.o: src/common/VectorOps.h src/common/Allocators.h
src/faster/StretcherProcess.o: src/faster/CompoundAudioCurve.h
src/faster/StretcherProcess.o: src/faster/PercussiveAudioCurve.h
src/faster/StretcherProcess.o: src/faster/AudioCurveCalculator.h
@@ -172,36 +173,36 @@ src/faster/StretcherProcess.o: src/faster/HighFrequencyAudioCurve.h
src/faster/StretcherProcess.o: src/common/SampleFilter.h
src/faster/StretcherProcess.o: src/faster/StretcherChannelData.h
src/faster/StretcherProcess.o: src/common/StretchCalculator.h
-src/faster/StretcherProcess.o: src/common/Resampler.h src/common/Profiler.h
-src/faster/StretcherProcess.o: src/common/mathmisc.h
+src/faster/StretcherProcess.o: src/common/Log.h src/common/Resampler.h
+src/faster/StretcherProcess.o: src/common/Profiler.h src/common/mathmisc.h
+src/common/Allocators.o: src/common/Allocators.h src/common/VectorOps.h
+src/common/Allocators.o: src/common/sysutils.h
+src/common/BQResampler.o: src/common/BQResampler.h src/common/Allocators.h
+src/common/BQResampler.o: src/common/VectorOps.h src/common/sysutils.h
+src/common/FFT.o: src/common/FFT.h src/common/sysutils.h src/common/Thread.h
+src/common/FFT.o: src/common/Profiler.h src/common/Allocators.h
+src/common/FFT.o: src/common/VectorOps.h src/common/VectorOpsComplex.h
+src/common/Log.o: src/common/Log.h
src/common/Profiler.o: src/common/Profiler.h src/common/sysutils.h
src/common/Profiler.o: src/common/Thread.h
src/common/Resampler.o: src/common/Resampler.h src/common/sysutils.h
src/common/Resampler.o: src/common/Allocators.h src/common/VectorOps.h
-src/common/FFT.o: src/common/FFT.h src/common/sysutils.h src/common/Thread.h
-src/common/FFT.o: src/common/Profiler.h src/common/Allocators.h
-src/common/FFT.o: src/common/VectorOps.h src/common/VectorOpsComplex.h
-src/common/Allocators.o: src/common/Allocators.h src/common/VectorOps.h
-src/common/Allocators.o: src/common/sysutils.h
src/common/StretchCalculator.o: src/common/StretchCalculator.h
-src/common/StretchCalculator.o: src/common/sysutils.h
+src/common/StretchCalculator.o: src/common/Log.h src/common/sysutils.h
src/common/sysutils.o: src/common/sysutils.h
src/common/Thread.o: src/common/Thread.h
-src/finer/R3StretcherImpl.o: src/finer/R3StretcherImpl.h
-src/finer/R3StretcherImpl.o: src/finer/BinSegmenter.h
-src/finer/R3StretcherImpl.o: src/finer/BinClassifier.h
-src/finer/R3StretcherImpl.o: src/common/Allocators.h
-src/finer/R3StretcherImpl.o: src/common/MovingMedian.h
-src/finer/R3StretcherImpl.o: src/common/SampleFilter.h
-src/finer/R3StretcherImpl.o: src/common/FixedVector.h src/common/Allocators.h
-src/finer/R3StretcherImpl.o: src/common/VectorOps.h src/common/sysutils.h
-src/finer/R3StretcherImpl.o: src/common/SingleThreadRingBuffer.h
-src/finer/R3StretcherImpl.o: src/common/RingBuffer.h
-src/finer/R3StretcherImpl.o: src/common/HistogramFilter.h
-src/finer/R3StretcherImpl.o: src/common/mathmisc.h src/finer/Guide.h
-src/finer/R3StretcherImpl.o: src/finer/Peak.h src/finer/PhaseAdvance.h
-src/finer/R3StretcherImpl.o: src/common/StretchCalculator.h
-src/finer/R3StretcherImpl.o: src/common/Resampler.h src/common/FFT.h
-src/finer/R3StretcherImpl.o: src/common/FixedVector.h src/common/Window.h
-src/finer/R3StretcherImpl.o: rubberband/RubberBandStretcher.h
-src/finer/R3StretcherImpl.o: src/common/VectorOpsComplex.h
+src/finer/R3Stretcher.o: src/finer/R3Stretcher.h src/finer/BinSegmenter.h
+src/finer/R3Stretcher.o: src/finer/BinClassifier.h src/common/Allocators.h
+src/finer/R3Stretcher.o: src/common/MovingMedian.h src/common/SampleFilter.h
+src/finer/R3Stretcher.o: src/common/FixedVector.h src/common/Allocators.h
+src/finer/R3Stretcher.o: src/common/VectorOps.h src/common/sysutils.h
+src/finer/R3Stretcher.o: src/common/SingleThreadRingBuffer.h
+src/finer/R3Stretcher.o: src/common/RingBuffer.h src/common/HistogramFilter.h
+src/finer/R3Stretcher.o: src/common/mathmisc.h src/finer/Guide.h
+src/finer/R3Stretcher.o: src/common/Log.h src/finer/Peak.h
+src/finer/R3Stretcher.o: src/finer/PhaseAdvance.h
+src/finer/R3Stretcher.o: src/common/StretchCalculator.h src/common/Log.h
+src/finer/R3Stretcher.o: src/common/Resampler.h src/common/FFT.h
+src/finer/R3Stretcher.o: src/common/FixedVector.h src/common/Window.h
+src/finer/R3Stretcher.o: src/common/VectorOpsComplex.h
+src/finer/R3Stretcher.o: rubberband/RubberBandStretcher.h
diff --git a/otherbuilds/Makefile.macos-universal b/otherbuilds/Makefile.macos-universal
index 69e6180..5513ff7 100644
--- a/otherbuilds/Makefile.macos-universal
+++ b/otherbuilds/Makefile.macos-universal
@@ -33,18 +33,19 @@ LIBRARY_SOURCES := \
src/faster/HighFrequencyAudioCurve.cpp \
src/faster/SilentAudioCurve.cpp \
src/faster/PercussiveAudioCurve.cpp \
+ src/faster/R2Stretcher.cpp \
src/faster/StretcherChannelData.cpp \
- src/faster/StretcherImpl.cpp \
src/faster/StretcherProcess.cpp \
+ src/common/Allocators.cpp \
src/common/BQResampler.cpp \
+ src/common/FFT.cpp \
+ src/common/Log.cpp \
src/common/Profiler.cpp \
src/common/Resampler.cpp \
- src/common/FFT.cpp \
- src/common/Allocators.cpp \
src/common/StretchCalculator.cpp \
src/common/sysutils.cpp \
src/common/Thread.cpp \
- src/finer/R3StretcherImpl.cpp
+ src/finer/R3Stretcher.cpp
LIBRARY_OBJECTS := $(LIBRARY_SOURCES:.cpp=.o)
LIBRARY_OBJECTS := $(LIBRARY_OBJECTS:.c=.o)
@@ -70,21 +71,20 @@ depend:
src/rubberband-c.o: rubberband/rubberband-c.h
src/rubberband-c.o: rubberband/RubberBandStretcher.h
-src/RubberBandStretcher.o: src/faster/StretcherImpl.h
+src/RubberBandStretcher.o: src/faster/R2Stretcher.h
src/RubberBandStretcher.o: rubberband/RubberBandStretcher.h
src/RubberBandStretcher.o: src/common/Window.h src/common/sysutils.h
src/RubberBandStretcher.o: src/common/VectorOps.h src/common/Allocators.h
src/RubberBandStretcher.o: src/common/FFT.h src/common/RingBuffer.h
src/RubberBandStretcher.o: src/common/Scavenger.h src/common/Thread.h
-src/RubberBandStretcher.o: src/common/Thread.h src/common/sysutils.h
-src/RubberBandStretcher.o: src/faster/SincWindow.h src/common/VectorOps.h
-src/RubberBandStretcher.o: src/common/Allocators.h
+src/RubberBandStretcher.o: src/common/Thread.h src/common/Log.h
+src/RubberBandStretcher.o: src/common/sysutils.h src/faster/SincWindow.h
+src/RubberBandStretcher.o: src/common/VectorOps.h src/common/Allocators.h
src/RubberBandStretcher.o: src/faster/CompoundAudioCurve.h
src/RubberBandStretcher.o: src/faster/PercussiveAudioCurve.h
src/RubberBandStretcher.o: src/faster/AudioCurveCalculator.h
src/RubberBandStretcher.o: src/faster/HighFrequencyAudioCurve.h
-src/RubberBandStretcher.o: src/common/SampleFilter.h
-src/RubberBandStretcher.o: src/finer/R3StretcherImpl.h
+src/RubberBandStretcher.o: src/common/SampleFilter.h src/finer/R3Stretcher.h
src/RubberBandStretcher.o: src/finer/BinSegmenter.h src/finer/BinClassifier.h
src/RubberBandStretcher.o: src/common/MovingMedian.h
src/RubberBandStretcher.o: src/common/SampleFilter.h src/common/FixedVector.h
@@ -92,9 +92,9 @@ src/RubberBandStretcher.o: src/common/SingleThreadRingBuffer.h
src/RubberBandStretcher.o: src/common/HistogramFilter.h src/common/mathmisc.h
src/RubberBandStretcher.o: src/finer/Guide.h src/finer/Peak.h
src/RubberBandStretcher.o: src/finer/PhaseAdvance.h
-src/RubberBandStretcher.o: src/common/StretchCalculator.h
+src/RubberBandStretcher.o: src/common/StretchCalculator.h src/common/Log.h
src/RubberBandStretcher.o: src/common/Resampler.h src/common/FixedVector.h
-src/RubberBandStretcher.o: rubberband/RubberBandStretcher.h
+src/RubberBandStretcher.o: src/common/VectorOpsComplex.h
src/faster/AudioCurveCalculator.o: src/faster/AudioCurveCalculator.h
src/faster/AudioCurveCalculator.o: src/common/sysutils.h
src/faster/CompoundAudioCurve.o: src/faster/CompoundAudioCurve.h
@@ -120,15 +120,34 @@ src/faster/PercussiveAudioCurve.o: src/faster/AudioCurveCalculator.h
src/faster/PercussiveAudioCurve.o: src/common/sysutils.h
src/faster/PercussiveAudioCurve.o: src/common/Allocators.h
src/faster/PercussiveAudioCurve.o: src/common/VectorOps.h
+src/faster/R2Stretcher.o: src/faster/R2Stretcher.h
+src/faster/R2Stretcher.o: rubberband/RubberBandStretcher.h
+src/faster/R2Stretcher.o: src/common/Window.h src/common/sysutils.h
+src/faster/R2Stretcher.o: src/common/VectorOps.h src/common/Allocators.h
+src/faster/R2Stretcher.o: src/common/FFT.h src/common/RingBuffer.h
+src/faster/R2Stretcher.o: src/common/Scavenger.h src/common/Thread.h
+src/faster/R2Stretcher.o: src/common/Thread.h src/common/Log.h
+src/faster/R2Stretcher.o: src/common/sysutils.h src/faster/SincWindow.h
+src/faster/R2Stretcher.o: src/common/VectorOps.h src/common/Allocators.h
+src/faster/R2Stretcher.o: src/faster/CompoundAudioCurve.h
+src/faster/R2Stretcher.o: src/faster/PercussiveAudioCurve.h
+src/faster/R2Stretcher.o: src/faster/AudioCurveCalculator.h
+src/faster/R2Stretcher.o: src/faster/HighFrequencyAudioCurve.h
+src/faster/R2Stretcher.o: src/common/SampleFilter.h
+src/faster/R2Stretcher.o: src/faster/SilentAudioCurve.h
+src/faster/R2Stretcher.o: src/faster/StretcherChannelData.h
+src/faster/R2Stretcher.o: src/common/StretchCalculator.h src/common/Log.h
+src/faster/R2Stretcher.o: src/common/Resampler.h src/common/Profiler.h
src/faster/StretcherChannelData.o: src/faster/StretcherChannelData.h
-src/faster/StretcherChannelData.o: src/faster/StretcherImpl.h
+src/faster/StretcherChannelData.o: src/faster/R2Stretcher.h
src/faster/StretcherChannelData.o: rubberband/RubberBandStretcher.h
src/faster/StretcherChannelData.o: src/common/Window.h src/common/sysutils.h
src/faster/StretcherChannelData.o: src/common/VectorOps.h
src/faster/StretcherChannelData.o: src/common/Allocators.h src/common/FFT.h
src/faster/StretcherChannelData.o: src/common/RingBuffer.h
src/faster/StretcherChannelData.o: src/common/Scavenger.h src/common/Thread.h
-src/faster/StretcherChannelData.o: src/common/Thread.h src/common/sysutils.h
+src/faster/StretcherChannelData.o: src/common/Thread.h src/common/Log.h
+src/faster/StretcherChannelData.o: src/common/sysutils.h
src/faster/StretcherChannelData.o: src/faster/SincWindow.h
src/faster/StretcherChannelData.o: src/common/VectorOps.h
src/faster/StretcherChannelData.o: src/common/Allocators.h
@@ -138,33 +157,15 @@ src/faster/StretcherChannelData.o: src/faster/AudioCurveCalculator.h
src/faster/StretcherChannelData.o: src/faster/HighFrequencyAudioCurve.h
src/faster/StretcherChannelData.o: src/common/SampleFilter.h
src/faster/StretcherChannelData.o: src/common/Resampler.h
-src/faster/StretcherImpl.o: src/faster/StretcherImpl.h
-src/faster/StretcherImpl.o: rubberband/RubberBandStretcher.h
-src/faster/StretcherImpl.o: src/common/Window.h src/common/sysutils.h
-src/faster/StretcherImpl.o: src/common/VectorOps.h src/common/Allocators.h
-src/faster/StretcherImpl.o: src/common/FFT.h src/common/RingBuffer.h
-src/faster/StretcherImpl.o: src/common/Scavenger.h src/common/Thread.h
-src/faster/StretcherImpl.o: src/common/Thread.h src/common/sysutils.h
-src/faster/StretcherImpl.o: src/faster/SincWindow.h src/common/VectorOps.h
-src/faster/StretcherImpl.o: src/common/Allocators.h
-src/faster/StretcherImpl.o: src/faster/CompoundAudioCurve.h
-src/faster/StretcherImpl.o: src/faster/PercussiveAudioCurve.h
-src/faster/StretcherImpl.o: src/faster/AudioCurveCalculator.h
-src/faster/StretcherImpl.o: src/faster/HighFrequencyAudioCurve.h
-src/faster/StretcherImpl.o: src/common/SampleFilter.h
-src/faster/StretcherImpl.o: src/faster/SilentAudioCurve.h
-src/faster/StretcherImpl.o: src/faster/StretcherChannelData.h
-src/faster/StretcherImpl.o: src/common/StretchCalculator.h
-src/faster/StretcherImpl.o: src/common/Resampler.h src/common/Profiler.h
-src/faster/StretcherProcess.o: src/faster/StretcherImpl.h
+src/faster/StretcherProcess.o: src/faster/R2Stretcher.h
src/faster/StretcherProcess.o: rubberband/RubberBandStretcher.h
src/faster/StretcherProcess.o: src/common/Window.h src/common/sysutils.h
src/faster/StretcherProcess.o: src/common/VectorOps.h src/common/Allocators.h
src/faster/StretcherProcess.o: src/common/FFT.h src/common/RingBuffer.h
src/faster/StretcherProcess.o: src/common/Scavenger.h src/common/Thread.h
-src/faster/StretcherProcess.o: src/common/Thread.h src/common/sysutils.h
-src/faster/StretcherProcess.o: src/faster/SincWindow.h src/common/VectorOps.h
-src/faster/StretcherProcess.o: src/common/Allocators.h
+src/faster/StretcherProcess.o: src/common/Thread.h src/common/Log.h
+src/faster/StretcherProcess.o: src/common/sysutils.h src/faster/SincWindow.h
+src/faster/StretcherProcess.o: src/common/VectorOps.h src/common/Allocators.h
src/faster/StretcherProcess.o: src/faster/CompoundAudioCurve.h
src/faster/StretcherProcess.o: src/faster/PercussiveAudioCurve.h
src/faster/StretcherProcess.o: src/faster/AudioCurveCalculator.h
@@ -172,36 +173,36 @@ src/faster/StretcherProcess.o: src/faster/HighFrequencyAudioCurve.h
src/faster/StretcherProcess.o: src/common/SampleFilter.h
src/faster/StretcherProcess.o: src/faster/StretcherChannelData.h
src/faster/StretcherProcess.o: src/common/StretchCalculator.h
-src/faster/StretcherProcess.o: src/common/Resampler.h src/common/Profiler.h
-src/faster/StretcherProcess.o: src/common/mathmisc.h
+src/faster/StretcherProcess.o: src/common/Log.h src/common/Resampler.h
+src/faster/StretcherProcess.o: src/common/Profiler.h src/common/mathmisc.h
+src/common/Allocators.o: src/common/Allocators.h src/common/VectorOps.h
+src/common/Allocators.o: src/common/sysutils.h
+src/common/BQResampler.o: src/common/BQResampler.h src/common/Allocators.h
+src/common/BQResampler.o: src/common/VectorOps.h src/common/sysutils.h
+src/common/FFT.o: src/common/FFT.h src/common/sysutils.h src/common/Thread.h
+src/common/FFT.o: src/common/Profiler.h src/common/Allocators.h
+src/common/FFT.o: src/common/VectorOps.h src/common/VectorOpsComplex.h
+src/common/Log.o: src/common/Log.h
src/common/Profiler.o: src/common/Profiler.h src/common/sysutils.h
src/common/Profiler.o: src/common/Thread.h
src/common/Resampler.o: src/common/Resampler.h src/common/sysutils.h
src/common/Resampler.o: src/common/Allocators.h src/common/VectorOps.h
-src/common/FFT.o: src/common/FFT.h src/common/sysutils.h src/common/Thread.h
-src/common/FFT.o: src/common/Profiler.h src/common/Allocators.h
-src/common/FFT.o: src/common/VectorOps.h src/common/VectorOpsComplex.h
-src/common/Allocators.o: src/common/Allocators.h src/common/VectorOps.h
-src/common/Allocators.o: src/common/sysutils.h
src/common/StretchCalculator.o: src/common/StretchCalculator.h
-src/common/StretchCalculator.o: src/common/sysutils.h
+src/common/StretchCalculator.o: src/common/Log.h src/common/sysutils.h
src/common/sysutils.o: src/common/sysutils.h
src/common/Thread.o: src/common/Thread.h
-src/finer/R3StretcherImpl.o: src/finer/R3StretcherImpl.h
-src/finer/R3StretcherImpl.o: src/finer/BinSegmenter.h
-src/finer/R3StretcherImpl.o: src/finer/BinClassifier.h
-src/finer/R3StretcherImpl.o: src/common/Allocators.h
-src/finer/R3StretcherImpl.o: src/common/MovingMedian.h
-src/finer/R3StretcherImpl.o: src/common/SampleFilter.h
-src/finer/R3StretcherImpl.o: src/common/FixedVector.h src/common/Allocators.h
-src/finer/R3StretcherImpl.o: src/common/VectorOps.h src/common/sysutils.h
-src/finer/R3StretcherImpl.o: src/common/SingleThreadRingBuffer.h
-src/finer/R3StretcherImpl.o: src/common/RingBuffer.h
-src/finer/R3StretcherImpl.o: src/common/HistogramFilter.h
-src/finer/R3StretcherImpl.o: src/common/mathmisc.h src/finer/Guide.h
-src/finer/R3StretcherImpl.o: src/finer/Peak.h src/finer/PhaseAdvance.h
-src/finer/R3StretcherImpl.o: src/common/StretchCalculator.h
-src/finer/R3StretcherImpl.o: src/common/Resampler.h src/common/FFT.h
-src/finer/R3StretcherImpl.o: src/common/FixedVector.h src/common/Window.h
-src/finer/R3StretcherImpl.o: rubberband/RubberBandStretcher.h
-src/finer/R3StretcherImpl.o: src/common/VectorOpsComplex.h
+src/finer/R3Stretcher.o: src/finer/R3Stretcher.h src/finer/BinSegmenter.h
+src/finer/R3Stretcher.o: src/finer/BinClassifier.h src/common/Allocators.h
+src/finer/R3Stretcher.o: src/common/MovingMedian.h src/common/SampleFilter.h
+src/finer/R3Stretcher.o: src/common/FixedVector.h src/common/Allocators.h
+src/finer/R3Stretcher.o: src/common/VectorOps.h src/common/sysutils.h
+src/finer/R3Stretcher.o: src/common/SingleThreadRingBuffer.h
+src/finer/R3Stretcher.o: src/common/RingBuffer.h src/common/HistogramFilter.h
+src/finer/R3Stretcher.o: src/common/mathmisc.h src/finer/Guide.h
+src/finer/R3Stretcher.o: src/common/Log.h src/finer/Peak.h
+src/finer/R3Stretcher.o: src/finer/PhaseAdvance.h
+src/finer/R3Stretcher.o: src/common/StretchCalculator.h src/common/Log.h
+src/finer/R3Stretcher.o: src/common/Resampler.h src/common/FFT.h
+src/finer/R3Stretcher.o: src/common/FixedVector.h src/common/Window.h
+src/finer/R3Stretcher.o: src/common/VectorOpsComplex.h
+src/finer/R3Stretcher.o: rubberband/RubberBandStretcher.h
diff --git a/otherbuilds/rubberband-library.vcxproj b/otherbuilds/rubberband-library.vcxproj
index 51a2c33..3f84bb1 100644
--- a/otherbuilds/rubberband-library.vcxproj
+++ b/otherbuilds/rubberband-library.vcxproj
@@ -147,17 +147,18 @@
-
+
+
-
+
diff --git a/rubberband/RubberBandStretcher.h b/rubberband/RubberBandStretcher.h
index 7fc26e2..b5dc29a 100644
--- a/rubberband/RubberBandStretcher.h
+++ b/rubberband/RubberBandStretcher.h
@@ -24,7 +24,7 @@
#ifndef RUBBERBAND_STRETCHER_H
#define RUBBERBAND_STRETCHER_H
-#define RUBBERBAND_VERSION "3.0.0-beta2"
+#define RUBBERBAND_VERSION "3.0.0"
#define RUBBERBAND_API_MAJOR_VERSION 2
#define RUBBERBAND_API_MINOR_VERSION 7
diff --git a/rubberband/rubberband-c.h b/rubberband/rubberband-c.h
index 231f99a..c1e8a4c 100644
--- a/rubberband/rubberband-c.h
+++ b/rubberband/rubberband-c.h
@@ -28,7 +28,7 @@
extern "C" {
#endif
-#define RUBBERBAND_VERSION "3.0.0-beta2"
+#define RUBBERBAND_VERSION "3.0.0"
#define RUBBERBAND_API_MAJOR_VERSION 2
#define RUBBERBAND_API_MINOR_VERSION 7
@@ -90,7 +90,10 @@ enum RubberBandOption {
RubberBandOptionPitchHighConsistency = 0x04000000,
RubberBandOptionChannelsApart = 0x00000000,
- RubberBandOptionChannelsTogether = 0x10000000
+ RubberBandOptionChannelsTogether = 0x10000000,
+
+ RubberBandOptionEngineFaster = 0x00000000,
+ RubberBandOptionEngineFiner = 0x20000000
};
typedef int RubberBandOptions;
@@ -114,6 +117,9 @@ RB_EXTERN void rubberband_set_pitch_scale(RubberBandState, double scale);
RB_EXTERN double rubberband_get_time_ratio(const RubberBandState);
RB_EXTERN double rubberband_get_pitch_scale(const RubberBandState);
+RB_EXTERN void rubberband_set_formant_scale(RubberBandState, double scale);
+RB_EXTERN double rubberband_get_formant_scale(const RubberBandState);
+
RB_EXTERN unsigned int rubberband_get_latency(const RubberBandState);
RB_EXTERN void rubberband_set_transients_option(RubberBandState, RubberBandOptions options);
diff --git a/single/RubberBandSingle.cpp b/single/RubberBandSingle.cpp
index bea6a76..91d78d0 100644
--- a/single/RubberBandSingle.cpp
+++ b/single/RubberBandSingle.cpp
@@ -61,6 +61,7 @@
#include "../src/faster/HighFrequencyAudioCurve.cpp"
#include "../src/faster/SilentAudioCurve.cpp"
#include "../src/faster/PercussiveAudioCurve.cpp"
+#include "../src/common/Log.cpp"
#include "../src/common/Profiler.cpp"
#include "../src/common/FFT.cpp"
#include "../src/common/Resampler.cpp"
@@ -70,9 +71,9 @@
#include "../src/common/sysutils.cpp"
#include "../src/common/Thread.cpp"
#include "../src/faster/StretcherChannelData.cpp"
-#include "../src/faster/R2StretcherImpl.cpp"
+#include "../src/faster/R2Stretcher.cpp"
#include "../src/faster/StretcherProcess.cpp"
-#include "../src/finer/R3StretcherImpl.cpp"
+#include "../src/finer/R3Stretcher.cpp"
#include "../src/RubberBandStretcher.cpp"
#include "../src/rubberband-c.cpp"
diff --git a/src/rubberband-c.cpp b/src/rubberband-c.cpp
index d7e71d0..cfa4b38 100644
--- a/src/rubberband-c.cpp
+++ b/src/rubberband-c.cpp
@@ -73,6 +73,16 @@ double rubberband_get_pitch_scale(const RubberBandState state)
return state->m_s->getPitchScale();
}
+void rubberband_set_formant_scale(RubberBandState state, double scale)
+{
+ state->m_s->setFormantScale(scale);
+}
+
+double rubberband_get_formant_scale(const RubberBandState state)
+{
+ return state->m_s->getFormantScale();
+}
+
unsigned int rubberband_get_latency(const RubberBandState state)
{
return state->m_s->getLatency();