diff -Nru rubberband-1.8.2/CHANGELOG rubberband-1.9.0/CHANGELOG --- rubberband-1.8.2/CHANGELOG 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/CHANGELOG 2020-09-10 13:30:36.000000000 +0000 @@ -1,4 +1,26 @@ +Changes in Rubber Band v1.9 + + * Fix incorrect numbering of pitch speed/quality flags in the + auxiliary C wrapper header. The effect of this was that code using + the C wrapper that intended to select the higher-quality + pitch-shift mode was actually choosing the higher-speed mode, and + vice versa. (The third mode - high-consistency, commonly used in + real-time applications - was correct.) Thanks to Michael Bradshaw + for reporting this. + * Add a .NET interface, generously contributed by Jonathan Gilbert + under a BSD-like licence + * Improve error handling in command-line utility + * Fix failure to build with FFTW_SINGLE_ONLY defined + * Fix some compiler warnings + * Install the JNI target (with make install) only if it has actually + been built, avoiding an error otherwise + +The API is unchanged except for the fix noted above, as a result of +which the minor version number has been increased. The library is +binary compatible with version 1.7. + + Changes in Rubber Band v1.8.2 * Fix a number of small memory leaks diff -Nru rubberband-1.8.2/configure rubberband-1.9.0/configure --- rubberband-1.8.2/configure 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/configure 2020-09-10 13:30:36.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for RubberBand 1.8.2. +# Generated by GNU Autoconf 2.69 for RubberBand 1.9.0. # # Report bugs to . # @@ -580,8 +580,8 @@ # Identity of this package. PACKAGE_NAME='RubberBand' PACKAGE_TARNAME='rubberband' -PACKAGE_VERSION='1.8.2' -PACKAGE_STRING='RubberBand 1.8.2' +PACKAGE_VERSION='1.9.0' +PACKAGE_STRING='RubberBand 1.9.0' PACKAGE_BUGREPORT='chris.cannam@breakfastquay.com' PACKAGE_URL='' @@ -648,6 +648,9 @@ LDFLAGS CXXFLAGS CXX +WITH_LADSPA +WITH_VAMP +WITH_PROGRAMS target_alias host_alias build_alias @@ -689,6 +692,9 @@ ac_subst_files='' ac_user_opts=' enable_option_checking +enable_programs +enable_vamp +enable_ladspa ' ac_precious_vars='build_alias host_alias @@ -1253,7 +1259,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures RubberBand 1.8.2 to adapt to many kinds of systems. +\`configure' configures RubberBand 1.9.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1314,10 +1320,18 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of RubberBand 1.8.2:";; + short | recursive ) echo "Configuration of RubberBand 1.9.0:";; esac cat <<\_ACEOF +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --disable-programs disable compilation of programs + --disable-vamp disable compilation of Vamp plugin + --disable-ladspa disable compilation of LADSPA plugin + Some influential environment variables: CXX C++ compiler command CXXFLAGS C++ compiler flags @@ -1411,7 +1425,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -RubberBand configure 1.8.2 +RubberBand configure 1.9.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1705,7 +1719,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by RubberBand $as_me 1.8.2, which was +It was created by RubberBand $as_me 1.9.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2054,6 +2068,45 @@ +# Check whether --enable-programs was given. +if test "${enable_programs+set}" = set; then : + enableval=$enable_programs; case "${enableval}" in + yes | no ) WITH_PROGRAMS="${enableval}" ;; + *) as_fn_error $? "bad value ${enableval} for --disable-programs" "$LINENO" 5 ;; + esac +else + WITH_PROGRAMS="yes" + +fi + + + +# Check whether --enable-vamp was given. +if test "${enable_vamp+set}" = set; then : + enableval=$enable_vamp; case "${enableval}" in + yes | no ) WITH_VAMP="${enableval}" ;; + *) as_fn_error $? "bad value ${enableval} for --disable-vamp" "$LINENO" 5 ;; + esac +else + WITH_VAMP="yes" + +fi + + + +# Check whether --enable-ladspa was given. +if test "${enable_ladspa+set}" = set; then : + enableval=$enable_ladspa; case "${enableval}" in + yes | no ) WITH_LADSPA="${enableval}" ;; + *) as_fn_error $? "bad value ${enableval} for --disable-ladspa" "$LINENO" 5 ;; + esac +else + WITH_LADSPA="yes" + +fi + + + ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' @@ -3846,8 +3899,8 @@ fi pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for samplerate" >&5 -$as_echo_n "checking for samplerate... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SRC" >&5 +$as_echo_n "checking for SRC... " >&6; } if test -n "$SRC_CFLAGS"; then pkg_cv_SRC_CFLAGS="$SRC_CFLAGS" @@ -3887,7 +3940,7 @@ if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then @@ -3914,7 +3967,7 @@ and SRC_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} @@ -3938,10 +3991,11 @@ +if test "x$WITH_PROGRAMS" = "xyes"; then pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sndfile" >&5 -$as_echo_n "checking for sndfile... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SNDFILE" >&5 +$as_echo_n "checking for SNDFILE... " >&6; } if test -n "$SNDFILE_CFLAGS"; then pkg_cv_SNDFILE_CFLAGS="$SNDFILE_CFLAGS" @@ -3981,7 +4035,7 @@ if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then @@ -4008,7 +4062,7 @@ and SNDFILE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} @@ -4029,13 +4083,14 @@ $as_echo "yes" >&6; } fi +fi pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fftw3" >&5 -$as_echo_n "checking for fftw3... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FFTW" >&5 +$as_echo_n "checking for FFTW... " >&6; } if test -n "$FFTW_CFLAGS"; then pkg_cv_FFTW_CFLAGS="$FFTW_CFLAGS" @@ -4075,7 +4130,7 @@ if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then @@ -4102,7 +4157,7 @@ and FFTW_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} @@ -4126,7 +4181,8 @@ -for ac_header in ladspa.h +if test "x$WITH_LADSPA" = "xyes"; then + for ac_header in ladspa.h do : ac_fn_c_check_header_mongrel "$LINENO" "ladspa.h" "ac_cv_header_ladspa_h" "$ac_includes_default" if test "x$ac_cv_header_ladspa_h" = xyes; then : @@ -4138,6 +4194,7 @@ done +fi for ac_header in pthread.h do : ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" @@ -4151,10 +4208,11 @@ done +if test "x$WITH_VAMP" = "xyes"; then pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for vamp-sdk" >&5 -$as_echo_n "checking for vamp-sdk... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Vamp" >&5 +$as_echo_n "checking for Vamp... " >&6; } if test -n "$Vamp_CFLAGS"; then pkg_cv_Vamp_CFLAGS="$Vamp_CFLAGS" @@ -4194,7 +4252,7 @@ if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then @@ -4221,7 +4279,7 @@ and Vamp_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} @@ -4242,6 +4300,7 @@ $as_echo "yes" >&6; } fi +fi @@ -4801,7 +4860,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by RubberBand $as_me 1.8.2, which was +This file was extended by RubberBand $as_me 1.9.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -4854,7 +4913,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -RubberBand config.status 1.8.2 +RubberBand config.status 1.9.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -Nru rubberband-1.8.2/configure.ac rubberband-1.9.0/configure.ac --- rubberband-1.8.2/configure.ac 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/configure.ac 2020-09-10 13:30:36.000000000 +0000 @@ -1,5 +1,35 @@ -AC_INIT(RubberBand, 1.8.2, chris.cannam@breakfastquay.com) +AC_INIT(RubberBand, 1.9.0, chris.cannam@breakfastquay.com) + +AC_ARG_ENABLE(programs, + [ --disable-programs disable compilation of programs], + [case "${enableval}" in + yes | no ) WITH_PROGRAMS="${enableval}" ;; + *) AC_MSG_ERROR(bad value ${enableval} for --disable-programs) ;; + esac], + [WITH_PROGRAMS="yes"] +) +AC_SUBST(WITH_PROGRAMS) + +AC_ARG_ENABLE(vamp, + [ --disable-vamp disable compilation of Vamp plugin], + [case "${enableval}" in + yes | no ) WITH_VAMP="${enableval}" ;; + *) AC_MSG_ERROR(bad value ${enableval} for --disable-vamp) ;; + esac], + [WITH_VAMP="yes"] +) +AC_SUBST(WITH_VAMP) + +AC_ARG_ENABLE(ladspa, + [ --disable-ladspa disable compilation of LADSPA plugin], + [case "${enableval}" in + yes | no ) WITH_LADSPA="${enableval}" ;; + *) AC_MSG_ERROR(bad value ${enableval} for --disable-ladspa) ;; + esac], + [WITH_LADSPA="yes"] +) +AC_SUBST(WITH_LADSPA) AC_CONFIG_SRCDIR(src/StretcherImpl.h) AC_PROG_CXX @@ -11,7 +41,9 @@ AC_SUBST(SRC_CFLAGS) AC_SUBST(SRC_LIBS) -PKG_CHECK_MODULES([SNDFILE],[sndfile]) +if test "x$WITH_PROGRAMS" = "xyes"; then + PKG_CHECK_MODULES([SNDFILE],[sndfile]) +fi AC_SUBST(SNDFILE_CFLAGS) AC_SUBST(SNDFILE_LIBS) @@ -19,10 +51,14 @@ AC_SUBST(FFTW_CFLAGS) AC_SUBST(FFTW_LIBS) -AC_CHECK_HEADERS(ladspa.h) +if test "x$WITH_LADSPA" = "xyes"; then + AC_CHECK_HEADERS(ladspa.h) +fi AC_CHECK_HEADERS(pthread.h) -PKG_CHECK_MODULES([Vamp],[vamp-sdk]) +if test "x$WITH_VAMP" = "xyes"; then + PKG_CHECK_MODULES([Vamp],[vamp-sdk]) +fi AC_SUBST(Vamp_CFLAGS) AC_SUBST(Vamp_LIBS) diff -Nru rubberband-1.8.2/debian/changelog rubberband-1.9.0/debian/changelog --- rubberband-1.8.2/debian/changelog 2020-03-23 06:25:25.000000000 +0000 +++ rubberband-1.9.0/debian/changelog 2020-09-12 15:34:19.000000000 +0000 @@ -1,8 +1,20 @@ -rubberband (1.8.2-1build1) focal; urgency=medium +rubberband (1.9.0-1) unstable; urgency=medium - * No-change rebuild for libgcc-s1 package name change. + * Team upload - -- Matthias Klose Mon, 23 Mar 2020 07:25:25 +0100 + [ Debian Janitor ] + * Trim trailing whitespace. + * Use secure URI in Homepage field. + + [ Sebastian Ramacher ] + * New upstream release + * debian/copyright: Update copyright info + * debian/control: Bump Standards-Version + * debian/: Bump debhelper compat to 13 + * debian/*.docs: Install README in librubberband-dev + * debian/patches: Refresh patches + + -- Sebastian Ramacher Sat, 12 Sep 2020 17:34:19 +0200 rubberband (1.8.2-1) unstable; urgency=medium @@ -168,4 +180,3 @@ * Initial release (Closes: #457480) -- Székelyi Szabolcs Tue, 15 Apr 2008 17:49:31 +0000 - diff -Nru rubberband-1.8.2/debian/control rubberband-1.9.0/debian/control --- rubberband-1.8.2/debian/control 2019-10-06 19:13:47.000000000 +0000 +++ rubberband-1.9.0/debian/control 2020-09-12 15:19:49.000000000 +0000 @@ -5,7 +5,7 @@ Uploaders: Jaromír Mikeš Build-Depends: - debhelper-compat (= 12), + debhelper-compat (= 13), docbook-to-man, ladspa-sdk, libfftw3-dev, @@ -13,10 +13,10 @@ libsndfile1-dev, pkg-config, vamp-plugin-sdk -Standards-Version: 4.4.1 +Standards-Version: 4.5.0 Vcs-Git: https://salsa.debian.org/multimedia-team/rubberband.git Vcs-Browser: https://salsa.debian.org/multimedia-team/rubberband -Homepage: http://www.breakfastquay.com/rubberband/ +Homepage: https://www.breakfastquay.com/rubberband/ Rules-Requires-Root: no Package: librubberband2 diff -Nru rubberband-1.8.2/debian/copyright rubberband-1.9.0/debian/copyright --- rubberband-1.8.2/debian/copyright 2019-10-06 19:13:47.000000000 +0000 +++ rubberband-1.9.0/debian/copyright 2020-09-12 15:34:19.000000000 +0000 @@ -5,50 +5,66 @@ Copyright: 2007-2011 Chris Cannam Files: * -Copyright: - 2007-2018 Particular Programs Ltd - 2007-2011 Chris Cannam +Copyright: 2007-2011, Chris Cannam + 2007-2020, Particular Programs Ltd + 2007-2020, Particular Programs Ltd." << endl License: GPL-2+ -Files: debian/* -Copyright: - 2012 Alessio Treglia - 2008-2012 Székelyi Szabolcs - 2012-2016 Jaromír Mikeš -License: GPL-2+ +Files: rubberband-dll/* + rubberband-sharp/* +Copyright: 2018-2019, Jonathan Gilbert +License: Expat + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + “Software”), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + . + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -Files: src/float_cast/float_cast.h -Copyright: 2001 Erik de Castro Lopo -License: other-1 +Files: src/kissfft/* +Copyright: 2003-2004, Mark Borgerding +License: BSD-3-clause -Files: src/getopt/getopt.c -Copyright: 1987, 1993, 1994 The Regents of the University of California -License: other-bsd-4-clause-1 - -Files: src/getopt/getopt.h - src/getopt/getopt_long.c -Copyright: 2000 The NetBSD Foundation, Inc. -License: other-bsd-4-clause-2 +Files: src/speex/* +Copyright: 2005-2007, Analog Devices Inc + 2005-2007, Commonwealth Scientific and Industrial Research + 1993-2006, David Rowe + 2003, EpicGames + 2002-2007, Jean-Marc Valin + 1992-1994, Jutta Degener, Carsten Bormann + 2002-2007, Xiph.org Foundation +License: BSD-3-clause + +Files: src/getopt/* +Copyright: 2000, The NetBSD Foundation, Inc + 1987-1994, The Regents of the University of California +License: BSD-4-clause Files: src/pommier/* -Copyright: 2011 Julien Pommier -License: zlib +Copyright: 2007-2011, Julien Pommier +License: Zlib -Files: src/kissfft/* -Copyright: 2003-2004 Mark Borgerding -License: other-bsd-3-clause-kissft +Files: src/float_cast/* +Copyright: 2001, Erik de Castro Lopo +License: other-1 -Files: src/speex/* -Copyright: - 2002-2007 Xiph.org Foundation - 2002-2007 Jean-Marc Valin - 2005-2007 Analog Devices Inc. - 2005-2007 Commonwealth Scientific and Industrial Research - Organisation (CSIRO) - 1993, 2002, 2006 David Rowe - 2003 EpicGames - 1992-1994 Jutta Degener, Carsten Bormann -License: other-bsd-3-clause-speex +Files: debian/* +Copyright: 2012, Alessio Treglia + 2012-2016, Jaromír Mikeš + 2008-2012, Székelyi Szabolcs +License: GPL-2+ License: GPL-2+ This program is free software: you can redistribute it and/or modify @@ -67,92 +83,32 @@ On Debian systems, the complete text of the GNU General Public License can be found in `/usr/share/common-licenses/GPL-2'. -License: other-1 - Permission to use, copy, modify, distribute, and sell this file for any - purpose is hereby granted without fee, provided that the above copyright - and this permission notice appear in all copies. No representations are - made about the suitability of this software for any purpose. It is - provided "as is" without express or implied warranty. - -License: other-bsd-4-clause-1 - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. All advertising materials mentioning features or use of this software - must display the following acknowledgement: - This product includes software developed by the University of - California, Berkeley and its contributors. - 4. Neither the name of the University nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - . - THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. - -License: other-bsd-4-clause-2 - This code is derived from software contributed to The NetBSD Foundation - by Dieter Baron and Thomas Klausner. - . - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. All advertising materials mentioning features or use of this software - must display the following acknowledgement: - This product includes software developed by the NetBSD - Foundation, Inc. and its contributors. - 4. Neither the name of The NetBSD Foundation nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - . - THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -License: zlib +License: Zlib This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages + warranty. In no event will the authors be held liable for any damages arising from the use of this software. . Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: . - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source + distribution. -License: other-bsd-3-clause-kissft +License: other-1 + Permission to use, copy, modify, distribute, and sell this file for any + purpose is hereby granted without fee, provided that the above copyright + and this permission notice appear in all copies. No representations are + made about the suitability of this software for any purpose. It is + provided "as is" without express or implied warranty. + +License: BSD-3-clause Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -179,30 +135,31 @@ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -License: other-bsd-3-clause-speex +License: BSD-4-clause Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + This product includes software developed by the University of + California, Berkeley and its contributors. + 4. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. . - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - . - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - . - - Neither the name of the Xiph.org Foundation nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - . - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. diff -Nru rubberband-1.8.2/debian/librubberband2.docs rubberband-1.9.0/debian/librubberband2.docs --- rubberband-1.8.2/debian/librubberband2.docs 2014-11-08 17:01:33.000000000 +0000 +++ rubberband-1.9.0/debian/librubberband2.docs 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -README.txt diff -Nru rubberband-1.8.2/debian/librubberband-dev.docs rubberband-1.9.0/debian/librubberband-dev.docs --- rubberband-1.8.2/debian/librubberband-dev.docs 1970-01-01 00:00:00.000000000 +0000 +++ rubberband-1.9.0/debian/librubberband-dev.docs 2020-09-12 15:27:29.000000000 +0000 @@ -0,0 +1 @@ +README.md diff -Nru rubberband-1.8.2/debian/patches/0001-Patch-fixing-multiarch-build.patch rubberband-1.9.0/debian/patches/0001-Patch-fixing-multiarch-build.patch --- rubberband-1.8.2/debian/patches/0001-Patch-fixing-multiarch-build.patch 1970-01-01 00:00:00.000000000 +0000 +++ rubberband-1.9.0/debian/patches/0001-Patch-fixing-multiarch-build.patch 2020-09-12 15:33:59.000000000 +0000 @@ -0,0 +1,48 @@ +From: =?utf-8?b?SmFyb23DrXIgTWlrZcWh?= +Date: Sat, 12 Sep 2020 17:33:05 +0200 +Subject: Patch fixing multiarch build + +Forwarded: yes +--- + Makefile.in | 5 +++-- + rubberband.pc.in | 2 +- + 2 files changed, 4 insertions(+), 3 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index fdddb72..606ab78 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -23,11 +23,11 @@ AR := ar + + INSTALL_BINDIR := $(PREFIX)/bin + INSTALL_INCDIR := $(PREFIX)/include/rubberband +-INSTALL_LIBDIR := $(PREFIX)/lib ++INSTALL_LIBDIR := $(PREFIX)/$(LIBDIR) + INSTALL_VAMPDIR := $(PREFIX)/lib/vamp + INSTALL_LADSPADIR := $(PREFIX)/lib/ladspa + INSTALL_LRDFDIR := $(PREFIX)/share/ladspa/rdf +-INSTALL_PKGDIR := $(PREFIX)/lib/pkgconfig ++INSTALL_PKGDIR := $(PREFIX)/$(LIBDIR)/pkgconfig + + LIBNAME := librubberband + JNINAME := librubberband-jni +@@ -197,6 +197,7 @@ install: all + test -f $(JNI_TARGET) && cp -f $(JNI_TARGET) $(DESTDIR)$(INSTALL_LIBDIR)/$(JNINAME)$(DYNAMIC_EXTENSION) || true + sed "s,%PREFIX%,$(PREFIX)," rubberband.pc.in \ + > $(DESTDIR)$(INSTALL_PKGDIR)/rubberband.pc ++ sed -i "s,%LIBDIR%,$(LIBDIR)," $(DESTDIR)$(INSTALL_PKGDIR)/rubberband.pc + ifeq ($(WITH_PROGRAMS), yes) + $(MKDIR) -p $(DESTDIR)$(INSTALL_BINDIR) + cp $(PROGRAM_TARGET) $(DESTDIR)$(INSTALL_BINDIR) +diff --git a/rubberband.pc.in b/rubberband.pc.in +index ac96edd..46d463b 100644 +--- a/rubberband.pc.in ++++ b/rubberband.pc.in +@@ -1,6 +1,6 @@ + prefix=%PREFIX% + exec_prefix=${prefix} +-libdir=${exec_prefix}/lib ++libdir=${prefix}/%LIBDIR% + includedir=${prefix}/include + + Name: rubberband diff -Nru rubberband-1.8.2/debian/patches/0002-Patch-fixing-build-on-armel.patch rubberband-1.9.0/debian/patches/0002-Patch-fixing-build-on-armel.patch --- rubberband-1.8.2/debian/patches/0002-Patch-fixing-build-on-armel.patch 1970-01-01 00:00:00.000000000 +0000 +++ rubberband-1.9.0/debian/patches/0002-Patch-fixing-build-on-armel.patch 2020-09-12 15:33:59.000000000 +0000 @@ -0,0 +1,34 @@ +From: =?utf-8?b?SmFyb23DrXIgTWlrZcWh?= +Date: Sat, 12 Sep 2020 17:33:05 +0200 +Subject: Patch fixing build on armel + +Forwarded: yes +--- + src/system/sysutils.cpp | 14 -------------- + 1 file changed, 14 deletions(-) + +diff --git a/src/system/sysutils.cpp b/src/system/sysutils.cpp +index 0b30b09..cd9751a 100644 +--- a/src/system/sysutils.cpp ++++ b/src/system/sysutils.cpp +@@ -189,20 +189,6 @@ void system_specific_initialise() + fesetenv(FE_DFL_DISABLE_DENORMS_ENV); + #endif + #endif +-#if defined __ARMEL__ +- // ARM32 +- static const unsigned int x = 0x04086060; +- static const unsigned int y = 0x03000000; +- int r; +- asm volatile ( +- "fmrx %0, fpscr \n\t" +- "and %0, %0, %1 \n\t" +- "orr %0, %0, %2 \n\t" +- "fmxr fpscr, %0 \n\t" +- : "=r"(r) +- : "r"(x), "r"(y) +- ); +-#endif + } + + void system_specific_application_initialise() diff -Nru rubberband-1.8.2/debian/patches/0003-Do-not-install-JNI-library.patch rubberband-1.9.0/debian/patches/0003-Do-not-install-JNI-library.patch --- rubberband-1.8.2/debian/patches/0003-Do-not-install-JNI-library.patch 2019-10-06 19:13:11.000000000 +0000 +++ rubberband-1.9.0/debian/patches/0003-Do-not-install-JNI-library.patch 2020-09-12 15:33:59.000000000 +0000 @@ -7,10 +7,10 @@ 1 file changed, 2 deletions(-) diff --git a/Makefile.in b/Makefile.in -index bf90124..2217a5d 100644 +index 606ab78..7cff446 100644 --- a/Makefile.in +++ b/Makefile.in -@@ -181,11 +181,9 @@ install: all +@@ -190,11 +190,9 @@ install: all cp $(STATIC_TARGET) $(DESTDIR)$(INSTALL_LIBDIR) rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_ABI_VERSION) rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION) @@ -18,7 +18,7 @@ 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 -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) +- test -f $(JNI_TARGET) && cp -f $(JNI_TARGET) $(DESTDIR)$(INSTALL_LIBDIR)/$(JNINAME)$(DYNAMIC_EXTENSION) || true + sed "s,%PREFIX%,$(PREFIX)," rubberband.pc.in \ + > $(DESTDIR)$(INSTALL_PKGDIR)/rubberband.pc + sed -i "s,%LIBDIR%,$(LIBDIR)," $(DESTDIR)$(INSTALL_PKGDIR)/rubberband.pc diff -Nru rubberband-1.8.2/debian/patches/02-fix_multiarch.patch rubberband-1.9.0/debian/patches/02-fix_multiarch.patch --- rubberband-1.8.2/debian/patches/02-fix_multiarch.patch 2019-10-06 19:13:47.000000000 +0000 +++ rubberband-1.9.0/debian/patches/02-fix_multiarch.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,51 +0,0 @@ -Description: Patch fixing multiarch build -Author: Jaromír Mikeš -Forwarded: yes ---- - Makefile.in | 7 +++++-- - rubberband.pc.in | 2 +- - 2 files changed, 6 insertions(+), 3 deletions(-) - ---- a/Makefile.in -+++ b/Makefile.in -@@ -5,6 +5,8 @@ - CXXFLAGS := -DHAVE_LIBSAMPLERATE -DHAVE_FFTW3 -DFFTW_DOUBLE_ONLY -DNO_THREAD_CHECKS -DUSE_PTHREADS -DNO_TIMING -DNDEBUG -I. -Isrc -Irubberband @CXXFLAGS@ @SRC_CFLAGS@ @SNDFILE_CFLAGS@ @FFTW_CFLAGS@ @Vamp_CFLAGS@ $(OPTFLAGS) - CFLAGS := @CFLAGS@ $(OPTFLAGS) - LDFLAGS := @LDFLAGS@ -lpthread $(LDFLAGS) -+SUFFIX := $(shell uname -m | sed -e 's/^unknown/$//' -e 's/^i.86/$//' -e 's/^x86_64/$/64/') -+LIBDIR ?= lib$(SUFFIX) - - JNI_CXXFLAGS := -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux - JAVAC := $(JAVA_HOME)/bin/javac -@@ -20,11 +22,11 @@ - - INSTALL_BINDIR := $(PREFIX)/bin - INSTALL_INCDIR := $(PREFIX)/include/rubberband --INSTALL_LIBDIR := $(PREFIX)/lib -+INSTALL_LIBDIR := $(PREFIX)/$(LIBDIR) - INSTALL_VAMPDIR := $(PREFIX)/lib/vamp - INSTALL_LADSPADIR := $(PREFIX)/lib/ladspa - INSTALL_LRDFDIR := $(PREFIX)/share/ladspa/rdf --INSTALL_PKGDIR := $(PREFIX)/lib/pkgconfig -+INSTALL_PKGDIR := $(PREFIX)/$(LIBDIR)/pkgconfig - - LIBNAME := librubberband - JNINAME := librubberband-jni -@@ -191,6 +193,7 @@ - cp ladspa/ladspa-rubberband.rdf $(DESTDIR)$(INSTALL_LRDFDIR) - sed "s,%PREFIX%,$(PREFIX)," rubberband.pc.in \ - > $(DESTDIR)$(INSTALL_PKGDIR)/rubberband.pc -+ sed -i "s,%LIBDIR%,@libdir@," $(DESTDIR)$(INSTALL_PKGDIR)/rubberband.pc - - clean: - rm -f $(LIBRARY_OBJECTS) $(JNI_OBJECT) $(JAVA_OBJECT) $(PROGRAM_OBJECTS) $(LADSPA_OBJECTS) $(VAMP_OBJECTS) ---- a/rubberband.pc.in -+++ b/rubberband.pc.in -@@ -1,6 +1,6 @@ - prefix=%PREFIX% - exec_prefix=${prefix} --libdir=${exec_prefix}/lib -+libdir=${prefix}%LIBDIR% - includedir=${prefix}/include - - Name: rubberband diff -Nru rubberband-1.8.2/debian/patches/03-fix_build_on_armel.patch rubberband-1.9.0/debian/patches/03-fix_build_on_armel.patch --- rubberband-1.8.2/debian/patches/03-fix_build_on_armel.patch 2019-10-06 19:13:47.000000000 +0000 +++ rubberband-1.9.0/debian/patches/03-fix_build_on_armel.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,27 +0,0 @@ -Description: Patch fixing build on armel -Author: Jaromír Mikeš -Forwarded: yes - ---- a/src/system/sysutils.cpp -+++ b/src/system/sysutils.cpp -@@ -189,20 +189,6 @@ - fesetenv(FE_DFL_DISABLE_DENORMS_ENV); - #endif - #endif --#if defined __ARMEL__ -- // ARM32 -- static const unsigned int x = 0x04086060; -- static const unsigned int y = 0x03000000; -- int r; -- asm volatile ( -- "fmrx %0, fpscr \n\t" -- "and %0, %0, %1 \n\t" -- "orr %0, %0, %2 \n\t" -- "fmxr fpscr, %0 \n\t" -- : "=r"(r) -- : "r"(x), "r"(y) -- ); --#endif - } - - void system_specific_application_initialise() diff -Nru rubberband-1.8.2/debian/patches/series rubberband-1.9.0/debian/patches/series --- rubberband-1.8.2/debian/patches/series 2019-10-06 19:13:11.000000000 +0000 +++ rubberband-1.9.0/debian/patches/series 2020-09-12 15:33:59.000000000 +0000 @@ -1,3 +1,3 @@ -02-fix_multiarch.patch -03-fix_build_on_armel.patch +0001-Patch-fixing-multiarch-build.patch +0002-Patch-fixing-build-on-armel.patch 0003-Do-not-install-JNI-library.patch diff -Nru rubberband-1.8.2/debian/rules rubberband-1.9.0/debian/rules --- rubberband-1.8.2/debian/rules 2019-10-06 19:04:32.000000000 +0000 +++ rubberband-1.9.0/debian/rules 2020-09-12 15:28:46.000000000 +0000 @@ -3,7 +3,6 @@ include /usr/share/dpkg/architecture.mk export DEB_BUILD_MAINT_OPTIONS = hardening=+all -export DEB_LDFLAGS_MAINT_APPEND = -Wl,-O1 -Wl,--as-needed export PREFIX=/usr export LIBDIR=lib/$(DEB_HOST_MULTIARCH) @@ -12,6 +11,5 @@ %: dh $@ -override_dh_auto_build: +execute_before_dh_auto_build: docbook-to-man debian/rubberband.sgml > debian/rubberband.1 - dh_auto_build diff -Nru rubberband-1.8.2/Doxyfile rubberband-1.9.0/Doxyfile --- rubberband-1.8.2/Doxyfile 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/Doxyfile 2020-09-10 13:30:36.000000000 +0000 @@ -31,7 +31,7 @@ # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = 1.8.2 +PROJECT_NUMBER = 1.9.0 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. diff -Nru rubberband-1.8.2/.hg_archival.txt rubberband-1.9.0/.hg_archival.txt --- rubberband-1.8.2/.hg_archival.txt 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/.hg_archival.txt 2020-09-10 13:30:36.000000000 +0000 @@ -1,4 +1,6 @@ repo: 9996a45cda4690b1a31ee4205f252e06f94b1ea3 -node: fa6a54be7e6bf0c5adffd19ccec622481a8140a5 +node: e69f79a1b3ffc0a5c08af0b9e2f9b7671f49cc4f branch: default -tag: v1.8.2 +latesttag: v1.9 +latesttagdistance: 1 +changessincelatesttag: 1 diff -Nru rubberband-1.8.2/.hgignore rubberband-1.9.0/.hgignore --- rubberband-1.8.2/.hgignore 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/.hgignore 2020-09-10 13:30:36.000000000 +0000 @@ -3,6 +3,10 @@ autom4te* bin/* lib/* +obj/* +.vs/* +*.user +*.nupkg *.a *.so *.o diff -Nru rubberband-1.8.2/.hgtags rubberband-1.9.0/.hgtags --- rubberband-1.8.2/.hgtags 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/.hgtags 2020-09-10 13:30:36.000000000 +0000 @@ -9,3 +9,5 @@ 77466ee7ffb5b07efda9b1dbed858379c987a9da v1.8.1 77466ee7ffb5b07efda9b1dbed858379c987a9da v1.8.1 d4911a276d96f6232a68c6b8448056d3946043b9 v1.8.1 +fa6a54be7e6bf0c5adffd19ccec622481a8140a5 v1.8.2 +37b18c17c042eafc39483ffb58837de844ba3289 v1.9 diff -Nru rubberband-1.8.2/ladspa/libmain.cpp rubberband-1.9.0/ladspa/libmain.cpp --- rubberband-1.8.2/ladspa/libmain.cpp 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/ladspa/libmain.cpp 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/ladspa/RubberBandPitchShifter.cpp rubberband-1.9.0/ladspa/RubberBandPitchShifter.cpp --- rubberband-1.8.2/ladspa/RubberBandPitchShifter.cpp 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/ladspa/RubberBandPitchShifter.cpp 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/ladspa/RubberBandPitchShifter.h rubberband-1.9.0/ladspa/RubberBandPitchShifter.h --- rubberband-1.8.2/ladspa/RubberBandPitchShifter.h 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/ladspa/RubberBandPitchShifter.h 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/main/main.cpp rubberband-1.9.0/main/main.cpp --- rubberband-1.8.2/main/main.cpp 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/main/main.cpp 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 @@ cerr << endl; cerr << "Rubber Band" << endl; cerr << "An audio time-stretching and pitch-shifting library and utility program." << endl; - cerr << "Copyright 2007-2018 Particular Programs Ltd." << endl; + cerr << "Copyright 2007-2020 Particular Programs Ltd." << endl; cerr << endl; cerr << " Usage: " << argv[0] << " [options] " << endl; cerr << endl; @@ -267,6 +267,11 @@ return 2; } + if (ratio <= 0.0) { + cerr << "ERROR: Invalid time ratio " << ratio << endl; + return 1; + } + if (crispness >= 0 && crispchanged) { cerr << "WARNING: Both crispness option and transients, lamination or window options" << endl; cerr << " provided -- crispness will override these other options" << endl; @@ -345,6 +350,7 @@ SF_INFO sfinfo; SF_INFO sfinfoOut; memset(&sfinfo, 0, sizeof(SF_INFO)); + memset(&sfinfoOut, 0, sizeof(SF_INFO)); sndfile = sf_open(fileName, SFM_READ, &sfinfo); if (!sndfile) { @@ -353,22 +359,27 @@ return 1; } + if (sfinfo.samplerate == 0) { + cerr << "ERROR: File lacks sample rate in header" << endl; + return 1; + } + if (duration != 0.0) { - if (sfinfo.frames == 0 || sfinfo.samplerate == 0) { - cerr << "ERROR: File lacks frame count or sample rate in header, cannot use --duration" << endl; + if (sfinfo.frames == 0) { + cerr << "ERROR: File lacks frame count in header, cannot use --duration" << endl; return 1; } double induration = double(sfinfo.frames) / double(sfinfo.samplerate); if (induration != 0.0) ratio = duration / induration; } - + sfinfoOut.channels = sfinfo.channels; sfinfoOut.format = sfinfo.format; sfinfoOut.frames = int(sfinfo.frames * ratio + 0.1); sfinfoOut.samplerate = sfinfo.samplerate; sfinfoOut.sections = sfinfo.sections; sfinfoOut.seekable = sfinfo.seekable; - + sndfileOut = sf_open(fileNameOut, SFM_WRITE, &sfinfoOut) ; if (!sndfileOut) { cerr << "ERROR: Failed to open output file \"" << fileNameOut << "\" for writing: " diff -Nru rubberband-1.8.2/Makefile.in rubberband-1.9.0/Makefile.in --- rubberband-1.8.2/Makefile.in 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/Makefile.in 2020-09-10 13:30:36.000000000 +0000 @@ -5,6 +5,9 @@ CXXFLAGS := -DHAVE_LIBSAMPLERATE -DHAVE_FFTW3 -DFFTW_DOUBLE_ONLY -DNO_THREAD_CHECKS -DUSE_PTHREADS -DNO_TIMING -DNDEBUG -I. -Isrc -Irubberband @CXXFLAGS@ @SRC_CFLAGS@ @SNDFILE_CFLAGS@ @FFTW_CFLAGS@ @Vamp_CFLAGS@ $(OPTFLAGS) CFLAGS := @CFLAGS@ $(OPTFLAGS) LDFLAGS := @LDFLAGS@ -lpthread $(LDFLAGS) +WITH_PROGRAMS := @WITH_PROGRAMS@ +WITH_VAMP := @WITH_VAMP@ +WITH_LADSPA := @WITH_LADSPA@ JNI_CXXFLAGS := -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux JAVAC := $(JAVA_HOME)/bin/javac @@ -31,7 +34,7 @@ JARNAME := rubberband.jar DYNAMIC_EXTENSION := .so -DYNAMIC_FULL_VERSION := 2.1.1 +DYNAMIC_FULL_VERSION := 2.1.2 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 @@ -45,8 +48,21 @@ VAMP_TARGET := lib/vamp-rubberband$(DYNAMIC_EXTENSION) LADSPA_TARGET := lib/ladspa-rubberband$(DYNAMIC_EXTENSION) -all: bin lib $(PROGRAM_TARGET) $(STATIC_TARGET) $(DYNAMIC_TARGET) $(VAMP_TARGET) $(LADSPA_TARGET) +ALL_TARGETS := lib $(STATIC_TARGET) $(DYNAMIC_TARGET) +ifeq ($(WITH_PROGRAMS), yes) + ALL_TARGETS += bin $(PROGRAM_TARGET) +endif + +ifeq ($(WITH_VAMP), yes) + ALL_TARGETS += $(VAMP_TARGET) +endif + +ifeq ($(WITH_LADSPA), yes) + ALL_TARGETS += $(LADSPA_TARGET) +endif + +all: $(ALL_TARGETS) static: $(STATIC_TARGET) dynamic: $(DYNAMIC_TARGET) library: $(STATIC_TARGET) $(DYNAMIC_TARGET) @@ -167,14 +183,9 @@ $(MKDIR) $@ install: all - $(MKDIR) -p $(DESTDIR)$(INSTALL_BINDIR) $(MKDIR) -p $(DESTDIR)$(INSTALL_INCDIR) $(MKDIR) -p $(DESTDIR)$(INSTALL_LIBDIR) - $(MKDIR) -p $(DESTDIR)$(INSTALL_VAMPDIR) - $(MKDIR) -p $(DESTDIR)$(INSTALL_LADSPADIR) - $(MKDIR) -p $(DESTDIR)$(INSTALL_LRDFDIR) $(MKDIR) -p $(DESTDIR)$(INSTALL_PKGDIR) - cp $(PROGRAM_TARGET) $(DESTDIR)$(INSTALL_BINDIR) cp $(PUBLIC_INCLUDES) $(DESTDIR)$(INSTALL_INCDIR) cp $(STATIC_TARGET) $(DESTDIR)$(INSTALL_LIBDIR) rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_ABI_VERSION) @@ -183,14 +194,25 @@ 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 -f $(JNI_TARGET) $(DESTDIR)$(INSTALL_LIBDIR)/$(JNINAME)$(DYNAMIC_EXTENSION) + test -f $(JNI_TARGET) && cp -f $(JNI_TARGET) $(DESTDIR)$(INSTALL_LIBDIR)/$(JNINAME)$(DYNAMIC_EXTENSION) || true + sed "s,%PREFIX%,$(PREFIX)," rubberband.pc.in \ + > $(DESTDIR)$(INSTALL_PKGDIR)/rubberband.pc +ifeq ($(WITH_PROGRAMS), yes) + $(MKDIR) -p $(DESTDIR)$(INSTALL_BINDIR) + cp $(PROGRAM_TARGET) $(DESTDIR)$(INSTALL_BINDIR) +endif +ifeq ($(WITH_VAMP), yes) + $(MKDIR) -p $(DESTDIR)$(INSTALL_VAMPDIR) cp $(VAMP_TARGET) $(DESTDIR)$(INSTALL_VAMPDIR) cp vamp/vamp-rubberband.cat $(DESTDIR)$(INSTALL_VAMPDIR) +endif +ifeq ($(WITH_LADSPA), yes) + $(MKDIR) -p $(DESTDIR)$(INSTALL_LADSPADIR) + $(MKDIR) -p $(DESTDIR)$(INSTALL_LRDFDIR) cp $(LADSPA_TARGET) $(DESTDIR)$(INSTALL_LADSPADIR) cp ladspa/ladspa-rubberband.cat $(DESTDIR)$(INSTALL_LADSPADIR) cp ladspa/ladspa-rubberband.rdf $(DESTDIR)$(INSTALL_LRDFDIR) - sed "s,%PREFIX%,$(PREFIX)," rubberband.pc.in \ - > $(DESTDIR)$(INSTALL_PKGDIR)/rubberband.pc +endif clean: rm -f $(LIBRARY_OBJECTS) $(JNI_OBJECT) $(JAVA_OBJECT) $(PROGRAM_OBJECTS) $(LADSPA_OBJECTS) $(VAMP_OBJECTS) diff -Nru rubberband-1.8.2/Makefile.osx rubberband-1.9.0/Makefile.osx --- rubberband-1.8.2/Makefile.osx 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/Makefile.osx 2020-09-10 13:30:36.000000000 +0000 @@ -29,7 +29,7 @@ LIBNAME := librubberband DYNAMIC_EXTENSION := .dylib -DYNAMIC_FULL_VERSION := 2.1.1 +DYNAMIC_FULL_VERSION := 2.1.2 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 -Nru rubberband-1.8.2/README.md rubberband-1.9.0/README.md --- rubberband-1.8.2/README.md 1970-01-01 00:00:00.000000000 +0000 +++ rubberband-1.9.0/README.md 2020-09-10 13:30:36.000000000 +0000 @@ -0,0 +1,548 @@ + +# Rubber Band + +An audio time-stretching and pitch-shifting library and utility program. + +Written by Chris Cannam, chris.cannam@breakfastquay.com. +Published by Particular Programs Ltd t/a Breakfast Quay. +Copyright 2007-2020 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. + +* About Rubber Band: https://breakfastquay.com/rubberband/ +* Code repository: https://hg.sr.ht/~breakfastquay/rubberband + + +## Licence + +Rubber Band is distributed under the GNU General Public License. See +the file COPYING for more information. + +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 commercial licence from us before doing so. In particular, +you may not legally distribute through any Apple App Store unless you +have a commercial licence. See https://breakfastquay.com/rubberband/ +for licence terms. + +If you have obtained a valid commercial licence, your licence +supersedes this README and the enclosed COPYING file and you may +redistribute and/or modify Rubber Band under the terms described in +that licence. Please refer to your licence agreement for more details. + +Rubber Band includes a .NET interface generously contributed by +Jonathan Gilbert under a BSD-like licence. The files in the +rubberband-dll and rubberband-sharp directories fall under this +licence. If you make use of this interface, please ensure you comply +with the terms of its licence. + +Rubber Band may link with other libraries or be compiled with other +source code, depending on its build configuration. It is your +responsibility to ensure that you redistribute these only in +accordance with their own licence terms, regardless of the conditions +under which you are redistributing the Rubber Band code itself. The +licences for some relevant library code are as follows, to the best of +our knowledge. See also the end of this README for detailed terms. + + * FFTW3 - GPL; proprietary licence needed for redistribution + * Intel IPP - Proprietary; licence needed for redistribution + * KissFFT - BSD-like + * libsamplerate - BSD-like from version 0.1.9 onwards + * libresample - LGPL + * Speex - BSD-like + * Pommier math functions - BSD-like + + +## Contents of this README + +1. Code components +2. Using the Rubber Band command-line tool +3. Using the Rubber Band Library +4. Compiling Rubber Band + a. FFT and resampler selection + b. Other supported #defines + c. Building on Linux + d. Building on macOS + e. Building for iOS + f. Building on Windows with Visual C++ + g. Building for Android and Java integration +5. Copyright notes for bundled libraries + + +## 1. Code components + +Rubber Band consists of: + + * The Rubber Band Library code. This is the code that will normally + be used by your applications. The headers for this are in the + rubberband/ directory, and the source code is in src/. + The Rubber Band Library depends upon resampler and FFT code; see + section 3a below for details. + + * The Rubber Band command-line tool. This is in main/main.cpp. + This program uses the Rubber Band Library and also requires libsndfile + (http://www.mega-nerd.com/libsndfile/, licensed under the GNU Lesser + General Public License) for audio file loading. + + * A pitch-shifter LADSPA audio effects plugin. This is in ladspa/. + It requires the LADSPA SDK header ladspa.h (not included). + + * A Vamp audio analysis plugin which may be used to inspect the + dynamic stretch ratios and other decisions taken by the Rubber Band + Library when in use. This is in vamp/. It requires the Vamp + plugin SDK (https://www.vamp-plugins.org/develop.html) (not included). + + +## 2. Using the Rubber Band command-line tool + +The Rubber Band command-line tool builds as bin/rubberband. The basic +incantation is + + $ rubberband -t -p + +For example, + + $ rubberband -t 1.5 -p 2.0 test.wav output.wav + +stretches the file test.wav to 50% longer than its original duration, +shifts it up in pitch by one octave, and writes the output to output.wav. + +Several further options are available: run "rubberband -h" for help. +In particular, different types of music may benefit from different +"crispness" options (-c flag with a numerical argument from 0 to 6). + + +## 3. Using the Rubber Band Library + +The Rubber Band Library has a public API that consists of one C++ +class, called RubberBandStretcher in the RubberBand namespace. You +should `#include ` to use this +class. There is extensive documentation in the class header. + +A header with C language bindings is also provided in +``. This is a wrapper around the C++ +implementation, and as the implementation is the same, it also +requires linkage against the C++ standard libraries. It is not yet +documented separately from the C++ header. You should include only +one of the two headers, not both. + +A .NET interface is also included, contributed by Jonathan Gilbert; +see the files in the `rubberband-sharp/` directory for details. + +The source code for the command-line utility (`main/main.cpp`) +provides a good example of how to use Rubber Band in offline mode; the +LADSPA pitch shifter plugin (`ladspa/RubberBandPitchShifter.cpp`) may +be used as an example of Rubber Band in real-time mode. + +IMPORTANT: Please ensure you have read and understood the licensing +terms for Rubber Band before using it in your application. This +library is provided under the GNU General Public License, which means +that any application that uses it must also be published under the GPL +or a compatible licence (i.e. with its full source code also available +for modification and redistribution) unless you have separately +acquired a commercial licence from the author. + + +## 4. Compiling the Rubber Band Library + +### 4a. FFT and resampler selection + +Rubber Band requires additional library code for FFT calculation and +resampling. Several libraries are supported. The selection is +controlled using preprocessor flags at compile time, as detailed in +the tables below. + +Flags that declare that you want to use an external library begin with +`HAVE_`; flags that select from the bundled options begin with `USE_`. + +You must enable one resampler implementation and one FFT +implementation. Do not enable more than one of either unless you know +what you're doing. + +If you are building this software using one of the bundled library +options (Speex or KissFFT), please be sure to review the terms for +those libraries in `src/speex/COPYING` and `src/kissfft/COPYING` as +applicable. + +#### FFT libraries supported + +``` +Name Flags required Notes +---- -------------- ----- + +FFTW3 -DHAVE_FFTW3 GPL. + +Accelerate -DHAVE_VDSP Platform library on macOS and iOS. + +Intel IPP -DHAVE_IPP Proprietary library, can only be used with + Rubber Band commercial licence. Define + USE_IPP_STATIC as well to build with static + IPP libraries. + +KissFFT -DUSE_KISSFFT Bundled, can be distributed with either the + Rubber Band GPL or commercial licence. + Single-precision. Slower than the above + options. +``` + +#### Resampler libraries supported + +``` +Name Flags required Notes +---- -------------- ----- + +libsamplerate -DHAVE_LIBSAMPLERATE GPL until v0.1.8, BSD for v0.1.9 and later. + +libresample -DHAVE_LIBRESAMPLE LGPL. + +Speex -DUSE_SPEEX Bundled, can be distributed with either the + Rubber Band GPL or commercial licence. +``` + +### 4b. Other supported #defines + +Other symbols you may define at compile time are as follows. (Usually +the supplied build files will handle these for you.) + + -DLACK_BAD_ALLOC + Define on systems lacking std::bad_alloc in the C++ library. + + -DLACK_POSIX_MEMALIGN + Define on systems lacking posix_memalign. + + -DUSE_OWN_ALIGNED_MALLOC + Define on systems lacking any aligned malloc implementation. + + -DLACK_SINCOS + Define on systems lacking sincos(). + + -DNO_EXCEPTIONS + Build without use of C++ exceptions. + + -DNO_THREADING + Build without any multithread support. + + -DUSE_PTHREADS + Use the pthreads library (required unless NO_THREADING or on Windows) + + -DPROCESS_SAMPLE_TYPE=float + Select single precision for internal calculations. The default is + double precision. Consider using for mobile architectures with + slower double-precision support. + + -DUSE_POMMIER_MATHFUN + Select the Julien Pommier implementations of trig functions for ARM + NEON or x86 SSE architectures. These are usually faster but may be + of lower precision than system implementations. Consider using this + for mobile architectures. + + +### 4c. Building on Linux + +A GNU-style configure script is included for use on Linux and similar +systems. + +Run `./configure`, then adjust the generated Makefile according to +your preference for FFT and resampler implementations. The default is +to use FFTW3 and libsamplerate. + +The following Makefile targets are available: + + static -- build static libraries only + dynamic -- build dynamic libraries only + library -- build static and dynamic libraries only + program -- build the command-line tool + vamp -- build Vamp plugin + ladspa -- build LADSPA plugin + all -- build everything. + +The default target is "all". + + +### 4d. Building on macOS + +A Makefile for macOS 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. Then run +e.g. `make -f Makefile.osx library` in a terminal window to build. +You will need the Xcode command-line tools installed. + +(You probably don't want to use the configure script on macOS -- just +use `Makefile.osx` directly.) + +The following Makefile targets are available: + + static -- build static libraries only + dynamic -- build dynamic libraries only + library -- build static and dynamic libraries only + program -- build the command-line tool + vamp -- build Vamp plugin + ladspa -- build LADSPA plugin + all -- build everything. + +The default target is to build the static and dynamic libraries and +the command line tool. The sndfile library is required for the +command line tool. + +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 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 https://breakfastquay.com/technology/license.html for +commercial terms. + + +### 4e. Building for 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 https://breakfastquay.com/technology/license.html for +commercial terms. + + +### 4f. Building on Windows with Visual C++ + +A Visual Studio solution, targeted to VC 2015, with two projects is +supplied. The `rubberband-library` project builds the Rubber Band +static libraries only. The `rubberband-program` project builds the +Rubber Band command-line tool (which requires the Rubber Band Library +and libsndfile). + +You will need to adjust the project settings so as to set the compile +flags according to your preference for FFT and resampler +implementation, and set the include path and library path +appropriately. The default is to use the bundled KissFFT and the +Speex resampler. + +If you prefer to add the Rubber Band Library files to an existing +build project instead of using the supplied one, the files in `src/` +(except for `RubberBandStretcherJNI.cpp`) and the API headers in +`rubberband/` should be all you need. + + +### 4g. Building for Android and Java integration + +An Android NDK build file is provided as `Android.mk`. This includes +compile definitions for a shared library built for ARM architectures +which can be loaded from a Java application using the Java native +interface (i.e. the Android NDK). + +The Java side of the interface can be found in +`com/breakfastquay/rubberband/RubberBandStretcher.java`. + +See +https://hg.sr.ht/~breakfastquay/rubberband-android-simple-sample +for a very trivial example of integration with Android Java code. + +The supplied `.mk` file uses KissFFT and the Speex resampler. + + +## 5. Copyright notes for bundled libraries + +### 5a. Speex + +``` +[files in src/speex] + +Copyright 2002-2007 Xiph.org Foundation +Copyright 2002-2007 Jean-Marc Valin +Copyright 2005-2007 Analog Devices Inc. +Copyright 2005-2007 Commonwealth Scientific and Industrial Research + Organisation (CSIRO) +Copyright 1993, 2002, 2006 David Rowe +Copyright 2003 EpicGames +Copyright 1992-1994 Jutta Degener, Carsten Bormann + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +- Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +- Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +- Neither the name of the Xiph.org Foundation nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +``` + +### 5b. KissFFT + +``` +[files in src/kissfft] + +Copyright (c) 2003-2004 Mark Borgerding + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the author nor the names of any contributors may be used + to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +``` + +### 5c. Pommier math functions + +``` +[files in src/pommier] + +Copyright (C) 2011 Julien Pommier + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +``` + +### 5d. float_cast + +``` +[files in src/float_cast] + +Copyright (C) 2001 Erik de Castro Lopo + +Permission to use, copy, modify, distribute, and sell this file for any +purpose is hereby granted without fee, provided that the above copyright +and this permission notice appear in all copies. No representations are +made about the suitability of this software for any purpose. It is +provided "as is" without express or implied warranty. +``` + +### 5e. getopt + +``` +[files in src/getopt, used by command-line tool on some platforms] + +Copyright (c) 2000 The NetBSD Foundation, Inc. +All rights reserved. + +This code is derived from software contributed to The NetBSD Foundation +by Dieter Baron and Thomas Klausner. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + This product includes software developed by the NetBSD + Foundation, Inc. and its contributors. +4. Neither the name of The NetBSD Foundation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +``` + +### 5f. rubberband-sharp + +``` +[files in rubberband-dll and rubberband-sharp] + +Copyright 2018-2019 Jonathan Gilbert + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, copy, +modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF +CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of Jonathan Gilbert +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in this Software without prior written +authorization. +``` diff -Nru rubberband-1.8.2/README.txt rubberband-1.9.0/README.txt --- rubberband-1.8.2/README.txt 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/README.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,507 +0,0 @@ - -Rubber Band -=========== - -An audio time-stretching and pitch-shifting library and utility program. - -Written by Chris Cannam, chris.cannam@breakfastquay.com. -Copyright 2007-2018 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. - -See http://breakfastquay.com/rubberband/ for more information. - - -Licence -======= - -Rubber Band is distributed under the GNU General Public License. See -the file COPYING for more information. - -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 commercial licence from us before doing so. In particular, -you may not legally distribute through any Apple App Store unless you -have a commercial licence. See http://breakfastquay.com/rubberband/ -for licence terms. - -If you have obtained a valid commercial licence, your licence -supersedes this README and the enclosed COPYING file and you may -redistribute and/or modify Rubber Band under the terms described in -that licence. Please refer to your licence agreement for more details. - -Note that Rubber Band may link with other GPL libraries or with -proprietary libraries, depending on its build configuration. See the -section "FFT and resampler selection" below. It is your responsibility -to ensure that you redistribute only in accordance with the licence -terms of any other libraries you may build with. - - -Contents of this README ------------------------ - -1. Code components -2. Using the Rubber Band command-line tool -3. Using the Rubber Band Library -4. Compiling Rubber Band - a. FFT and resampler selection - b. Other supported #defines - c. Building on Linux - d. Building on macOS - e. Building for iOS - f. Building on Windows with Visual C++ - g. Building for Android and Java integration -5. Copyright notes for bundled libraries - - -1. Code components ------------------- - -Rubber Band consists of: - - * The Rubber Band library code. This is the code that will normally - be used by your applications. The headers for this are in the - rubberband/ directory, and the source code is in src/. - The Rubber Band library depends upon resampler and FFT code; see - section 3a below for details. - - * The Rubber Band command-line tool. This is in main/main.cpp. - This program uses the Rubber Band library and also requires libsndfile - (http://www.mega-nerd.com/libsndfile/, licensed under the GNU Lesser - General Public License) for audio file loading. - - * A pitch-shifter LADSPA audio effects plugin. This is in ladspa/. - It requires the LADSPA SDK header ladspa.h (not included). - - * A Vamp audio analysis plugin which may be used to inspect the - dynamic stretch ratios and other decisions taken by the Rubber Band - library when in use. This is in vamp/. It requires the Vamp - plugin SDK (http://www.vamp-plugins.org/develop.html) (not included). - - -2. Using the Rubber Band command-line tool ------------------------------------------- - -The Rubber Band command-line tool builds as bin/rubberband. The basic -incantation is - - $ rubberband -t -p - -For example, - - $ rubberband -t 1.5 -p 2.0 test.wav output.wav - -stretches the file test.wav to 50% longer than its original duration, -shifts it up in pitch by one octave, and writes the output to output.wav. - -Several further options are available: run "rubberband -h" for help. -In particular, different types of music may benefit from different -"crispness" options (-c where is from 0 to 6). - - -3. Using the Rubber Band library --------------------------------- - -The Rubber Band library has a public API that consists of one C++ -class, called RubberBandStretcher in the RubberBand namespace. You -should #include to use this class. -There is extensive documentation in the class header. - -A header with C language bindings is also provided in -. This is a wrapper around the C++ -implementation, and as the implementation is the same, it also -requires linkage against the C++ standard libraries. It is not yet -documented separately from the C++ header. You should include only -one of the two headers, not both. - -The source code for the command-line utility (main/main.cpp) provides -a good example of how to use Rubber Band in offline mode; the LADSPA -pitch shifter plugin (ladspa/RubberBandPitchShifter.cpp) may be used -as an example of Rubber Band in real-time mode. - -IMPORTANT: Please ensure you have read and understood the licensing -terms for Rubber Band before using it in your application. This -library is provided under the GNU General Public License, which means -that any application that uses it must also be published under the GPL -or a compatible licence (i.e. with its full source code also available -for modification and redistribution) unless you have separately -acquired a commercial licence from the author. - - -4. Compiling Rubber Band ------------------------- - -4a. FFT and resampler selection -------------------------------- - -Rubber Band requires additional library code for FFT calculation and -resampling. Several libraries are supported. The selection is -controlled using preprocessor flags at compile time, as detailed in -the tables below. - -Flags that declare that you want to use an external library begin with -HAVE_; flags that select from the bundled options begin with USE_. - -You must enable one resampler implementation and one FFT -implementation. Do not enable more than one of either unless you know -what you're doing. - -If you are building this software using one of the bundled library -options (Speex or KissFFT), please be sure to review the terms for -those libraries in src/speex/COPYING and src/kissfft/COPYING as -applicable. - -FFT libraries supported ------------------------ - -Name Flags required Notes ----- -------------- ----- - -FFTW3 -DHAVE_FFTW3 GPL. - -Accelerate -DHAVE_VDSP Platform library on OS/X and iOS. - -Intel IPP -DHAVE_IPP Proprietary library, can only be used with - Rubber Band commercial licence. Define - USE_IPP_STATIC as well to build with static - IPP libraries. - -KissFFT -DUSE_KISSFFT Bundled, can be used with GPL or commercial - licence. Single-precision. Slower than the - above options. - -Resampler libraries supported ------------------------------ - -Name Flags required Notes ----- -------------- ----- - -libsamplerate -DHAVE_LIBSAMPLERATE GPL until v0.1.8, BSD for v0.1.9 and later. - -libresample -DHAVE_LIBRESAMPLE LGPL. - -Speex -DUSE_SPEEX Bundled, can be used with GPL or commercial - licence. - - -4b. Other supported #defines ----------------------------- - -Other symbols you may define at compile time are as follows. (Usually -the supplied build files will handle these for you.) - - -DLACK_BAD_ALLOC - Define on systems lacking std::bad_alloc in the C++ library. - - -DLACK_POSIX_MEMALIGN - Define on systems lacking posix_memalign. - - -DUSE_OWN_ALIGNED_MALLOC - Define on systems lacking any aligned malloc implementation. - - -DLACK_SINCOS - Define on systems lacking sincos(). - - -DNO_EXCEPTIONS - Build without use of C++ exceptions. - - -DNO_THREADING - Build without any multithread support. - - -DUSE_PTHREADS - Use the pthreads library (required unless NO_THREADING or on Windows) - - -DPROCESS_SAMPLE_TYPE=float - Select single precision for internal calculations. The default is - double precision. Consider using for mobile architectures with - slower double-precision support. - - -DUSE_POMMIER_MATHFUN - Select the Julien Pommier implementations of trig functions for ARM - NEON or x86 SSE architectures. These are usually faster but may be - of lower precision than system implementations. Consider using this - for mobile architectures. - - -4c. Building on Linux ---------------------- - -A GNU-style configure script is included for use on Linux and similar -systems. - -Run ./configure, then adjust the generated Makefile according to your -preference for FFT and resampler implementations. The default is to -use FFTW3 and libsamplerate. - -The following Makefile targets are available: - - static -- build static libraries only - dynamic -- build dynamic libraries only - library -- build static and dynamic libraries only - program -- build the command-line tool - vamp -- build Vamp plugin - ladspa -- build LADSPA plugin - all -- build everything. - -The default target is "all". - - -4d. Building on macOS ---------------------- - -A Makefile for macOS 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. Then run -e.g. "make -f Makefile.osx library" in a terminal window to build. -You will need the Xcode command-line tools installed. - -(You probably don't want to use the configure script on macOS -- just -use Makefile.osx directly.) - -The following Makefile targets are available: - - static -- build static libraries only - dynamic -- build dynamic libraries only - library -- build static and dynamic libraries only - program -- build the command-line tool - vamp -- build Vamp plugin - ladspa -- build LADSPA plugin - all -- build everything. - -The default target is to build the static and dynamic libraries and -the command line tool. The sndfile library is required for the -command line tool. - -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 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. - - -4e. Building for 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. - - -4f. Building on Windows with Visual C++ ---------------------------------------- - -A Visual Studio solution, targeted to VC 2015, with two projects is -supplied. The rubberband-library project builds the Rubber Band static -libraries only. The rubberband-program project builds the Rubber Band -command-line tool (which requires the Rubber Band libraries, and -libsndfile). - -You will need to adjust the project settings so as to set the compile -flags according to your preference for FFT and resampler -implementation, and set the include path and library path -appropriately. The default is to use the bundled KissFFT and the -Speex resampler. - -If you prefer to add the Rubber Band library files to an existing -build project instead of using the supplied one, the files in src/ -(except for RubberBandStretcherJNI.cpp) and the API headers in -rubberband/ should be all you need. - - -4g. Building for Android and Java integration ---------------------------------------------- - -An Android NDK build file is provided as Android.mk. This includes -compile definitions for a shared library built for ARM architectures -which can be loaded from a Java application using the Java native -interface (i.e. the Android NDK). - -The Java side of the interface can be found in -com/breakfastquay/rubberband/RubberBandStretcher.java. - -See -https://bitbucket.org/breakfastquay/rubberband-android-simple-sample -for a very trivial example of integration with Android Java code. - -The supplied .mk file uses KissFFT and the Speex resampler. - - -5. Copyright notes for bundled libraries -======================================== - -5a. Speex ---------- - -[files in src/speex] - -Copyright 2002-2007 Xiph.org Foundation -Copyright 2002-2007 Jean-Marc Valin -Copyright 2005-2007 Analog Devices Inc. -Copyright 2005-2007 Commonwealth Scientific and Industrial Research - Organisation (CSIRO) -Copyright 1993, 2002, 2006 David Rowe -Copyright 2003 EpicGames -Copyright 1992-1994 Jutta Degener, Carsten Bormann - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -- Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - -- Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - -- Neither the name of the Xiph.org Foundation nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR -CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -5b. KissFFT ------------ - -[files in src/kissfft] - -Copyright (c) 2003-2004 Mark Borgerding - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the author nor the names of any contributors may be used - to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -5c. Pommier math functions --------------------------- - -[files in src/pommier] - -Copyright (C) 2011 Julien Pommier - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - -5d. float_cast --------------- - -[files in src/float_cast] - -Copyright (C) 2001 Erik de Castro Lopo - -Permission to use, copy, modify, distribute, and sell this file for any -purpose is hereby granted without fee, provided that the above copyright -and this permission notice appear in all copies. No representations are -made about the suitability of this software for any purpose. It is -provided "as is" without express or implied warranty. - - -5d. getopt ----------- - -[files in src/getopt, used by command-line tool on some platforms] - -Copyright (c) 2000 The NetBSD Foundation, Inc. -All rights reserved. - -This code is derived from software contributed to The NetBSD Foundation -by Dieter Baron and Thomas Klausner. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. -3. All advertising materials mentioning features or use of this software - must display the following acknowledgement: - This product includes software developed by the NetBSD - Foundation, Inc. and its contributors. -4. Neither the name of The NetBSD Foundation nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS -``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS -BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. diff -Nru rubberband-1.8.2/rubberband/rubberband-c.h rubberband-1.9.0/rubberband/rubberband-c.h --- rubberband-1.8.2/rubberband/rubberband-c.h 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/rubberband/rubberband-c.h 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 @@ -28,9 +28,9 @@ extern "C" { #endif -#define RUBBERBAND_VERSION "1.8.2" +#define RUBBERBAND_VERSION "1.9.0" #define RUBBERBAND_API_MAJOR_VERSION 2 -#define RUBBERBAND_API_MINOR_VERSION 5 +#define RUBBERBAND_API_MINOR_VERSION 6 /** * This is a C-linkage interface to the Rubber Band time stretcher. @@ -78,8 +78,8 @@ RubberBandOptionFormantShifted = 0x00000000, RubberBandOptionFormantPreserved = 0x01000000, - RubberBandOptionPitchHighQuality = 0x00000000, - RubberBandOptionPitchHighSpeed = 0x02000000, + RubberBandOptionPitchHighSpeed = 0x00000000, + RubberBandOptionPitchHighQuality = 0x02000000, RubberBandOptionPitchHighConsistency = 0x04000000, RubberBandOptionChannelsApart = 0x00000000, diff -Nru rubberband-1.8.2/rubberband/RubberBandStretcher.h rubberband-1.9.0/rubberband/RubberBandStretcher.h --- rubberband-1.8.2/rubberband/RubberBandStretcher.h 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/rubberband/RubberBandStretcher.h 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 @@ -24,9 +24,9 @@ #ifndef _RUBBERBANDSTRETCHER_H_ #define _RUBBERBANDSTRETCHER_H_ -#define RUBBERBAND_VERSION "1.8.2" +#define RUBBERBAND_VERSION "1.9.0" #define RUBBERBAND_API_MAJOR_VERSION 2 -#define RUBBERBAND_API_MINOR_VERSION 5 +#define RUBBERBAND_API_MINOR_VERSION 6 #include #include diff -Nru rubberband-1.8.2/rubberband-dll/dllmain.cpp rubberband-1.9.0/rubberband-dll/dllmain.cpp --- rubberband-1.8.2/rubberband-dll/dllmain.cpp 1970-01-01 00:00:00.000000000 +0000 +++ rubberband-1.9.0/rubberband-dll/dllmain.cpp 2020-09-10 13:30:36.000000000 +0000 @@ -0,0 +1,51 @@ +/* + rubberband-dll + + A consumer of the rubberband static library that simply exposes + its functionality as a DLL. + + Copyright 2018-2019 Jonathan Gilbert + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, copy, + modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR + ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF + CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name of Jonathan Gilbert + shall not be used in advertising or otherwise to promote the sale, + use or other dealings in this Software without prior written + authorization. +*/ + +#include "stdafx.h" + +BOOL APIENTRY DllMain( HMODULE hModule, + DWORD ul_reason_for_call, + LPVOID lpReserved + ) +{ + switch (ul_reason_for_call) + { + case DLL_PROCESS_ATTACH: + case DLL_THREAD_ATTACH: + case DLL_THREAD_DETACH: + case DLL_PROCESS_DETACH: + break; + } + return TRUE; +} + diff -Nru rubberband-1.8.2/rubberband-dll/rubberband-dll.cpp rubberband-1.9.0/rubberband-dll/rubberband-dll.cpp --- rubberband-1.8.2/rubberband-dll/rubberband-dll.cpp 1970-01-01 00:00:00.000000000 +0000 +++ rubberband-1.9.0/rubberband-dll/rubberband-dll.cpp 2020-09-10 13:30:36.000000000 +0000 @@ -0,0 +1,244 @@ +/* + rubberband-dll + + A consumer of the rubberband static library that simply exposes + its functionality as a DLL. + + Copyright 2018-2019 Jonathan Gilbert + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, copy, + modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR + ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF + CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name of Jonathan Gilbert + shall not be used in advertising or otherwise to promote the sale, + use or other dealings in this Software without prior written + authorization. +*/ + +// rubberband-dll.cpp : Defines the exported functions for the DLL application. +// + +#include "stdafx.h" + +using namespace RubberBand; + +#define EXPORT extern "C" __declspec(dllexport) + +#if _WIN64 +#define CONVENTION __stdcall +#else +#define CONVENTION __cdecl +#endif + +#define O(rbs) reinterpret_cast(rbs) + +EXPORT HANDLE CONVENTION RubberBandStretcher_Create( + size_t sampleRate, + size_t channels, + int options = RubberBandStretcher::DefaultOptions, + double initialTimeRatio = 1.0, + double initialPitchScale = 1.0) +{ + return (HANDLE)new RubberBandStretcher(sampleRate, channels, options, initialTimeRatio, initialPitchScale); +} + +EXPORT void CONVENTION RubberBandStretcher_Delete(HANDLE *rbs) +{ + delete O(rbs); +} + +EXPORT void CONVENTION RubberBandStretcher_Reset(HANDLE *rbs) +{ + O(rbs)->reset(); +} + +EXPORT void CONVENTION RubberBandStretcher_SetTimeRatio(HANDLE *rbs, double ratio) +{ + O(rbs)->setTimeRatio(ratio); +} + +EXPORT void CONVENTION RubberBandStretcher_SetPitchScale(HANDLE *rbs, double scale) +{ + O(rbs)->setPitchScale(scale); +} + +EXPORT double CONVENTION RubberBandStretcher_GetTimeRatio(HANDLE *rbs) +{ + return O(rbs)->getTimeRatio(); +} + +EXPORT double CONVENTION RubberBandStretcher_GetPitchScale(HANDLE *rbs) +{ + return O(rbs)->getPitchScale(); +} + +EXPORT size_t CONVENTION RubberBandStretcher_GetLatency(HANDLE *rbs) +{ + return O(rbs)->getLatency(); +} + +EXPORT void CONVENTION RubberBandStretcher_SetTransientsOption(HANDLE *rbs, int options) +{ + O(rbs)->setTransientsOption(options); +} + +EXPORT void CONVENTION RubberBandStretcher_SetDetectorOption(HANDLE *rbs, int options) +{ + O(rbs)->setDetectorOption(options); +} + +EXPORT void CONVENTION RubberBandStretcher_SetPhaseOption(HANDLE *rbs, int options) +{ + O(rbs)->setPhaseOption(options); +} + +EXPORT void CONVENTION RubberBandStretcher_SetFormantOption(HANDLE *rbs, int options) +{ + O(rbs)->setFormantOption(options); +} + +EXPORT void CONVENTION RubberBandStretcher_SetPitchOption(HANDLE *rbs, int options) +{ + O(rbs)->setPitchOption(options); +} + +EXPORT void CONVENTION RubberBandStretcher_SetExpectedInputDuration(HANDLE *rbs, size_t samples) +{ + O(rbs)->setExpectedInputDuration(samples); +} + +EXPORT void CONVENTION RubberBandStretcher_SetMaxProcessSize(HANDLE *rbs, size_t samples) +{ + O(rbs)->setMaxProcessSize(samples); +} + +EXPORT size_t CONVENTION RubberBandStretcher_GetSamplesRequired(HANDLE *rbs) +{ + return O(rbs)->getSamplesRequired(); +} + +EXPORT void CONVENTION RubberBandStretcher_SetKeyFrameMap(HANDLE *rbs, size_t *mappingData, int numberOfMappings) +{ + std::map map; + + for (int i = 0; i < numberOfMappings; i++) + map[mappingData[i + i]] = mappingData[i + i + 1]; + + O(rbs)->setKeyFrameMap(map); +} + +EXPORT void CONVENTION RubberBandStretcher_Study(HANDLE *rbs, float *input_flat, size_t samples, int channels, bool final) +{ + std::vector input; + + for (int i = 0; i < channels; i++) + input.push_back(&input_flat[samples * i]); + + O(rbs)->study(&input[0], samples, final); +} + +EXPORT void CONVENTION RubberBandStretcher_Process(HANDLE *rbs, float *input_flat, size_t samples, int channels, bool final) +{ + std::vector input; + + for (int i = 0; i < channels; i++) + input.push_back(&input_flat[samples * i]); + + O(rbs)->process(&input[0], samples, final); +} + +EXPORT int CONVENTION RubberBandStretcher_Available(HANDLE *rbs) +{ + return O(rbs)->available(); +} + +EXPORT size_t CONVENTION RubberBandStretcher_Retrieve(HANDLE *rbs, float *output_flat, size_t samples, int channels) +{ + std::vector output; + + for (int i = 0; i < channels; i++) + output.push_back(&output_flat[samples * i]); + + return O(rbs)->retrieve(&output[0], samples); +} + +EXPORT float CONVENTION RubberBandStretcher_GetFrequencyCutoff(HANDLE *rbs, int n) +{ + return O(rbs)->getFrequencyCutoff(n); +} + +EXPORT void CONVENTION RubberBandStretcher_SetFrequencyCutoff(HANDLE *rbs, int n, float f) +{ + O(rbs)->setFrequencyCutoff(n, f); +} + +EXPORT size_t CONVENTION RubberBandStretcher_GetInputIncrement(HANDLE *rbs) +{ + return O(rbs)->getInputIncrement(); +} + +EXPORT size_t CONVENTION RubberBandStretcher_GetOutputIncrements(HANDLE *rbs, int *buffer, size_t bufferSize) +{ + std::vector increments = O(rbs)->getOutputIncrements(); + + for (size_t i = 0; (i < bufferSize) && (i < increments.size()); i++) + buffer[i] = increments[i]; + + return increments.size(); +} + +EXPORT size_t CONVENTION RubberBandStretcher_GetPhaseResetCurve(HANDLE *rbs, float *buffer, size_t bufferSize) +{ + std::vector curve = O(rbs)->getPhaseResetCurve(); + + for (size_t i = 0; (i < bufferSize) && (i < curve.size()); i++) + buffer[i] = curve[i]; + + return curve.size(); +} + +EXPORT size_t CONVENTION RubberBandStretcher_GetExactTimePoints(HANDLE *rbs, int *buffer, size_t bufferSize) +{ + std::vector timePoints = O(rbs)->getExactTimePoints(); + + for (size_t i = 0; (i < bufferSize) && (i < timePoints.size()); i++) + buffer[i] = timePoints[i]; + + return timePoints.size(); +} + +EXPORT size_t CONVENTION RubberBandStretcher_GetChannelCount(HANDLE *rbs) +{ + return O(rbs)->getChannelCount(); +} + +EXPORT void CONVENTION RubberBandStretcher_CalculateStretch(HANDLE *rbs) +{ + O(rbs)->calculateStretch(); +} + +EXPORT void CONVENTION RubberBandStretcher_SetDebugLevel(HANDLE *rbs, int level) +{ + O(rbs)->setDebugLevel(level); +} + +EXPORT void CONVENTION RubberBandStretcher_SetDefaultDebugLevel(int level) +{ + RubberBandStretcher::setDefaultDebugLevel(level); +} diff -Nru rubberband-1.8.2/rubberband-dll/stdafx.cpp rubberband-1.9.0/rubberband-dll/stdafx.cpp --- rubberband-1.8.2/rubberband-dll/stdafx.cpp 1970-01-01 00:00:00.000000000 +0000 +++ rubberband-1.9.0/rubberband-dll/stdafx.cpp 2020-09-10 13:30:36.000000000 +0000 @@ -0,0 +1 @@ +#include "stdafx.h" diff -Nru rubberband-1.8.2/rubberband-dll/stdafx.h rubberband-1.9.0/rubberband-dll/stdafx.h --- rubberband-1.8.2/rubberband-dll/stdafx.h 1970-01-01 00:00:00.000000000 +0000 +++ rubberband-1.9.0/rubberband-dll/stdafx.h 2020-09-10 13:30:36.000000000 +0000 @@ -0,0 +1,16 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#pragma once + +#include "targetver.h" + +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers +// Windows Header Files +#include + +#include + +// reference additional headers your program requires here diff -Nru rubberband-1.8.2/rubberband-dll/targetver.h rubberband-1.9.0/rubberband-dll/targetver.h --- rubberband-1.8.2/rubberband-dll/targetver.h 1970-01-01 00:00:00.000000000 +0000 +++ rubberband-1.9.0/rubberband-dll/targetver.h 2020-09-10 13:30:36.000000000 +0000 @@ -0,0 +1,8 @@ +#pragma once + +// Including SDKDDKVer.h defines the highest available Windows platform. + +// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and +// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. + +#include diff -Nru rubberband-1.8.2/rubberband-dll.vcxproj rubberband-1.9.0/rubberband-dll.vcxproj --- rubberband-1.8.2/rubberband-dll.vcxproj 1970-01-01 00:00:00.000000000 +0000 +++ rubberband-1.9.0/rubberband-dll.vcxproj 2020-09-10 13:30:36.000000000 +0000 @@ -0,0 +1,183 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {32C11C5C-3D27-4E57-B72C-161A48AAA95E} + rubberbanddll + Win32Proj + + + + DynamicLibrary + false + v140 + true + Unicode + + + DynamicLibrary + false + v140 + true + Unicode + + + DynamicLibrary + true + v140 + Unicode + + + DynamicLibrary + true + v140 + Unicode + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>14.0.25431.1 + + + true + + + true + + + false + + + false + + + + Use + Level3 + Disabled + true + _DEBUG;RUBBERBANDDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + $(SolutionDir)rubberband;%(AdditionalIncludeDirectories) + + + Windows + true + $(OutDir);%(AdditionalLibraryDirectories) + rubberband-library.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName)-$(Platform)$(TargetExt) + + + + + Use + Level3 + Disabled + true + WIN32;_DEBUG;RUBBERBANDDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + $(SolutionDir)rubberband;%(AdditionalIncludeDirectories) + + + Windows + true + rubberband-library.lib;%(AdditionalDependencies) + $(OutDir);%(AdditionalLibraryDirectories) + $(OutDir)$(TargetName)-$(Platform)$(TargetExt) + + + + + Use + Level3 + MaxSpeed + true + true + true + WIN32;NDEBUG;RUBBERBANDDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + $(SolutionDir)rubberband;%(AdditionalIncludeDirectories) + + + Windows + true + true + true + rubberband-library.lib;%(AdditionalDependencies) + $(OutDir);%(AdditionalLibraryDirectories) + $(OutDir)$(TargetName)-$(Platform)$(TargetExt) + + + + + Use + Level3 + MaxSpeed + true + true + true + NDEBUG;RUBBERBANDDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + $(SolutionDir)rubberband;%(AdditionalIncludeDirectories) + + + Windows + true + true + true + $(OutDir);%(AdditionalLibraryDirectories) + rubberband-library.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName)-$(Platform)$(TargetExt) + + + + + + + + + + + Create + Create + Create + Create + + + + + + \ No newline at end of file diff -Nru rubberband-1.8.2/rubberband-dll.vcxproj.filters rubberband-1.9.0/rubberband-dll.vcxproj.filters --- rubberband-1.8.2/rubberband-dll.vcxproj.filters 1970-01-01 00:00:00.000000000 +0000 +++ rubberband-1.9.0/rubberband-dll.vcxproj.filters 2020-09-10 13:30:36.000000000 +0000 @@ -0,0 +1,36 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Header Files + + + Header Files + + + + + Source Files + + + Source Files + + + Source Files + + + \ No newline at end of file diff -Nru rubberband-1.8.2/rubberband-sharp/Install.ps1 rubberband-1.9.0/rubberband-sharp/Install.ps1 --- rubberband-1.8.2/rubberband-sharp/Install.ps1 1970-01-01 00:00:00.000000000 +0000 +++ rubberband-1.9.0/rubberband-sharp/Install.ps1 2020-09-10 13:30:36.000000000 +0000 @@ -0,0 +1,81 @@ +<# + rubberband-sharp + + A consumer of the rubberband DLL that wraps the RubberBandStretcher + object exposed by the DLL in a managed .NET type. + + Copyright 2018-2019 Jonathan Gilbert + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, copy, + modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR + ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF + CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name of Jonathan Gilbert + shall not be used in advertising or otherwise to promote the sale, + use or other dealings in this Software without prior written + authorization. +#> + +Param +( + $InstallPath, + $ToolsPath, + $Package, + $Project +) + +# Save current project state. +$Project.Save() + +# Load project XML. +$ProjectFullName = $Project.FullName + +$Doc = New-Object System.Xml.XmlDocument +$Doc.Load($ProjectFullName) + +$Namespace = 'http://schemas.microsoft.com/developer/msbuild/2003' + +# Find the node containing the file. The tag "Content" may be replace by "None" depending of the case, check your .csproj file. +$ContentNodes = Select-Xml "//msb:Project/msb:ItemGroup/msb:Content[starts-with(@Include, 'rubberband-dll-') and (substring(@Include, string-length(@Include) - 3) = '.dll')]" $Doc -Namespace @{msb = $Namespace} + +#check if the node exists. +If ($ContentNodes -ne $Null) +{ + $CopyNodeName = "CopyToOutputDirectory" + + ForEach ($ContentNode In $ContentNodes) + { + $NoneNode = $Doc.CreateElement("None", $Namespace) + $NoneNode.SetAttribute("Include", $ContentNode.Node.Attributes["Include"].Value) + + $CopyNode = $Doc.CreateElement($CopyNodeName, $Namespace) + $CopyNode.InnerText = "PreserveNewest" + + $NoneNode.AppendChild($CopyNode) + + $ContentNode.Node.ParentNode.ReplaceChild($NoneNode, $ContentNode.Node) + } + + $DTE = $Project.DTE + + $Project.Select("vsUISelectionTypeSelect") + + $DTE.ExecuteCommand("Project.UnloadProject") + $Doc.Save($ProjectFullName) + $DTE.ExecuteCommand("Project.ReloadProject") +} diff -Nru rubberband-1.8.2/rubberband-sharp/RubberBandNativeMethods.cs rubberband-1.9.0/rubberband-sharp/RubberBandNativeMethods.cs --- rubberband-1.8.2/rubberband-sharp/RubberBandNativeMethods.cs 1970-01-01 00:00:00.000000000 +0000 +++ rubberband-1.9.0/rubberband-sharp/RubberBandNativeMethods.cs 2020-09-10 13:30:36.000000000 +0000 @@ -0,0 +1,289 @@ +/* + rubberband-sharp + + A consumer of the rubberband DLL that wraps the RubberBandStretcher + object exposed by the DLL in a managed .NET type. + + Copyright 2018-2019 Jonathan Gilbert + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, copy, + modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR + ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF + CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name of Jonathan Gilbert + shall not be used in advertising or otherwise to promote the sale, + use or other dealings in this Software without prior written + authorization. +*/ + +using System; +using System.Runtime.InteropServices; + +namespace RubberBand +{ + internal class RubberBandNativeMethods + { + public static IntPtr RubberBandStretcher_Create(IntPtr sampleRate, IntPtr channels, int options = 0, double initialTimeRatio = 1.0, double initialPitchScale = 1.0) + { + if (IntPtr.Size == 8) + return RubberBandNativeMethodsx64.RubberBandStretcher_Create(sampleRate, channels, options, initialTimeRatio, initialPitchScale); + else + return RubberBandNativeMethodsWin32.RubberBandStretcher_Create(sampleRate, channels, options, initialTimeRatio, initialPitchScale); + } + + public static void RubberBandStretcher_Delete(IntPtr rbs) + { + if (IntPtr.Size == 8) + RubberBandNativeMethodsx64.RubberBandStretcher_Delete(rbs); + else + RubberBandNativeMethodsWin32.RubberBandStretcher_Delete(rbs); + } + + public static void RubberBandStretcher_Reset(IntPtr rbs) + { + if (IntPtr.Size == 8) + RubberBandNativeMethodsx64.RubberBandStretcher_Reset(rbs); + else + RubberBandNativeMethodsWin32.RubberBandStretcher_Reset(rbs); + } + + public static void RubberBandStretcher_SetTimeRatio(IntPtr rbs, double ratio) + { + if (IntPtr.Size == 8) + RubberBandNativeMethodsx64.RubberBandStretcher_SetTimeRatio(rbs, ratio); + else + RubberBandNativeMethodsWin32.RubberBandStretcher_SetTimeRatio(rbs, ratio); + } + + public static void RubberBandStretcher_SetPitchScale(IntPtr rbs, double scale) + { + if (IntPtr.Size == 8) + RubberBandNativeMethodsx64.RubberBandStretcher_SetPitchScale(rbs, scale); + else + RubberBandNativeMethodsWin32.RubberBandStretcher_SetPitchScale(rbs, scale); + } + + public static double RubberBandStretcher_GetTimeRatio(IntPtr rbs) + { + if (IntPtr.Size == 8) + return RubberBandNativeMethodsx64.RubberBandStretcher_GetTimeRatio(rbs); + else + return RubberBandNativeMethodsWin32.RubberBandStretcher_GetTimeRatio(rbs); + } + + public static double RubberBandStretcher_GetPitchScale(IntPtr rbs) + { + if (IntPtr.Size == 8) + return RubberBandNativeMethodsx64.RubberBandStretcher_GetPitchScale(rbs); + else + return RubberBandNativeMethodsWin32.RubberBandStretcher_GetPitchScale(rbs); + } + + public static IntPtr RubberBandStretcher_GetLatency(IntPtr rbs) + { + if (IntPtr.Size == 8) + return RubberBandNativeMethodsx64.RubberBandStretcher_GetLatency(rbs); + else + return RubberBandNativeMethodsWin32.RubberBandStretcher_GetLatency(rbs); + } + + public static void RubberBandStretcher_SetTransientsOption(IntPtr rbs, int options) + { + if (IntPtr.Size == 8) + RubberBandNativeMethodsx64.RubberBandStretcher_SetTransientsOption(rbs, options); + else + RubberBandNativeMethodsWin32.RubberBandStretcher_SetTransientsOption(rbs, options); + } + + public static void RubberBandStretcher_SetDetectorOption(IntPtr rbs, int options) + { + if (IntPtr.Size == 8) + RubberBandNativeMethodsx64.RubberBandStretcher_SetDetectorOption(rbs, options); + else + RubberBandNativeMethodsWin32.RubberBandStretcher_SetDetectorOption(rbs, options); + } + + public static void RubberBandStretcher_SetPhaseOption(IntPtr rbs, int options) + { + if (IntPtr.Size == 8) + RubberBandNativeMethodsx64.RubberBandStretcher_SetPhaseOption(rbs, options); + else + RubberBandNativeMethodsWin32.RubberBandStretcher_SetPhaseOption(rbs, options); + } + + public static void RubberBandStretcher_SetFormantOption(IntPtr rbs, int options) + { + if (IntPtr.Size == 8) + RubberBandNativeMethodsx64.RubberBandStretcher_SetFormantOption(rbs, options); + else + RubberBandNativeMethodsWin32.RubberBandStretcher_SetFormantOption(rbs, options); + } + + public static void RubberBandStretcher_SetPitchOption(IntPtr rbs, int options) + { + if (IntPtr.Size == 8) + RubberBandNativeMethodsx64.RubberBandStretcher_SetPitchOption(rbs, options); + else + RubberBandNativeMethodsWin32.RubberBandStretcher_SetPitchOption(rbs, options); + } + + public static void RubberBandStretcher_SetExpectedInputDuration(IntPtr rbs, IntPtr samples) + { + if (IntPtr.Size == 8) + RubberBandNativeMethodsx64.RubberBandStretcher_SetExpectedInputDuration(rbs, samples); + else + RubberBandNativeMethodsWin32.RubberBandStretcher_SetExpectedInputDuration(rbs, samples); + } + + public static void RubberBandStretcher_SetMaxProcessSize(IntPtr rbs, IntPtr samples) + { + if (IntPtr.Size == 8) + RubberBandNativeMethodsx64.RubberBandStretcher_SetMaxProcessSize(rbs, samples); + else + RubberBandNativeMethodsWin32.RubberBandStretcher_SetMaxProcessSize(rbs, samples); + } + + public static IntPtr RubberBandStretcher_GetSamplesRequired(IntPtr rbs) + { + if (IntPtr.Size == 8) + return RubberBandNativeMethodsx64.RubberBandStretcher_GetSamplesRequired(rbs); + else + return RubberBandNativeMethodsWin32.RubberBandStretcher_GetSamplesRequired(rbs); + } + + public static void RubberBandStretcher_SetKeyFrameMap(IntPtr rbs, IntPtr[] mappingData, int numberOfMappings) + { + if (IntPtr.Size == 8) + RubberBandNativeMethodsx64.RubberBandStretcher_SetKeyFrameMap(rbs, mappingData, numberOfMappings); + else + RubberBandNativeMethodsWin32.RubberBandStretcher_SetKeyFrameMap(rbs, mappingData, numberOfMappings); + } + + public static void RubberBandStretcher_Study(IntPtr rbs, float[] input, IntPtr samples, int channels, bool final) + { + if (IntPtr.Size == 8) + RubberBandNativeMethodsx64.RubberBandStretcher_Study(rbs, input, samples, channels, final); + else + RubberBandNativeMethodsWin32.RubberBandStretcher_Study(rbs, input, samples, channels, final); + } + + public static void RubberBandStretcher_Process(IntPtr rbs, float[] input, IntPtr samples, int channels, bool final) + { + if (IntPtr.Size == 8) + RubberBandNativeMethodsx64.RubberBandStretcher_Process(rbs, input, samples, channels, final); + else + RubberBandNativeMethodsWin32.RubberBandStretcher_Process(rbs, input, samples, channels, final); + } + + public static int RubberBandStretcher_Available(IntPtr rbs) + { + if (IntPtr.Size == 8) + return RubberBandNativeMethodsx64.RubberBandStretcher_Available(rbs); + else + return RubberBandNativeMethodsWin32.RubberBandStretcher_Available(rbs); + } + + public static IntPtr RubberBandStretcher_Retrieve(IntPtr rbs, float[] output, IntPtr samples, int channels) + { + if (IntPtr.Size == 8) + return RubberBandNativeMethodsx64.RubberBandStretcher_Retrieve(rbs, output, samples, channels); + else + return RubberBandNativeMethodsWin32.RubberBandStretcher_Retrieve(rbs, output, samples, channels); + } + + public static float RubberBandStretcher_GetFrequencyCutoff(IntPtr rbs, int n) + { + if (IntPtr.Size == 8) + return RubberBandNativeMethodsx64.RubberBandStretcher_GetFrequencyCutoff(rbs, n); + else + return RubberBandNativeMethodsWin32.RubberBandStretcher_GetFrequencyCutoff(rbs, n); + } + + public static void RubberBandStretcher_SetFrequencyCutoff(IntPtr rbs, int n, float f) + { + if (IntPtr.Size == 8) + RubberBandNativeMethodsx64.RubberBandStretcher_SetFrequencyCutoff(rbs, n, f); + else + RubberBandNativeMethodsWin32.RubberBandStretcher_SetFrequencyCutoff(rbs, n, f); + } + + public static IntPtr RubberBandStretcher_GetInputIncrement(IntPtr rbs) + { + if (IntPtr.Size == 8) + return RubberBandNativeMethodsx64.RubberBandStretcher_GetInputIncrement(rbs); + else + return RubberBandNativeMethodsWin32.RubberBandStretcher_GetInputIncrement(rbs); + } + + public static IntPtr RubberBandStretcher_GetOutputIncrements(IntPtr rbs, int[] buffer, IntPtr bufferSize) + { + if (IntPtr.Size == 8) + return RubberBandNativeMethodsx64.RubberBandStretcher_GetOutputIncrements(rbs, buffer, bufferSize); + else + return RubberBandNativeMethodsWin32.RubberBandStretcher_GetOutputIncrements(rbs, buffer, bufferSize); + } + + public static IntPtr RubberBandStretcher_GetPhaseResetCurve(IntPtr rbs, float[] buffer, IntPtr bufferSize) + { + if (IntPtr.Size == 8) + return RubberBandNativeMethodsx64.RubberBandStretcher_GetPhaseResetCurve(rbs, buffer, bufferSize); + else + return RubberBandNativeMethodsWin32.RubberBandStretcher_GetPhaseResetCurve(rbs, buffer, bufferSize); + } + + public static IntPtr RubberBandStretcher_GetExactTimePoints(IntPtr rbs, int[] buffer, IntPtr bufferSize) + { + if (IntPtr.Size == 8) + return RubberBandNativeMethodsx64.RubberBandStretcher_GetExactTimePoints(rbs, buffer, bufferSize); + else + return RubberBandNativeMethodsWin32.RubberBandStretcher_GetExactTimePoints(rbs, buffer, bufferSize); + } + + public static IntPtr RubberBandStretcher_GetChannelCount(IntPtr rbs) + { + if (IntPtr.Size == 8) + return RubberBandNativeMethodsx64.RubberBandStretcher_GetChannelCount(rbs); + else + return RubberBandNativeMethodsWin32.RubberBandStretcher_GetChannelCount(rbs); + } + + public static void RubberBandStretcher_CalculateStretch(IntPtr rbs) + { + if (IntPtr.Size == 8) + RubberBandNativeMethodsx64.RubberBandStretcher_CalculateStretch(rbs); + else + RubberBandNativeMethodsWin32.RubberBandStretcher_CalculateStretch(rbs); + } + + public static void RubberBandStretcher_SetDebugLevel(IntPtr rbs, int level) + { + if (IntPtr.Size == 8) + RubberBandNativeMethodsx64.RubberBandStretcher_SetDebugLevel(rbs, level); + else + RubberBandNativeMethodsWin32.RubberBandStretcher_SetDebugLevel(rbs, level); + } + + public static void RubberBandStretcher_SetDefaultDebugLevel(int level) + { + if (IntPtr.Size == 8) + RubberBandNativeMethodsx64.RubberBandStretcher_SetDefaultDebugLevel(level); + else + RubberBandNativeMethodsWin32.RubberBandStretcher_SetDefaultDebugLevel(level); + } + } +} diff -Nru rubberband-1.8.2/rubberband-sharp/RubberBandNativeMethodsWin32.cs rubberband-1.9.0/rubberband-sharp/RubberBandNativeMethodsWin32.cs --- rubberband-1.8.2/rubberband-sharp/RubberBandNativeMethodsWin32.cs 1970-01-01 00:00:00.000000000 +0000 +++ rubberband-1.9.0/rubberband-sharp/RubberBandNativeMethodsWin32.cs 2020-09-10 13:30:36.000000000 +0000 @@ -0,0 +1,104 @@ +/* + rubberband-sharp + + A consumer of the rubberband DLL that wraps the RubberBandStretcher + object exposed by the DLL in a managed .NET type. + + Copyright 2018-2019 Jonathan Gilbert + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, copy, + modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR + ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF + CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name of Jonathan Gilbert + shall not be used in advertising or otherwise to promote the sale, + use or other dealings in this Software without prior written + authorization. +*/ + +using System; +using System.Runtime.InteropServices; + +namespace RubberBand +{ + internal class RubberBandNativeMethodsWin32 + { + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern IntPtr RubberBandStretcher_Create(IntPtr sampleRate, IntPtr channels, int options = 0, double initialTimeRatio = 1.0, double initialPitchScale = 1.0); + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern void RubberBandStretcher_Delete(IntPtr rbs); + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern void RubberBandStretcher_Reset(IntPtr rbs); + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern void RubberBandStretcher_SetTimeRatio(IntPtr rbs, double ratio); + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern void RubberBandStretcher_SetPitchScale(IntPtr rbs, double scale); + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern double RubberBandStretcher_GetTimeRatio(IntPtr rbs); + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern double RubberBandStretcher_GetPitchScale(IntPtr rbs); + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern IntPtr RubberBandStretcher_GetLatency(IntPtr rbs); + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern void RubberBandStretcher_SetTransientsOption(IntPtr rbs, int options); + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern void RubberBandStretcher_SetDetectorOption(IntPtr rbs, int options); + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern void RubberBandStretcher_SetPhaseOption(IntPtr rbs, int options); + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern void RubberBandStretcher_SetFormantOption(IntPtr rbs, int options); + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern void RubberBandStretcher_SetPitchOption(IntPtr rbs, int options); + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern void RubberBandStretcher_SetExpectedInputDuration(IntPtr rbs, IntPtr samples); + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern void RubberBandStretcher_SetMaxProcessSize(IntPtr rbs, IntPtr samples); + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern IntPtr RubberBandStretcher_GetSamplesRequired(IntPtr rbs); + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern void RubberBandStretcher_SetKeyFrameMap(IntPtr rbs, IntPtr[] mappingData, int numberOfMappings); + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern void RubberBandStretcher_Study(IntPtr rbs, float[] input, IntPtr samples, int channels, bool final); + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern void RubberBandStretcher_Process(IntPtr rbs, float[] input, IntPtr samples, int channels, bool final); + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern int RubberBandStretcher_Available(IntPtr rbs); + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern IntPtr RubberBandStretcher_Retrieve(IntPtr rbs, float[] output, IntPtr samples, int channels); + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern float RubberBandStretcher_GetFrequencyCutoff(IntPtr rbs, int n); + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern void RubberBandStretcher_SetFrequencyCutoff(IntPtr rbs, int n, float f); + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern IntPtr RubberBandStretcher_GetInputIncrement(IntPtr rbs); + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern IntPtr RubberBandStretcher_GetOutputIncrements(IntPtr rbs, int[] buffer, IntPtr bufferSize); + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern IntPtr RubberBandStretcher_GetPhaseResetCurve(IntPtr rbs, float[] buffer, IntPtr bufferSize); + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern IntPtr RubberBandStretcher_GetExactTimePoints(IntPtr rbs, int[] buffer, IntPtr bufferSize); + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern IntPtr RubberBandStretcher_GetChannelCount(IntPtr rbs); + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern void RubberBandStretcher_CalculateStretch(IntPtr rbs); + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern void RubberBandStretcher_SetDebugLevel(IntPtr rbs, int level); + [DllImport("rubberband-dll-Win32", CallingConvention = CallingConvention.Cdecl)] + public static extern void RubberBandStretcher_SetDefaultDebugLevel(int level); + } +} diff -Nru rubberband-1.8.2/rubberband-sharp/RubberBandNativeMethodsx64.cs rubberband-1.9.0/rubberband-sharp/RubberBandNativeMethodsx64.cs --- rubberband-1.8.2/rubberband-sharp/RubberBandNativeMethodsx64.cs 1970-01-01 00:00:00.000000000 +0000 +++ rubberband-1.9.0/rubberband-sharp/RubberBandNativeMethodsx64.cs 2020-09-10 13:30:36.000000000 +0000 @@ -0,0 +1,104 @@ +/* + rubberband-sharp + + A consumer of the rubberband DLL that wraps the RubberBandStretcher + object exposed by the DLL in a managed .NET type. + + Copyright 2018-2019 Jonathan Gilbert + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, copy, + modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR + ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF + CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name of Jonathan Gilbert + shall not be used in advertising or otherwise to promote the sale, + use or other dealings in this Software without prior written + authorization. +*/ + +using System; +using System.Runtime.InteropServices; + +namespace RubberBand +{ + internal class RubberBandNativeMethodsx64 + { + [DllImport("rubberband-dll-x64")] + public static extern IntPtr RubberBandStretcher_Create(IntPtr sampleRate, IntPtr channels, int options = 0, double initialTimeRatio = 1.0, double initialPitchScale = 1.0); + [DllImport("rubberband-dll-x64")] + public static extern void RubberBandStretcher_Delete(IntPtr rbs); + [DllImport("rubberband-dll-x64")] + public static extern void RubberBandStretcher_Reset(IntPtr rbs); + [DllImport("rubberband-dll-x64")] + public static extern void RubberBandStretcher_SetTimeRatio(IntPtr rbs, double ratio); + [DllImport("rubberband-dll-x64")] + public static extern void RubberBandStretcher_SetPitchScale(IntPtr rbs, double scale); + [DllImport("rubberband-dll-x64")] + public static extern double RubberBandStretcher_GetTimeRatio(IntPtr rbs); + [DllImport("rubberband-dll-x64")] + public static extern double RubberBandStretcher_GetPitchScale(IntPtr rbs); + [DllImport("rubberband-dll-x64")] + public static extern IntPtr RubberBandStretcher_GetLatency(IntPtr rbs); + [DllImport("rubberband-dll-x64")] + public static extern void RubberBandStretcher_SetTransientsOption(IntPtr rbs, int options); + [DllImport("rubberband-dll-x64")] + public static extern void RubberBandStretcher_SetDetectorOption(IntPtr rbs, int options); + [DllImport("rubberband-dll-x64")] + public static extern void RubberBandStretcher_SetPhaseOption(IntPtr rbs, int options); + [DllImport("rubberband-dll-x64")] + public static extern void RubberBandStretcher_SetFormantOption(IntPtr rbs, int options); + [DllImport("rubberband-dll-x64")] + public static extern void RubberBandStretcher_SetPitchOption(IntPtr rbs, int options); + [DllImport("rubberband-dll-x64")] + public static extern void RubberBandStretcher_SetExpectedInputDuration(IntPtr rbs, IntPtr samples); + [DllImport("rubberband-dll-x64")] + public static extern void RubberBandStretcher_SetMaxProcessSize(IntPtr rbs, IntPtr samples); + [DllImport("rubberband-dll-x64")] + public static extern IntPtr RubberBandStretcher_GetSamplesRequired(IntPtr rbs); + [DllImport("rubberband-dll-x64")] + public static extern void RubberBandStretcher_SetKeyFrameMap(IntPtr rbs, IntPtr[] mappingData, int numberOfMappings); + [DllImport("rubberband-dll-x64")] + public static extern void RubberBandStretcher_Study(IntPtr rbs, float[] input, IntPtr samples, int channels, bool final); + [DllImport("rubberband-dll-x64")] + public static extern void RubberBandStretcher_Process(IntPtr rbs, float[] input, IntPtr samples, int channels, bool final); + [DllImport("rubberband-dll-x64")] + public static extern int RubberBandStretcher_Available(IntPtr rbs); + [DllImport("rubberband-dll-x64")] + public static extern IntPtr RubberBandStretcher_Retrieve(IntPtr rbs, float[] output, IntPtr samples, int channels); + [DllImport("rubberband-dll-x64")] + public static extern float RubberBandStretcher_GetFrequencyCutoff(IntPtr rbs, int n); + [DllImport("rubberband-dll-x64")] + public static extern void RubberBandStretcher_SetFrequencyCutoff(IntPtr rbs, int n, float f); + [DllImport("rubberband-dll-x64")] + public static extern IntPtr RubberBandStretcher_GetInputIncrement(IntPtr rbs); + [DllImport("rubberband-dll-x64")] + public static extern IntPtr RubberBandStretcher_GetOutputIncrements(IntPtr rbs, int[] buffer, IntPtr bufferSize); + [DllImport("rubberband-dll-x64")] + public static extern IntPtr RubberBandStretcher_GetPhaseResetCurve(IntPtr rbs, float[] buffer, IntPtr bufferSize); + [DllImport("rubberband-dll-x64")] + public static extern IntPtr RubberBandStretcher_GetExactTimePoints(IntPtr rbs, int[] buffer, IntPtr bufferSize); + [DllImport("rubberband-dll-x64")] + public static extern IntPtr RubberBandStretcher_GetChannelCount(IntPtr rbs); + [DllImport("rubberband-dll-x64")] + public static extern void RubberBandStretcher_CalculateStretch(IntPtr rbs); + [DllImport("rubberband-dll-x64")] + public static extern void RubberBandStretcher_SetDebugLevel(IntPtr rbs, int level); + [DllImport("rubberband-dll-x64")] + public static extern void RubberBandStretcher_SetDefaultDebugLevel(int level); + } +} diff -Nru rubberband-1.8.2/rubberband-sharp/rubberband-sharp.csproj rubberband-1.9.0/rubberband-sharp/rubberband-sharp.csproj --- rubberband-1.8.2/rubberband-sharp/rubberband-sharp.csproj 1970-01-01 00:00:00.000000000 +0000 +++ rubberband-1.9.0/rubberband-sharp/rubberband-sharp.csproj 2020-09-10 13:30:36.000000000 +0000 @@ -0,0 +1,10 @@ + + + + netstandard2.0 + rubberband_sharp + 1.0.0.0 + 1.0.0.0 + + + diff -Nru rubberband-1.8.2/rubberband-sharp/rubberband-sharp.nuspec rubberband-1.9.0/rubberband-sharp/rubberband-sharp.nuspec --- rubberband-1.8.2/rubberband-sharp/rubberband-sharp.nuspec 1970-01-01 00:00:00.000000000 +0000 +++ rubberband-1.9.0/rubberband-sharp/rubberband-sharp.nuspec 2020-09-10 13:30:36.000000000 +0000 @@ -0,0 +1,21 @@ + + + + rubberband-sharp + 1.0.0 + Rubber Band Library .NET Wrapper + JonathanG@iQmetrix.com + C# wrapper for the Rubber Band Library audio time-stretching and pitch-shifting library. + + + + + + + + + + + + + diff -Nru rubberband-1.8.2/rubberband-sharp/rubberband-sharp.targets rubberband-1.9.0/rubberband-sharp/rubberband-sharp.targets --- rubberband-1.8.2/rubberband-sharp/rubberband-sharp.targets 1970-01-01 00:00:00.000000000 +0000 +++ rubberband-1.9.0/rubberband-sharp/rubberband-sharp.targets 2020-09-10 13:30:36.000000000 +0000 @@ -0,0 +1,12 @@ + + + + rubberband-dll-Win32.dll + PreserveNewest + + + rubberband-dll-x64.dll + PreserveNewest + + + diff -Nru rubberband-1.8.2/rubberband-sharp/RubberBandStretcher.cs rubberband-1.9.0/rubberband-sharp/RubberBandStretcher.cs --- rubberband-1.8.2/rubberband-sharp/RubberBandStretcher.cs 1970-01-01 00:00:00.000000000 +0000 +++ rubberband-1.9.0/rubberband-sharp/RubberBandStretcher.cs 2020-09-10 13:30:36.000000000 +0000 @@ -0,0 +1,345 @@ +/* + rubberband-sharp + + A consumer of the rubberband DLL that wraps the RubberBandStretcher + object exposed by the DLL in a managed .NET type. + + Copyright 2018-2019 Jonathan Gilbert + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, copy, + modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR + ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF + CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name of Jonathan Gilbert + shall not be used in advertising or otherwise to promote the sale, + use or other dealings in this Software without prior written + authorization. +*/ + +using System; +using System.Collections.Generic; + +namespace RubberBand +{ + public class RubberBandStretcher : IDisposable + { + public enum Options + { + None = 0, + + ProcessOffline = 0x00000000, + ProcessRealTime = 0x00000001, + + StretchElastic = 0x00000000, + StretchPrecise = 0x00000010, + + TransientsCrisp = 0x00000000, + TransientsMixed = 0x00000100, + TransientsSmooth = 0x00000200, + + DetectorCompound = 0x00000000, + DetectorPercussive = 0x00000400, + DetectorSoft = 0x00000800, + + PhaseLaminar = 0x00000000, + PhaseIndependent = 0x00002000, + + ThreadingAuto = 0x00000000, + ThreadingNever = 0x00010000, + ThreadingAlways = 0x00020000, + + WindowStandard = 0x00000000, + WindowShort = 0x00100000, + WindowLong = 0x00200000, + + SmoothingOff = 0x00000000, + SmoothingOn = 0x00800000, + + FormantShifted = 0x00000000, + FormantPreserved = 0x01000000, + + PitchHighSpeed = 0x00000000, + PitchHighQuality = 0x02000000, + PitchHighConsistency = 0x04000000, + + ChannelsApart = 0x00000000, + ChannelsTogether = 0x10000000, + } + + public const Options DefaultOptions = Options.None; + public const Options PercussiveOptions = Options.WindowShort | Options.PhaseIndependent; + + IntPtr _rbs; + + public RubberBandStretcher(int sampleRate, int channels, Options options = DefaultOptions, double initialTimeRatio = 1.0, double initialPitchScale = 1.0) + { + _rbs = RubberBandNativeMethods.RubberBandStretcher_Create(new IntPtr(sampleRate), new IntPtr(channels), (int)options, initialTimeRatio, initialPitchScale); + } + + public void Dispose() + { + if (_rbs != IntPtr.Zero) + { + RubberBandNativeMethods.RubberBandStretcher_Delete(_rbs); + _rbs = IntPtr.Zero; + } + } + + public void Reset() + { + RubberBandNativeMethods.RubberBandStretcher_Reset(_rbs); + } + + public void SetTimeRatio(double ratio) + { + RubberBandNativeMethods.RubberBandStretcher_SetTimeRatio(_rbs, ratio); + } + + public void SetPitchScale(double scale) + { + RubberBandNativeMethods.RubberBandStretcher_SetPitchScale(_rbs, scale); + } + + public double GetTimeRatio() + { + return RubberBandNativeMethods.RubberBandStretcher_GetTimeRatio(_rbs); + } + + public double GetPitchScale() + { + return RubberBandNativeMethods.RubberBandStretcher_GetPitchScale(_rbs); + } + + public long GetLatency() + { + return RubberBandNativeMethods.RubberBandStretcher_GetLatency(_rbs).ToInt64(); + } + + public void SetTransientsOption(Options options) + { + RubberBandNativeMethods.RubberBandStretcher_SetTransientsOption(_rbs, (int)options); + } + + public void SetDetectorOption(Options options) + { + RubberBandNativeMethods.RubberBandStretcher_SetDetectorOption(_rbs, (int)options); + } + + public void SetPhaseOption(Options options) + { + RubberBandNativeMethods.RubberBandStretcher_SetPhaseOption(_rbs, (int)options); + } + + public void SetFormantOption(Options options) + { + RubberBandNativeMethods.RubberBandStretcher_SetFormantOption(_rbs, (int)options); + } + + public void SetPitchOption(Options options) + { + RubberBandNativeMethods.RubberBandStretcher_SetPitchOption(_rbs, (int)options); + } + + public void SetExpectedInputDuration(long samples) + { + RubberBandNativeMethods.RubberBandStretcher_SetExpectedInputDuration(_rbs, new IntPtr(samples)); + } + + public void SetMaxProcessSize(long samples) + { + RubberBandNativeMethods.RubberBandStretcher_SetMaxProcessSize(_rbs, new IntPtr(samples)); + } + + public long GetSamplesRequired() + { + return RubberBandNativeMethods.RubberBandStretcher_GetSamplesRequired(_rbs).ToInt64(); + } + + public void SetKeyFrameMap(SortedDictionary map) + { + var mappingData = new List(); + + foreach (var mapping in map) + { + mappingData.Add(new IntPtr(mapping.Key)); + mappingData.Add(new IntPtr(mapping.Value)); + } + + RubberBandNativeMethods.RubberBandStretcher_SetKeyFrameMap(_rbs, mappingData.ToArray(), mappingData.Count / 2); + } + + float[] _studyBuffer = new float[1024]; + + public void Study(float[][] input, bool final) + { + for (int i = 1; i < input.Length; i++) + if (input[i].Length != input[0].Length) + throw new Exception("Invalid input data: Not all channels have the same number of samples"); + + Study(input, input[0].Length, final); + } + + public void Study(float[][] input, long samples, bool final) + { + for (int i = 0; i < input.Length; i++) + if (input[i].Length < samples) + throw new Exception("Invalid input data: Channel " + i + " does not have " + samples + " samples of data"); + + long totalSamples = input.Length * samples; + + if (totalSamples > _studyBuffer.Length) + _studyBuffer = new float[totalSamples]; + + for (int i = 0; i < input.Length; i++) + Array.Copy(input[i], 0, _studyBuffer, i * samples, samples); + + RubberBandNativeMethods.RubberBandStretcher_Study(_rbs, _studyBuffer, new IntPtr(samples), input.Length, final); + } + + float[] _processBuffer = new float[1024]; + + public void Process(float[][] input, bool final) + { + for (int i = 1; i < input.Length; i++) + if (input[i].Length != input[0].Length) + throw new Exception("Invalid input data: Not all channels have the same number of samples"); + + Process(input, input[0].Length, final); + } + + public void Process(float[][] input, long samples, bool final) + { + for (int i = 0; i < input.Length; i++) + if (input[i].Length < samples) + throw new Exception("Invalid input data: Channel " + i + " does not have " + samples + " samples of data"); + + long totalSamples = input.Length * samples; + + if (totalSamples > _processBuffer.Length) + _processBuffer = new float[totalSamples]; + + for (int i = 0; i < input.Length; i++) + Array.Copy(input[i], 0, _processBuffer, i * samples, samples); + + RubberBandNativeMethods.RubberBandStretcher_Process(_rbs, _processBuffer, new IntPtr(samples), input.Length, final); + } + + public int Available() + { + return RubberBandNativeMethods.RubberBandStretcher_Available(_rbs); + } + + float[] _outputBuffer = new float[1024]; + + public long Retrieve(float[][] output) + { + for (int i = 1; i < output.Length; i++) + if (output[i].Length != output[0].Length) + throw new Exception("Invalid output buffer: Not all channels have the same number of samples"); + + return Retrieve(output, output[0].Length); + } + + public long Retrieve(float[][] output, long samples) + { + for (int i = 0; i < output.Length; i++) + if (output[i].Length < samples) + throw new Exception("Invalid output buffer: Channel " + i + " does not have enough space for " + samples + " samples"); + + long totalSamples = output.Length * samples; + + if (totalSamples > _outputBuffer.Length) + _outputBuffer = new float[totalSamples]; + + long actualSamples = RubberBandNativeMethods.RubberBandStretcher_Retrieve(_rbs, _outputBuffer, new IntPtr(samples), output.Length).ToInt64(); + + for (int i = 0; i < output.Length; i++) + Array.Copy(_outputBuffer, i * samples, output[i], 0, actualSamples); + + return actualSamples; + } + + public float GetFrequencyCutoff(int n) + { + return RubberBandNativeMethods.RubberBandStretcher_GetFrequencyCutoff(_rbs, n); + } + + public void SetFrequencyCutoff(int n, float f) + { + RubberBandNativeMethods.RubberBandStretcher_SetFrequencyCutoff(_rbs, n, f); + } + + public long GetInputIncrement() + { + return RubberBandNativeMethods.RubberBandStretcher_GetInputIncrement(_rbs).ToInt64(); + } + + public int[] GetOutputIncrements() + { + long numberOfIncrements = RubberBandNativeMethods.RubberBandStretcher_GetOutputIncrements(_rbs, null, IntPtr.Zero).ToInt64(); + + int[] buffer = new int[numberOfIncrements]; + + RubberBandNativeMethods.RubberBandStretcher_GetOutputIncrements(_rbs, buffer, new IntPtr(buffer.Length)); + + return buffer; + } + + public float[] GetPhaseResetCurve() + { + long numberOfCurveElements = RubberBandNativeMethods.RubberBandStretcher_GetPhaseResetCurve(_rbs, null, IntPtr.Zero).ToInt64(); + + float[] buffer = new float[numberOfCurveElements]; + + RubberBandNativeMethods.RubberBandStretcher_GetPhaseResetCurve(_rbs, buffer, new IntPtr(buffer.Length)); + + return buffer; + } + + public int[] GetExactTimePoints() + { + long numberOfTimePoints = RubberBandNativeMethods.RubberBandStretcher_GetExactTimePoints(_rbs, null, IntPtr.Zero).ToInt64(); + + int[] buffer = new int[numberOfTimePoints]; + + RubberBandNativeMethods.RubberBandStretcher_GetExactTimePoints(_rbs, buffer, new IntPtr(buffer.Length)); + + return buffer; + } + + public long GetChannelCount() + { + return RubberBandNativeMethods.RubberBandStretcher_GetChannelCount(_rbs).ToInt64(); + } + + public void CalculateStretch() + { + RubberBandNativeMethods.RubberBandStretcher_CalculateStretch(_rbs); + } + + public void SetDebugLevel(int level) + { + RubberBandNativeMethods.RubberBandStretcher_SetDebugLevel(_rbs, level); + } + + public static void SetDefaultDebugLevel(int level) + { + RubberBandNativeMethods.RubberBandStretcher_SetDefaultDebugLevel(level); + } + } +} diff -Nru rubberband-1.8.2/rubberband.sln rubberband-1.9.0/rubberband.sln --- rubberband-1.8.2/rubberband.sln 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/rubberband.sln 2020-09-10 13:30:36.000000000 +0000 @@ -10,30 +10,68 @@ {020CEB11-EF4E-400E-971D-A35DB69D7CF9} = {020CEB11-EF4E-400E-971D-A35DB69D7CF9} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rubberband-dll", "rubberband-dll.vcxproj", "{32C11C5C-3D27-4E57-B72C-161A48AAA95E}" + ProjectSection(ProjectDependencies) = postProject + {020CEB11-EF4E-400E-971D-A35DB69D7CF9} = {020CEB11-EF4E-400E-971D-A35DB69D7CF9} + EndProjectSection +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "rubberband-sharp", "rubberband-sharp\rubberband-sharp.csproj", "{4A8CA129-DAC5-4550-87EB-80C92A92AAA3}" + ProjectSection(ProjectDependencies) = postProject + {32C11C5C-3D27-4E57-B72C-161A48AAA95E} = {32C11C5C-3D27-4E57-B72C-161A48AAA95E} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU Debug|x64 = Debug|x64 Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU Release|x64 = Release|x64 Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Debug|Any CPU.ActiveCfg = Debug|Win32 {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Debug|x64.ActiveCfg = Debug|x64 {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Debug|x64.Build.0 = Debug|x64 {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Debug|x86.ActiveCfg = Debug|Win32 {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Debug|x86.Build.0 = Debug|Win32 + {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Release|Any CPU.ActiveCfg = Release|Win32 {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Release|x64.ActiveCfg = Release|x64 {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Release|x64.Build.0 = Release|x64 {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Release|x86.ActiveCfg = Release|Win32 {020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Release|x86.Build.0 = Release|Win32 + {06838307-FEAA-4DB0-8E08-AF19698E9C40}.Debug|Any CPU.ActiveCfg = Debug|Win32 {06838307-FEAA-4DB0-8E08-AF19698E9C40}.Debug|x64.ActiveCfg = Debug|x64 {06838307-FEAA-4DB0-8E08-AF19698E9C40}.Debug|x64.Build.0 = Debug|x64 {06838307-FEAA-4DB0-8E08-AF19698E9C40}.Debug|x86.ActiveCfg = Debug|Win32 {06838307-FEAA-4DB0-8E08-AF19698E9C40}.Debug|x86.Build.0 = Debug|Win32 + {06838307-FEAA-4DB0-8E08-AF19698E9C40}.Release|Any CPU.ActiveCfg = Release|Win32 {06838307-FEAA-4DB0-8E08-AF19698E9C40}.Release|x64.ActiveCfg = Release|x64 {06838307-FEAA-4DB0-8E08-AF19698E9C40}.Release|x64.Build.0 = Release|x64 {06838307-FEAA-4DB0-8E08-AF19698E9C40}.Release|x86.ActiveCfg = Release|Win32 {06838307-FEAA-4DB0-8E08-AF19698E9C40}.Release|x86.Build.0 = Release|Win32 + {32C11C5C-3D27-4E57-B72C-161A48AAA95E}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {32C11C5C-3D27-4E57-B72C-161A48AAA95E}.Debug|x64.ActiveCfg = Debug|x64 + {32C11C5C-3D27-4E57-B72C-161A48AAA95E}.Debug|x64.Build.0 = Debug|x64 + {32C11C5C-3D27-4E57-B72C-161A48AAA95E}.Debug|x86.ActiveCfg = Debug|Win32 + {32C11C5C-3D27-4E57-B72C-161A48AAA95E}.Debug|x86.Build.0 = Debug|Win32 + {32C11C5C-3D27-4E57-B72C-161A48AAA95E}.Release|Any CPU.ActiveCfg = Release|Win32 + {32C11C5C-3D27-4E57-B72C-161A48AAA95E}.Release|x64.ActiveCfg = Release|x64 + {32C11C5C-3D27-4E57-B72C-161A48AAA95E}.Release|x64.Build.0 = Release|x64 + {32C11C5C-3D27-4E57-B72C-161A48AAA95E}.Release|x86.ActiveCfg = Release|Win32 + {32C11C5C-3D27-4E57-B72C-161A48AAA95E}.Release|x86.Build.0 = Release|Win32 + {4A8CA129-DAC5-4550-87EB-80C92A92AAA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4A8CA129-DAC5-4550-87EB-80C92A92AAA3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4A8CA129-DAC5-4550-87EB-80C92A92AAA3}.Debug|x64.ActiveCfg = Debug|Any CPU + {4A8CA129-DAC5-4550-87EB-80C92A92AAA3}.Debug|x64.Build.0 = Debug|Any CPU + {4A8CA129-DAC5-4550-87EB-80C92A92AAA3}.Debug|x86.ActiveCfg = Debug|Any CPU + {4A8CA129-DAC5-4550-87EB-80C92A92AAA3}.Debug|x86.Build.0 = Debug|Any CPU + {4A8CA129-DAC5-4550-87EB-80C92A92AAA3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4A8CA129-DAC5-4550-87EB-80C92A92AAA3}.Release|Any CPU.Build.0 = Release|Any CPU + {4A8CA129-DAC5-4550-87EB-80C92A92AAA3}.Release|x64.ActiveCfg = Release|Any CPU + {4A8CA129-DAC5-4550-87EB-80C92A92AAA3}.Release|x64.Build.0 = Release|Any CPU + {4A8CA129-DAC5-4550-87EB-80C92A92AAA3}.Release|x86.ActiveCfg = Release|Any CPU + {4A8CA129-DAC5-4550-87EB-80C92A92AAA3}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff -Nru rubberband-1.8.2/src/audiocurves/CompoundAudioCurve.cpp rubberband-1.9.0/src/audiocurves/CompoundAudioCurve.cpp --- rubberband-1.8.2/src/audiocurves/CompoundAudioCurve.cpp 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/audiocurves/CompoundAudioCurve.cpp 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/audiocurves/CompoundAudioCurve.h rubberband-1.9.0/src/audiocurves/CompoundAudioCurve.h --- rubberband-1.8.2/src/audiocurves/CompoundAudioCurve.h 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/audiocurves/CompoundAudioCurve.h 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/audiocurves/ConstantAudioCurve.cpp rubberband-1.9.0/src/audiocurves/ConstantAudioCurve.cpp --- rubberband-1.8.2/src/audiocurves/ConstantAudioCurve.cpp 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/audiocurves/ConstantAudioCurve.cpp 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/audiocurves/ConstantAudioCurve.h rubberband-1.9.0/src/audiocurves/ConstantAudioCurve.h --- rubberband-1.8.2/src/audiocurves/ConstantAudioCurve.h 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/audiocurves/ConstantAudioCurve.h 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/audiocurves/HighFrequencyAudioCurve.cpp rubberband-1.9.0/src/audiocurves/HighFrequencyAudioCurve.cpp --- rubberband-1.8.2/src/audiocurves/HighFrequencyAudioCurve.cpp 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/audiocurves/HighFrequencyAudioCurve.cpp 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/audiocurves/HighFrequencyAudioCurve.h rubberband-1.9.0/src/audiocurves/HighFrequencyAudioCurve.h --- rubberband-1.8.2/src/audiocurves/HighFrequencyAudioCurve.h 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/audiocurves/HighFrequencyAudioCurve.h 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/audiocurves/PercussiveAudioCurve.cpp rubberband-1.9.0/src/audiocurves/PercussiveAudioCurve.cpp --- rubberband-1.8.2/src/audiocurves/PercussiveAudioCurve.cpp 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/audiocurves/PercussiveAudioCurve.cpp 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/audiocurves/PercussiveAudioCurve.h rubberband-1.9.0/src/audiocurves/PercussiveAudioCurve.h --- rubberband-1.8.2/src/audiocurves/PercussiveAudioCurve.h 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/audiocurves/PercussiveAudioCurve.h 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/audiocurves/SilentAudioCurve.cpp rubberband-1.9.0/src/audiocurves/SilentAudioCurve.cpp --- rubberband-1.8.2/src/audiocurves/SilentAudioCurve.cpp 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/audiocurves/SilentAudioCurve.cpp 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/audiocurves/SilentAudioCurve.h rubberband-1.9.0/src/audiocurves/SilentAudioCurve.h --- rubberband-1.8.2/src/audiocurves/SilentAudioCurve.h 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/audiocurves/SilentAudioCurve.h 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/audiocurves/SpectralDifferenceAudioCurve.cpp rubberband-1.9.0/src/audiocurves/SpectralDifferenceAudioCurve.cpp --- rubberband-1.8.2/src/audiocurves/SpectralDifferenceAudioCurve.cpp 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/audiocurves/SpectralDifferenceAudioCurve.cpp 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/audiocurves/SpectralDifferenceAudioCurve.h rubberband-1.9.0/src/audiocurves/SpectralDifferenceAudioCurve.h --- rubberband-1.8.2/src/audiocurves/SpectralDifferenceAudioCurve.h 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/audiocurves/SpectralDifferenceAudioCurve.h 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/base/Profiler.cpp rubberband-1.9.0/src/base/Profiler.cpp --- rubberband-1.8.2/src/base/Profiler.cpp 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/base/Profiler.cpp 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/base/Profiler.h rubberband-1.9.0/src/base/Profiler.h --- rubberband-1.8.2/src/base/Profiler.h 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/base/Profiler.h 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/base/RingBuffer.h rubberband-1.9.0/src/base/RingBuffer.h --- rubberband-1.8.2/src/base/RingBuffer.h 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/base/RingBuffer.h 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/base/Scavenger.h rubberband-1.9.0/src/base/Scavenger.h --- rubberband-1.8.2/src/base/Scavenger.h 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/base/Scavenger.h 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/dsp/AudioCurveCalculator.cpp rubberband-1.9.0/src/dsp/AudioCurveCalculator.cpp --- rubberband-1.8.2/src/dsp/AudioCurveCalculator.cpp 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/dsp/AudioCurveCalculator.cpp 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/dsp/AudioCurveCalculator.h rubberband-1.9.0/src/dsp/AudioCurveCalculator.h --- rubberband-1.8.2/src/dsp/AudioCurveCalculator.h 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/dsp/AudioCurveCalculator.h 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/dsp/FFT.cpp rubberband-1.9.0/src/dsp/FFT.cpp --- rubberband-1.8.2/src/dsp/FFT.cpp 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/dsp/FFT.cpp 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 @@ -1568,6 +1568,7 @@ #define fftwf_destroy_plan fftw_destroy_plan #define fftwf_malloc fftw_malloc #define fftwf_free fftw_free +#define fftwf_cleanup fftw_cleanup #define fftwf_execute fftw_execute #define atan2f atan2 #define sqrtf sqrt @@ -1586,6 +1587,7 @@ #define fftw_destroy_plan fftwf_destroy_plan #define fftw_malloc fftwf_malloc #define fftw_free fftwf_free +#define fftw_cleanup fftwf_cleanup #define fftw_execute fftwf_execute #define atan2 atan2f #define sqrt sqrtf diff -Nru rubberband-1.8.2/src/dsp/FFT.h rubberband-1.9.0/src/dsp/FFT.h --- rubberband-1.8.2/src/dsp/FFT.h 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/dsp/FFT.h 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/dsp/MovingMedian.h rubberband-1.9.0/src/dsp/MovingMedian.h --- rubberband-1.8.2/src/dsp/MovingMedian.h 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/dsp/MovingMedian.h 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/dsp/Resampler.cpp rubberband-1.9.0/src/dsp/Resampler.cpp --- rubberband-1.8.2/src/dsp/Resampler.cpp 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/dsp/Resampler.cpp 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/dsp/Resampler.h rubberband-1.9.0/src/dsp/Resampler.h --- rubberband-1.8.2/src/dsp/Resampler.h 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/dsp/Resampler.h 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/dsp/SampleFilter.h rubberband-1.9.0/src/dsp/SampleFilter.h --- rubberband-1.8.2/src/dsp/SampleFilter.h 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/dsp/SampleFilter.h 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/dsp/SincWindow.h rubberband-1.9.0/src/dsp/SincWindow.h --- rubberband-1.8.2/src/dsp/SincWindow.h 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/dsp/SincWindow.h 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/dsp/Window.h rubberband-1.9.0/src/dsp/Window.h --- rubberband-1.8.2/src/dsp/Window.h 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/dsp/Window.h 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/jni/RubberBandStretcherJNI.cpp rubberband-1.9.0/src/jni/RubberBandStretcherJNI.cpp --- rubberband-1.8.2/src/jni/RubberBandStretcherJNI.cpp 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/jni/RubberBandStretcherJNI.cpp 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/kissfft/_kiss_fft_guts.h rubberband-1.9.0/src/kissfft/_kiss_fft_guts.h --- rubberband-1.8.2/src/kissfft/_kiss_fft_guts.h 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/kissfft/_kiss_fft_guts.h 2020-09-10 13:30:36.000000000 +0000 @@ -12,6 +12,9 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#ifndef KISS_FFT_GUTS_H +#define KISS_FFT_GUTS_H + /* kiss_fft.h defines kiss_fft_scalar as either short or a float type and defines @@ -148,3 +151,5 @@ /* a debugging function */ #define pcpx(c)\ fprintf(stderr,"%g + %gi\n",(double)((c)->r),(double)((c)->i) ) + +#endif diff -Nru rubberband-1.8.2/src/pommier/sse_mathfun.h rubberband-1.9.0/src/pommier/sse_mathfun.h --- rubberband-1.8.2/src/pommier/sse_mathfun.h 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/pommier/sse_mathfun.h 2020-09-10 13:30:36.000000000 +0000 @@ -70,7 +70,7 @@ _PS_CONST_TYPE(mant_mask, int, 0x7f800000); _PS_CONST_TYPE(inv_mant_mask, int, ~0x7f800000); -_PS_CONST_TYPE(sign_mask, int, 0x80000000); +_PS_CONST_TYPE(sign_mask, int, (int)0x80000000); _PS_CONST_TYPE(inv_sign_mask, int, ~0x80000000); _PI32_CONST(1, 1); diff -Nru rubberband-1.8.2/src/rubberband-c.cpp rubberband-1.9.0/src/rubberband-c.cpp --- rubberband-1.8.2/src/rubberband-c.cpp 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/rubberband-c.cpp 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/RubberBandStretcher.cpp rubberband-1.9.0/src/RubberBandStretcher.cpp --- rubberband-1.8.2/src/RubberBandStretcher.cpp 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/RubberBandStretcher.cpp 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/StretchCalculator.cpp rubberband-1.9.0/src/StretchCalculator.cpp --- rubberband-1.8.2/src/StretchCalculator.cpp 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/StretchCalculator.cpp 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/StretchCalculator.h rubberband-1.9.0/src/StretchCalculator.h --- rubberband-1.8.2/src/StretchCalculator.h 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/StretchCalculator.h 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/StretcherChannelData.cpp rubberband-1.9.0/src/StretcherChannelData.cpp --- rubberband-1.8.2/src/StretcherChannelData.cpp 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/StretcherChannelData.cpp 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/StretcherChannelData.h rubberband-1.9.0/src/StretcherChannelData.h --- rubberband-1.8.2/src/StretcherChannelData.h 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/StretcherChannelData.h 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/StretcherImpl.cpp rubberband-1.9.0/src/StretcherImpl.cpp --- rubberband-1.8.2/src/StretcherImpl.cpp 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/StretcherImpl.cpp 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 @@ -37,9 +37,7 @@ #include "base/Profiler.h" -#ifndef _WIN32 -#include -#endif +#include "system/sysutils.h" #include #include diff -Nru rubberband-1.8.2/src/StretcherImpl.h rubberband-1.9.0/src/StretcherImpl.h --- rubberband-1.8.2/src/StretcherImpl.h 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/StretcherImpl.h 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/StretcherProcess.cpp rubberband-1.9.0/src/StretcherProcess.cpp --- rubberband-1.8.2/src/StretcherProcess.cpp 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/StretcherProcess.cpp 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 @@ -33,10 +33,7 @@ #include "dsp/Resampler.h" #include "base/Profiler.h" #include "system/VectorOps.h" - -#ifndef _WIN32 -#include -#endif +#include "system/sysutils.h" #include #include diff -Nru rubberband-1.8.2/src/system/Allocators.cpp rubberband-1.9.0/src/system/Allocators.cpp --- rubberband-1.8.2/src/system/Allocators.cpp 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/system/Allocators.cpp 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/system/Allocators.h rubberband-1.9.0/src/system/Allocators.h --- rubberband-1.8.2/src/system/Allocators.h 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/system/Allocators.h 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 @@ -39,8 +39,25 @@ #endif #endif +#ifndef MALLOC_IS_ALIGNED +#ifndef MALLOC_IS_NOT_ALIGNED +#ifdef __APPLE__ +#define MALLOC_IS_ALIGNED +#endif +#endif +#endif + +#ifndef HAVE__ALIGNED_MALLOC +#ifndef LACK__ALIGNED_MALLOC +#ifdef _WIN32 +#define HAVE__ALIGNED_MALLOC +#endif +#endif +#endif + #ifdef HAVE_POSIX_MEMALIGN #include +#include #endif #ifdef LACK_BAD_ALLOC @@ -53,9 +70,45 @@ T *allocate(size_t count) { void *ptr = 0; - // 32-byte alignment is required for at least OpenMAX + + // We'd like to check HAVE_IPP first and, if it's defined, call + // ippsMalloc_8u(count * sizeof(T)). But that isn't a general + // replacement for malloc() because it only takes an int + // argument. So we save it for the specialisations of + // allocate and allocate below, where we're more + // likely to get away with it. + +#ifdef MALLOC_IS_ALIGNED + ptr = malloc(count * sizeof(T)); +#else /* !MALLOC_IS_ALIGNED */ + + // That's the "sufficiently aligned" functions dealt with, the + // rest need a specific alignment provided to the call. 32-byte + // alignment is required for at least OpenMAX static const int alignment = 32; + +#ifdef HAVE__ALIGNED_MALLOC + ptr = _aligned_malloc(count * sizeof(T), alignment); +#else /* !HAVE__ALIGNED_MALLOC */ + +#ifdef HAVE_POSIX_MEMALIGN + int rv = posix_memalign(&ptr, alignment, count * sizeof(T)); + if (rv) { +#ifndef NO_EXCEPTIONS + if (rv == EINVAL) { + throw "Internal error: invalid alignment"; + } else { + throw std::bad_alloc(); + } +#else + abort(); +#endif + } +#else /* !HAVE_POSIX_MEMALIGN */ + #ifdef USE_OWN_ALIGNED_MALLOC +#pragma message("Rolling own aligned malloc: this is unlikely to perform as well as the alternatives") + // Alignment must be a power of two, bigger than the pointer // size. Stuff the actual malloc'd pointer in just before the // returned value. This is the least desirable way to do this -- @@ -66,33 +119,32 @@ char *adj = (char *)buf; while ((unsigned long long)adj & (alignment-1)) --adj; ptr = ((char *)adj) + alignment; + new (((void **)ptr)[-1]) (void *); ((void **)ptr)[-1] = buf; } + #else /* !USE_OWN_ALIGNED_MALLOC */ -#ifdef HAVE_POSIX_MEMALIGN - if (posix_memalign(&ptr, alignment, count * sizeof(T))) { - ptr = malloc(count * sizeof(T)); - } -#else /* !HAVE_POSIX_MEMALIGN */ -#ifdef __MSVC__ - ptr = _aligned_malloc(count * sizeof(T), alignment); -#else /* !__MSVC__ */ -#ifndef MALLOC_IS_ALIGNED -#warning "No aligned malloc available or defined" -#endif - // Note that malloc always aligns to 16 byte boundaries on OS/X - ptr = malloc(count * sizeof(T)); -#endif /* !__MSVC__ */ -#endif /* !HAVE_POSIX_MEMALIGN */ + +#error "No aligned malloc available: define MALLOC_IS_ALIGNED to use system malloc, HAVE_POSIX_MEMALIGN if posix_memalign is available, HAVE__ALIGNED_MALLOC if _aligned_malloc is available, or USE_OWN_ALIGNED_MALLOC to roll our own" + #endif /* !USE_OWN_ALIGNED_MALLOC */ +#endif /* !HAVE_POSIX_MEMALIGN */ +#endif /* !HAVE__ALIGNED_MALLOC */ +#endif /* !MALLOC_IS_ALIGNED */ + if (!ptr) { #ifndef NO_EXCEPTIONS - throw(std::bad_alloc()); + throw std::bad_alloc(); #else abort(); #endif } - return (T *)ptr; + + T *typed_ptr = static_cast(ptr); + for (size_t i = 0; i < count; ++i) { + new (typed_ptr + i) T; + } + return typed_ptr; } #ifdef HAVE_IPP @@ -116,15 +168,30 @@ template void deallocate(T *ptr) { + if (!ptr) return; + +#ifdef MALLOC_IS_ALIGNED + free((void *)ptr); +#else /* !MALLOC_IS_ALIGNED */ + +#ifdef HAVE__ALIGNED_MALLOC + _aligned_free((void *)ptr); +#else /* !HAVE__ALIGNED_MALLOC */ + +#ifdef HAVE_POSIX_MEMALIGN + free((void *)ptr); +#else /* !HAVE_POSIX_MEMALIGN */ + #ifdef USE_OWN_ALIGNED_MALLOC - if (ptr) free(((void **)ptr)[-1]); + free(((void **)ptr)[-1]); #else /* !USE_OWN_ALIGNED_MALLOC */ -#ifdef __MSVC__ - if (ptr) _aligned_free((void *)ptr); -#else /* !__MSVC__ */ - if (ptr) free((void *)ptr); -#endif /* !__MSVC__ */ + +#error "No aligned malloc available: define MALLOC_IS_ALIGNED to use system malloc, HAVE_POSIX_MEMALIGN if posix_memalign is available, or USE_OWN_ALIGNED_MALLOC to roll our own" + #endif /* !USE_OWN_ALIGNED_MALLOC */ +#endif /* !HAVE_POSIX_MEMALIGN */ +#endif /* !HAVE__ALIGNED_MALLOC */ +#endif /* !MALLOC_IS_ALIGNED */ } #ifdef HAVE_IPP diff -Nru rubberband-1.8.2/src/system/sysutils.cpp rubberband-1.9.0/src/system/sysutils.cpp --- rubberband-1.8.2/src/system/sysutils.cpp 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/system/sysutils.cpp 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/system/sysutils.h rubberband-1.9.0/src/system/sysutils.h --- rubberband-1.8.2/src/system/sysutils.h 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/system/sysutils.h 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 @@ -25,48 +25,55 @@ #define _RUBBERBAND_SYSUTILS_H_ #ifdef __MSVC__ -#if _MSC_VER < 1800 -#include "float_cast/float_cast.h" -#endif -#define R__ __restrict -#endif +# if _MSC_VER < 1800 +# include "float_cast/float_cast.h" +# endif +# define R__ __restrict +#endif #ifdef __clang__ -#define R__ __restrict__ +# define R__ __restrict__ #else -#ifdef __GNUC__ -#define R__ __restrict__ -#endif +# ifdef __GNUC__ +# define R__ __restrict__ +# endif #endif #ifndef R__ -#define R__ +# define R__ #endif -#ifdef __MINGW32__ -#include -#else -#ifndef __MSVC__ -#include -#endif -#endif - -#ifdef __MSVC__ -#include -#include -#define alloca _alloca -#define getpid _getpid +#if defined(__MSVC__) +# include +# include +# define alloca _alloca +# define getpid _getpid +#else +# if defined(__MINGW32__) +# include +# elif defined(__GNUC__) +# ifndef alloca +# define alloca __builtin_alloca +# endif +# elif defined(HAVE_ALLOCA_H) +# include +# else +# ifndef __USE_MISC +# define __USE_MISC +# endif +# include +# endif #endif #if defined(__MSVC__) && _MSC_VER < 1700 -#define uint8_t unsigned __int8 -#define uint16_t unsigned __int16 -#define uint32_t unsigned __int32 +# define uint8_t unsigned __int8 +# define uint16_t unsigned __int16 +# define uint32_t unsigned __int32 #elif defined(__MSVC__) -#define ssize_t long -#include +# define ssize_t long +# include #else -#include +# include #endif #include @@ -82,24 +89,20 @@ extern ProcessStatus system_get_process_status(int pid); #ifdef _WIN32 - struct timeval { long tv_sec; long tv_usec; }; void gettimeofday(struct timeval *p, void *tz); - -#endif +#endif // _WIN32 #ifdef __MSVC__ - void usleep(unsigned long); - -#endif +#endif // __MSVC__ inline double mod(double x, double y) { return x - (y * floor(x / y)); } inline float modf(float x, float y) { return x - (y * float(floor(x / y))); } #ifndef M_PI #define M_PI 3.14159265358979323846 -#endif +#endif // M_PI inline double princarg(double a) { return mod(a + M_PI, -2.0 * M_PI) + M_PI; } inline float princargf(float a) { return modf(a + (float)M_PI, -2.f * (float)M_PI) + (float)M_PI; } @@ -124,7 +127,7 @@ #define DLCLOSE(a) FreeLibrary((HINSTANCE)(a)) #define DLERROR() "" -#else +#else // !_WIN32 #include #include @@ -135,17 +138,21 @@ #define MUNLOCK_SAMPLEBLOCK(a) do { if (!(a).empty()) { const float &b = *(a).begin(); MUNLOCK(&b, (a).capacity() * sizeof(float)); } } while(0); #ifdef __APPLE__ -#include -#define MBARRIER() OSMemoryBarrier() -#else -#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) -#define MBARRIER() __sync_synchronize() -#else +# if defined __MAC_10_12 +# define MBARRIER() __sync_synchronize() +# else +# include +# define MBARRIER() OSMemoryBarrier() +# endif +#else +# if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) +# define MBARRIER() __sync_synchronize() +# else namespace RubberBand { extern void system_memorybarrier(); } -#define MBARRIER() ::RubberBand::system_memorybarrier() -#endif +# define MBARRIER() ::RubberBand::system_memorybarrier() +# endif #endif #define DLOPEN(a,b) dlopen((a).toStdString().c_str(),(b)) @@ -153,11 +160,12 @@ #define DLCLOSE(a) dlclose((a)) #define DLERROR() dlerror() -#endif +#endif // !_WIN32 #ifdef NO_THREADING -#undef MBARRIER -#define MBARRIER() -#endif +# undef MBARRIER +# define MBARRIER() +#endif // NO_THREADING #endif + diff -Nru rubberband-1.8.2/src/system/Thread.cpp rubberband-1.9.0/src/system/Thread.cpp --- rubberband-1.8.2/src/system/Thread.cpp 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/system/Thread.cpp 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/system/Thread.h rubberband-1.9.0/src/system/Thread.h --- rubberband-1.8.2/src/system/Thread.h 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/system/Thread.h 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/system/VectorOpsComplex.cpp rubberband-1.9.0/src/system/VectorOpsComplex.cpp --- rubberband-1.8.2/src/system/VectorOpsComplex.cpp 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/system/VectorOpsComplex.cpp 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/system/VectorOpsComplex.h rubberband-1.9.0/src/system/VectorOpsComplex.h --- rubberband-1.8.2/src/system/VectorOpsComplex.h 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/system/VectorOpsComplex.h 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/src/system/VectorOps.h rubberband-1.9.0/src/system/VectorOps.h --- rubberband-1.8.2/src/system/VectorOps.h 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/src/system/VectorOps.h 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/vamp/libmain.cpp rubberband-1.9.0/vamp/libmain.cpp --- rubberband-1.8.2/vamp/libmain.cpp 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/vamp/libmain.cpp 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/vamp/RubberBandVampPlugin.cpp rubberband-1.9.0/vamp/RubberBandVampPlugin.cpp --- rubberband-1.8.2/vamp/RubberBandVampPlugin.cpp 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/vamp/RubberBandVampPlugin.cpp 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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 -Nru rubberband-1.8.2/vamp/RubberBandVampPlugin.h rubberband-1.9.0/vamp/RubberBandVampPlugin.h --- rubberband-1.8.2/vamp/RubberBandVampPlugin.h 2018-05-15 17:43:39.000000000 +0000 +++ rubberband-1.9.0/vamp/RubberBandVampPlugin.h 2020-09-10 13:30:36.000000000 +0000 @@ -3,7 +3,7 @@ /* Rubber Band Library An audio time-stretching and pitch-shifting library. - Copyright 2007-2018 Particular Programs Ltd. + Copyright 2007-2020 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