2012-10-28 10:30:09 +00:00
|
|
|
|
2023-04-05 14:03:09 +01:00
|
|
|
Changes in Rubber Band v3.2.1
|
|
|
|
|
|
|
|
|
|
This is a build-fix release with no new features.
|
|
|
|
|
|
|
|
|
|
* Fix formal test failure in build configurations using other
|
|
|
|
|
resamplers than the built-in one
|
|
|
|
|
|
|
|
|
|
The API is unchanged from 3.0 and the library is binary compatible
|
|
|
|
|
back to version 1.7.
|
|
|
|
|
|
|
|
|
|
|
2023-03-09 13:41:19 +00:00
|
|
|
Changes in Rubber Band v3.2
|
|
|
|
|
|
2023-03-27 16:26:33 +01:00
|
|
|
This significant release contains a number of improvements, including
|
|
|
|
|
some output quality enhancements for certain processing modes.
|
2023-03-23 17:49:59 +00:00
|
|
|
|
|
|
|
|
* Fix inability of the R3 engine to produce mono-compatible output
|
|
|
|
|
when processing stereo. In R2 the OptionChannelsTogether option has
|
|
|
|
|
always done this (with some quality caveats). In R3 this option was
|
|
|
|
|
more nearly mono-compatible than the default, but not
|
|
|
|
|
entirely. With this release, OptionChannelsTogether uses a new
|
|
|
|
|
method that is both high quality and mono-compatible and is
|
|
|
|
|
recommended for situations benefiting from this.
|
2023-03-09 13:41:19 +00:00
|
|
|
* Correct the start delay calculation in "resample-before" modes of
|
2023-03-28 12:26:33 +01:00
|
|
|
both stretcher engines. This affects latency reporting in realtime
|
|
|
|
|
mode when using the non-recommended realtime pitch options
|
|
|
|
|
(i.e. those other than OptionPitchHighConsistency, which is the
|
|
|
|
|
recommended option for variable-rate use in realtime mode)
|
2023-03-09 13:41:19 +00:00
|
|
|
* Relatedly, fix failure to use OptionPitchHighConsistency in R3
|
2023-03-28 12:26:33 +01:00
|
|
|
LADSPA/LV2 plugins
|
2023-03-23 17:49:59 +00:00
|
|
|
* Fix small difference in output from R3 engine depending on whether
|
|
|
|
|
time and pitch ratios were provided on construction or immediately
|
|
|
|
|
after it
|
2023-03-27 16:26:33 +01:00
|
|
|
* Expand automated tests
|
|
|
|
|
|
|
|
|
|
The API is unchanged from 3.0 and the library is binary compatible
|
|
|
|
|
back to version 1.7.
|
|
|
|
|
|
|
|
|
|
|
2023-03-27 08:34:54 +01:00
|
|
|
Changes in Rubber Band v3.1.3
|
|
|
|
|
|
2023-03-27 08:38:12 +01:00
|
|
|
This is a bug-fix release with no new features or changes to audio
|
|
|
|
|
quality.
|
2023-03-27 08:34:54 +01:00
|
|
|
|
|
|
|
|
* Fix failure to generate output when called with final=true and no
|
|
|
|
|
samples at input (a regression in v3.1, this worked correctly in
|
|
|
|
|
v3.0 and in the R2 engine)
|
2023-03-09 13:41:19 +00:00
|
|
|
* Fix occasional truncation of final block when using Speex resampler
|
|
|
|
|
* Fix hang in the command-line utility code at end of processing with
|
|
|
|
|
certain file formats
|
|
|
|
|
|
|
|
|
|
The API is unchanged from 3.0 and the library is binary compatible
|
|
|
|
|
back to version 1.7.
|
|
|
|
|
|
|
|
|
|
|
2022-11-28 11:16:45 +00:00
|
|
|
Changes in Rubber Band v3.1.2
|
|
|
|
|
|
|
|
|
|
This minor release contains a small number of build fixes.
|
|
|
|
|
|
|
|
|
|
* Make all optional targets manually toggleable, using Meson
|
|
|
|
|
"features" options (see COMPILING.md for documentation)
|
|
|
|
|
* Further fix to JNI autodetection, following that of 3.1.1 -
|
|
|
|
|
hopefully solving the problem completely this time!
|
|
|
|
|
* Correct the source file listing in the Android makefile
|
|
|
|
|
* Fix build with NO_EXCEPTIONS, e.g. for Android
|
|
|
|
|
* Fix required #includes for mingw32 builds
|
|
|
|
|
|
|
|
|
|
The API is unchanged from 3.0 and the library is binary compatible
|
|
|
|
|
back to version 1.7.
|
|
|
|
|
|
|
|
|
|
|
2022-10-21 13:57:21 +01:00
|
|
|
Changes in Rubber Band v3.1.1
|
|
|
|
|
|
|
|
|
|
This minor release contains no code changes, only a fix to the build
|
|
|
|
|
system.
|
|
|
|
|
|
|
|
|
|
* Fix failure to configure and build on some systems without a Java
|
|
|
|
|
compiler. Java/JNI support is entirely optional in Rubber Band, but
|
|
|
|
|
auto-detection of whether to build it or not was failing in certain
|
|
|
|
|
environments: this broke the normal build process for some users.
|
|
|
|
|
|
|
|
|
|
The API is unchanged from 3.0 and the library is binary compatible
|
|
|
|
|
back to version 1.7.
|
|
|
|
|
|
|
|
|
|
|
2022-09-27 08:48:09 +01:00
|
|
|
Changes in Rubber Band v3.1
|
|
|
|
|
|
|
|
|
|
This significant release contains many enhancements that can improve
|
|
|
|
|
performance, as well as a number of bug fixes.
|
|
|
|
|
|
|
|
|
|
* Add support for "short window" mode, OptionWindowShort, to the new
|
|
|
|
|
R3 processing engine. This option previously only took effect with
|
|
|
|
|
the R2 engine. When used with R3 it disables the R3 multi-window
|
|
|
|
|
logic while retaining R3's signal analysis, yielding output with
|
|
|
|
|
some of the quality advantages of R3 (especially for non-percussive
|
|
|
|
|
content) but with far lower CPU usage and processing delay.
|
|
|
|
|
* Implement OptionPitchHighSpeed in the R3 engine. Previously it
|
2022-09-30 11:49:01 +01:00
|
|
|
always used OptionPitchHighConsistency internally. With this option
|
|
|
|
|
real-time pitch-shifting upwards becomes much faster, at the
|
|
|
|
|
expense of some output quality. (However OptionPitchHighConsistency
|
|
|
|
|
is still always necessary to avoid artifacts when performing
|
|
|
|
|
dynamic pitch changes.)
|
2022-09-27 08:48:09 +01:00
|
|
|
* Add support for the SLEEF library (libsleefdft) for FFTs. In
|
|
|
|
|
our tests this library approaches the performance of vDSP and IPP
|
|
|
|
|
and improves on the other supported options.
|
|
|
|
|
* Add support for external Speex library (libspeexdsp) for
|
|
|
|
|
resampling. This is a very fast resampler, significantly improved
|
|
|
|
|
over the older Speex code that has historically been bundled with
|
|
|
|
|
Rubber Band. It may still introduce a little more audible noise on
|
|
|
|
|
ratio changes than the built-in resampler.
|
|
|
|
|
* Update the R2 engine so that it always restores vertical phase
|
2022-09-27 08:54:07 +01:00
|
|
|
coherence gradually when returning to a ratio of 1.0 (as R3 also
|
|
|
|
|
does) rather than waiting for silence or a transient.
|
2022-09-27 08:48:09 +01:00
|
|
|
* Update R3 to properly support all sample rates between 8000 and
|
|
|
|
|
192000 Hz.
|
2022-09-27 10:33:00 +01:00
|
|
|
* Update command-line utility so as to use the extension of the
|
|
|
|
|
output filename to determine the file type to write. Previously
|
|
|
|
|
the output was always the same format as the input file,
|
|
|
|
|
regardless of extension.
|
2022-09-27 08:48:09 +01:00
|
|
|
* Remove support for libresample. This integration has not been
|
|
|
|
|
exercised in many years and other resamplers are better options.
|
|
|
|
|
* Fix several bugs, including a crash when run with very low sample
|
|
|
|
|
rates.
|
|
|
|
|
|
|
|
|
|
The API is unchanged from 3.0 and the library is binary compatible
|
|
|
|
|
back to version 1.7.
|
|
|
|
|
|
|
|
|
|
|
2022-06-30 15:21:46 +01:00
|
|
|
Changes in Rubber Band v3.0.0
|
|
|
|
|
|
|
|
|
|
* Introduce a new processing engine, the R3 (Finer) engine, which
|
|
|
|
|
typically produces higher-quality output than the existing R2
|
2022-07-07 13:51:41 +01:00
|
|
|
engine, though at significantly higher CPU cost. The R2 engine is
|
2022-06-30 15:21:46 +01:00
|
|
|
still the default, and R3 can be selected using the new
|
2022-07-07 13:51:41 +01:00
|
|
|
OptionEngineFiner option on construction. See the documentation for
|
|
|
|
|
more details.
|
2022-06-30 15:21:46 +01:00
|
|
|
* Add ability to provide a custom set of log callbacks, so that
|
|
|
|
|
debug and warning logs can be routed to the application's log
|
|
|
|
|
stream and/or handled in a realtime-safe way
|
|
|
|
|
* Add option to shift formant independently of pitch (R3 engine
|
|
|
|
|
only)
|
2022-07-06 10:22:50 +01:00
|
|
|
* Deprecate the rather ambiguous function getLatency(), effectively
|
|
|
|
|
replacing it with two new functions getPreferredStartPad() and
|
|
|
|
|
getStartDelay(). See their documentation for more details
|
2022-06-30 15:21:46 +01:00
|
|
|
|
2022-07-07 15:59:45 +01:00
|
|
|
The library is both binary and API compatible all the way back to the
|
|
|
|
|
1.x series for existing applications. Code written to use 3.0 is not
|
|
|
|
|
necessarily compatible with 2.x or 1.x, as several new functions and
|
|
|
|
|
enum values have been added, but code written to use any earlier
|
|
|
|
|
version can update to 3.0 without modification (and will continue to
|
|
|
|
|
use the same processing engine if the calling code is unchanged).
|
2022-06-30 15:21:46 +01:00
|
|
|
|
|
|
|
|
|
2022-01-26 09:36:01 +00:00
|
|
|
Changes in Rubber Band v2.0.2
|
|
|
|
|
|
|
|
|
|
* Fix a crash in certain configurations when using mid-side
|
|
|
|
|
processing (OptionChannelsTogether) with pitch shifts
|
|
|
|
|
* Fix failure to build on very old macOS versions (<= 10.8) when
|
|
|
|
|
combined with much newer compilers
|
|
|
|
|
|
|
|
|
|
The API is unchanged and the library is binary compatible back to
|
|
|
|
|
version 1.7.
|
|
|
|
|
|
|
|
|
|
|
2022-01-20 10:28:07 +00:00
|
|
|
Changes in Rubber Band v2.0.1
|
|
|
|
|
|
|
|
|
|
* Add a preliminary LV2 version of the example pitch-shifter plugin,
|
|
|
|
|
and update the existing LADSPA version to fix failure of the wet/dry
|
|
|
|
|
control to work correctly under in-place use
|
|
|
|
|
* Make the built-in resampler (introduced in v2.0.0) the default for
|
|
|
|
|
all builds, and use it in the official packaged versions of the
|
|
|
|
|
command-line utility. External resampler libraries are still
|
|
|
|
|
available as build options
|
|
|
|
|
* A couple of build fixes, including supporting the proper Meson
|
|
|
|
|
option (default_library=shared/static/both) at configuration time
|
|
|
|
|
to choose which type of library to build, instead of the custom
|
|
|
|
|
option used since v1.9.1
|
|
|
|
|
|
|
|
|
|
The API is unchanged and the library is binary compatible back to
|
|
|
|
|
version 1.7.
|
|
|
|
|
|
|
|
|
|
|
2021-10-20 14:31:16 +01:00
|
|
|
Changes in Rubber Band v2.0.0
|
|
|
|
|
|
|
|
|
|
* Introduce a built-in resampler, intended to minimise artifacts on
|
|
|
|
|
pitch changes and to allow Rubber Band to be compiled without any
|
|
|
|
|
external dependencies (when also using the built-in FFT). The
|
|
|
|
|
built-in resampler is newer and less well-tested than
|
|
|
|
|
libsamplerate, and is not yet the default except in no-dependency
|
|
|
|
|
builds
|
|
|
|
|
* Introduce single compilation unit single/RubberBandSingle.cpp which
|
|
|
|
|
includes the whole library, to allow adding Rubber Band Library to
|
|
|
|
|
a C++ project without having to build anything separately. This
|
|
|
|
|
version always uses the built-in FFT and resampler and does not
|
|
|
|
|
support any extra configuration
|
|
|
|
|
* Update the stretch calculation logic for real-time mode, making it
|
|
|
|
|
more rigorous about avoiding timing drift when the pitch ratio
|
|
|
|
|
changes frequently
|
|
|
|
|
* Update the example LADSPA pitch shift plugin, adding a wet/dry mix
|
|
|
|
|
control to test (and take advantage of) the better timing
|
|
|
|
|
management in real-time mode
|
|
|
|
|
* Add a pitch/frequency-map file option to the command-line utility,
|
|
|
|
|
allowing time-varying pitch shifts to be pre-programmed
|
|
|
|
|
|
|
|
|
|
The API is unchanged and the library is still binary compatible back
|
|
|
|
|
to version 1.7.
|
|
|
|
|
|
|
|
|
|
We incremented the major version number, not because of any API
|
|
|
|
|
change, but because of a change to the timing of audio output for some
|
|
|
|
|
applications of real-time mode. While the library is code-compatible
|
|
|
|
|
with earlier releases, it is not "output-compatible" and may change
|
|
|
|
|
automation-driven mixes even when used with identical options. If you
|
|
|
|
|
are already using an earlier release in real-time mode, please test
|
|
|
|
|
v2.0.0 carefully before updating.
|
|
|
|
|
|
|
|
|
|
Note that there are no pure bug-fixes in v2.0.0: if you are happy with
|
|
|
|
|
v1.9.2, there is no pressing reason to update.
|
|
|
|
|
|
|
|
|
|
|
2021-06-04 13:49:34 +01:00
|
|
|
Changes in Rubber Band v1.9.2
|
|
|
|
|
|
|
|
|
|
* Introduce a built-in FFT option to be a good default when no
|
|
|
|
|
requirements point to a particular external library preference
|
|
|
|
|
* Fix potential crash following some reconfigure options. Thanks
|
|
|
|
|
to Michael Tyson for reporting this
|
|
|
|
|
* Ensure Accelerate is listed in generated pkg-config if required
|
|
|
|
|
* Check for existence of sincos in configuration
|
|
|
|
|
* Fix host identification when cross-compiling
|
|
|
|
|
|
|
|
|
|
The API is unchanged and the library is binary compatible with
|
|
|
|
|
version 1.7.
|
|
|
|
|
|
|
|
|
|
|
2021-03-08 13:51:10 +00:00
|
|
|
Changes in Rubber Band v1.9.1
|
|
|
|
|
|
|
|
|
|
* Switch build system from Makefiles and Visual Studio project to
|
|
|
|
|
Meson/Ninja for all platforms. There are still Makefiles and VS
|
|
|
|
|
projects included in otherbuilds/ for those who wish to use them to
|
|
|
|
|
build the static library directly
|
|
|
|
|
* Make various fixes to improve sound quality when pitch-shifting
|
|
|
|
|
dynamically in real-time (requires libsamplerate)
|
|
|
|
|
* Fix floating-point exception when a very very long stretch factor
|
|
|
|
|
is presented
|
|
|
|
|
* Move the two directories that together provide the .NET interface
|
|
|
|
|
(rubberband-sharp and rubberband-dll) into their own subdir (dotnet)
|
|
|
|
|
* Ensure the library builds and runs correctly on ARM Mac (Apple
|
|
|
|
|
Silicon, M1), and also on Windows using the Visual C++ Clang
|
|
|
|
|
front-end
|
|
|
|
|
|
|
|
|
|
The API is unchanged and the library is binary compatible with
|
|
|
|
|
version 1.7.
|
|
|
|
|
|
|
|
|
|
|
2020-09-09 13:03:57 +01:00
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
2015-07-09 15:40:42 +01:00
|
|
|
Changes in Rubber Band v1.8.2
|
|
|
|
|
|
|
|
|
|
* Fix a number of small memory leaks
|
|
|
|
|
* Make stretcher more robust to being fed invalid input (with NaNs)
|
|
|
|
|
* Include iOS build file
|
|
|
|
|
* Various platform build fixes and improvements
|
|
|
|
|
|
|
|
|
|
The API is unchanged and the library is binary compatible with
|
|
|
|
|
version 1.7.
|
|
|
|
|
|
2018-05-14 19:31:29 +01:00
|
|
|
|
2012-10-28 10:30:09 +00:00
|
|
|
Changes in Rubber Band v1.8.1
|
|
|
|
|
|
|
|
|
|
* Fix a crash in formant-preserving pitch shift for some build targets
|
|
|
|
|
|
|
|
|
|
The API is unchanged and the library is binary compatible with
|
|
|
|
|
version 1.7.
|
|
|
|
|
|
|
|
|
|
|
2012-09-10 14:16:22 +01:00
|
|
|
Changes in Rubber Band v1.8
|
|
|
|
|
|
|
|
|
|
* Add build support for Win32/MSVC, Android, and various libraries
|
|
|
|
|
* Add Java JNI interface
|
|
|
|
|
|
|
|
|
|
The API is unchanged and the library is binary compatible with
|
|
|
|
|
version 1.7.
|
|
|
|
|
|
2008-05-22 16:54:27 +00:00
|
|
|
|
2011-12-04 17:22:02 +00:00
|
|
|
Changes in Rubber Band v1.7
|
|
|
|
|
|
|
|
|
|
* Add the centre-focus option as an alternative processing mode for
|
|
|
|
|
stereo (using mid-side arrangement)
|
|
|
|
|
* Several bug fixes
|
|
|
|
|
|
|
|
|
|
The library is binary compatible with version 1.6 for forward
|
|
|
|
|
compatibility (values have been added to an existing enum). Code
|
|
|
|
|
written to use 1.7 is not necessarily compatible with 1.6.
|
|
|
|
|
|
2011-01-07 21:46:36 +00:00
|
|
|
|
|
|
|
|
Changes in Rubber Band v1.6
|
|
|
|
|
|
|
|
|
|
* Add Smoothing option. This uses a window-presum FFT, introducing
|
|
|
|
|
time-domain aliasing which is then smoothed using a sinc window.
|
|
|
|
|
This can be used in combination with any of the existing processing
|
|
|
|
|
control options. This will soften transients but the result may
|
|
|
|
|
still be more pleasant for some material that is not very amenable
|
|
|
|
|
to being time stretched.
|
|
|
|
|
* Fix silent channel of output when processing with band-limited
|
|
|
|
|
transients option
|
|
|
|
|
* Include libresample support
|
|
|
|
|
|
|
|
|
|
The library is binary compatible with version 1.5 for forward
|
|
|
|
|
compatibility (values have been added to an existing enum). Code
|
|
|
|
|
written to use 1.6 is not necessarily compatible with 1.5.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Changes in Rubber Band v1.5
|
2010-03-24 09:44:51 +00:00
|
|
|
|
|
|
|
|
* Add a more reliable transient detection mode, and make the mode
|
|
|
|
|
selectable using OptionDetectorXXX flags -- the new method is
|
|
|
|
|
the default
|
|
|
|
|
* Band-limit transient detectors to avoid being distracted by
|
|
|
|
|
inaudible garbage
|
|
|
|
|
* Add a key-frame mapping facility for variable stretch ratio
|
|
|
|
|
management during offline stretches
|
|
|
|
|
|
|
|
|
|
The library is binary compatible with version 1.4 for forward
|
2011-01-07 21:46:36 +00:00
|
|
|
compatibility (a function has been added and an enum changed, but no
|
|
|
|
|
existing entry points have changed). Code written to use 1.5 is not
|
2010-03-24 09:44:51 +00:00
|
|
|
necessarily compatible with 1.4.
|
|
|
|
|
|
|
|
|
|
|
2009-09-24 19:23:54 +00:00
|
|
|
Changes in Rubber Band v1.4
|
|
|
|
|
|
|
|
|
|
* Fix a hang when faced with some very peculiar stretch factors
|
|
|
|
|
* Fix some incorrect threading condition usage
|
|
|
|
|
* Some code rearrangement
|
|
|
|
|
* Fix build on Solaris
|
|
|
|
|
|
|
|
|
|
The library is binary compatible with version 1.3.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Changes in Rubber Band v1.3
|
|
|
|
|
|
|
|
|
|
* Fix a bug that may cause incorrect output during the first process
|
|
|
|
|
block of some audio files, when processing in offline mode
|
|
|
|
|
* Fix a small number of build issues and more minor bugs
|
|
|
|
|
|
|
|
|
|
The library is binary compatible with version 1.2.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Changes in Rubber Band v1.2
|
2008-05-22 16:54:27 +00:00
|
|
|
|
2010-03-24 09:44:51 +00:00
|
|
|
* Add an initial "formant preservation" option when pitch shifting
|
2008-05-22 16:54:27 +00:00
|
|
|
* Real-time pitch shifting now uses a faster method by default, with
|
|
|
|
|
less variation in CPU usage
|
|
|
|
|
* The code is more amenable to compiler auto-vectorization (through
|
|
|
|
|
e.g. gcc --ftree-vectorize).
|
|
|
|
|
|