From 8bcd90fab0ad34e909be3908eef869800ed8b505 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Thu, 29 May 2014 18:00:22 +0100 Subject: [PATCH 01/26] Copyrights --- .../rubberband/RubberBandStretcher.java | 23 ++++++++++++++++++- ladspa/RubberBandPitchShifter.cpp | 2 +- ladspa/RubberBandPitchShifter.h | 2 +- ladspa/libmain.cpp | 2 +- main/main.cpp | 4 ++-- rubberband/RubberBandStretcher.h | 2 +- rubberband/rubberband-c.h | 2 +- src/RubberBandStretcher.cpp | 2 +- src/StretchCalculator.cpp | 2 +- src/StretchCalculator.h | 2 +- src/StretcherChannelData.cpp | 2 +- src/StretcherChannelData.h | 2 +- src/StretcherImpl.cpp | 2 +- src/StretcherImpl.h | 2 +- src/StretcherProcess.cpp | 2 +- src/audiocurves/CompoundAudioCurve.cpp | 2 +- src/audiocurves/CompoundAudioCurve.h | 2 +- src/audiocurves/ConstantAudioCurve.cpp | 2 +- src/audiocurves/ConstantAudioCurve.h | 2 +- src/audiocurves/HighFrequencyAudioCurve.cpp | 2 +- src/audiocurves/HighFrequencyAudioCurve.h | 2 +- src/audiocurves/PercussiveAudioCurve.cpp | 2 +- src/audiocurves/PercussiveAudioCurve.h | 2 +- src/audiocurves/SilentAudioCurve.cpp | 2 +- src/audiocurves/SilentAudioCurve.h | 2 +- .../SpectralDifferenceAudioCurve.cpp | 2 +- .../SpectralDifferenceAudioCurve.h | 2 +- src/base/Profiler.cpp | 2 +- src/base/Profiler.h | 2 +- src/base/RingBuffer.h | 2 +- src/base/Scavenger.h | 2 +- src/dsp/AudioCurveCalculator.cpp | 2 +- src/dsp/AudioCurveCalculator.h | 2 +- src/dsp/FFT.cpp | 2 +- src/dsp/FFT.h | 2 +- src/dsp/MovingMedian.h | 2 +- src/dsp/Resampler.cpp | 2 +- src/dsp/Resampler.h | 2 +- src/dsp/SampleFilter.h | 2 +- src/dsp/SincWindow.h | 2 +- src/dsp/Window.h | 2 +- src/jni/RubberBandStretcherJNI.cpp | 22 +++++++++++++++++- src/rubberband-c.cpp | 2 +- src/system/Allocators.cpp | 2 +- src/system/Allocators.h | 2 +- src/system/Thread.cpp | 2 +- src/system/Thread.h | 2 +- src/system/VectorOps.h | 2 +- src/system/VectorOpsComplex.cpp | 2 +- src/system/VectorOpsComplex.h | 2 +- src/system/sysutils.cpp | 2 +- src/system/sysutils.h | 2 +- vamp/RubberBandVampPlugin.cpp | 2 +- vamp/RubberBandVampPlugin.h | 2 +- vamp/libmain.cpp | 2 +- 55 files changed, 97 insertions(+), 56 deletions(-) diff --git a/com/breakfastquay/rubberband/RubberBandStretcher.java b/com/breakfastquay/rubberband/RubberBandStretcher.java index 1c512ca..8ac6a04 100644 --- a/com/breakfastquay/rubberband/RubberBandStretcher.java +++ b/com/breakfastquay/rubberband/RubberBandStretcher.java @@ -1,4 +1,25 @@ -/* Copyright Chris Cannam - All Rights Reserved */ +/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ + +/* + Rubber Band Library + An audio time-stretching and pitch-shifting library. + Copyright 2007-2014 Particular Programs Ltd. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. See the file + COPYING included with this distribution for more information. + + Alternatively, if you have a valid commercial licence for the + Rubber Band Library obtained by agreement with the copyright + holders, you may redistribute and/or modify it under the terms + described in that licence. + + If you wish to distribute code using the Rubber Band Library + under terms other than those of the GNU General Public License, + you must obtain a valid commercial licence before doing so. +*/ package com.breakfastquay.rubberband; diff --git a/ladspa/RubberBandPitchShifter.cpp b/ladspa/RubberBandPitchShifter.cpp index 6a4a17f..04b0ed7 100644 --- a/ladspa/RubberBandPitchShifter.cpp +++ b/ladspa/RubberBandPitchShifter.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/ladspa/RubberBandPitchShifter.h b/ladspa/RubberBandPitchShifter.h index de28d59..f686dc5 100644 --- a/ladspa/RubberBandPitchShifter.h +++ b/ladspa/RubberBandPitchShifter.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/ladspa/libmain.cpp b/ladspa/libmain.cpp index 3ce8010..b808815 100644 --- a/ladspa/libmain.cpp +++ b/ladspa/libmain.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/main/main.cpp b/main/main.cpp index d51cff3..40a0286 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -199,7 +199,7 @@ int main(int argc, char **argv) cerr << endl; cerr << "Rubber Band" << endl; cerr << "An audio time-stretching and pitch-shifting library and utility program." << endl; - cerr << "Copyright 2007-2012 Particular Programs Ltd." << endl; + cerr << "Copyright 2007-2014 Particular Programs Ltd." << endl; cerr << endl; cerr << " Usage: " << argv[0] << " [options] " << endl; cerr << endl; diff --git a/rubberband/RubberBandStretcher.h b/rubberband/RubberBandStretcher.h index f654cda..3200500 100644 --- a/rubberband/RubberBandStretcher.h +++ b/rubberband/RubberBandStretcher.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/rubberband/rubberband-c.h b/rubberband/rubberband-c.h index 438b561..788988c 100644 --- a/rubberband/rubberband-c.h +++ b/rubberband/rubberband-c.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/RubberBandStretcher.cpp b/src/RubberBandStretcher.cpp index dcc6b94..257e5dd 100644 --- a/src/RubberBandStretcher.cpp +++ b/src/RubberBandStretcher.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/StretchCalculator.cpp b/src/StretchCalculator.cpp index 4494e66..35ee8d5 100644 --- a/src/StretchCalculator.cpp +++ b/src/StretchCalculator.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/StretchCalculator.h b/src/StretchCalculator.h index 7c6a68d..22b13d6 100644 --- a/src/StretchCalculator.h +++ b/src/StretchCalculator.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/StretcherChannelData.cpp b/src/StretcherChannelData.cpp index 5ddc30f..1d7afa6 100644 --- a/src/StretcherChannelData.cpp +++ b/src/StretcherChannelData.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/StretcherChannelData.h b/src/StretcherChannelData.h index 05f6cf4..a75e215 100644 --- a/src/StretcherChannelData.h +++ b/src/StretcherChannelData.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/StretcherImpl.cpp b/src/StretcherImpl.cpp index b4a8bff..1e061a7 100644 --- a/src/StretcherImpl.cpp +++ b/src/StretcherImpl.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/StretcherImpl.h b/src/StretcherImpl.h index 82f0b32..001d796 100644 --- a/src/StretcherImpl.h +++ b/src/StretcherImpl.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/StretcherProcess.cpp b/src/StretcherProcess.cpp index 2bf152a..a5836b8 100644 --- a/src/StretcherProcess.cpp +++ b/src/StretcherProcess.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/audiocurves/CompoundAudioCurve.cpp b/src/audiocurves/CompoundAudioCurve.cpp index ac47130..da73f8f 100644 --- a/src/audiocurves/CompoundAudioCurve.cpp +++ b/src/audiocurves/CompoundAudioCurve.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/audiocurves/CompoundAudioCurve.h b/src/audiocurves/CompoundAudioCurve.h index c5bf0d8..2e3e43d 100644 --- a/src/audiocurves/CompoundAudioCurve.h +++ b/src/audiocurves/CompoundAudioCurve.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/audiocurves/ConstantAudioCurve.cpp b/src/audiocurves/ConstantAudioCurve.cpp index d1b6c91..4e6fc2c 100644 --- a/src/audiocurves/ConstantAudioCurve.cpp +++ b/src/audiocurves/ConstantAudioCurve.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/audiocurves/ConstantAudioCurve.h b/src/audiocurves/ConstantAudioCurve.h index e6b2054..65e2410 100644 --- a/src/audiocurves/ConstantAudioCurve.h +++ b/src/audiocurves/ConstantAudioCurve.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/audiocurves/HighFrequencyAudioCurve.cpp b/src/audiocurves/HighFrequencyAudioCurve.cpp index f33eb4b..88fb20c 100644 --- a/src/audiocurves/HighFrequencyAudioCurve.cpp +++ b/src/audiocurves/HighFrequencyAudioCurve.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/audiocurves/HighFrequencyAudioCurve.h b/src/audiocurves/HighFrequencyAudioCurve.h index 5172669..04fabfa 100644 --- a/src/audiocurves/HighFrequencyAudioCurve.h +++ b/src/audiocurves/HighFrequencyAudioCurve.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/audiocurves/PercussiveAudioCurve.cpp b/src/audiocurves/PercussiveAudioCurve.cpp index a1f76b0..f60dec2 100644 --- a/src/audiocurves/PercussiveAudioCurve.cpp +++ b/src/audiocurves/PercussiveAudioCurve.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/audiocurves/PercussiveAudioCurve.h b/src/audiocurves/PercussiveAudioCurve.h index c6d2fbb..e562a3e 100644 --- a/src/audiocurves/PercussiveAudioCurve.h +++ b/src/audiocurves/PercussiveAudioCurve.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/audiocurves/SilentAudioCurve.cpp b/src/audiocurves/SilentAudioCurve.cpp index dbfd6bc..47a63b0 100644 --- a/src/audiocurves/SilentAudioCurve.cpp +++ b/src/audiocurves/SilentAudioCurve.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/audiocurves/SilentAudioCurve.h b/src/audiocurves/SilentAudioCurve.h index 4e07353..e98f4c0 100644 --- a/src/audiocurves/SilentAudioCurve.h +++ b/src/audiocurves/SilentAudioCurve.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/audiocurves/SpectralDifferenceAudioCurve.cpp b/src/audiocurves/SpectralDifferenceAudioCurve.cpp index 5afa810..0f580f0 100644 --- a/src/audiocurves/SpectralDifferenceAudioCurve.cpp +++ b/src/audiocurves/SpectralDifferenceAudioCurve.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/audiocurves/SpectralDifferenceAudioCurve.h b/src/audiocurves/SpectralDifferenceAudioCurve.h index 20f9c64..331d9cf 100644 --- a/src/audiocurves/SpectralDifferenceAudioCurve.h +++ b/src/audiocurves/SpectralDifferenceAudioCurve.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/base/Profiler.cpp b/src/base/Profiler.cpp index e899b23..aa3159b 100644 --- a/src/base/Profiler.cpp +++ b/src/base/Profiler.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/base/Profiler.h b/src/base/Profiler.h index e7bb4b9..ec1f2a5 100644 --- a/src/base/Profiler.h +++ b/src/base/Profiler.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/base/RingBuffer.h b/src/base/RingBuffer.h index dfad37f..393e0c2 100644 --- a/src/base/RingBuffer.h +++ b/src/base/RingBuffer.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/base/Scavenger.h b/src/base/Scavenger.h index a069056..97fed64 100644 --- a/src/base/Scavenger.h +++ b/src/base/Scavenger.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/dsp/AudioCurveCalculator.cpp b/src/dsp/AudioCurveCalculator.cpp index faaa277..dcd6b60 100644 --- a/src/dsp/AudioCurveCalculator.cpp +++ b/src/dsp/AudioCurveCalculator.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/dsp/AudioCurveCalculator.h b/src/dsp/AudioCurveCalculator.h index ecaf78c..40b643f 100644 --- a/src/dsp/AudioCurveCalculator.h +++ b/src/dsp/AudioCurveCalculator.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/dsp/FFT.cpp b/src/dsp/FFT.cpp index e49e1fe..82d59e6 100644 --- a/src/dsp/FFT.cpp +++ b/src/dsp/FFT.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/dsp/FFT.h b/src/dsp/FFT.h index 822af6a..c49e695 100644 --- a/src/dsp/FFT.h +++ b/src/dsp/FFT.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/dsp/MovingMedian.h b/src/dsp/MovingMedian.h index c867fe2..461f98b 100644 --- a/src/dsp/MovingMedian.h +++ b/src/dsp/MovingMedian.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/dsp/Resampler.cpp b/src/dsp/Resampler.cpp index 7f1bb8a..8821719 100644 --- a/src/dsp/Resampler.cpp +++ b/src/dsp/Resampler.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/dsp/Resampler.h b/src/dsp/Resampler.h index f91157c..3b27489 100644 --- a/src/dsp/Resampler.h +++ b/src/dsp/Resampler.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/dsp/SampleFilter.h b/src/dsp/SampleFilter.h index c2589f4..e5eca66 100644 --- a/src/dsp/SampleFilter.h +++ b/src/dsp/SampleFilter.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/dsp/SincWindow.h b/src/dsp/SincWindow.h index 3d917c8..7fa8255 100644 --- a/src/dsp/SincWindow.h +++ b/src/dsp/SincWindow.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/dsp/Window.h b/src/dsp/Window.h index 6ffa184..414b69b 100644 --- a/src/dsp/Window.h +++ b/src/dsp/Window.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/jni/RubberBandStretcherJNI.cpp b/src/jni/RubberBandStretcherJNI.cpp index cb9bcd9..f22bb1f 100644 --- a/src/jni/RubberBandStretcherJNI.cpp +++ b/src/jni/RubberBandStretcherJNI.cpp @@ -1,5 +1,25 @@ /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ -/* Copyright Chris Cannam - All Rights Reserved */ + +/* + Rubber Band Library + An audio time-stretching and pitch-shifting library. + Copyright 2007-2014 Particular Programs Ltd. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. See the file + COPYING included with this distribution for more information. + + Alternatively, if you have a valid commercial licence for the + Rubber Band Library obtained by agreement with the copyright + holders, you may redistribute and/or modify it under the terms + described in that licence. + + If you wish to distribute code using the Rubber Band Library + under terms other than those of the GNU General Public License, + you must obtain a valid commercial licence before doing so. +*/ #include "rubberband/RubberBandStretcher.h" diff --git a/src/rubberband-c.cpp b/src/rubberband-c.cpp index 3bb4fc5..bc12132 100644 --- a/src/rubberband-c.cpp +++ b/src/rubberband-c.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/system/Allocators.cpp b/src/system/Allocators.cpp index 4a8ee5b..bca2456 100644 --- a/src/system/Allocators.cpp +++ b/src/system/Allocators.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/system/Allocators.h b/src/system/Allocators.h index 08bf58b..2875c21 100644 --- a/src/system/Allocators.h +++ b/src/system/Allocators.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/system/Thread.cpp b/src/system/Thread.cpp index d0e3360..ebb4047 100644 --- a/src/system/Thread.cpp +++ b/src/system/Thread.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/system/Thread.h b/src/system/Thread.h index 0ce754e..a72b0a3 100644 --- a/src/system/Thread.h +++ b/src/system/Thread.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/system/VectorOps.h b/src/system/VectorOps.h index ba35c97..15d7b0c 100644 --- a/src/system/VectorOps.h +++ b/src/system/VectorOps.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/system/VectorOpsComplex.cpp b/src/system/VectorOpsComplex.cpp index 809668b..8bd9729 100644 --- a/src/system/VectorOpsComplex.cpp +++ b/src/system/VectorOpsComplex.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/system/VectorOpsComplex.h b/src/system/VectorOpsComplex.h index 519cadf..dd0f92c 100644 --- a/src/system/VectorOpsComplex.h +++ b/src/system/VectorOpsComplex.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/system/sysutils.cpp b/src/system/sysutils.cpp index be12074..54ea5c7 100644 --- a/src/system/sysutils.cpp +++ b/src/system/sysutils.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/system/sysutils.h b/src/system/sysutils.h index f9895a2..cb7facc 100644 --- a/src/system/sysutils.h +++ b/src/system/sysutils.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/vamp/RubberBandVampPlugin.cpp b/vamp/RubberBandVampPlugin.cpp index f8e38dc..49ad1cf 100644 --- a/vamp/RubberBandVampPlugin.cpp +++ b/vamp/RubberBandVampPlugin.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/vamp/RubberBandVampPlugin.h b/vamp/RubberBandVampPlugin.h index 4f350af..33e6a50 100644 --- a/vamp/RubberBandVampPlugin.h +++ b/vamp/RubberBandVampPlugin.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/vamp/libmain.cpp b/vamp/libmain.cpp index 0702c1b..51b30fd 100644 --- a/vamp/libmain.cpp +++ b/vamp/libmain.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2012 Particular Programs Ltd. + Copyright 2007-2014 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as From bd7e32b34c4512c18ed40170de78e6692c8aa1f5 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Fri, 8 Aug 2014 16:04:03 +0100 Subject: [PATCH 02/26] Don't fail install if copying jni lib fails (it might not have been built) --- Makefile.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile.in b/Makefile.in index d376df3..ed1840b 100644 --- a/Makefile.in +++ b/Makefile.in @@ -6,7 +6,7 @@ CXXFLAGS := -DHAVE_LIBSAMPLERATE -DHAVE_FFTW3 -DFFTW_DOUBLE_ONLY -DNO_THREAD_CHE CFLAGS := @CFLAGS@ $(OPTFLAGS) LDFLAGS := @LDFLAGS@ -lpthread $(LDFLAGS) -JNI_CXXFLAGS := -I$(JAVA_HOME)/include +JNI_CXXFLAGS := -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux JAVAC := $(JAVA_HOME)/bin/javac JAR := $(JAVA_HOME)/bin/jar @@ -183,7 +183,7 @@ install: all cp $(DYNAMIC_TARGET) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_FULL_VERSION) ln -s $(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_FULL_VERSION) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_ABI_VERSION) ln -s $(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_FULL_VERSION) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION) - cp $(JNI_TARGET) $(DESTDIR)$(INSTALL_LIBDIR)/$(JNINAME)$(DYNAMIC_EXTENSION) + cp -f $(JNI_TARGET) $(DESTDIR)$(INSTALL_LIBDIR)/$(JNINAME)$(DYNAMIC_EXTENSION) cp $(VAMP_TARGET) $(DESTDIR)$(INSTALL_VAMPDIR) cp vamp/vamp-rubberband.cat $(DESTDIR)$(INSTALL_VAMPDIR) cp $(LADSPA_TARGET) $(DESTDIR)$(INSTALL_LADSPADIR) From 7ad3bcd729a564dd0bc296adf3337331e1cbcd10 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Wed, 3 Sep 2014 17:11:07 +0100 Subject: [PATCH 03/26] Some small fixes suggested by Coverity Scan --- .hgignore | 3 ++- ladspa/RubberBandPitchShifter.cpp | 10 ++++++++++ ladspa/RubberBandPitchShifter.h | 8 ++++---- src/StretchCalculator.cpp | 1 + src/StretchCalculator.h | 1 - src/StretcherChannelData.cpp | 1 + src/StretcherImpl.cpp | 8 ++++++-- src/base/Scavenger.h | 1 + 8 files changed, 25 insertions(+), 8 deletions(-) diff --git a/.hgignore b/.hgignore index f8d3da1..54a0f8b 100644 --- a/.hgignore +++ b/.hgignore @@ -12,4 +12,5 @@ lib/* config.status doc/html *.rej - +cov-int +*~ diff --git a/ladspa/RubberBandPitchShifter.cpp b/ladspa/RubberBandPitchShifter.cpp index 04b0ed7..6f1e4be 100644 --- a/ladspa/RubberBandPitchShifter.cpp +++ b/ladspa/RubberBandPitchShifter.cpp @@ -253,6 +253,12 @@ RubberBandPitchShifter::RubberBandPitchShifter(int sampleRate, size_t channels) m_sampleRate(sampleRate), m_channels(channels) { + m_input = new float *[m_channels]; + m_output = new float *[m_channels]; + + m_outputBuffer = new RingBuffer *[m_channels]; + m_scratch = new float *[m_channels]; + for (size_t c = 0; c < m_channels; ++c) { m_input[c] = 0; @@ -276,6 +282,10 @@ RubberBandPitchShifter::~RubberBandPitchShifter() delete m_outputBuffer[c]; delete[] m_scratch[c]; } + delete[] m_outputBuffer; + delete[] m_scratch; + delete[] m_output; + delete[] m_input; } LADSPA_Handle diff --git a/ladspa/RubberBandPitchShifter.h b/ladspa/RubberBandPitchShifter.h index f686dc5..b9acc59 100644 --- a/ladspa/RubberBandPitchShifter.h +++ b/ladspa/RubberBandPitchShifter.h @@ -85,8 +85,8 @@ protected: void updateFormant(); void updateFast(); - float *m_input[2]; - float *m_output[2]; + float **m_input; + float **m_output; float *m_latency; float *m_cents; float *m_semitones; @@ -105,8 +105,8 @@ protected: size_t m_minfill; RubberBand::RubberBandStretcher *m_stretcher; - RubberBand::RingBuffer *m_outputBuffer[2]; - float *m_scratch[2]; + RubberBand::RingBuffer **m_outputBuffer; + float **m_scratch; int m_sampleRate; size_t m_channels; diff --git a/src/StretchCalculator.cpp b/src/StretchCalculator.cpp index 35ee8d5..4df60da 100644 --- a/src/StretchCalculator.cpp +++ b/src/StretchCalculator.cpp @@ -45,6 +45,7 @@ StretchCalculator::StretchCalculator(size_t sampleRate, m_recovery(0), m_prevRatio(1.0), m_transientAmnesty(0), + m_debugLevel(0), m_useHardPeaks(useHardPeaks) { // std::cerr << "StretchCalculator::StretchCalculator: useHardPeaks = " << useHardPeaks << std::endl; diff --git a/src/StretchCalculator.h b/src/StretchCalculator.h index 22b13d6..6470322 100644 --- a/src/StretchCalculator.h +++ b/src/StretchCalculator.h @@ -102,7 +102,6 @@ protected: float adj) const; size_t m_sampleRate; - size_t m_blockSize; size_t m_increment; float m_prevDf; double m_divergence; diff --git a/src/StretcherChannelData.cpp b/src/StretcherChannelData.cpp index 1d7afa6..adf6082 100644 --- a/src/StretcherChannelData.cpp +++ b/src/StretcherChannelData.cpp @@ -249,6 +249,7 @@ RubberBandStretcher::Impl::ChannelData::~ChannelData() deallocate(accumulator); deallocate(windowAccumulator); deallocate(fltbuf); + deallocate(dblbuf); for (std::map::iterator i = ffts.begin(); i != ffts.end(); ++i) { diff --git a/src/StretcherImpl.cpp b/src/StretcherImpl.cpp index 1e061a7..efdfc11 100644 --- a/src/StretcherImpl.cpp +++ b/src/StretcherImpl.cpp @@ -1118,11 +1118,15 @@ RubberBandStretcher::Impl::calculateStretch() double prdm = 0, sdm = 0; if (!m_phaseResetDf.empty()) { - for (int i = 0; i < m_phaseResetDf.size(); ++i) prdm += m_phaseResetDf[i]; + for (int i = 0; i < (int)m_phaseResetDf.size(); ++i) { + prdm += m_phaseResetDf[i]; + } prdm /= m_phaseResetDf.size(); } if (!m_stretchDf.empty()) { - for (int i = 0; i < m_stretchDf.size(); ++i) sdm += m_stretchDf[i]; + for (int i = 0; i < (int)m_stretchDf.size(); ++i) { + sdm += m_stretchDf[i]; + } sdm /= m_stretchDf.size(); } // std::cerr << "phase reset df mean = " << prdm << ", stretch df mean = " << sdm << std::endl; diff --git a/src/base/Scavenger.h b/src/base/Scavenger.h index 97fed64..fc3744c 100644 --- a/src/base/Scavenger.h +++ b/src/base/Scavenger.h @@ -130,6 +130,7 @@ template Scavenger::Scavenger(int sec, int defaultObjectListSize) : m_objects(ObjectTimeList(defaultObjectListSize)), m_sec(sec), + m_lastExcess(0), m_claimed(0), m_scavenged(0), m_asExcess(0) From 6f361078f9da0c4b75117990706cd4cc0f6c8ffb Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Fri, 5 Sep 2014 09:02:49 +0100 Subject: [PATCH 04/26] Reorder args to with_gain functions to match bqvec; docs; build fixes --- src/base/RingBuffer.h | 44 +++++++++++++++++++---------------------- src/dsp/FFT.cpp | 3 +-- src/dsp/SincWindow.h | 2 +- src/dsp/Window.h | 2 +- src/system/VectorOps.h | 10 +++++----- src/system/sysutils.cpp | 2 +- src/system/sysutils.h | 1 + 7 files changed, 30 insertions(+), 34 deletions(-) diff --git a/src/base/RingBuffer.h b/src/base/RingBuffer.h index 393e0c2..cb7c108 100644 --- a/src/base/RingBuffer.h +++ b/src/base/RingBuffer.h @@ -67,7 +67,7 @@ public: int getSize() const; /** - * Return a new ring buffer (allocated with "new" -- called must + * Return a new ring buffer (allocated with "new" -- caller must * delete when no longer needed) of the given size, containing the * same data as this one. If another thread reads from or writes * to this buffer during the call, the results may be incomplete @@ -89,8 +89,7 @@ public: void reset(); /** - * Return the amount of data available for reading by reader R, in - * samples. + * Return the amount of data available for reading, in samples. */ int getReadSpace() const; @@ -100,9 +99,9 @@ public: int getWriteSpace() const; /** - * Read n samples from the buffer, for reader R. If fewer than n - * are available, the remainder will be zeroed out. Returns the - * number of samples actually read. + * Read n samples from the buffer. If fewer than n are available, + * the remainder will be zeroed out. Returns the number of + * samples actually read. * * This is a template function, taking an argument S for the target * sample type, which is permitted to differ from T if the two @@ -112,10 +111,9 @@ public: int read(S *const R__ destination, int n); /** - * Read n samples from the buffer, for reader R, adding them to - * the destination. If fewer than n are available, the remainder - * will be left alone. Returns the number of samples actually - * read. + * Read n samples from the buffer, adding them to the destination. + * If fewer than n are available, the remainder will be left + * alone. Returns the number of samples actually read. * * This is a template function, taking an argument S for the target * sample type, which is permitted to differ from T if the two @@ -125,20 +123,19 @@ public: int readAdding(S *const R__ destination, int n); /** - * Read one sample from the buffer, for reader R. If no sample is - * available, this will silently return zero. Calling this - * repeatedly is obviously slower than calling read once, but it - * may be good enough if you don't want to allocate a buffer to - * read into. + * Read one sample from the buffer. If no sample is available, + * this will silently return zero. Calling this repeatedly is + * obviously slower than calling read once, but it may be good + * enough if you don't want to allocate a buffer to read into. */ T readOne(); /** - * Read n samples from the buffer, if available, for reader R, - * without advancing the read pointer -- i.e. a subsequent read() - * or skip() will be necessary to empty the buffer. If fewer than - * n are available, the remainder will be zeroed out. Returns the - * number of samples actually read. + * Read n samples from the buffer, if available, without advancing + * the read pointer -- i.e. a subsequent read() or skip() will be + * necessary to empty the buffer. If fewer than n are available, + * the remainder will be zeroed out. Returns the number of + * samples actually read. */ int peek(T *const R__ destination, int n) const; @@ -151,10 +148,9 @@ public: T peekOne() const; /** - * Pretend to read n samples from the buffer, for reader R, - * without actually returning them (i.e. discard the next n - * samples). Returns the number of samples actually available for - * discarding. + * Pretend to read n samples from the buffer, without actually + * returning them (i.e. discard the next n samples). Returns the + * number of samples actually available for discarding. */ int skip(int n); diff --git a/src/dsp/FFT.cpp b/src/dsp/FFT.cpp index 82d59e6..f3a7aaa 100644 --- a/src/dsp/FFT.cpp +++ b/src/dsp/FFT.cpp @@ -43,8 +43,7 @@ #endif #ifdef HAVE_VDSP -#include -#include +#include #endif #ifdef HAVE_MEDIALIB diff --git a/src/dsp/SincWindow.h b/src/dsp/SincWindow.h index 7fa8255..f0e953d 100644 --- a/src/dsp/SincWindow.h +++ b/src/dsp/SincWindow.h @@ -85,7 +85,7 @@ public: } inline void add(T *const R__ dst, T scale) const { - v_add_with_gain(dst, m_cache, m_size, scale); + v_add_with_gain(dst, m_cache, scale, m_size); } inline T getArea() const { return m_area; } diff --git a/src/dsp/Window.h b/src/dsp/Window.h index 414b69b..d8b6f82 100644 --- a/src/dsp/Window.h +++ b/src/dsp/Window.h @@ -80,7 +80,7 @@ public: } inline void add(T *const R__ dst, T scale) const { - v_add_with_gain(dst, m_cache, m_size, scale); + v_add_with_gain(dst, m_cache, scale, m_size); } inline T getRMS() const { diff --git a/src/system/VectorOps.h b/src/system/VectorOps.h index 15d7b0c..a1cba4d 100644 --- a/src/system/VectorOps.h +++ b/src/system/VectorOps.h @@ -289,8 +289,8 @@ inline void v_add_channels(T *const R__ *const R__ dst, template inline void v_add_with_gain(T *const R__ dst, const T *const R__ src, - const int count, - const G gain) + const G gain, + const int count) { for (int i = 0; i < count; ++i) { dst[i] += src[i] * gain; @@ -300,12 +300,12 @@ inline void v_add_with_gain(T *const R__ dst, template inline void v_add_channels_with_gain(T *const R__ *const R__ dst, const T *const R__ *const R__ src, + const G gain, const int channels, - const int count, - const G gain) + const int count) { for (int c = 0; c < channels; ++c) { - v_add_with_gain(dst[c], src[c], count, gain); + v_add_with_gain(dst[c], src[c], gain, count); } } diff --git a/src/system/sysutils.cpp b/src/system/sysutils.cpp index 54ea5c7..10aef9e 100644 --- a/src/system/sysutils.cpp +++ b/src/system/sysutils.cpp @@ -52,7 +52,7 @@ #endif #ifdef HAVE_VDSP -#include +#include #include #endif diff --git a/src/system/sysutils.h b/src/system/sysutils.h index cb7facc..452bbe6 100644 --- a/src/system/sysutils.h +++ b/src/system/sysutils.h @@ -58,6 +58,7 @@ #define uint32_t unsigned __int32 #elif defined(__MSVC__) #define ssize_t long +#include #else #include #endif From 8c90e3a5e1a6274fc63ad77106443a9a7c75db7d Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Thu, 16 Oct 2014 21:36:39 +0100 Subject: [PATCH 05/26] Fix small memory leak --- src/StretcherImpl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/StretcherImpl.cpp b/src/StretcherImpl.cpp index efdfc11..7f74751 100644 --- a/src/StretcherImpl.cpp +++ b/src/StretcherImpl.cpp @@ -1057,7 +1057,7 @@ RubberBandStretcher::Impl::study(const float *const *input, size_t samples, bool } } - if (m_channels > 1) delete[] mdalloc; + if (m_channels > 1 || final) delete[] mdalloc; } vector From b3d47e13759c6c5b49a5f474b28884c9b086054b Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Mon, 8 Dec 2014 10:23:33 +0000 Subject: [PATCH 06/26] Use Accelerate header; select old vvfabf only if OSX is actually a target (as well as if it's an old version) --- src/system/VectorOps.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/system/VectorOps.h b/src/system/VectorOps.h index a1cba4d..1a6f5a6 100644 --- a/src/system/VectorOps.h +++ b/src/system/VectorOps.h @@ -33,8 +33,7 @@ #endif #ifdef HAVE_VDSP -#include -#include +#include #endif #include @@ -674,7 +673,7 @@ inline void v_abs(float *const R__ dst, const int count) { float tmp[count]; -#if (MACOSX_DEPLOYMENT_TARGET <= 1070 && MAC_OS_X_VERSION_MIN_REQUIRED <= 1070) +#if (defined(MACOSX_DEPLOYMENT_TARGET) && MACOSX_DEPLOYMENT_TARGET <= 1070 && MAC_OS_X_VERSION_MIN_REQUIRED <= 1070) vvfabf(tmp, dst, &count); #else vvfabsf(tmp, dst, &count); From edf9ea90f6434dca2a8d65cab314790c55150970 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Tue, 9 Dec 2014 09:22:19 +0000 Subject: [PATCH 07/26] iOS Makefile --- Makefile.ios | 187 ++++++++++++++++++++++++++++++++ Makefile.osx | 2 +- src/system/VectorOpsComplex.cpp | 4 +- 3 files changed, 190 insertions(+), 3 deletions(-) create mode 100644 Makefile.ios diff --git a/Makefile.ios b/Makefile.ios new file mode 100644 index 0000000..6f4bf83 --- /dev/null +++ b/Makefile.ios @@ -0,0 +1,187 @@ + +CXX := clang++ +CC := clang +ARCHFLAGS := -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk -miphoneos-version-min=6 -arch armv7 -arch arm64 +OPTFLAGS := -DNDEBUG -ffast-math -O3 -ftree-vectorize + +CXXFLAGS := $(ARCHFLAGS) $(OPTFLAGS) -I. -Isrc -Irubberband -DMALLOC_IS_ALIGNED -DHAVE_VDSP -DUSE_SPEEX -DUSE_POMMIER_MATHFUN -DNO_THREADING -DNO_THREAD_CHECKS -DNO_TIMING + +CFLAGS := $(ARCHFLAGS) $(OPTFLAGS) + +AR := ar + +LIBNAME := librubberband + +STATIC_TARGET := lib/$(LIBNAME).a + +default: bin lib $(STATIC_TARGET) + +all: bin lib $(STATIC_TARGET) + +static: $(STATIC_TARGET) + +PUBLIC_INCLUDES := \ + rubberband/rubberband-c.h \ + rubberband/RubberBandStretcher.h + +LIBRARY_INCLUDES := \ + src/StretcherChannelData.h \ + src/float_cast/float_cast.h \ + src/StretcherImpl.h \ + src/StretchCalculator.h \ + src/base/Profiler.h \ + src/base/RingBuffer.h \ + src/base/Scavenger.h \ + src/dsp/AudioCurveCalculator.h \ + src/audiocurves/CompoundAudioCurve.h \ + src/audiocurves/ConstantAudioCurve.h \ + src/audiocurves/HighFrequencyAudioCurve.h \ + src/audiocurves/PercussiveAudioCurve.h \ + src/audiocurves/SilentAudioCurve.h \ + src/audiocurves/SpectralDifferenceAudioCurve.h \ + src/dsp/Resampler.h \ + src/dsp/FFT.h \ + src/dsp/MovingMedian.h \ + src/dsp/SincWindow.h \ + src/dsp/Window.h \ + src/system/Allocators.h \ + src/system/Thread.h \ + src/system/VectorOps.h \ + src/system/VectorOpsComplex.h \ + src/system/sysutils.h + +LIBRARY_SOURCES := \ + src/rubberband-c.cpp \ + src/RubberBandStretcher.cpp \ + src/StretcherProcess.cpp \ + src/StretchCalculator.cpp \ + src/base/Profiler.cpp \ + src/dsp/AudioCurveCalculator.cpp \ + src/audiocurves/CompoundAudioCurve.cpp \ + src/audiocurves/SpectralDifferenceAudioCurve.cpp \ + src/audiocurves/HighFrequencyAudioCurve.cpp \ + src/audiocurves/SilentAudioCurve.cpp \ + src/audiocurves/ConstantAudioCurve.cpp \ + src/audiocurves/PercussiveAudioCurve.cpp \ + src/dsp/Resampler.cpp \ + src/dsp/FFT.cpp \ + src/system/Allocators.cpp \ + src/system/sysutils.cpp \ + src/system/Thread.cpp \ + src/system/VectorOpsComplex.cpp \ + src/StretcherChannelData.cpp \ + src/StretcherImpl.cpp + +# For Speex resampler -- comment these lines out if not specifying USE_SPEEX +LIBRARY_INCLUDES := $(LIBRARY_INCLUDES) \ + src/speex/speex_resampler.h +LIBRARY_SOURCES := $(LIBRARY_SOURCES) \ + src/speex/resample.c + +LIBRARY_OBJECTS := $(LIBRARY_SOURCES:.cpp=.o) +LIBRARY_OBJECTS := $(LIBRARY_OBJECTS:.c=.o) + +$(STATIC_TARGET): $(LIBRARY_OBJECTS) + rm -f $@ + $(AR) rsc $@ $^ + @echo + @echo "Build complete." + @echo + @echo "Please note that you cannot legally distribute the Rubber Band Library in an" + @echo "iOS app on the App Store, unless you have first obtained a commercial licence." + @echo + +bin: + $(MKDIR) $@ +lib: + $(MKDIR) $@ + +clean: + rm -f $(LIBRARY_OBJECTS) + +distclean: clean + rm -f $(STATIC_TARGET) + +depend: + makedepend -f Makefile.ios -Y $(LIBRARY_SOURCES) + + +# DO NOT DELETE + +src/rubberband-c.o: rubberband/rubberband-c.h +src/rubberband-c.o: rubberband/RubberBandStretcher.h +src/RubberBandStretcher.o: src/StretcherImpl.h +src/RubberBandStretcher.o: rubberband/RubberBandStretcher.h src/dsp/Window.h +src/RubberBandStretcher.o: src/dsp/SincWindow.h src/dsp/FFT.h +src/RubberBandStretcher.o: src/audiocurves/CompoundAudioCurve.h +src/RubberBandStretcher.o: src/audiocurves/PercussiveAudioCurve.h +src/RubberBandStretcher.o: src/audiocurves/HighFrequencyAudioCurve.h +src/RubberBandStretcher.o: src/base/RingBuffer.h src/base/Scavenger.h +src/RubberBandStretcher.o: src/system/Thread.h src/system/sysutils.h +src/StretcherProcess.o: src/StretcherImpl.h rubberband/RubberBandStretcher.h +src/StretcherProcess.o: src/dsp/Window.h src/dsp/SincWindow.h src/dsp/FFT.h +src/StretcherProcess.o: src/audiocurves/CompoundAudioCurve.h +src/StretcherProcess.o: src/audiocurves/PercussiveAudioCurve.h +src/StretcherProcess.o: src/audiocurves/HighFrequencyAudioCurve.h +src/StretcherProcess.o: src/base/RingBuffer.h src/base/Scavenger.h +src/StretcherProcess.o: src/system/Thread.h src/system/sysutils.h +src/StretcherProcess.o: src/audiocurves/PercussiveAudioCurve.h +src/StretcherProcess.o: src/audiocurves/HighFrequencyAudioCurve.h +src/StretcherProcess.o: src/audiocurves/ConstantAudioCurve.h +src/StretcherProcess.o: src/StretchCalculator.h src/StretcherChannelData.h +src/StretcherProcess.o: src/dsp/Resampler.h src/base/Profiler.h +src/StretcherProcess.o: src/system/VectorOps.h src/system/sysutils.h +src/StretchCalculator.o: src/StretchCalculator.h src/system/sysutils.h +src/base/Profiler.o: src/base/Profiler.h src/system/sysutils.h +src/dsp/AudioCurveCalculator.o: src/dsp/AudioCurveCalculator.h +src/dsp/AudioCurveCalculator.o: src/system/sysutils.h +src/audiocurves/CompoundAudioCurve.o: src/audiocurves/CompoundAudioCurve.h +src/audiocurves/CompoundAudioCurve.o: src/audiocurves/PercussiveAudioCurve.h +src/audiocurves/CompoundAudioCurve.o: src/audiocurves/HighFrequencyAudioCurve.h +src/audiocurves/SpectralDifferenceAudioCurve.o: src/audiocurves/SpectralDifferenceAudioCurve.h +src/audiocurves/SpectralDifferenceAudioCurve.o: src/dsp/Window.h +src/audiocurves/SpectralDifferenceAudioCurve.o: src/system/VectorOps.h +src/audiocurves/SpectralDifferenceAudioCurve.o: src/system/sysutils.h +src/audiocurves/HighFrequencyAudioCurve.o: src/audiocurves/HighFrequencyAudioCurve.h +src/audiocurves/SilentAudioCurve.o: src/audiocurves/SilentAudioCurve.h +src/audiocurves/ConstantAudioCurve.o: src/audiocurves/ConstantAudioCurve.h +src/audiocurves/PercussiveAudioCurve.o: src/audiocurves/PercussiveAudioCurve.h +src/audiocurves/PercussiveAudioCurve.o: src/system/VectorOps.h +src/audiocurves/PercussiveAudioCurve.o: src/system/sysutils.h +src/dsp/Resampler.o: src/dsp/Resampler.h src/system/sysutils.h +src/dsp/Resampler.o: src/base/Profiler.h +src/dsp/FFT.o: src/dsp/FFT.h src/system/sysutils.h src/system/Thread.h +src/dsp/FFT.o: src/base/Profiler.h src/system/VectorOps.h +src/dsp/FFT.o: src/system/sysutils.h +src/system/Allocators.o: src/system/Allocators.h src/system/VectorOps.h +src/system/Allocators.o: src/system/sysutils.h +src/system/sysutils.o: src/system/sysutils.h +src/system/Thread.o: src/system/Thread.h +src/system/VectorOpsComplex.o: src/system/VectorOpsComplex.h +src/system/VectorOpsComplex.o: src/system/VectorOps.h src/system/sysutils.h +src/system/VectorOpsComplex.o: src/system/sysutils.h +src/StretcherChannelData.o: src/StretcherChannelData.h src/StretcherImpl.h +src/StretcherChannelData.o: rubberband/RubberBandStretcher.h src/dsp/Window.h +src/StretcherChannelData.o: src/dsp/SincWindow.h src/dsp/FFT.h +src/StretcherChannelData.o: src/audiocurves/CompoundAudioCurve.h +src/StretcherChannelData.o: src/audiocurves/PercussiveAudioCurve.h +src/StretcherChannelData.o: src/audiocurves/HighFrequencyAudioCurve.h +src/StretcherChannelData.o: src/base/RingBuffer.h src/base/Scavenger.h +src/StretcherChannelData.o: src/system/Thread.h src/system/sysutils.h +src/StretcherChannelData.o: src/dsp/Resampler.h src/system/Allocators.h +src/StretcherChannelData.o: src/system/VectorOps.h src/system/sysutils.h +src/StretcherImpl.o: src/StretcherImpl.h rubberband/RubberBandStretcher.h +src/StretcherImpl.o: src/dsp/Window.h src/dsp/SincWindow.h src/dsp/FFT.h +src/StretcherImpl.o: src/audiocurves/CompoundAudioCurve.h +src/StretcherImpl.o: src/audiocurves/PercussiveAudioCurve.h +src/StretcherImpl.o: src/audiocurves/HighFrequencyAudioCurve.h +src/StretcherImpl.o: src/base/RingBuffer.h src/base/Scavenger.h +src/StretcherImpl.o: src/system/Thread.h src/system/sysutils.h +src/StretcherImpl.o: src/audiocurves/PercussiveAudioCurve.h +src/StretcherImpl.o: src/audiocurves/HighFrequencyAudioCurve.h +src/StretcherImpl.o: src/audiocurves/SpectralDifferenceAudioCurve.h +src/StretcherImpl.o: src/audiocurves/SilentAudioCurve.h +src/StretcherImpl.o: src/audiocurves/ConstantAudioCurve.h src/dsp/Resampler.h +src/StretcherImpl.o: src/StretchCalculator.h src/StretcherChannelData.h +src/StretcherImpl.o: src/base/Profiler.h +src/speex/resample.o: src/speex/speex_resampler.h diff --git a/Makefile.osx b/Makefile.osx index 6c2dc9c..aeb5226 100644 --- a/Makefile.osx +++ b/Makefile.osx @@ -183,7 +183,7 @@ distclean: clean rm -f $(PROGRAM_TARGET) $(STATIC_TARGET) $(DYNAMIC_TARGET) $(VAMP_TARGET) $(LADSPA_TARGET) depend: - makedepend -Y $(LIBRARY_SOURCES) $(PROGRAM_SOURCES) + makedepend -f Makefile.osx -Y $(LIBRARY_SOURCES) $(PROGRAM_SOURCES) # DO NOT DELETE diff --git a/src/system/VectorOpsComplex.cpp b/src/system/VectorOpsComplex.cpp index 8bd9729..87f54bd 100644 --- a/src/system/VectorOpsComplex.cpp +++ b/src/system/VectorOpsComplex.cpp @@ -28,7 +28,7 @@ #include #if defined USE_POMMIER_MATHFUN -#if defined __ARMEL__ +#if defined __ARMEL__ || defined __aarch64__ #include "pommier/neon_mathfun.h" #else #include "pommier/sse_mathfun.h" @@ -71,7 +71,7 @@ float approximate_atan2f(float real, float imag) #if defined USE_POMMIER_MATHFUN -#ifdef __ARMEL__ +#if defined __ARMEL__ || defined __aarch64__ typedef union { float f[4]; int i[4]; From 9d4fd2622dde899e872ffb2e9093c78ee7b8852d Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Tue, 9 Dec 2014 09:33:44 +0000 Subject: [PATCH 08/26] Add simulator options --- Makefile.ios | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Makefile.ios b/Makefile.ios index 6f4bf83..68fb4ba 100644 --- a/Makefile.ios +++ b/Makefile.ios @@ -1,9 +1,14 @@ CXX := clang++ CC := clang -ARCHFLAGS := -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk -miphoneos-version-min=6 -arch armv7 -arch arm64 OPTFLAGS := -DNDEBUG -ffast-math -O3 -ftree-vectorize +# For the device +#ARCHFLAGS := -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk -miphoneos-version-min=6 -stdlib=libc++ -arch armv7 -arch arm64 + +# Or for the simulator +ARCHFLAGS := -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk -miphoneos-version-min=6 -stdlib=libc++ -arch x86_64 + CXXFLAGS := $(ARCHFLAGS) $(OPTFLAGS) -I. -Isrc -Irubberband -DMALLOC_IS_ALIGNED -DHAVE_VDSP -DUSE_SPEEX -DUSE_POMMIER_MATHFUN -DNO_THREADING -DNO_THREAD_CHECKS -DNO_TIMING CFLAGS := $(ARCHFLAGS) $(OPTFLAGS) From 069fefef48a11113c58b3c846589c074ff6b143c Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Sat, 24 Jan 2015 12:34:06 +0000 Subject: [PATCH 09/26] Build device and simulator architectures into a single archive --- Makefile.ios | 142 +++++++++++++++++---------------------------------- 1 file changed, 47 insertions(+), 95 deletions(-) diff --git a/Makefile.ios b/Makefile.ios index 68fb4ba..6c15454 100644 --- a/Makefile.ios +++ b/Makefile.ios @@ -4,24 +4,31 @@ CC := clang OPTFLAGS := -DNDEBUG -ffast-math -O3 -ftree-vectorize # For the device -#ARCHFLAGS := -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk -miphoneos-version-min=6 -stdlib=libc++ -arch armv7 -arch arm64 +ARCHFLAGS_DEV := -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk -miphoneos-version-min=6 -stdlib=libc++ -arch armv7 -arch arm64 # Or for the simulator -ARCHFLAGS := -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk -miphoneos-version-min=6 -stdlib=libc++ -arch x86_64 +ARCHFLAGS_SIM := -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk -miphoneos-version-min=6 -stdlib=libc++ -arch i386 -arch x86_64 -CXXFLAGS := $(ARCHFLAGS) $(OPTFLAGS) -I. -Isrc -Irubberband -DMALLOC_IS_ALIGNED -DHAVE_VDSP -DUSE_SPEEX -DUSE_POMMIER_MATHFUN -DNO_THREADING -DNO_THREAD_CHECKS -DNO_TIMING +CXXFLAGS_ANY := $(OPTFLAGS) -I. -Isrc -Irubberband -DMALLOC_IS_ALIGNED -DHAVE_VDSP -DUSE_SPEEX -DUSE_POMMIER_MATHFUN -DNO_THREADING -DNO_THREAD_CHECKS -DNO_TIMING -CFLAGS := $(ARCHFLAGS) $(OPTFLAGS) +CXXFLAGS_DEV := $(ARCHFLAGS_DEV) $(CXXFLAGS_ANY) +CXXFLAGS_SIM := $(ARCHFLAGS_SIM) $(CXXFLAGS_ANY) + +CFLAGS_DEV := $(ARCHFLAGS_DEV) $(OPTFLAGS) +CFLAGS_SIM := $(ARCHFLAGS_SIM) $(OPTFLAGS) AR := ar +LIPO := lipo LIBNAME := librubberband STATIC_TARGET := lib/$(LIBNAME).a +STATIC_TARGET_DEV := lib/$(LIBNAME).dev.a +STATIC_TARGET_SIM := lib/$(LIBNAME).sim.a -default: bin lib $(STATIC_TARGET) +default: lib $(STATIC_TARGET) -all: bin lib $(STATIC_TARGET) +all: lib $(STATIC_TARGET) static: $(STATIC_TARGET) @@ -83,12 +90,15 @@ LIBRARY_INCLUDES := $(LIBRARY_INCLUDES) \ LIBRARY_SOURCES := $(LIBRARY_SOURCES) \ src/speex/resample.c -LIBRARY_OBJECTS := $(LIBRARY_SOURCES:.cpp=.o) -LIBRARY_OBJECTS := $(LIBRARY_OBJECTS:.c=.o) +LIBRARY_OBJECTS_DEV := $(LIBRARY_SOURCES:.cpp=.dev.o) +LIBRARY_OBJECTS_DEV := $(LIBRARY_OBJECTS_DEV:.c=.dev.o) -$(STATIC_TARGET): $(LIBRARY_OBJECTS) +LIBRARY_OBJECTS_SIM := $(LIBRARY_SOURCES:.cpp=.sim.o) +LIBRARY_OBJECTS_SIM := $(LIBRARY_OBJECTS_SIM:.c=.sim.o) + +$(STATIC_TARGET): $(STATIC_TARGET_DEV) $(STATIC_TARGET_SIM) rm -f $@ - $(AR) rsc $@ $^ + $(LIPO) -create -output $@ $^ @echo @echo "Build complete." @echo @@ -96,97 +106,39 @@ $(STATIC_TARGET): $(LIBRARY_OBJECTS) @echo "iOS app on the App Store, unless you have first obtained a commercial licence." @echo -bin: - $(MKDIR) $@ +$(STATIC_TARGET_DEV): $(LIBRARY_OBJECTS_DEV) + rm -f $@ + $(AR) rsc $@ $^ + +$(STATIC_TARGET_SIM): $(LIBRARY_OBJECTS_SIM) + rm -f $@ + $(AR) rsc $@ $^ + +%.dev.o: %.c + $(CC) -c $(CFLAGS_DEV) -o $@ $< + +%.dev.o: %.cpp + $(CXX) -c $(CXXFLAGS_DEV) -o $@ $< + +%.sim.o: %.c + $(CC) -c $(CFLAGS_SIM) -o $@ $< + +%.sim.o: %.cpp + $(CXX) -c $(CXXFLAGS_SIM) -o $@ $< + lib: $(MKDIR) $@ clean: - rm -f $(LIBRARY_OBJECTS) + rm -f $(LIBRARY_OBJECTS_DEV) $(LIBRARY_OBJECTS_SIM) distclean: clean - rm -f $(STATIC_TARGET) + rm -f $(STATIC_TARGET_DEV) $(STATIC_TARGET_SIM) depend: - makedepend -f Makefile.ios -Y $(LIBRARY_SOURCES) + touch Makefile.dev_depends Makefile.sim_depends + makedepend -f Makefile.dev_depends -o.dev.o -Y $(LIBRARY_SOURCES) + makedepend -f Makefile.sim_depends -o.sim.o -Y $(LIBRARY_SOURCES) - -# DO NOT DELETE - -src/rubberband-c.o: rubberband/rubberband-c.h -src/rubberband-c.o: rubberband/RubberBandStretcher.h -src/RubberBandStretcher.o: src/StretcherImpl.h -src/RubberBandStretcher.o: rubberband/RubberBandStretcher.h src/dsp/Window.h -src/RubberBandStretcher.o: src/dsp/SincWindow.h src/dsp/FFT.h -src/RubberBandStretcher.o: src/audiocurves/CompoundAudioCurve.h -src/RubberBandStretcher.o: src/audiocurves/PercussiveAudioCurve.h -src/RubberBandStretcher.o: src/audiocurves/HighFrequencyAudioCurve.h -src/RubberBandStretcher.o: src/base/RingBuffer.h src/base/Scavenger.h -src/RubberBandStretcher.o: src/system/Thread.h src/system/sysutils.h -src/StretcherProcess.o: src/StretcherImpl.h rubberband/RubberBandStretcher.h -src/StretcherProcess.o: src/dsp/Window.h src/dsp/SincWindow.h src/dsp/FFT.h -src/StretcherProcess.o: src/audiocurves/CompoundAudioCurve.h -src/StretcherProcess.o: src/audiocurves/PercussiveAudioCurve.h -src/StretcherProcess.o: src/audiocurves/HighFrequencyAudioCurve.h -src/StretcherProcess.o: src/base/RingBuffer.h src/base/Scavenger.h -src/StretcherProcess.o: src/system/Thread.h src/system/sysutils.h -src/StretcherProcess.o: src/audiocurves/PercussiveAudioCurve.h -src/StretcherProcess.o: src/audiocurves/HighFrequencyAudioCurve.h -src/StretcherProcess.o: src/audiocurves/ConstantAudioCurve.h -src/StretcherProcess.o: src/StretchCalculator.h src/StretcherChannelData.h -src/StretcherProcess.o: src/dsp/Resampler.h src/base/Profiler.h -src/StretcherProcess.o: src/system/VectorOps.h src/system/sysutils.h -src/StretchCalculator.o: src/StretchCalculator.h src/system/sysutils.h -src/base/Profiler.o: src/base/Profiler.h src/system/sysutils.h -src/dsp/AudioCurveCalculator.o: src/dsp/AudioCurveCalculator.h -src/dsp/AudioCurveCalculator.o: src/system/sysutils.h -src/audiocurves/CompoundAudioCurve.o: src/audiocurves/CompoundAudioCurve.h -src/audiocurves/CompoundAudioCurve.o: src/audiocurves/PercussiveAudioCurve.h -src/audiocurves/CompoundAudioCurve.o: src/audiocurves/HighFrequencyAudioCurve.h -src/audiocurves/SpectralDifferenceAudioCurve.o: src/audiocurves/SpectralDifferenceAudioCurve.h -src/audiocurves/SpectralDifferenceAudioCurve.o: src/dsp/Window.h -src/audiocurves/SpectralDifferenceAudioCurve.o: src/system/VectorOps.h -src/audiocurves/SpectralDifferenceAudioCurve.o: src/system/sysutils.h -src/audiocurves/HighFrequencyAudioCurve.o: src/audiocurves/HighFrequencyAudioCurve.h -src/audiocurves/SilentAudioCurve.o: src/audiocurves/SilentAudioCurve.h -src/audiocurves/ConstantAudioCurve.o: src/audiocurves/ConstantAudioCurve.h -src/audiocurves/PercussiveAudioCurve.o: src/audiocurves/PercussiveAudioCurve.h -src/audiocurves/PercussiveAudioCurve.o: src/system/VectorOps.h -src/audiocurves/PercussiveAudioCurve.o: src/system/sysutils.h -src/dsp/Resampler.o: src/dsp/Resampler.h src/system/sysutils.h -src/dsp/Resampler.o: src/base/Profiler.h -src/dsp/FFT.o: src/dsp/FFT.h src/system/sysutils.h src/system/Thread.h -src/dsp/FFT.o: src/base/Profiler.h src/system/VectorOps.h -src/dsp/FFT.o: src/system/sysutils.h -src/system/Allocators.o: src/system/Allocators.h src/system/VectorOps.h -src/system/Allocators.o: src/system/sysutils.h -src/system/sysutils.o: src/system/sysutils.h -src/system/Thread.o: src/system/Thread.h -src/system/VectorOpsComplex.o: src/system/VectorOpsComplex.h -src/system/VectorOpsComplex.o: src/system/VectorOps.h src/system/sysutils.h -src/system/VectorOpsComplex.o: src/system/sysutils.h -src/StretcherChannelData.o: src/StretcherChannelData.h src/StretcherImpl.h -src/StretcherChannelData.o: rubberband/RubberBandStretcher.h src/dsp/Window.h -src/StretcherChannelData.o: src/dsp/SincWindow.h src/dsp/FFT.h -src/StretcherChannelData.o: src/audiocurves/CompoundAudioCurve.h -src/StretcherChannelData.o: src/audiocurves/PercussiveAudioCurve.h -src/StretcherChannelData.o: src/audiocurves/HighFrequencyAudioCurve.h -src/StretcherChannelData.o: src/base/RingBuffer.h src/base/Scavenger.h -src/StretcherChannelData.o: src/system/Thread.h src/system/sysutils.h -src/StretcherChannelData.o: src/dsp/Resampler.h src/system/Allocators.h -src/StretcherChannelData.o: src/system/VectorOps.h src/system/sysutils.h -src/StretcherImpl.o: src/StretcherImpl.h rubberband/RubberBandStretcher.h -src/StretcherImpl.o: src/dsp/Window.h src/dsp/SincWindow.h src/dsp/FFT.h -src/StretcherImpl.o: src/audiocurves/CompoundAudioCurve.h -src/StretcherImpl.o: src/audiocurves/PercussiveAudioCurve.h -src/StretcherImpl.o: src/audiocurves/HighFrequencyAudioCurve.h -src/StretcherImpl.o: src/base/RingBuffer.h src/base/Scavenger.h -src/StretcherImpl.o: src/system/Thread.h src/system/sysutils.h -src/StretcherImpl.o: src/audiocurves/PercussiveAudioCurve.h -src/StretcherImpl.o: src/audiocurves/HighFrequencyAudioCurve.h -src/StretcherImpl.o: src/audiocurves/SpectralDifferenceAudioCurve.h -src/StretcherImpl.o: src/audiocurves/SilentAudioCurve.h -src/StretcherImpl.o: src/audiocurves/ConstantAudioCurve.h src/dsp/Resampler.h -src/StretcherImpl.o: src/StretchCalculator.h src/StretcherChannelData.h -src/StretcherImpl.o: src/base/Profiler.h -src/speex/resample.o: src/speex/speex_resampler.h +-include Makefile.dev_depends +-include Makefile.sim_depends From eaf64631d568e7aaeb7779ee468f1d8f422b616b Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Sun, 25 Jan 2015 19:09:23 +0000 Subject: [PATCH 10/26] Tweak the compile flags --- Makefile.ios | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile.ios b/Makefile.ios index 6c15454..ceb5ba9 100644 --- a/Makefile.ios +++ b/Makefile.ios @@ -1,7 +1,7 @@ CXX := clang++ CC := clang -OPTFLAGS := -DNDEBUG -ffast-math -O3 -ftree-vectorize +OPTFLAGS := -DNDEBUG -ffast-math -freciprocal-math -O3 -ftree-vectorize # For the device ARCHFLAGS_DEV := -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk -miphoneos-version-min=6 -stdlib=libc++ -arch armv7 -arch arm64 @@ -9,7 +9,7 @@ ARCHFLAGS_DEV := -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/ # Or for the simulator ARCHFLAGS_SIM := -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk -miphoneos-version-min=6 -stdlib=libc++ -arch i386 -arch x86_64 -CXXFLAGS_ANY := $(OPTFLAGS) -I. -Isrc -Irubberband -DMALLOC_IS_ALIGNED -DHAVE_VDSP -DUSE_SPEEX -DUSE_POMMIER_MATHFUN -DNO_THREADING -DNO_THREAD_CHECKS -DNO_TIMING +CXXFLAGS_ANY := $(OPTFLAGS) -I. -Isrc -Irubberband -DMALLOC_IS_ALIGNED -DHAVE_VDSP -DUSE_SPEEX -DUSE_POMMIER_MATHFUN -DNO_THREADING -DNO_THREAD_CHECKS -DNO_TIMING -DNO_TIMING_COMPLETE_NOOP CXXFLAGS_DEV := $(ARCHFLAGS_DEV) $(CXXFLAGS_ANY) CXXFLAGS_SIM := $(ARCHFLAGS_SIM) $(CXXFLAGS_ANY) From 51bf5125eadc34897049cbe49fb0ded2d3adf1ec Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Wed, 28 Jan 2015 21:01:25 +0000 Subject: [PATCH 11/26] Minor build tweak --- Makefile.ios | 6 +++--- src/system/sysutils.h | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Makefile.ios b/Makefile.ios index ceb5ba9..de9c2a4 100644 --- a/Makefile.ios +++ b/Makefile.ios @@ -1,15 +1,15 @@ CXX := clang++ CC := clang -OPTFLAGS := -DNDEBUG -ffast-math -freciprocal-math -O3 -ftree-vectorize +OPTFLAGS := -ffast-math -freciprocal-math -O3 -ftree-vectorize # For the device -ARCHFLAGS_DEV := -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk -miphoneos-version-min=6 -stdlib=libc++ -arch armv7 -arch arm64 +ARCHFLAGS_DEV := -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk -miphoneos-version-min=6 -stdlib=libc++ -arch armv7 -arch arm64 # Or for the simulator ARCHFLAGS_SIM := -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk -miphoneos-version-min=6 -stdlib=libc++ -arch i386 -arch x86_64 -CXXFLAGS_ANY := $(OPTFLAGS) -I. -Isrc -Irubberband -DMALLOC_IS_ALIGNED -DHAVE_VDSP -DUSE_SPEEX -DUSE_POMMIER_MATHFUN -DNO_THREADING -DNO_THREAD_CHECKS -DNO_TIMING -DNO_TIMING_COMPLETE_NOOP +CXXFLAGS_ANY := $(OPTFLAGS) -I. -Isrc -Irubberband -DMALLOC_IS_ALIGNED -DHAVE_VDSP -DUSE_SPEEX -DUSE_POMMIER_MATHFUN -DNO_THREADING -DNO_THREAD_CHECKS -DNO_TIMING -DNO_TIMING_COMPLETE_NOOP -DNDEBUG CXXFLAGS_DEV := $(ARCHFLAGS_DEV) $(CXXFLAGS_ANY) CXXFLAGS_SIM := $(ARCHFLAGS_SIM) $(CXXFLAGS_ANY) diff --git a/src/system/sysutils.h b/src/system/sysutils.h index 452bbe6..c2aaf51 100644 --- a/src/system/sysutils.h +++ b/src/system/sysutils.h @@ -29,9 +29,13 @@ #define R__ __restrict #endif +#ifdef __clang__ +#define R__ __restrict__ +#else #ifdef __GNUC__ #define R__ __restrict__ #endif +#endif #ifndef R__ #define R__ From 5ffec3ea8afd6c9609c27f805c451b0a5eea441c Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Wed, 11 Feb 2015 08:34:04 +0000 Subject: [PATCH 12/26] Add overlooked MKDIR definition --- Makefile.ios | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile.ios b/Makefile.ios index de9c2a4..04741a6 100644 --- a/Makefile.ios +++ b/Makefile.ios @@ -19,6 +19,7 @@ CFLAGS_SIM := $(ARCHFLAGS_SIM) $(OPTFLAGS) AR := ar LIPO := lipo +MKDIR := mkdir LIBNAME := librubberband From 0f4a9e1612d3c5dee4408ad489c3e4a3762eb1b1 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Mon, 23 Feb 2015 10:56:31 +0000 Subject: [PATCH 13/26] Refuse to accept NaNs in MovingMedian, replacing them with zeros (and a warning) instead. (Must push something, to maintain filter length) --- src/dsp/MovingMedian.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/dsp/MovingMedian.h b/src/dsp/MovingMedian.h index 461f98b..9c37185 100644 --- a/src/dsp/MovingMedian.h +++ b/src/dsp/MovingMedian.h @@ -30,6 +30,8 @@ #include +#include + namespace RubberBand { @@ -59,6 +61,10 @@ public: } void push(T value) { + if (value != value) { + std::cerr << "WARNING: MovingMedian: NaN encountered" << std::endl; + value = T(); + } drop(m_frame[0]); v_move(m_frame, m_frame+1, P::m_size-1); m_frame[P::m_size-1] = value; From 79bd63becdd1791187a7d0f557fb3f932c8c2aa7 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Wed, 11 Mar 2015 13:28:59 +0000 Subject: [PATCH 14/26] Start using libc++ by default --- Makefile.osx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile.osx b/Makefile.osx index aeb5226..3b1fc7f 100644 --- a/Makefile.osx +++ b/Makefile.osx @@ -1,8 +1,8 @@ PREFIX := /usr/local -CXX := g++ -CC := gcc -ARCHFLAGS := +CXX := clang++ -stdlib=libc++ +CC := clang +ARCHFLAGS := -arch i386 -arch x86_64 -mmacosx-version-min=10.7 OPTFLAGS := -DNDEBUG -ffast-math -mfpmath=sse -msse -msse2 -O3 -ftree-vectorize CXXFLAGS := $(ARCHFLAGS) $(OPTFLAGS) -I. -Isrc -Irubberband -I/usr/local/include -DUSE_PTHREADS -DMALLOC_IS_ALIGNED -DHAVE_VDSP -DUSE_SPEEX -DNO_THREAD_CHECKS -DNO_TIMING From 1a96b9a19a8c9f2179a24881d2329035d1f3df1e Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Tue, 16 Jun 2015 08:51:55 +0100 Subject: [PATCH 15/26] Fix comment --- src/StretchCalculator.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/StretchCalculator.cpp b/src/StretchCalculator.cpp index 4df60da..3d803a4 100644 --- a/src/StretchCalculator.cpp +++ b/src/StretchCalculator.cpp @@ -222,7 +222,7 @@ StretchCalculator::mapPeaks(std::vector &peaks, // NB we know for certain we have a mapping from 0 -> 0 (or at // least, some mapping for source sample 0) because that is - // enforced in setLockPoints above. However, we aren't guaranteed + // enforced in setKeyFrameMap above. However, we aren't guaranteed // to have a mapping for the total duration -- we will usually // need to assume it maps to the normal duration * ratio sample From 6f86b96391c3b884386612170ec69a5476e90293 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Mon, 29 Jun 2015 14:50:33 +0100 Subject: [PATCH 16/26] Win32/64 build fixes --- src/StretcherChannelData.cpp | 2 ++ src/StretcherImpl.cpp | 1 + src/StretcherProcess.cpp | 1 + src/float_cast/float_cast.h | 2 +- 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/StretcherChannelData.cpp b/src/StretcherChannelData.cpp index adf6082..f896fbc 100644 --- a/src/StretcherChannelData.cpp +++ b/src/StretcherChannelData.cpp @@ -27,6 +27,8 @@ #include "system/Allocators.h" +#include + namespace RubberBand { diff --git a/src/StretcherImpl.cpp b/src/StretcherImpl.cpp index 7f74751..42e9c83 100644 --- a/src/StretcherImpl.cpp +++ b/src/StretcherImpl.cpp @@ -45,6 +45,7 @@ #include #include #include +#include using namespace RubberBand; diff --git a/src/StretcherProcess.cpp b/src/StretcherProcess.cpp index a5836b8..6dc26d5 100644 --- a/src/StretcherProcess.cpp +++ b/src/StretcherProcess.cpp @@ -43,6 +43,7 @@ #include #include #include +#include using namespace RubberBand; diff --git a/src/float_cast/float_cast.h b/src/float_cast/float_cast.h index 0aff010..0e862d0 100644 --- a/src/float_cast/float_cast.h +++ b/src/float_cast/float_cast.h @@ -38,7 +38,7 @@ ** long int lrint (double x) ; */ -#if (defined (WIN32) || defined (_WIN32)) +#if ((defined (WIN32) || defined (_WIN32)) && !defined (_WIN64)) #include From f57e65a8811c3e7b80eb93ea51f5892be34176e3 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Mon, 29 Jun 2015 16:12:44 +0100 Subject: [PATCH 17/26] Define these, in case they are still unfound on x64 --- src/float_cast/float_cast.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/float_cast/float_cast.h b/src/float_cast/float_cast.h index 0e862d0..fdeedbb 100644 --- a/src/float_cast/float_cast.h +++ b/src/float_cast/float_cast.h @@ -38,7 +38,13 @@ ** long int lrint (double x) ; */ -#if ((defined (WIN32) || defined (_WIN32)) && !defined (_WIN64)) +#if (defined (_WIN64)) + +#include +__inline long int lrint(double flt) { return (long int)flt; } +__inline long int lrintf(float flt) { return (long int)flt; } + +#elif (defined (WIN32) || defined (_WIN32)) #include From dfdc1ad2e09eb6d6fd0d02745810bb479b1f558f Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Wed, 8 Jul 2015 19:23:41 +0100 Subject: [PATCH 18/26] Fix memory leak (thanks bepaald!) --- src/dsp/FFT.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/dsp/FFT.cpp b/src/dsp/FFT.cpp index f3a7aaa..fdaf821 100644 --- a/src/dsp/FFT.cpp +++ b/src/dsp/FFT.cpp @@ -1597,6 +1597,15 @@ public: m_commonMutex.unlock(); #endif } +#ifndef NO_THREADING + m_commonMutex.lock(); +#endif + if (m_extantf <= 0 && m_extantd <= 0) { + fftw_cleanup(); + } +#ifndef NO_THREADING + m_commonMutex.unlock(); +#endif } FFT::Precisions From a0f8c91e7b09bd1416f3137a741cd849cb640f3b Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Thu, 9 Jul 2015 15:14:47 +0100 Subject: [PATCH 19/26] Include --- src/dsp/Resampler.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/dsp/Resampler.cpp b/src/dsp/Resampler.cpp index 8821719..7b8f91e 100644 --- a/src/dsp/Resampler.cpp +++ b/src/dsp/Resampler.cpp @@ -28,6 +28,7 @@ #include #include +#include #include "system/Allocators.h" From 24560ba3ec6d0f285ed36a67dc07448868342a03 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Thu, 9 Jul 2015 15:26:08 +0100 Subject: [PATCH 20/26] Copyright dates --- README.txt | 2 +- configure.ac | 2 +- ladspa/RubberBandPitchShifter.cpp | 2 +- ladspa/RubberBandPitchShifter.h | 2 +- ladspa/libmain.cpp | 2 +- main/main.cpp | 4 ++-- rubberband/RubberBandStretcher.h | 2 +- rubberband/rubberband-c.h | 2 +- src/RubberBandStretcher.cpp | 2 +- src/StretchCalculator.cpp | 2 +- src/StretchCalculator.h | 2 +- src/StretcherChannelData.cpp | 2 +- src/StretcherChannelData.h | 2 +- src/StretcherImpl.cpp | 2 +- src/StretcherImpl.h | 2 +- src/StretcherProcess.cpp | 2 +- src/audiocurves/CompoundAudioCurve.cpp | 2 +- src/audiocurves/CompoundAudioCurve.h | 2 +- src/audiocurves/ConstantAudioCurve.cpp | 2 +- src/audiocurves/ConstantAudioCurve.h | 2 +- src/audiocurves/HighFrequencyAudioCurve.cpp | 2 +- src/audiocurves/HighFrequencyAudioCurve.h | 2 +- src/audiocurves/PercussiveAudioCurve.cpp | 2 +- src/audiocurves/PercussiveAudioCurve.h | 2 +- src/audiocurves/SilentAudioCurve.cpp | 2 +- src/audiocurves/SilentAudioCurve.h | 2 +- src/audiocurves/SpectralDifferenceAudioCurve.cpp | 2 +- src/audiocurves/SpectralDifferenceAudioCurve.h | 2 +- src/base/Profiler.cpp | 2 +- src/base/Profiler.h | 2 +- src/base/RingBuffer.h | 2 +- src/base/Scavenger.h | 2 +- src/dsp/AudioCurveCalculator.cpp | 2 +- src/dsp/AudioCurveCalculator.h | 2 +- src/dsp/FFT.cpp | 2 +- src/dsp/FFT.h | 2 +- src/dsp/MovingMedian.h | 2 +- src/dsp/Resampler.cpp | 2 +- src/dsp/Resampler.h | 2 +- src/dsp/SampleFilter.h | 2 +- src/dsp/SincWindow.h | 2 +- src/dsp/Window.h | 2 +- src/jni/RubberBandStretcherJNI.cpp | 2 +- src/rubberband-c.cpp | 2 +- src/system/Allocators.cpp | 2 +- src/system/Allocators.h | 2 +- src/system/Thread.cpp | 2 +- src/system/Thread.h | 2 +- src/system/VectorOps.h | 2 +- src/system/VectorOpsComplex.cpp | 2 +- src/system/VectorOpsComplex.h | 2 +- src/system/sysutils.cpp | 2 +- src/system/sysutils.h | 2 +- vamp/RubberBandVampPlugin.cpp | 2 +- vamp/RubberBandVampPlugin.h | 2 +- vamp/libmain.cpp | 2 +- 56 files changed, 57 insertions(+), 57 deletions(-) diff --git a/README.txt b/README.txt index f38de26..d8d55c0 100644 --- a/README.txt +++ b/README.txt @@ -5,7 +5,7 @@ Rubber Band An audio time-stretching and pitch-shifting library and utility program. Written by Chris Cannam, chris.cannam@breakfastquay.com. -Copyright 2007-2014 Particular Programs Ltd. +Copyright 2007-2015 Particular Programs Ltd. Rubber Band is a library and utility program that permits changing the tempo and pitch of an audio recording independently of one another. diff --git a/configure.ac b/configure.ac index 73d7185..c157f46 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ -AC_INIT(RubberBand, 1.8.1, chris.cannam@breakfastquay.com) +AC_INIT(RubberBand, 1.9, chris.cannam@breakfastquay.com) AC_CONFIG_SRCDIR(src/StretcherImpl.h) AC_PROG_CXX diff --git a/ladspa/RubberBandPitchShifter.cpp b/ladspa/RubberBandPitchShifter.cpp index 6f1e4be..554940e 100644 --- a/ladspa/RubberBandPitchShifter.cpp +++ b/ladspa/RubberBandPitchShifter.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/ladspa/RubberBandPitchShifter.h b/ladspa/RubberBandPitchShifter.h index b9acc59..096b2c8 100644 --- a/ladspa/RubberBandPitchShifter.h +++ b/ladspa/RubberBandPitchShifter.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/ladspa/libmain.cpp b/ladspa/libmain.cpp index b808815..261f163 100644 --- a/ladspa/libmain.cpp +++ b/ladspa/libmain.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/main/main.cpp b/main/main.cpp index 40a0286..f7722ce 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -199,7 +199,7 @@ int main(int argc, char **argv) cerr << endl; cerr << "Rubber Band" << endl; cerr << "An audio time-stretching and pitch-shifting library and utility program." << endl; - cerr << "Copyright 2007-2014 Particular Programs Ltd." << endl; + cerr << "Copyright 2007-2015 Particular Programs Ltd." << endl; cerr << endl; cerr << " Usage: " << argv[0] << " [options] " << endl; cerr << endl; diff --git a/rubberband/RubberBandStretcher.h b/rubberband/RubberBandStretcher.h index 3200500..c6f81ce 100644 --- a/rubberband/RubberBandStretcher.h +++ b/rubberband/RubberBandStretcher.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/rubberband/rubberband-c.h b/rubberband/rubberband-c.h index 788988c..a76346b 100644 --- a/rubberband/rubberband-c.h +++ b/rubberband/rubberband-c.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/RubberBandStretcher.cpp b/src/RubberBandStretcher.cpp index 257e5dd..160deab 100644 --- a/src/RubberBandStretcher.cpp +++ b/src/RubberBandStretcher.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/StretchCalculator.cpp b/src/StretchCalculator.cpp index 3d803a4..2e0616f 100644 --- a/src/StretchCalculator.cpp +++ b/src/StretchCalculator.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/StretchCalculator.h b/src/StretchCalculator.h index 6470322..f38321b 100644 --- a/src/StretchCalculator.h +++ b/src/StretchCalculator.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/StretcherChannelData.cpp b/src/StretcherChannelData.cpp index f896fbc..1ba3a8f 100644 --- a/src/StretcherChannelData.cpp +++ b/src/StretcherChannelData.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/StretcherChannelData.h b/src/StretcherChannelData.h index a75e215..0d0390e 100644 --- a/src/StretcherChannelData.h +++ b/src/StretcherChannelData.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/StretcherImpl.cpp b/src/StretcherImpl.cpp index 42e9c83..9d2e1ec 100644 --- a/src/StretcherImpl.cpp +++ b/src/StretcherImpl.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/StretcherImpl.h b/src/StretcherImpl.h index 001d796..22abfbc 100644 --- a/src/StretcherImpl.h +++ b/src/StretcherImpl.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/StretcherProcess.cpp b/src/StretcherProcess.cpp index 6dc26d5..df9f8d4 100644 --- a/src/StretcherProcess.cpp +++ b/src/StretcherProcess.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/audiocurves/CompoundAudioCurve.cpp b/src/audiocurves/CompoundAudioCurve.cpp index da73f8f..3b4c285 100644 --- a/src/audiocurves/CompoundAudioCurve.cpp +++ b/src/audiocurves/CompoundAudioCurve.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/audiocurves/CompoundAudioCurve.h b/src/audiocurves/CompoundAudioCurve.h index 2e3e43d..458eb00 100644 --- a/src/audiocurves/CompoundAudioCurve.h +++ b/src/audiocurves/CompoundAudioCurve.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/audiocurves/ConstantAudioCurve.cpp b/src/audiocurves/ConstantAudioCurve.cpp index 4e6fc2c..9bdce1f 100644 --- a/src/audiocurves/ConstantAudioCurve.cpp +++ b/src/audiocurves/ConstantAudioCurve.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/audiocurves/ConstantAudioCurve.h b/src/audiocurves/ConstantAudioCurve.h index 65e2410..87cd4ea 100644 --- a/src/audiocurves/ConstantAudioCurve.h +++ b/src/audiocurves/ConstantAudioCurve.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/audiocurves/HighFrequencyAudioCurve.cpp b/src/audiocurves/HighFrequencyAudioCurve.cpp index 88fb20c..3f1f9e0 100644 --- a/src/audiocurves/HighFrequencyAudioCurve.cpp +++ b/src/audiocurves/HighFrequencyAudioCurve.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/audiocurves/HighFrequencyAudioCurve.h b/src/audiocurves/HighFrequencyAudioCurve.h index 04fabfa..7df0e1c 100644 --- a/src/audiocurves/HighFrequencyAudioCurve.h +++ b/src/audiocurves/HighFrequencyAudioCurve.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/audiocurves/PercussiveAudioCurve.cpp b/src/audiocurves/PercussiveAudioCurve.cpp index f60dec2..80da163 100644 --- a/src/audiocurves/PercussiveAudioCurve.cpp +++ b/src/audiocurves/PercussiveAudioCurve.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/audiocurves/PercussiveAudioCurve.h b/src/audiocurves/PercussiveAudioCurve.h index e562a3e..9eac6bc 100644 --- a/src/audiocurves/PercussiveAudioCurve.h +++ b/src/audiocurves/PercussiveAudioCurve.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/audiocurves/SilentAudioCurve.cpp b/src/audiocurves/SilentAudioCurve.cpp index 47a63b0..2a570ca 100644 --- a/src/audiocurves/SilentAudioCurve.cpp +++ b/src/audiocurves/SilentAudioCurve.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/audiocurves/SilentAudioCurve.h b/src/audiocurves/SilentAudioCurve.h index e98f4c0..4146b7e 100644 --- a/src/audiocurves/SilentAudioCurve.h +++ b/src/audiocurves/SilentAudioCurve.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/audiocurves/SpectralDifferenceAudioCurve.cpp b/src/audiocurves/SpectralDifferenceAudioCurve.cpp index 0f580f0..805cb9c 100644 --- a/src/audiocurves/SpectralDifferenceAudioCurve.cpp +++ b/src/audiocurves/SpectralDifferenceAudioCurve.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/audiocurves/SpectralDifferenceAudioCurve.h b/src/audiocurves/SpectralDifferenceAudioCurve.h index 331d9cf..25bdfb9 100644 --- a/src/audiocurves/SpectralDifferenceAudioCurve.h +++ b/src/audiocurves/SpectralDifferenceAudioCurve.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/base/Profiler.cpp b/src/base/Profiler.cpp index aa3159b..d152682 100644 --- a/src/base/Profiler.cpp +++ b/src/base/Profiler.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/base/Profiler.h b/src/base/Profiler.h index ec1f2a5..96bc6af 100644 --- a/src/base/Profiler.h +++ b/src/base/Profiler.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/base/RingBuffer.h b/src/base/RingBuffer.h index cb7c108..b14a04e 100644 --- a/src/base/RingBuffer.h +++ b/src/base/RingBuffer.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/base/Scavenger.h b/src/base/Scavenger.h index fc3744c..db1ea35 100644 --- a/src/base/Scavenger.h +++ b/src/base/Scavenger.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/dsp/AudioCurveCalculator.cpp b/src/dsp/AudioCurveCalculator.cpp index dcd6b60..cb3507b 100644 --- a/src/dsp/AudioCurveCalculator.cpp +++ b/src/dsp/AudioCurveCalculator.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/dsp/AudioCurveCalculator.h b/src/dsp/AudioCurveCalculator.h index 40b643f..38c89d5 100644 --- a/src/dsp/AudioCurveCalculator.h +++ b/src/dsp/AudioCurveCalculator.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/dsp/FFT.cpp b/src/dsp/FFT.cpp index fdaf821..7c0df1c 100644 --- a/src/dsp/FFT.cpp +++ b/src/dsp/FFT.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/dsp/FFT.h b/src/dsp/FFT.h index c49e695..52a64e6 100644 --- a/src/dsp/FFT.h +++ b/src/dsp/FFT.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/dsp/MovingMedian.h b/src/dsp/MovingMedian.h index 9c37185..a62f5a3 100644 --- a/src/dsp/MovingMedian.h +++ b/src/dsp/MovingMedian.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/dsp/Resampler.cpp b/src/dsp/Resampler.cpp index 7b8f91e..5e718d5 100644 --- a/src/dsp/Resampler.cpp +++ b/src/dsp/Resampler.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/dsp/Resampler.h b/src/dsp/Resampler.h index 3b27489..08da34b 100644 --- a/src/dsp/Resampler.h +++ b/src/dsp/Resampler.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/dsp/SampleFilter.h b/src/dsp/SampleFilter.h index e5eca66..758987e 100644 --- a/src/dsp/SampleFilter.h +++ b/src/dsp/SampleFilter.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/dsp/SincWindow.h b/src/dsp/SincWindow.h index f0e953d..3e7beff 100644 --- a/src/dsp/SincWindow.h +++ b/src/dsp/SincWindow.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/dsp/Window.h b/src/dsp/Window.h index d8b6f82..675117c 100644 --- a/src/dsp/Window.h +++ b/src/dsp/Window.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/jni/RubberBandStretcherJNI.cpp b/src/jni/RubberBandStretcherJNI.cpp index f22bb1f..0b43fd3 100644 --- a/src/jni/RubberBandStretcherJNI.cpp +++ b/src/jni/RubberBandStretcherJNI.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/rubberband-c.cpp b/src/rubberband-c.cpp index bc12132..f49e609 100644 --- a/src/rubberband-c.cpp +++ b/src/rubberband-c.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/system/Allocators.cpp b/src/system/Allocators.cpp index bca2456..3dcaca2 100644 --- a/src/system/Allocators.cpp +++ b/src/system/Allocators.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/system/Allocators.h b/src/system/Allocators.h index 2875c21..98c0a62 100644 --- a/src/system/Allocators.h +++ b/src/system/Allocators.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/system/Thread.cpp b/src/system/Thread.cpp index ebb4047..27eda5a 100644 --- a/src/system/Thread.cpp +++ b/src/system/Thread.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/system/Thread.h b/src/system/Thread.h index a72b0a3..8550206 100644 --- a/src/system/Thread.h +++ b/src/system/Thread.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/system/VectorOps.h b/src/system/VectorOps.h index 1a6f5a6..b79ac7f 100644 --- a/src/system/VectorOps.h +++ b/src/system/VectorOps.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/system/VectorOpsComplex.cpp b/src/system/VectorOpsComplex.cpp index 87f54bd..2fdb0f9 100644 --- a/src/system/VectorOpsComplex.cpp +++ b/src/system/VectorOpsComplex.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/system/VectorOpsComplex.h b/src/system/VectorOpsComplex.h index dd0f92c..e1e53bb 100644 --- a/src/system/VectorOpsComplex.h +++ b/src/system/VectorOpsComplex.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/system/sysutils.cpp b/src/system/sysutils.cpp index 10aef9e..9119175 100644 --- a/src/system/sysutils.cpp +++ b/src/system/sysutils.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/src/system/sysutils.h b/src/system/sysutils.h index c2aaf51..b7d4b22 100644 --- a/src/system/sysutils.h +++ b/src/system/sysutils.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/vamp/RubberBandVampPlugin.cpp b/vamp/RubberBandVampPlugin.cpp index 49ad1cf..d7e9439 100644 --- a/vamp/RubberBandVampPlugin.cpp +++ b/vamp/RubberBandVampPlugin.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/vamp/RubberBandVampPlugin.h b/vamp/RubberBandVampPlugin.h index 33e6a50..dd62841 100644 --- a/vamp/RubberBandVampPlugin.h +++ b/vamp/RubberBandVampPlugin.h @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/vamp/libmain.cpp b/vamp/libmain.cpp index 51b30fd..f5ef4cc 100644 --- a/vamp/libmain.cpp +++ b/vamp/libmain.cpp @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2014 Particular Programs Ltd. + Copyright 2007-2015 Particular Programs Ltd. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as From 09a1dc3a205d3ae67c786bc60ecfa08eb2edc0cd Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Thu, 9 Jul 2015 15:40:42 +0100 Subject: [PATCH 21/26] Next version will be 1.8.2 --- CHANGELOG | 11 ++++++++++ Makefile.in | 2 +- Makefile.osx | 2 +- README.txt | 36 +++++++++++++++++++++++++++----- configure.ac | 2 +- rubberband/RubberBandStretcher.h | 2 +- 6 files changed, 46 insertions(+), 9 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 1045d4d..5c553ae 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,4 +1,15 @@ +Changes in Rubber Band v1.8.2 + + * Fix a number of small memory leaks + * Make stretcher more robust to being fed invalid input (with NaNs) + * Include iOS build file + * Various platform build fixes and improvements + +The API is unchanged and the library is binary compatible with +version 1.7. + + Changes in Rubber Band v1.8.1 * Fix a crash in formant-preserving pitch shift for some build targets diff --git a/Makefile.in b/Makefile.in index ed1840b..3a70a71 100644 --- a/Makefile.in +++ b/Makefile.in @@ -31,7 +31,7 @@ JNINAME := librubberband-jni JARNAME := rubberband.jar DYNAMIC_EXTENSION := .so -DYNAMIC_FULL_VERSION := 2.1.0 +DYNAMIC_FULL_VERSION := 2.1.1 DYNAMIC_ABI_VERSION := 2 DYNAMIC_LDFLAGS := -shared -Wl,-Bsymbolic -Wl,-soname=$(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_ABI_VERSION) VAMP_LDFLAGS := -shared -Wl,-Bsymbolic -Wl,--version-script=vamp/vamp-plugin.map diff --git a/Makefile.osx b/Makefile.osx index 3b1fc7f..4375188 100644 --- a/Makefile.osx +++ b/Makefile.osx @@ -29,7 +29,7 @@ INSTALL_PKGDIR := $(PREFIX)/lib/pkgconfig LIBNAME := librubberband DYNAMIC_EXTENSION := .dylib -DYNAMIC_FULL_VERSION := 2.1.0 +DYNAMIC_FULL_VERSION := 2.1.1 DYNAMIC_ABI_VERSION := 2 DYNAMIC_LDFLAGS := -dynamiclib -install_name $(INSTALL_LIBDIR)/$(LIBNAME).$(DYNAMIC_ABI_VERSION)$(DYNAMIC_EXTENSION) -current_version $(DYNAMIC_FULL_VERSION) -compatibility_version $(DYNAMIC_ABI_VERSION) diff --git a/README.txt b/README.txt index d8d55c0..2180fba 100644 --- a/README.txt +++ b/README.txt @@ -246,14 +246,16 @@ The following Makefile targets are available: The default target is "all". -4d. OS/X and iOS ----------------- +4d. OS/X +-------- A Makefile for OS/X is provided as Makefile.osx. Adjust the Makefile according to your preference for compiler and platform SDK, FFT and resampler implementations. The default is to -use the Accelerate framework and the Speex resampler. +use the Accelerate framework and the Speex resampler. Then run +e.g. "make -f Makefile.osx library" in a terminal window to build. +You will need the Xcode command-line tools installed. The following Makefile targets are available: @@ -275,8 +277,32 @@ for RubberBandStretcherJNI.cpp) and the API headers in rubberband/ should be all you need. Note that you cannot legally distribute applications using Rubber Band -through the iPhone/iPad App Store or OS/X App Store unless you have a -valid commercial licence. GPL code is not permitted in these stores. +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 +app store. See http://breakfastquay.com/technology/license.html for +commercial terms. + + +4d. iOS +------- + +A Makefile for iOS is provided as Makefile.ios. It produces a single +static library containing both simulator and device binaries, in both +32- and 64-bit architectures. + +Run e.g. "make -f Makefile.ios" in a terminal window to build. You +will need the Xcode command-line tools installed. + +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 +for RubberBandStretcherJNI.cpp) and the API headers in rubberband/ +should be all you need. + +Note that you cannot legally distribute applications using Rubber Band +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 +app store. See http://breakfastquay.com/technology/license.html for +commercial terms. 4e. Win32 and Visual Studio diff --git a/configure.ac b/configure.ac index c157f46..eef571b 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ -AC_INIT(RubberBand, 1.9, chris.cannam@breakfastquay.com) +AC_INIT(RubberBand, 1.8.2, chris.cannam@breakfastquay.com) AC_CONFIG_SRCDIR(src/StretcherImpl.h) AC_PROG_CXX diff --git a/rubberband/RubberBandStretcher.h b/rubberband/RubberBandStretcher.h index c6f81ce..cba1cd2 100644 --- a/rubberband/RubberBandStretcher.h +++ b/rubberband/RubberBandStretcher.h @@ -24,7 +24,7 @@ #ifndef _RUBBERBANDSTRETCHER_H_ #define _RUBBERBANDSTRETCHER_H_ -#define RUBBERBAND_VERSION "1.8.1" +#define RUBBERBAND_VERSION "1.8.2" #define RUBBERBAND_API_MAJOR_VERSION 2 #define RUBBERBAND_API_MINOR_VERSION 5 From f178b158c9a3bb7fabde65de1297d2d570ae3587 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Thu, 9 Jul 2015 16:32:18 +0100 Subject: [PATCH 22/26] Version --- rubberband/rubberband-c.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rubberband/rubberband-c.h b/rubberband/rubberband-c.h index a76346b..a73baa2 100644 --- a/rubberband/rubberband-c.h +++ b/rubberband/rubberband-c.h @@ -28,7 +28,7 @@ extern "C" { #endif -#define RUBBERBAND_VERSION "1.8.1" +#define RUBBERBAND_VERSION "1.8.2" #define RUBBERBAND_API_MAJOR_VERSION 2 #define RUBBERBAND_API_MINOR_VERSION 5 From 176a84b55024efe5107350b10798290457583a1c Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Fri, 5 Feb 2016 15:02:39 +0000 Subject: [PATCH 23/26] Version in C header too --- rubberband/rubberband-c.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rubberband/rubberband-c.h b/rubberband/rubberband-c.h index a76346b..a73baa2 100644 --- a/rubberband/rubberband-c.h +++ b/rubberband/rubberband-c.h @@ -28,7 +28,7 @@ extern "C" { #endif -#define RUBBERBAND_VERSION "1.8.1" +#define RUBBERBAND_VERSION "1.8.2" #define RUBBERBAND_API_MAJOR_VERSION 2 #define RUBBERBAND_API_MINOR_VERSION 5 From 8a4d2a8231566e7e3399a6547b11fd22f9d1d115 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Fri, 5 Feb 2016 15:02:51 +0000 Subject: [PATCH 24/26] Better docs on input format --- rubberband/RubberBandStretcher.h | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/rubberband/RubberBandStretcher.h b/rubberband/RubberBandStretcher.h index cba1cd2..b680e8c 100644 --- a/rubberband/RubberBandStretcher.h +++ b/rubberband/RubberBandStretcher.h @@ -551,9 +551,11 @@ public: * blocks in individual study() calls, or as a single large block. * * "input" should point to de-interleaved audio data with one - * float array per channel. "samples" supplies the number of - * audio sample frames available in "input". If "samples" is - * zero, "input" may be NULL. + * float array per channel. Sample values are conventionally + * expected to be in the range -1.0f to +1.0f. "samples" supplies + * the number of audio sample frames available in "input" (that + * is, the number of possibly multi-channel frames rather than of + * individual samples). If "samples" is zero, "input" may be NULL. * * Set "final" to true if this is the last block of data that will * be provided to study() before the first process() call. @@ -564,6 +566,13 @@ public: * Provide a block of "samples" sample frames for processing. * See also getSamplesRequired() and setMaxProcessSize(). * + * "input" should point to de-interleaved audio data with one + * float array per channel. Sample values are conventionally + * expected to be in the range -1.0f to +1.0f. "samples" supplies + * the number of audio sample frames available in "input" (that + * is, the number of possibly multi-channel frames rather than of + * individual samples). + * * Set "final" to true if this is the last block of input data. */ void process(const float *const *input, size_t samples, bool final); From c93a18535ffea1ca7b18eb41c34064b77f8419e3 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Fri, 5 Feb 2016 15:14:46 +0000 Subject: [PATCH 25/26] Comments to clarify sample layout and counting --- rubberband/RubberBandStretcher.h | 54 +++++++++++++++++++++++++++----- 1 file changed, 47 insertions(+), 7 deletions(-) diff --git a/rubberband/RubberBandStretcher.h b/rubberband/RubberBandStretcher.h index b680e8c..fc9fe4d 100644 --- a/rubberband/RubberBandStretcher.h +++ b/rubberband/RubberBandStretcher.h @@ -462,11 +462,17 @@ public: void setPitchOption(Options options); /** - * Tell the stretcher exactly how many input samples it will + * Tell the stretcher exactly how many input sample frames it will * receive. This is only useful in Offline mode, when it allows * the stretcher to ensure that the number of output samples is * exactly correct. In RealTime mode no such guarantee is * possible and this value is ignored. + * + * Note that the value of "samples" refers to the number of audio + * sample frames, which may be multi-channel, not the number of + * individual samples. (For example, one second of stereo audio + * sampled at 44100Hz yields a value of 44100 sample frames, not + * 88200.) This rule applies throughout the Rubber Band API. */ void setExpectedInputDuration(size_t samples); @@ -492,6 +498,12 @@ public: * Note that this value is only relevant to process(), not to * study() (to which you may pass any number of samples at a time, * and from which there is no output). + * + * Note that the value of "samples" refers to the number of audio + * sample frames, which may be multi-channel, not the number of + * individual samples. (For example, one second of stereo audio + * sampled at 44100Hz yields a value of 44100 sample frames, not + * 88200.) This rule applies throughout the Rubber Band API. */ void setMaxProcessSize(size_t samples); @@ -512,6 +524,12 @@ public: * Note that this value is only relevant to process(), not to * study() (to which you may pass any number of samples at a time, * and from which there is no output). + * + * Note that the return value refers to the number of audio sample + * frames, which may be multi-channel, not the number of + * individual samples. (For example, one second of stereo audio + * sampled at 44100Hz yields a value of 44100 sample frames, not + * 88200.) This rule applies throughout the Rubber Band API. */ size_t getSamplesRequired() const; @@ -553,9 +571,14 @@ public: * "input" should point to de-interleaved audio data with one * float array per channel. Sample values are conventionally * expected to be in the range -1.0f to +1.0f. "samples" supplies - * the number of audio sample frames available in "input" (that - * is, the number of possibly multi-channel frames rather than of - * individual samples). If "samples" is zero, "input" may be NULL. + * the number of audio sample frames available in "input". If + * "samples" is zero, "input" may be NULL. + * + * Note that the value of "samples" refers to the number of audio + * sample frames, which may be multi-channel, not the number of + * individual samples. (For example, one second of stereo audio + * sampled at 44100Hz yields a value of 44100 sample frames, not + * 88200.) This rule applies throughout the Rubber Band API. * * Set "final" to true if this is the last block of data that will * be provided to study() before the first process() call. @@ -569,9 +592,13 @@ public: * "input" should point to de-interleaved audio data with one * float array per channel. Sample values are conventionally * expected to be in the range -1.0f to +1.0f. "samples" supplies - * the number of audio sample frames available in "input" (that - * is, the number of possibly multi-channel frames rather than of - * individual samples). + * the number of audio sample frames available in "input". + * + * Note that the value of "samples" refers to the number of audio + * sample frames, which may be multi-channel, not the number of + * individual samples. (For example, one second of stereo audio + * sampled at 44100Hz yields a value of 44100 sample frames, not + * 88200.) This rule applies throughout the Rubber Band API. * * Set "final" to true if this is the last block of input data. */ @@ -587,6 +614,12 @@ public: * enough data has yet been processed. Call getSamplesRequired() * to discover whether more input is needed. * + * Note that the return value refers to the number of audio sample + * frames, which may be multi-channel, not the number of + * individual samples. (For example, one second of stereo audio + * sampled at 44100Hz yields a value of 44100 sample frames, not + * 88200.) This rule applies throughout the Rubber Band API. + * * This function returns -1 if all data has been fully processed * and all output read, and the stretch process is now finished. */ @@ -598,6 +631,13 @@ public: * channel for de-interleaved audio data) pointed to by "output". * The return value is the actual number of sample frames * retrieved. + * + * Note that the value of "samples" and the return value refer to + * the number of audio sample frames, which may be multi-channel, + * not the number of individual samples. (For example, one second + * of stereo audio sampled at 44100Hz yields a value of 44100 + * sample frames, not 88200.) This rule applies throughout the + * Rubber Band API. */ size_t retrieve(float *const *output, size_t samples) const; From e0736604b5806266f78f7e9aa295cf3da4144811 Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Fri, 3 Feb 2017 14:56:45 +0000 Subject: [PATCH 26/26] Note about libsamplerate licence --- README.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.txt b/README.txt index 2180fba..f9756ed 100644 --- a/README.txt +++ b/README.txt @@ -176,7 +176,7 @@ Resampler libraries supported Name Flags required Notes ---- -------------- ----- -libsamplerate -DHAVE_LIBSAMPLERATE GPL. +libsamplerate -DHAVE_LIBSAMPLERATE GPL until v0.1.8, BSD for v0.1.9 and later. libresample -DHAVE_LIBRESAMPLE LGPL.