Merge from branch meson
This commit is contained in:
@@ -1,18 +1,22 @@
|
||||
|
||||
image:
|
||||
- Visual Studio 2019
|
||||
|
||||
configuration:
|
||||
- Release
|
||||
|
||||
platform:
|
||||
- x86
|
||||
- x64
|
||||
|
||||
install:
|
||||
- cinst wget
|
||||
- c:\ProgramData\chocolatey\bin\wget.exe http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.28-w32-setup.exe
|
||||
- c:\ProgramData\chocolatey\bin\wget.exe http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.28-w64-setup.exe
|
||||
- ps: .\libsndfile-1.0.28-w32-setup.exe /silent /sp- /norestart
|
||||
- ps: .\libsndfile-1.0.28-w64-setup.exe /silent /sp- /norestart
|
||||
- cinst meson
|
||||
- cinst libsndfile
|
||||
|
||||
build_script:
|
||||
- msbuild rubberband.sln
|
||||
- call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"
|
||||
- meson build "-Dextra_include_dirs=C:\Program Files\libsndfile\include" "-Dextra_lib_dirs=C:\Program Files\libsndfile\lib"
|
||||
- ninja -C build
|
||||
# And test the .NET FFI interface build, which is completely separate
|
||||
- msbuild dotnet\rubberband.sln /t:Restore;Build
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
image: ubuntu/18.04
|
||||
image: ubuntu/20.04
|
||||
packages:
|
||||
- pkg-config
|
||||
- libsamplerate0-dev
|
||||
@@ -6,15 +6,18 @@ packages:
|
||||
- libfftw3-dev
|
||||
- ladspa-sdk
|
||||
- vamp-plugin-sdk
|
||||
- meson
|
||||
- ninja-build
|
||||
sources:
|
||||
- hg+https://hg.sr.ht/~breakfastquay/rubberband
|
||||
tasks:
|
||||
- setup: |
|
||||
cd rubberband
|
||||
./configure
|
||||
meson build
|
||||
- build: |
|
||||
cd rubberband
|
||||
make
|
||||
ninja -C build
|
||||
./otherbuilds/check.sh
|
||||
triggers:
|
||||
- action: email
|
||||
condition: always
|
||||
|
||||
15
.github/workflows/macos-ios.yml
vendored
15
.github/workflows/macos-ios.yml
vendored
@@ -2,9 +2,7 @@ name: macOS and iOS CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
@@ -14,9 +12,16 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: deps
|
||||
run: brew install libsndfile vamp-plugin-sdk
|
||||
run: brew install libsndfile libsamplerate vamp-plugin-sdk meson ninja
|
||||
- name: configure macos
|
||||
run: meson build_macos
|
||||
- name: configure ios
|
||||
run: meson build_ios --cross-file cross/ios.txt
|
||||
- name: make macos
|
||||
run: make -f Makefile.macos clean library program vamp
|
||||
run: ninja -C build_macos
|
||||
- name: make ios
|
||||
run: make -f Makefile.ios clean all
|
||||
run: ninja -C build_ios
|
||||
- name: check otherbuilds
|
||||
run: otherbuilds/check.sh
|
||||
|
||||
|
||||
|
||||
11
.hgignore
11
.hgignore
@@ -18,7 +18,10 @@ doc/html
|
||||
*.rej
|
||||
cov-int
|
||||
*~
|
||||
re:^x64/Debug/
|
||||
re:^x64/Release/
|
||||
re:^Release/
|
||||
re:^Debug/
|
||||
x64/Debug/
|
||||
x64/Release/
|
||||
Release/
|
||||
Debug/
|
||||
build
|
||||
build_*
|
||||
UpgradeLog*
|
||||
|
||||
27
.travis.yml
27
.travis.yml
@@ -1,27 +0,0 @@
|
||||
dist:
|
||||
- trusty
|
||||
|
||||
language:
|
||||
- cpp
|
||||
|
||||
sudo:
|
||||
- false
|
||||
|
||||
os:
|
||||
- osx
|
||||
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/Library/Caches/Homebrew
|
||||
- /usr/local/Homebrew
|
||||
|
||||
before_cache:
|
||||
- if [ "${TRAVIS_OS_NAME}" = "osx" ]; then brew cleanup; fi
|
||||
- if [ "${TRAVIS_OS_NAME}" = "osx" ]; then find /usr/local/Homebrew \! -regex ".+\.git.+" -delete; fi
|
||||
|
||||
before_install:
|
||||
- if [[ "$TRAVIS_OS_NAME" = "osx" ]] ; then brew update ; brew install libsndfile ; fi
|
||||
|
||||
script:
|
||||
- if [[ "$TRAVIS_OS_NAME" = "osx" ]] ; then make -f Makefile.macos && make -f Makefile.ios clean && make -f Makefile.ios ; else ./configure && make ; fi
|
||||
|
||||
396
README.md
396
README.md
@@ -43,9 +43,9 @@ 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.
|
||||
dotnet/rubberband-dll and dotnet/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
|
||||
@@ -70,13 +70,13 @@ our knowledge. See also the end of this README for detailed terms.
|
||||
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
|
||||
a. Building on Linux
|
||||
b. Building on macOS
|
||||
c. Building for iOS
|
||||
d. Building on Windows
|
||||
e. Building for Android and Java integration
|
||||
f. FFT and resampler selection
|
||||
g. Other supported #defines
|
||||
5. Copyright notes for bundled libraries
|
||||
|
||||
|
||||
@@ -109,11 +109,15 @@ Rubber Band consists of:
|
||||
The Rubber Band command-line tool builds as bin/rubberband. The basic
|
||||
incantation is
|
||||
|
||||
```
|
||||
$ rubberband -t <timeratio> -p <pitchratio> <infile.wav> <outfile.wav>
|
||||
```
|
||||
|
||||
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.
|
||||
@@ -138,7 +142,7 @@ 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.
|
||||
see the files in the `dotnet` 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
|
||||
@@ -156,19 +160,199 @@ acquired a commercial licence from the author.
|
||||
|
||||
## 4. Compiling the Rubber Band Library
|
||||
|
||||
### 4a. FFT and resampler selection
|
||||
The primary supported build system for the Rubber Band Library on all
|
||||
platforms is Meson (https://mesonbuild.com). To build, ensure Meson
|
||||
and Ninja are installed and run:
|
||||
|
||||
```
|
||||
$ meson build && ninja -C build
|
||||
```
|
||||
|
||||
This checks for necessary dependencies, reports what it finds, and if
|
||||
all is well, builds the code into a subdirectory called `build`. It
|
||||
will build everything it can find the requisite dependencies for:
|
||||
static and dynamic libraries, LADSPA and Vamp plugins, and
|
||||
command-line utility.
|
||||
|
||||
Some configuration options are provided, described in the
|
||||
`meson_options.txt` file. To set one of these, add a `-D` option to
|
||||
Meson:
|
||||
|
||||
```
|
||||
$ meson build -Dipp_path=/opt/intel/ipp
|
||||
```
|
||||
|
||||
The options are documented in the library- and platform-specific
|
||||
sections below.
|
||||
|
||||
For those who don't wish to use Meson, some alternative build files
|
||||
(Makefiles and Visual C++ projects) are included in the `otherbuilds`
|
||||
directory. These build only the static library.
|
||||
|
||||
The Rubber Band Library is written entirely in C++ to the C++98
|
||||
standard. It is unlikely to make any difference (performance or
|
||||
otherwise) which C++ standard your compiler uses - as long as it's no
|
||||
older than C++98!
|
||||
|
||||
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.
|
||||
|
||||
|
||||
### 4a. Building on Linux
|
||||
|
||||
For best results, and to ensure the command-line tool and plugins are
|
||||
built, first install libsamplerate, libsndfile, and the LADSPA and
|
||||
Vamp plugin headers so they can be found using `pkg-config`. Then
|
||||
|
||||
```
|
||||
$ meson build && ninja -C build
|
||||
```
|
||||
|
||||
See "FFT and resampler selection" below for further build options.
|
||||
|
||||
Alternatively, if you only need the static library and prefer a
|
||||
Makefile, try
|
||||
|
||||
```
|
||||
$ make -f otherbuilds/Makefile.linux
|
||||
```
|
||||
|
||||
|
||||
### 4b. Building on macOS
|
||||
|
||||
Ensure the Xcode command-line tools are installed, and ideally also
|
||||
install libsamplerate and libsndfile.
|
||||
|
||||
To build for the native architecture of the build machine:
|
||||
|
||||
```
|
||||
$ meson build && ninja -C build
|
||||
```
|
||||
|
||||
To build for Intel (x86_64) regardless of the native architecture:
|
||||
|
||||
```
|
||||
$ meson build --cross-file cross/macos-x86_64.txt && ninja -C build
|
||||
```
|
||||
|
||||
To build for Apple Silicon (arm64) regardless of the native
|
||||
architecture:
|
||||
|
||||
```
|
||||
$ meson build --cross-file cross/macos-arm64.txt && ninja -C build
|
||||
```
|
||||
|
||||
You can build a universal binary library for both architectures like
|
||||
this:
|
||||
|
||||
```
|
||||
$ meson build --cross-file cross/macos-universal.txt && ninja -C build
|
||||
```
|
||||
|
||||
However, the resulting binary will be marked as loadable on macOS 11+
|
||||
only, even for Intel, which is probably not what you want (ideally the
|
||||
Intel slice would support older versions of the OS). A Makefile that
|
||||
handles this explicitly is also provided:
|
||||
|
||||
```
|
||||
$ make -f otherbuilds/Makefile.macos-universal
|
||||
```
|
||||
|
||||
This produces only a static library, but it's a universal binary that
|
||||
is compatible with macOS 10.7 onwards on the Intel side.
|
||||
|
||||
See "FFT and resampler selection" below for further build options.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
### 4c. Building for iOS
|
||||
|
||||
Ensure the Xcode command-line tools are installed, and
|
||||
|
||||
```
|
||||
$ meson build_ios --cross-file cross/ios.txt && ninja -C build
|
||||
```
|
||||
|
||||
The output files will be found in the `build_ios` directory.
|
||||
|
||||
To build for the simulator,
|
||||
|
||||
```
|
||||
$ meson build_sim --cross-file cross/ios-simulator.txt && ninja -C build
|
||||
```
|
||||
|
||||
The output files will be found in the `build_sim` directory.
|
||||
|
||||
See "FFT and resampler selection" below for further build options.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
### 4d. Building on Windows
|
||||
|
||||
The default build on Windows also uses Meson, so ensure Meson and
|
||||
Ninja are installed and available. Then, in a terminal window with the
|
||||
compiler tools available in the path (e.g. a Visual Studio
|
||||
command-line prompt for the relevant build architecture) run
|
||||
|
||||
```
|
||||
> meson build
|
||||
> ninja -C build
|
||||
```
|
||||
|
||||
The output files will be found in the `build` directory.
|
||||
|
||||
The Rubber Band code is compatible with both the traditional Visual
|
||||
C++ compiler (`cl`) and the Clang front-end (`clang`), and the build
|
||||
system will use whichever appears (first) in your path.
|
||||
|
||||
See "FFT and resampler selection" below for further build options.
|
||||
|
||||
Alternatively, if you only need the static library and prefer a Visual
|
||||
Studio project file, there is one targeted for VC 2015 in
|
||||
`otherbuilds\rubberband-library.vcxproj`.
|
||||
|
||||
|
||||
### 4e. Building for Android and Java integration
|
||||
|
||||
Currently only a very old Android NDK build file is provided, as
|
||||
`otherbuilds/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.
|
||||
|
||||
|
||||
### 4f. 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.
|
||||
controlled (in Meson) using `-D` options and (in the code itself)
|
||||
using preprocessor flags set by the build system. These options and
|
||||
flags are 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.
|
||||
At least one resampler implementation and one FFT implementation must
|
||||
be enabled. It is technically possible to enable more than one, but
|
||||
it's confusing and not often useful.
|
||||
|
||||
If you are building this software using one of the bundled library
|
||||
options (Speex or KissFFT), please be sure to review the terms for
|
||||
@@ -178,44 +362,42 @@ applicable.
|
||||
#### FFT libraries supported
|
||||
|
||||
```
|
||||
Name Flags required Notes
|
||||
---- -------------- -----
|
||||
Library Build option CPP define Notes
|
||||
---- ------------ ---------- -----
|
||||
|
||||
FFTW3 -DHAVE_FFTW3 GPL.
|
||||
KissFFT -Dfft=kissfft -DUSE_KISSFFT Default except on macOS/iOS.
|
||||
Bundled, can be distributed with
|
||||
either the Rubber Band GPL or
|
||||
commercial licence.
|
||||
|
||||
Accelerate -DHAVE_VDSP Platform library on macOS and iOS.
|
||||
Accelerate -Dfft=vdsp -DHAVE_VDSP Default on macOS/iOS.
|
||||
Best option on these platforms.
|
||||
|
||||
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.
|
||||
FFTW3 -Dfft=fftw -DHAVE_FFTW3 GPL.
|
||||
|
||||
KissFFT -DUSE_KISSFFT Bundled, can be distributed with either the
|
||||
Rubber Band GPL or commercial licence.
|
||||
Single-precision. Slower than the above
|
||||
options.
|
||||
Intel IPP -Dfft=ipp -DHAVE_IPP Proprietary, can only be used with
|
||||
Rubber Band commercial licence.
|
||||
```
|
||||
|
||||
#### Resampler libraries supported
|
||||
|
||||
```
|
||||
Name Flags required Notes
|
||||
---- -------------- -----
|
||||
Library Build option CPP define Notes
|
||||
---- ------------ ---------- -----
|
||||
|
||||
libsamplerate -DHAVE_LIBSAMPLERATE GPL until v0.1.8, BSD for v0.1.9 and later.
|
||||
This is the preferred choice in almost
|
||||
all cases.
|
||||
libsamplerate -DHAVE_LIBSAMPLERATE
|
||||
-Dresampler=libsamplerate Best choice in most cases.
|
||||
|
||||
libresample -DHAVE_LIBRESAMPLE LGPL.
|
||||
|
||||
Speex -DUSE_SPEEX Bundled, can be distributed with either the
|
||||
Rubber Band GPL or commercial licence.
|
||||
Speex -DUSE_SPEEX
|
||||
-Dresampler=speex Bundled, can be distributed with
|
||||
either the Rubber Band GPL or
|
||||
commercial licence.
|
||||
```
|
||||
|
||||
### 4b. Other supported #defines
|
||||
### 4g. Other supported #defines
|
||||
|
||||
Other symbols you may define at compile time are as follows. (Usually
|
||||
the supplied build files will handle these for you.)
|
||||
Other known preprocessor symbols 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.
|
||||
@@ -250,132 +432,6 @@ the supplied build files will handle these for you.)
|
||||
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
|
||||
|
||||
Two Makefiles for macOS are provided, as `Makefile.macos` and
|
||||
`Makefile.macos-universal`. `Makefile.macos` will build for your
|
||||
native machine architecture; `Makefile.macos-universal` will build a
|
||||
universal binary with both x86_64 and arm64 slices. The latter
|
||||
requires macOS 11+, although the resulting binaries should work with
|
||||
macOS 10.7 or newer if all the dependent libraries are also built
|
||||
appropriately. You will also need the Xcode command-line tools
|
||||
installed.
|
||||
|
||||
Adjust your selected 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.macos library` in a terminal window to
|
||||
build.
|
||||
|
||||
(You probably don't want to use the configure script on macOS -- just
|
||||
use your preferred Makefile 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 (compiling on macOS) 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
|
||||
|
||||
80
configure.ac
80
configure.ac
@@ -1,80 +0,0 @@
|
||||
|
||||
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
|
||||
AC_PROG_CC
|
||||
|
||||
PKG_CHECK_MODULES([SRC],[samplerate])
|
||||
AC_SUBST(SRC_CFLAGS)
|
||||
AC_SUBST(SRC_LIBS)
|
||||
|
||||
if test "x$WITH_PROGRAMS" = "xyes"; then
|
||||
PKG_CHECK_MODULES([SNDFILE],[sndfile])
|
||||
fi
|
||||
AC_SUBST(SNDFILE_CFLAGS)
|
||||
AC_SUBST(SNDFILE_LIBS)
|
||||
|
||||
PKG_CHECK_MODULES([FFTW],[fftw3])
|
||||
AC_SUBST(FFTW_CFLAGS)
|
||||
AC_SUBST(FFTW_LIBS)
|
||||
|
||||
if test "x$WITH_LADSPA" = "xyes"; then
|
||||
AC_CHECK_HEADERS(ladspa.h, [], [AC_MSG_ERROR([LADSPA header not found
|
||||
|
||||
Consider installing the LADSPA SDK or configure with --disable-ladspa])])
|
||||
fi
|
||||
AC_CHECK_HEADERS(pthread.h)
|
||||
|
||||
if test "x$WITH_VAMP" = "xyes"; then
|
||||
PKG_CHECK_MODULES([Vamp],[vamp-sdk])
|
||||
fi
|
||||
AC_SUBST(Vamp_CFLAGS)
|
||||
AC_SUBST(Vamp_LIBS)
|
||||
|
||||
changequote(,)dnl
|
||||
if test "x$GCC" = "xyes"; then
|
||||
case " $CFLAGS " in
|
||||
*[\ \ ]-fPIC\ -Wall[\ \ ]*) ;;
|
||||
*) CFLAGS="$CFLAGS -fPIC -Wall" ;;
|
||||
esac
|
||||
case " $CXXFLAGS " in
|
||||
*[\ \ ]-fPIC\ -Wall[\ \ ]*) ;;
|
||||
*) CXXFLAGS="$CXXFLAGS -fPIC -Wall" ;;
|
||||
esac
|
||||
fi
|
||||
changequote([,])dnl
|
||||
|
||||
AC_CONFIG_FILES([Makefile])
|
||||
AC_OUTPUT
|
||||
|
||||
19
cross/ios-simulator.txt
Normal file
19
cross/ios-simulator.txt
Normal file
@@ -0,0 +1,19 @@
|
||||
[constants]
|
||||
sysroot = '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk'
|
||||
common_args = [ '-isysroot', sysroot, '-arch', 'x86_64', '-mios-version-min=8' ]
|
||||
|
||||
[host_machine]
|
||||
cpu_family = 'x86_64'
|
||||
cpu = 'x86_64'
|
||||
system = 'darwin'
|
||||
endian = 'little'
|
||||
|
||||
[binaries]
|
||||
c = 'cc'
|
||||
cpp = 'c++'
|
||||
strip = 'strip'
|
||||
|
||||
[built-in options]
|
||||
c_args = common_args
|
||||
cpp_args = common_args + [ '-stdlib=libc++' ]
|
||||
cpp_link_args = cpp_args
|
||||
20
cross/ios.txt
Normal file
20
cross/ios.txt
Normal file
@@ -0,0 +1,20 @@
|
||||
[constants]
|
||||
sysroot = '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk'
|
||||
common_args = [ '-isysroot', sysroot, '-arch', 'arm64', '-arch', 'armv7', '-mios-version-min=8' ]
|
||||
|
||||
[host_machine]
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'aarch64'
|
||||
system = 'darwin'
|
||||
endian = 'little'
|
||||
|
||||
[binaries]
|
||||
c = 'cc'
|
||||
cpp = 'c++'
|
||||
strip = 'strip'
|
||||
|
||||
[built-in options]
|
||||
b_bitcode = true
|
||||
c_args = common_args
|
||||
cpp_args = common_args + [ '-stdlib=libc++' ]
|
||||
cpp_link_args = cpp_args
|
||||
20
cross/macos-arm64.txt
Normal file
20
cross/macos-arm64.txt
Normal file
@@ -0,0 +1,20 @@
|
||||
[host_machine]
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'aarch64'
|
||||
system = 'darwin'
|
||||
endian = 'little'
|
||||
|
||||
[properties]
|
||||
needs_exe_wrapper = false
|
||||
|
||||
[binaries]
|
||||
c = 'cc'
|
||||
cpp = 'c++'
|
||||
strip = 'strip'
|
||||
|
||||
[built-in options]
|
||||
c_args = ['-arch', 'arm64']
|
||||
cpp_args = ['-arch', 'arm64']
|
||||
cpp_link_args = ['-arch', 'arm64']
|
||||
|
||||
|
||||
20
cross/macos-universal.txt
Normal file
20
cross/macos-universal.txt
Normal file
@@ -0,0 +1,20 @@
|
||||
[host_machine]
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'aarch64'
|
||||
system = 'darwin'
|
||||
endian = 'little'
|
||||
|
||||
[properties]
|
||||
needs_exe_wrapper = false
|
||||
|
||||
[binaries]
|
||||
c = 'cc'
|
||||
cpp = 'c++'
|
||||
strip = 'strip'
|
||||
|
||||
[built-in options]
|
||||
c_args = ['-arch', 'arm64', '-arch', 'x86_64']
|
||||
cpp_args = ['-arch', 'arm64', '-arch', 'x86_64']
|
||||
cpp_link_args = ['-arch', 'arm64', '-arch', 'x86_64']
|
||||
|
||||
|
||||
19
cross/macos-x86_64.txt
Normal file
19
cross/macos-x86_64.txt
Normal file
@@ -0,0 +1,19 @@
|
||||
[host_machine]
|
||||
cpu_family = 'x86_64'
|
||||
cpu = 'x86_64'
|
||||
system = 'darwin'
|
||||
endian = 'little'
|
||||
|
||||
[properties]
|
||||
needs_exe_wrapper = false
|
||||
|
||||
[binaries]
|
||||
c = 'cc'
|
||||
cpp = 'c++'
|
||||
strip = 'strip'
|
||||
|
||||
[built-in options]
|
||||
c_args = ['-arch', 'x86_64']
|
||||
cpp_args = ['-arch', 'x86_64']
|
||||
cpp_link_args = ['-arch', 'x86_64']
|
||||
|
||||
9
cross/windows-cl.txt
Normal file
9
cross/windows-cl.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
|
||||
[properties]
|
||||
needs_exe_wrapper = false
|
||||
|
||||
[binaries]
|
||||
c = 'cl'
|
||||
cpp = 'cl'
|
||||
|
||||
|
||||
9
cross/windows-clang.txt
Normal file
9
cross/windows-clang.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
|
||||
[properties]
|
||||
needs_exe_wrapper = false
|
||||
|
||||
[binaries]
|
||||
c = 'clang'
|
||||
cpp = 'clang++'
|
||||
|
||||
|
||||
41
dotnet/README.md
Normal file
41
dotnet/README.md
Normal file
@@ -0,0 +1,41 @@
|
||||
|
||||
This directory contains a .NET interface for Rubber Band Library,
|
||||
generously contributed by Jonathan Gilbert under a BSD-like
|
||||
licence. The directory `rubberband-sharp` contains a managed-code
|
||||
interface to Rubber Band in C#. It loads and uses the DLL defined in
|
||||
`rubberband-dll`, that wraps the Rubber Band Library with an API
|
||||
understood by the `rubberband-sharp` code.
|
||||
|
||||
If you make use of this interface, please ensure you comply with the
|
||||
terms of its licence, in addition to the GPL licence accompanying
|
||||
Rubber Band Library itself:
|
||||
|
||||
```
|
||||
[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.
|
||||
```
|
||||
@@ -22,32 +22,33 @@
|
||||
<ProjectGuid>{32C11C5C-3D27-4E57-B72C-161A48AAA95E}</ProjectGuid>
|
||||
<RootNamespace>rubberbanddll</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
@@ -91,7 +92,7 @@
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_DEBUG;RUBBERBANDDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)rubberband;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)\..\rubberband;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@@ -109,7 +110,7 @@
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;RUBBERBANDDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)rubberband;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)\..\rubberband;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@@ -129,7 +130,7 @@
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;RUBBERBANDDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)rubberband;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)\..\rubberband;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@@ -151,7 +152,7 @@
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;RUBBERBANDDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)rubberband;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)\..\rubberband;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@@ -22,23 +22,24 @@
|
||||
<ProjectGuid>{020CEB11-EF4E-400E-971D-A35DB69D7CF9}</ProjectGuid>
|
||||
<RootNamespace>rubberband-library</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
@@ -63,6 +64,7 @@
|
||||
<OutDir>Debug\</OutDir>
|
||||
<IntDir>Debug\</IntDir>
|
||||
<EnableManagedIncrementalBuild>true</EnableManagedIncrementalBuild>
|
||||
<SourcePath>$(SourcePath)</SourcePath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<EnableManagedIncrementalBuild>true</EnableManagedIncrementalBuild>
|
||||
@@ -74,7 +76,7 @@
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>.;.\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..;..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>__MSVC__;WIN32;_DEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_KISSFFT;USE_SPEEX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
@@ -88,7 +90,7 @@
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>.;.\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..;..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>__MSVC__;WIN32;_DEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_KISSFFT;USE_SPEEX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
@@ -106,7 +108,7 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<AdditionalIncludeDirectories>.;.\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..;..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>__MSVC__;WIN32;NDEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_KISSFFT;NO_TIMING;USE_SPEEX;NO_THREAD_CHECKS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
@@ -124,7 +126,7 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<AdditionalIncludeDirectories>.;.\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..;..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>__MSVC__;WIN32;NDEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_KISSFFT;NO_TIMING;USE_SPEEX;NO_THREAD_CHECKS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
@@ -137,57 +139,57 @@
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="rubberband\rubberband-c.h" />
|
||||
<ClInclude Include="rubberband\RubberBandStretcher.h" />
|
||||
<ClInclude Include="src\audiocurves\CompoundAudioCurve.h" />
|
||||
<ClInclude Include="src\audiocurves\ConstantAudioCurve.h" />
|
||||
<ClInclude Include="src\audiocurves\HighFrequencyAudioCurve.h" />
|
||||
<ClInclude Include="src\audiocurves\PercussiveAudioCurve.h" />
|
||||
<ClInclude Include="src\audiocurves\SilentAudioCurve.h" />
|
||||
<ClInclude Include="src\audiocurves\SpectralDifferenceAudioCurve.h" />
|
||||
<ClInclude Include="src\base\Profiler.h" />
|
||||
<ClInclude Include="src\base\RingBuffer.h" />
|
||||
<ClInclude Include="src\base\Scavenger.h" />
|
||||
<ClInclude Include="src\dsp\AudioCurveCalculator.h" />
|
||||
<ClInclude Include="src\dsp\FFT.h" />
|
||||
<ClInclude Include="src\dsp\MovingMedian.h" />
|
||||
<ClInclude Include="src\dsp\Resampler.h" />
|
||||
<ClInclude Include="src\dsp\SampleFilter.h" />
|
||||
<ClInclude Include="src\dsp\SincWindow.h" />
|
||||
<ClInclude Include="src\dsp\Window.h" />
|
||||
<ClInclude Include="src\float_cast\float_cast.h" />
|
||||
<ClInclude Include="src\speex\speex_resampler.h" />
|
||||
<ClInclude Include="src\StretchCalculator.h" />
|
||||
<ClInclude Include="src\StretcherChannelData.h" />
|
||||
<ClInclude Include="src\StretcherImpl.h" />
|
||||
<ClInclude Include="src\system\Allocators.h" />
|
||||
<ClInclude Include="src\system\sysutils.h" />
|
||||
<ClInclude Include="src\system\Thread.h" />
|
||||
<ClInclude Include="src\system\VectorOps.h" />
|
||||
<ClInclude Include="..\rubberband\rubberband-c.h" />
|
||||
<ClInclude Include="..\rubberband\RubberBandStretcher.h" />
|
||||
<ClInclude Include="..\src\audiocurves\CompoundAudioCurve.h" />
|
||||
<ClInclude Include="..\src\audiocurves\ConstantAudioCurve.h" />
|
||||
<ClInclude Include="..\src\audiocurves\HighFrequencyAudioCurve.h" />
|
||||
<ClInclude Include="..\src\audiocurves\PercussiveAudioCurve.h" />
|
||||
<ClInclude Include="..\src\audiocurves\SilentAudioCurve.h" />
|
||||
<ClInclude Include="..\src\audiocurves\SpectralDifferenceAudioCurve.h" />
|
||||
<ClInclude Include="..\src\base\Profiler.h" />
|
||||
<ClInclude Include="..\src\base\RingBuffer.h" />
|
||||
<ClInclude Include="..\src\base\Scavenger.h" />
|
||||
<ClInclude Include="..\src\dsp\AudioCurveCalculator.h" />
|
||||
<ClInclude Include="..\src\dsp\FFT.h" />
|
||||
<ClInclude Include="..\src\dsp\MovingMedian.h" />
|
||||
<ClInclude Include="..\src\dsp\Resampler.h" />
|
||||
<ClInclude Include="..\src\dsp\SampleFilter.h" />
|
||||
<ClInclude Include="..\src\dsp\SincWindow.h" />
|
||||
<ClInclude Include="..\src\dsp\Window.h" />
|
||||
<ClInclude Include="..\src\float_cast\float_cast.h" />
|
||||
<ClInclude Include="..\src\speex\speex_resampler.h" />
|
||||
<ClInclude Include="..\src\StretchCalculator.h" />
|
||||
<ClInclude Include="..\src\StretcherChannelData.h" />
|
||||
<ClInclude Include="..\src\StretcherImpl.h" />
|
||||
<ClInclude Include="..\src\system\Allocators.h" />
|
||||
<ClInclude Include="..\src\system\sysutils.h" />
|
||||
<ClInclude Include="..\src\system\Thread.h" />
|
||||
<ClInclude Include="..\src\system\VectorOps.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="src\audiocurves\CompoundAudioCurve.cpp" />
|
||||
<ClCompile Include="src\audiocurves\ConstantAudioCurve.cpp" />
|
||||
<ClCompile Include="src\audiocurves\HighFrequencyAudioCurve.cpp" />
|
||||
<ClCompile Include="src\audiocurves\PercussiveAudioCurve.cpp" />
|
||||
<ClCompile Include="src\audiocurves\SilentAudioCurve.cpp" />
|
||||
<ClCompile Include="src\audiocurves\SpectralDifferenceAudioCurve.cpp" />
|
||||
<ClCompile Include="src\base\Profiler.cpp" />
|
||||
<ClCompile Include="src\dsp\AudioCurveCalculator.cpp" />
|
||||
<ClCompile Include="src\dsp\FFT.cpp" />
|
||||
<ClCompile Include="src\dsp\Resampler.cpp" />
|
||||
<ClCompile Include="src\kissfft\kiss_fft.c" />
|
||||
<ClCompile Include="src\kissfft\kiss_fftr.c" />
|
||||
<ClCompile Include="src\rubberband-c.cpp" />
|
||||
<ClCompile Include="src\RubberBandStretcher.cpp" />
|
||||
<ClCompile Include="src\speex\resample.c" />
|
||||
<ClCompile Include="src\StretchCalculator.cpp" />
|
||||
<ClCompile Include="src\StretcherChannelData.cpp" />
|
||||
<ClCompile Include="src\StretcherImpl.cpp" />
|
||||
<ClCompile Include="src\StretcherProcess.cpp" />
|
||||
<ClCompile Include="src\system\Allocators.cpp" />
|
||||
<ClCompile Include="src\system\sysutils.cpp" />
|
||||
<ClCompile Include="src\system\Thread.cpp" />
|
||||
<ClCompile Include="..\src\audiocurves\CompoundAudioCurve.cpp" />
|
||||
<ClCompile Include="..\src\audiocurves\ConstantAudioCurve.cpp" />
|
||||
<ClCompile Include="..\src\audiocurves\HighFrequencyAudioCurve.cpp" />
|
||||
<ClCompile Include="..\src\audiocurves\PercussiveAudioCurve.cpp" />
|
||||
<ClCompile Include="..\src\audiocurves\SilentAudioCurve.cpp" />
|
||||
<ClCompile Include="..\src\audiocurves\SpectralDifferenceAudioCurve.cpp" />
|
||||
<ClCompile Include="..\src\base\Profiler.cpp" />
|
||||
<ClCompile Include="..\src\dsp\AudioCurveCalculator.cpp" />
|
||||
<ClCompile Include="..\src\dsp\FFT.cpp" />
|
||||
<ClCompile Include="..\src\dsp\Resampler.cpp" />
|
||||
<ClCompile Include="..\src\kissfft\kiss_fft.c" />
|
||||
<ClCompile Include="..\src\kissfft\kiss_fftr.c" />
|
||||
<ClCompile Include="..\src\rubberband-c.cpp" />
|
||||
<ClCompile Include="..\src\RubberBandStretcher.cpp" />
|
||||
<ClCompile Include="..\src\speex\resample.c" />
|
||||
<ClCompile Include="..\src\StretchCalculator.cpp" />
|
||||
<ClCompile Include="..\src\StretcherChannelData.cpp" />
|
||||
<ClCompile Include="..\src\StretcherImpl.cpp" />
|
||||
<ClCompile Include="..\src\StretcherProcess.cpp" />
|
||||
<ClCompile Include="..\src\system\Allocators.cpp" />
|
||||
<ClCompile Include="..\src\system\sysutils.cpp" />
|
||||
<ClCompile Include="..\src\system\Thread.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
@@ -1,15 +1,10 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 14
|
||||
VisualStudioVersion = 14.0.25420.1
|
||||
# Visual Studio Version 16
|
||||
VisualStudioVersion = 16.0.31005.135
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rubberband-library", "rubberband-library.vcxproj", "{020CEB11-EF4E-400E-971D-A35DB69D7CF9}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rubberband-program", "rubberband-program.vcxproj", "{06838307-FEAA-4DB0-8E08-AF19698E9C40}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{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}
|
||||
@@ -30,32 +25,26 @@ Global
|
||||
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|Any CPU.ActiveCfg = Debug|x64
|
||||
{020CEB11-EF4E-400E-971D-A35DB69D7CF9}.Debug|Any CPU.Build.0 = Debug|x64
|
||||
{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|Any CPU.Build.0 = 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|Any CPU.ActiveCfg = Debug|x64
|
||||
{32C11C5C-3D27-4E57-B72C-161A48AAA95E}.Debug|Any CPU.Build.0 = Debug|x64
|
||||
{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|Any CPU.Build.0 = 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
|
||||
@@ -76,4 +65,7 @@ Global
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {3CFE825B-BD44-4909-B002-AFE8DA45D614}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -54,6 +54,7 @@ using RubberBand::gettimeofday;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
using RubberBand::usleep;
|
||||
#define strdup _strdup
|
||||
#endif
|
||||
|
||||
double tempo_convert(const char *str)
|
||||
|
||||
541
meson.build
Normal file
541
meson.build
Normal file
@@ -0,0 +1,541 @@
|
||||
|
||||
project(
|
||||
'Rubber Band Library',
|
||||
'c', 'cpp',
|
||||
version: '1.9.0',
|
||||
license: 'GPL-2.0-or-later',
|
||||
default_options: [
|
||||
# All Rubber Band code is actually C++98, but some compilers no
|
||||
# longer support that
|
||||
'cpp_std=c++14',
|
||||
'buildtype=release',
|
||||
'b_ndebug=if-release',
|
||||
'b_lundef=true',
|
||||
],
|
||||
meson_version: '>= 0.53.0'
|
||||
)
|
||||
|
||||
rubberband_dynamic_library_version = '2.1.2'
|
||||
|
||||
system = build_machine.system()
|
||||
architecture = host_machine.cpu_family()
|
||||
cpp = meson.get_compiler('cpp')
|
||||
|
||||
pkg = import('pkgconfig')
|
||||
|
||||
|
||||
# Define the project source sets
|
||||
|
||||
public_headers = [
|
||||
'rubberband/rubberband-c.h',
|
||||
'rubberband/RubberBandStretcher.h',
|
||||
]
|
||||
|
||||
library_sources = [
|
||||
'src/rubberband-c.cpp',
|
||||
'src/RubberBandStretcher.cpp',
|
||||
'src/StretcherProcess.cpp',
|
||||
'src/StretchCalculator.cpp',
|
||||
'src/base/Profiler.cpp',
|
||||
'src/dsp/AudioCurveCalculator.cpp',
|
||||
'src/audiocurves/CompoundAudioCurve.cpp',
|
||||
'src/audiocurves/SpectralDifferenceAudioCurve.cpp',
|
||||
'src/audiocurves/HighFrequencyAudioCurve.cpp',
|
||||
'src/audiocurves/SilentAudioCurve.cpp',
|
||||
'src/audiocurves/ConstantAudioCurve.cpp',
|
||||
'src/audiocurves/PercussiveAudioCurve.cpp',
|
||||
'src/dsp/Resampler.cpp',
|
||||
'src/dsp/FFT.cpp',
|
||||
'src/system/Allocators.cpp',
|
||||
'src/system/sysutils.cpp',
|
||||
'src/system/Thread.cpp',
|
||||
'src/StretcherChannelData.cpp',
|
||||
'src/StretcherImpl.cpp',
|
||||
]
|
||||
|
||||
jni_sources = [
|
||||
'src/jni/RubberBandStretcherJNI.cpp',
|
||||
]
|
||||
|
||||
java_sources = [
|
||||
'com/breakfastquay/rubberband/RubberBandStretcher.java',
|
||||
]
|
||||
|
||||
program_sources = [
|
||||
'main/main.cpp',
|
||||
]
|
||||
|
||||
if system == 'windows'
|
||||
program_sources += [
|
||||
'src/getopt/getopt.c',
|
||||
'src/getopt/getopt_long.c'
|
||||
]
|
||||
endif
|
||||
|
||||
vamp_sources = [
|
||||
'vamp/RubberBandVampPlugin.cpp',
|
||||
'vamp/libmain.cpp',
|
||||
]
|
||||
|
||||
ladspa_sources = [
|
||||
'ladspa/RubberBandPitchShifter.cpp',
|
||||
'ladspa/libmain.cpp',
|
||||
]
|
||||
|
||||
general_include_dirs = [
|
||||
'rubberband',
|
||||
'src',
|
||||
]
|
||||
|
||||
|
||||
# Scan for any dependencies we may use later; all are optional
|
||||
|
||||
fftw3_dep = dependency('fftw3', version: '>= 3.0.0', required: false)
|
||||
samplerate_dep = dependency('samplerate', version: '>= 0.1.8', required: false)
|
||||
sndfile_dep = dependency('sndfile', version: '>= 1.0.16', required: false)
|
||||
vamp_dep = dependency('vamp-sdk', version: '>= 2.9', required: false)
|
||||
thread_dep = dependency('threads')
|
||||
have_ladspa = cpp.has_header('ladspa.h')
|
||||
|
||||
|
||||
# Check FFT and resampler options and set up dependencies and paths
|
||||
|
||||
feature_dependencies = []
|
||||
feature_defines = []
|
||||
feature_libraries = []
|
||||
feature_sources = []
|
||||
pkgconfig_requirements = []
|
||||
arch_flags = []
|
||||
|
||||
config_summary = {}
|
||||
target_summary = {}
|
||||
|
||||
resampler = get_option('resampler')
|
||||
fft = get_option('fft')
|
||||
ipp_path = get_option('ipp_path')
|
||||
ipp_needed = false
|
||||
|
||||
if fft == 'auto'
|
||||
if system == 'darwin'
|
||||
fft = 'vdsp'
|
||||
else
|
||||
fft = 'kissfft'
|
||||
endif
|
||||
endif
|
||||
|
||||
if resampler == 'auto'
|
||||
if samplerate_dep.found()
|
||||
resampler = 'libsamplerate'
|
||||
else
|
||||
resampler = 'speex'
|
||||
endif
|
||||
endif
|
||||
|
||||
extra_include_args = []
|
||||
foreach d: get_option('extra_include_dirs')
|
||||
extra_include_args += [ '-I' + d ]
|
||||
endforeach
|
||||
|
||||
if fft == 'kissfft'
|
||||
config_summary += { 'FFT': 'KissFFT' }
|
||||
message('For FFT: using KissFFT')
|
||||
if fftw3_dep.found()
|
||||
message('(to use FFTW instead, reconfigure with -Dfft=fftw)')
|
||||
endif
|
||||
feature_sources += ['src/kissfft/kiss_fft.c', 'src/kissfft/kiss_fftr.c']
|
||||
feature_defines += ['-DUSE_KISSFFT']
|
||||
|
||||
elif fft == 'fftw'
|
||||
if fftw3_dep.found()
|
||||
config_summary += { 'FFT': 'FFTW' }
|
||||
message('For FFT: using FFTW')
|
||||
pkgconfig_requirements += fftw3_dep
|
||||
else
|
||||
fftw_dep = cpp.find_library('fftw3',
|
||||
dirs: get_option('extra_lib_dirs'),
|
||||
has_headers: ['fftw3.h'],
|
||||
header_args: extra_include_args,
|
||||
required: true)
|
||||
endif
|
||||
feature_dependencies += fftw3_dep
|
||||
feature_defines += ['-DHAVE_FFTW3', '-DFFTW_DOUBLE_ONLY']
|
||||
|
||||
elif fft == 'vdsp'
|
||||
config_summary += { 'FFT': 'vDSP' }
|
||||
message('For FFT: using vDSP')
|
||||
feature_defines += ['-DHAVE_VDSP']
|
||||
feature_libraries += ['-framework', 'Accelerate']
|
||||
|
||||
elif fft == 'ipp'
|
||||
if ipp_path != ''
|
||||
config_summary += { 'FFT': 'Intel IPP' }
|
||||
message('For FFT: using IPP')
|
||||
message('IPP path defined as ' + ipp_path)
|
||||
else
|
||||
error('For FFT: IPP selected, but ipp_path not specified')
|
||||
endif
|
||||
ipp_needed = true
|
||||
|
||||
else
|
||||
error('Unknown or unsupported FFT option: ' + fft)
|
||||
|
||||
endif # fft
|
||||
|
||||
if resampler == 'libsamplerate'
|
||||
if samplerate_dep.found()
|
||||
config_summary += { 'Resampler': 'libsamplerate' }
|
||||
message('For resampler: using libsamplerate')
|
||||
pkgconfig_requirements += samplerate_dep
|
||||
else
|
||||
samplerate_dep = cpp.find_library('samplerate',
|
||||
dirs: get_option('extra_lib_dirs'),
|
||||
has_headers: ['samplerate.h'],
|
||||
header_args: extra_include_args,
|
||||
required: true)
|
||||
endif
|
||||
feature_dependencies += samplerate_dep
|
||||
feature_defines += ['-DHAVE_LIBSAMPLERATE']
|
||||
|
||||
elif resampler == 'speex'
|
||||
config_summary += { 'Resampler': 'Speex' }
|
||||
message('For resampler: using Speex')
|
||||
message('(consider libsamplerate if time-varying pitch shift is required)')
|
||||
feature_sources += ['src/speex/resample.c']
|
||||
feature_defines += ['-DUSE_SPEEX']
|
||||
|
||||
elif resampler == 'ipp'
|
||||
if ipp_path != ''
|
||||
config_summary += { 'Resampler': 'Intel IPP' }
|
||||
message('For resampler: using IPP')
|
||||
message('(consider libsamplerate if time-varying pitch shift is required)')
|
||||
message('IPP path defined as ' + ipp_path)
|
||||
else
|
||||
error('For resampler: IPP selected, but ipp_path not specified')
|
||||
endif
|
||||
ipp_needed = true
|
||||
|
||||
else
|
||||
error('Unknown or unsupported resampler option: ' + resampler)
|
||||
|
||||
endif # resampler
|
||||
|
||||
if ipp_needed
|
||||
feature_defines += [
|
||||
'-DHAVE_IPP',
|
||||
'-DUSE_IPP_STATIC',
|
||||
'-I' + ipp_path / 'include'
|
||||
]
|
||||
if architecture == 'x86'
|
||||
feature_libraries += [
|
||||
'-L' + ipp_path / 'lib/ia32',
|
||||
]
|
||||
elif architecture == 'x86_64'
|
||||
feature_libraries += [
|
||||
'-L' + ipp_path / 'lib/intel64',
|
||||
]
|
||||
else
|
||||
error('IPP is not supported for this architecture')
|
||||
endif
|
||||
if system == 'windows'
|
||||
feature_libraries += [
|
||||
'-lippsmt', '-lippvmmt', '-lippcoremt',
|
||||
]
|
||||
elif system == 'linux'
|
||||
feature_libraries += [
|
||||
'-Wl,-Bstatic', '-lipps', '-lippvm', '-lippcore', '-Wl,-Bdynamic',
|
||||
]
|
||||
else
|
||||
feature_libraries += [
|
||||
'-lipps', '-lippvm', '-lippcore',
|
||||
]
|
||||
endif
|
||||
endif # ipp_needed
|
||||
|
||||
if not vamp_dep.found()
|
||||
vamp_dep = cpp.find_library('VampPluginSDK',
|
||||
dirs: get_option('extra_lib_dirs'),
|
||||
has_headers: ['vamp-sdk.h'],
|
||||
header_args: extra_include_args,
|
||||
required: false)
|
||||
if not vamp_dep.found()
|
||||
vamp_dep = cpp.find_library('vamp-sdk',
|
||||
dirs: get_option('extra_lib_dirs'),
|
||||
has_headers: ['vamp-sdk.h'],
|
||||
header_args: extra_include_args,
|
||||
required: false)
|
||||
endif
|
||||
endif
|
||||
have_vamp = vamp_dep.found()
|
||||
|
||||
if not sndfile_dep.found()
|
||||
sndfile_dep = cpp.find_library('sndfile',
|
||||
dirs: get_option('extra_lib_dirs'),
|
||||
has_headers: ['sndfile.h'],
|
||||
header_args: extra_include_args,
|
||||
required: false)
|
||||
if not sndfile_dep.found()
|
||||
sndfile_dep = cpp.find_library('sndfile-1',
|
||||
dirs: get_option('extra_lib_dirs'),
|
||||
has_headers: ['sndfile.h'],
|
||||
header_args: extra_include_args,
|
||||
required: false)
|
||||
endif
|
||||
endif
|
||||
have_sndfile = sndfile_dep.found()
|
||||
|
||||
|
||||
# General platform and compiler expectations
|
||||
|
||||
ladspa_symbol_args = []
|
||||
vamp_symbol_args = []
|
||||
|
||||
if get_option('buildtype').startswith('release')
|
||||
config_summary += { 'Build type': 'Release' }
|
||||
feature_defines += ['-DNO_THREAD_CHECKS', '-DNO_TIMING', '-DNDEBUG']
|
||||
else
|
||||
config_summary += { 'Build type': 'Debug' }
|
||||
endif
|
||||
|
||||
if system == 'darwin'
|
||||
feature_defines += ['-DUSE_PTHREADS', '-DMALLOC_IS_ALIGNED']
|
||||
ladspa_symbol_args += [
|
||||
'-exported_symbols_list', meson.source_root() / 'ladspa/ladspa-plugin.list'
|
||||
]
|
||||
vamp_symbol_args += [
|
||||
'-exported_symbols_list', meson.source_root() / 'vamp/vamp-plugin.list'
|
||||
]
|
||||
|
||||
have_version_min = false
|
||||
foreach arg: get_option('cpp_args')
|
||||
if arg.contains('version-min')
|
||||
have_version_min = true
|
||||
endif
|
||||
endforeach
|
||||
|
||||
if architecture == 'aarch64'
|
||||
mac_platform_arguments = [
|
||||
'-arch', 'arm64',
|
||||
]
|
||||
if not have_version_min
|
||||
mac_platform_arguments += [ '-mmacosx-version-min=11' ]
|
||||
endif
|
||||
elif architecture == 'x86_64'
|
||||
mac_platform_arguments = [
|
||||
'-arch', 'x86_64',
|
||||
]
|
||||
if not have_version_min
|
||||
mac_platform_arguments += [ '-mmacosx-version-min=10.13' ]
|
||||
endif
|
||||
else # begin architecture != 'aarch64' or 'x86_64'
|
||||
error('Build for architecture ' + architecture + ' is not supported on this platform')
|
||||
endif # end architecture
|
||||
|
||||
elif system == 'windows'
|
||||
feature_defines += ['-D_WIN32', '-DNOMINMAX', '-D_USE_MATH_DEFINES', '-DGETOPT_API=']
|
||||
if cpp.get_id() == 'msvc'
|
||||
ladspa_symbol_args += ['-EXPORT:ladspa_descriptor']
|
||||
vamp_symbol_args += ['-EXPORT:vampGetPluginDescriptor']
|
||||
endif
|
||||
|
||||
else # system not darwin or windows
|
||||
feature_defines += ['-DUSE_PTHREADS', '-DHAVE_POSIX_MEMALIGN']
|
||||
ladspa_symbol_args += [
|
||||
'-Wl,--version-script=' + meson.source_root() / 'ladspa/ladspa-plugin.map'
|
||||
]
|
||||
vamp_symbol_args += [
|
||||
'-Wl,--version-script=' + meson.source_root() / 'vamp/vamp-plugin.map'
|
||||
]
|
||||
endif # system
|
||||
|
||||
|
||||
general_include_dirs += get_option('extra_include_dirs')
|
||||
general_compile_args = [ arch_flags, feature_defines ]
|
||||
general_dependencies = [ feature_dependencies, thread_dep ]
|
||||
|
||||
if system == 'windows'
|
||||
if get_option('no_shared')
|
||||
rubberband_static_name = 'rubberband'
|
||||
else
|
||||
rubberband_static_name = 'rubberband-static'
|
||||
endif
|
||||
rubberband_dynamic_name = 'rubberband'
|
||||
rubberband_program_name = 'rubberband-program'
|
||||
rubberband_ladspa_name = 'ladspa-rubberband'
|
||||
rubberband_vamp_name = 'vamp-rubberband'
|
||||
# Meson likes libxxx.a even on Windows, and so might we for a
|
||||
# new library, but not here
|
||||
platform_static_name_prefix = ''
|
||||
platform_static_name_suffix = 'lib'
|
||||
else
|
||||
rubberband_static_name = 'rubberband'
|
||||
rubberband_dynamic_name = 'rubberband'
|
||||
rubberband_program_name = 'rubberband'
|
||||
rubberband_ladspa_name = 'ladspa-rubberband'
|
||||
rubberband_vamp_name = 'vamp-rubberband'
|
||||
platform_static_name_prefix = 'lib'
|
||||
platform_static_name_suffix = 'a'
|
||||
endif
|
||||
|
||||
|
||||
# And the build targets: Static and dynamic libraries, command-line
|
||||
# utility, LADSPA plugin, Vamp plugin
|
||||
|
||||
message('Will build Rubber Band Library static library')
|
||||
target_summary += { 'Static library': [ true, 'Name: ' + rubberband_static_name ] }
|
||||
rubberband_static = static_library(
|
||||
rubberband_static_name,
|
||||
library_sources,
|
||||
feature_sources,
|
||||
include_directories: general_include_dirs,
|
||||
cpp_args: general_compile_args,
|
||||
c_args: general_compile_args,
|
||||
dependencies: general_dependencies,
|
||||
name_prefix: platform_static_name_prefix,
|
||||
name_suffix: platform_static_name_suffix,
|
||||
pic: true,
|
||||
install: true,
|
||||
)
|
||||
|
||||
rubberband_static_dep = declare_dependency(
|
||||
link_with: rubberband_static,
|
||||
)
|
||||
|
||||
if not get_option('no_shared')
|
||||
target_summary += { 'Shared library': [ true, 'Name: ' + rubberband_dynamic_name ] }
|
||||
message('Will build Rubber Band Library shared library')
|
||||
rubberband_dynamic = shared_library(
|
||||
rubberband_dynamic_name,
|
||||
objects: rubberband_static.extract_all_objects(),
|
||||
link_args: [
|
||||
arch_flags,
|
||||
feature_libraries,
|
||||
],
|
||||
dependencies: general_dependencies,
|
||||
version: rubberband_dynamic_library_version,
|
||||
install: true,
|
||||
)
|
||||
else
|
||||
target_summary += { 'Shared library': false }
|
||||
message('Not building Rubber Band Library dynamic library: no_shared option set')
|
||||
endif
|
||||
|
||||
if have_ladspa
|
||||
target_summary += { 'LADSPA plugin': [ true, 'Name: ' + rubberband_ladspa_name ] }
|
||||
message('Will build LADSPA plugin')
|
||||
rubberband_ladspa = shared_library(
|
||||
rubberband_ladspa_name,
|
||||
ladspa_sources,
|
||||
include_directories: general_include_dirs,
|
||||
cpp_args: general_compile_args,
|
||||
c_args: general_compile_args,
|
||||
link_args: [
|
||||
arch_flags,
|
||||
feature_libraries,
|
||||
ladspa_symbol_args,
|
||||
],
|
||||
dependencies: [
|
||||
rubberband_static_dep,
|
||||
general_dependencies,
|
||||
],
|
||||
name_prefix: '',
|
||||
install: true,
|
||||
install_dir: get_option('libdir') / 'ladspa',
|
||||
)
|
||||
install_data(
|
||||
'ladspa/ladspa-rubberband.cat',
|
||||
install_dir: get_option('libdir') / 'ladspa',
|
||||
)
|
||||
install_data(
|
||||
'ladspa/ladspa-rubberband.rdf',
|
||||
install_dir: get_option('datadir') / 'ladspa/rdf',
|
||||
)
|
||||
else
|
||||
target_summary += { 'LADSPA plugin': false }
|
||||
message('Not building LADSPA plugin: ladspa.h header not found')
|
||||
endif
|
||||
|
||||
if have_vamp
|
||||
target_summary += { 'Vamp plugin': [ true, 'Name: ' + rubberband_vamp_name ] }
|
||||
message('Will build Vamp plugin')
|
||||
rubberband_vamp = shared_library(
|
||||
rubberband_vamp_name,
|
||||
vamp_sources,
|
||||
include_directories: general_include_dirs,
|
||||
cpp_args: general_compile_args,
|
||||
c_args: general_compile_args,
|
||||
link_args: [
|
||||
arch_flags,
|
||||
feature_libraries,
|
||||
vamp_symbol_args,
|
||||
],
|
||||
dependencies: [
|
||||
rubberband_static_dep,
|
||||
general_dependencies,
|
||||
vamp_dep,
|
||||
],
|
||||
name_prefix: '',
|
||||
install: true,
|
||||
install_dir: get_option('libdir') / 'vamp',
|
||||
)
|
||||
install_data(
|
||||
'vamp/vamp-rubberband.cat',
|
||||
install_dir: get_option('libdir') / 'vamp',
|
||||
)
|
||||
else
|
||||
target_summary += { 'Vamp plugin': false }
|
||||
message('Not building Vamp plugin: Vamp dependency not found')
|
||||
endif
|
||||
|
||||
if have_sndfile
|
||||
target_summary += { 'Command-line utility': [ true, 'Name: ' + rubberband_program_name ] }
|
||||
message('Will build command-line utility')
|
||||
rubberband_program = executable(
|
||||
rubberband_program_name,
|
||||
program_sources,
|
||||
include_directories: general_include_dirs,
|
||||
cpp_args: general_compile_args,
|
||||
c_args: general_compile_args,
|
||||
link_args: [
|
||||
arch_flags,
|
||||
feature_libraries,
|
||||
],
|
||||
dependencies: [
|
||||
rubberband_static_dep,
|
||||
general_dependencies,
|
||||
sndfile_dep,
|
||||
],
|
||||
install: true,
|
||||
)
|
||||
else
|
||||
target_summary += { 'Command-line utility': false }
|
||||
message('Not building command-line utility: libsndfile dependency not found')
|
||||
endif
|
||||
|
||||
pkg.generate(
|
||||
name: 'rubberband',
|
||||
description: 'Audio time-stretching and pitch-shifting library',
|
||||
url: 'https://breakfastquay.com/rubberband/',
|
||||
version: meson.project_version(),
|
||||
requires: pkgconfig_requirements,
|
||||
libraries: '-L${libdir} -lrubberband',
|
||||
extra_cflags: '-I${includedir}',
|
||||
)
|
||||
|
||||
summary({'prefix': get_option('prefix'),
|
||||
'bindir': get_option('bindir'),
|
||||
'libdir': get_option('libdir'),
|
||||
'datadir': get_option('datadir'),
|
||||
}, section: 'Directories')
|
||||
|
||||
summary(config_summary + { 'Architecture': architecture },
|
||||
section: 'Configuration', bool_yn: true)
|
||||
summary(target_summary, section: 'Build targets', bool_yn: true)
|
||||
|
||||
if system == 'darwin'
|
||||
foreach arg: get_option('cpp_args')
|
||||
if arg.contains('iPhone')
|
||||
summary({'Please note': 'You cannot legally distribute the Rubber Band Library\n in an iOS app on the App Store, unless you have first obtained a\n commercial licence.'}, section: '***')
|
||||
break
|
||||
endif
|
||||
endforeach
|
||||
endif
|
||||
33
meson_options.txt
Normal file
33
meson_options.txt
Normal file
@@ -0,0 +1,33 @@
|
||||
|
||||
option('fft',
|
||||
type: 'combo',
|
||||
choices: ['auto', 'kissfft', 'fftw', 'vdsp', 'ipp'],
|
||||
value: 'auto',
|
||||
description: 'FFT library to use. The default (auto) will use vDSP if available, KissFFT otherwise.')
|
||||
|
||||
option('resampler',
|
||||
type: 'combo',
|
||||
choices: ['auto', 'libsamplerate', 'speex', 'ipp'],
|
||||
value: 'auto',
|
||||
description: 'Resampler library to use. Recommended is libsamplerate. The default (auto) will use libsamplerate if available, speex otherwise.')
|
||||
|
||||
option('ipp_path',
|
||||
type: 'string',
|
||||
value: '',
|
||||
description: 'Path to Intel IPP libraries, if selected for any of the other options.')
|
||||
|
||||
option('extra_include_dirs',
|
||||
type: 'array',
|
||||
value: [],
|
||||
description: 'Additional local header directories to search for dependencies.')
|
||||
|
||||
option('extra_lib_dirs',
|
||||
type: 'array',
|
||||
value: [],
|
||||
description: 'Additional local library directories to search for dependencies.')
|
||||
|
||||
option('no_shared',
|
||||
type: 'boolean',
|
||||
value: 'false',
|
||||
description: 'Do not build shared libraries. On Windows this will also ensure that the static library is called simply rubberband.lib, not rubberband-static.lib as it is in the default build.')
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
|
||||
CXX := clang++
|
||||
CC := clang
|
||||
OPTFLAGS := -ffast-math -freciprocal-math -O3 -ftree-vectorize
|
||||
|
||||
OPTFLAGS := -DNDEBUG -ffast-math -freciprocal-math -O3 -ftree-vectorize
|
||||
|
||||
# For the device
|
||||
ARCHFLAGS_DEV := -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk -miphoneos-version-min=6 -stdlib=libc++ -arch armv7 -arch arm64 -fembed-bitcode
|
||||
@@ -19,7 +20,7 @@ CFLAGS_SIM := $(ARCHFLAGS_SIM) $(OPTFLAGS)
|
||||
|
||||
AR := ar
|
||||
LIPO := lipo
|
||||
MKDIR := mkdir
|
||||
MKDIR := mkdir -p
|
||||
|
||||
LIBNAME := librubberband
|
||||
|
||||
@@ -28,9 +29,7 @@ STATIC_TARGET_DEV := lib/$(LIBNAME).dev.a
|
||||
STATIC_TARGET_SIM := lib/$(LIBNAME).sim.a
|
||||
|
||||
default: lib $(STATIC_TARGET)
|
||||
|
||||
all: lib $(STATIC_TARGET)
|
||||
|
||||
static: lib $(STATIC_TARGET)
|
||||
|
||||
PUBLIC_INCLUDES := \
|
||||
@@ -137,9 +136,9 @@ distclean: clean
|
||||
rm -f $(STATIC_TARGET_DEV) $(STATIC_TARGET_SIM)
|
||||
|
||||
depend:
|
||||
touch Makefile.dev_depends Makefile.sim_depends
|
||||
makedepend -f Makefile.dev_depends -o.dev.o -Y $(LIBRARY_SOURCES)
|
||||
makedepend -f Makefile.sim_depends -o.sim.o -Y $(LIBRARY_SOURCES)
|
||||
touch otherbuilds/Makefile.dev_depends otherbuilds/Makefile.sim_depends
|
||||
makedepend -f otherbuilds/Makefile.dev_depends -o.dev.o -Y $(LIBRARY_SOURCES)
|
||||
makedepend -f otherbuilds/Makefile.sim_depends -o.sim.o -Y $(LIBRARY_SOURCES)
|
||||
|
||||
-include Makefile.dev_depends
|
||||
-include Makefile.sim_depends
|
||||
-include otherbuilds/Makefile.dev_depends
|
||||
-include otherbuilds/Makefile.sim_depends
|
||||
@@ -1,75 +1,25 @@
|
||||
|
||||
PREFIX := @prefix@
|
||||
CXX := @CXX@
|
||||
CC := @CC@
|
||||
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@
|
||||
CXX := g++
|
||||
CC := gcc
|
||||
|
||||
JNI_CXXFLAGS := -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux
|
||||
JAVAC := $(JAVA_HOME)/bin/javac
|
||||
JAR := $(JAVA_HOME)/bin/jar
|
||||
OPTFLAGS := -DNDEBUG -ffast-math -O3 -ftree-vectorize
|
||||
|
||||
LIBRARY_LIBS := @SRC_LIBS@ @FFTW_LIBS@
|
||||
PROGRAM_LIBS := @SNDFILE_LIBS@ $(LIBRARY_LIBS)
|
||||
VAMP_PLUGIN_LIBS := @Vamp_LIBS@ $(LIBRARY_LIBS)
|
||||
LADSPA_PLUGIN_LIBS := $(LIBRARY_LIBS)
|
||||
ARCHFLAGS :=
|
||||
|
||||
MKDIR := mkdir
|
||||
AR := ar
|
||||
CXXFLAGS := -std=c++98 $(ARCHFLAGS) $(OPTFLAGS) -I. -Isrc -Irubberband -DHAVE_LIBSAMPLERATE -DUSE_KISSFFT -DNO_THREAD_CHECKS -DUSE_PTHREADS -DNO_TIMING -DHAVE_POSIX_MEMALIGN -DNDEBUG
|
||||
|
||||
INSTALL_BINDIR := $(PREFIX)/bin
|
||||
INSTALL_INCDIR := $(PREFIX)/include/rubberband
|
||||
INSTALL_LIBDIR := $(PREFIX)/lib
|
||||
INSTALL_VAMPDIR := $(PREFIX)/lib/vamp
|
||||
INSTALL_LADSPADIR := $(PREFIX)/lib/ladspa
|
||||
INSTALL_LRDFDIR := $(PREFIX)/share/ladspa/rdf
|
||||
INSTALL_PKGDIR := $(PREFIX)/lib/pkgconfig
|
||||
CFLAGS := $(ARCHFLAGS) $(OPTFLAGS)
|
||||
|
||||
LIBNAME := librubberband
|
||||
JNINAME := librubberband-jni
|
||||
JARNAME := rubberband.jar
|
||||
AR := ar
|
||||
MKDIR := mkdir -p
|
||||
|
||||
DYNAMIC_EXTENSION := .so
|
||||
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
|
||||
LADSPA_LDFLAGS := -shared -Wl,-Bsymbolic -Wl,--version-script=ladspa/ladspa-plugin.map
|
||||
LIBNAME := librubberband
|
||||
|
||||
PROGRAM_TARGET := bin/rubberband
|
||||
STATIC_TARGET := lib/$(LIBNAME).a
|
||||
DYNAMIC_TARGET := lib/$(LIBNAME)$(DYNAMIC_EXTENSION)
|
||||
JNI_TARGET := lib/$(JNINAME)$(DYNAMIC_EXTENSION)
|
||||
JAR_TARGET := lib/$(JARNAME)
|
||||
VAMP_TARGET := lib/vamp-rubberband$(DYNAMIC_EXTENSION)
|
||||
LADSPA_TARGET := lib/ladspa-rubberband$(DYNAMIC_EXTENSION)
|
||||
STATIC_TARGET := lib/$(LIBNAME).a
|
||||
|
||||
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)
|
||||
jni: $(JNI_TARGET) $(JAR_TARGET)
|
||||
program: $(PROGRAM_TARGET)
|
||||
vamp: $(VAMP_TARGET)
|
||||
ladspa: $(LADSPA_TARGET)
|
||||
default: lib $(STATIC_TARGET)
|
||||
all: lib $(STATIC_TARGET)
|
||||
static: lib $(STATIC_TARGET)
|
||||
|
||||
PUBLIC_INCLUDES := \
|
||||
rubberband/rubberband-c.h \
|
||||
@@ -119,109 +69,27 @@ LIBRARY_SOURCES := \
|
||||
src/system/sysutils.cpp \
|
||||
src/system/Thread.cpp \
|
||||
src/StretcherChannelData.cpp \
|
||||
src/StretcherImpl.cpp
|
||||
|
||||
JNI_SOURCE := \
|
||||
src/jni/RubberBandStretcherJNI.cpp
|
||||
|
||||
JAVA_SOURCE := \
|
||||
com/breakfastquay/rubberband/RubberBandStretcher.java
|
||||
|
||||
PROGRAM_SOURCES := \
|
||||
main/main.cpp
|
||||
|
||||
VAMP_HEADERS := \
|
||||
vamp/RubberBandVampPlugin.h
|
||||
|
||||
VAMP_SOURCES := \
|
||||
vamp/RubberBandVampPlugin.cpp \
|
||||
vamp/libmain.cpp
|
||||
|
||||
LADSPA_HEADERS := \
|
||||
ladspa/RubberBandPitchShifter.h
|
||||
|
||||
LADSPA_SOURCES := \
|
||||
ladspa/RubberBandPitchShifter.cpp \
|
||||
ladspa/libmain.cpp
|
||||
src/StretcherImpl.cpp \
|
||||
src/kissfft/kiss_fft.c \
|
||||
src/kissfft/kiss_fftr.c
|
||||
|
||||
LIBRARY_OBJECTS := $(LIBRARY_SOURCES:.cpp=.o)
|
||||
LIBRARY_OBJECTS := $(LIBRARY_OBJECTS:.c=.o)
|
||||
JNI_OBJECT := $(JNI_SOURCE:.cpp=.o)
|
||||
JAVA_OBJECT := $(JAVA_SOURCE:.java=.class)
|
||||
PROGRAM_OBJECTS := $(PROGRAM_SOURCES:.cpp=.o)
|
||||
VAMP_OBJECTS := $(VAMP_SOURCES:.cpp=.o)
|
||||
LADSPA_OBJECTS := $(LADSPA_SOURCES:.cpp=.o)
|
||||
|
||||
$(PROGRAM_TARGET): $(LIBRARY_OBJECTS) $(PROGRAM_OBJECTS)
|
||||
$(CXX) -o $@ $^ $(PROGRAM_LIBS) $(LDFLAGS)
|
||||
|
||||
$(STATIC_TARGET): $(LIBRARY_OBJECTS)
|
||||
$(AR) rsc $@ $^
|
||||
|
||||
$(DYNAMIC_TARGET): $(LIBRARY_OBJECTS)
|
||||
$(CXX) $(DYNAMIC_LDFLAGS) $^ -o $@ $(LIBRARY_LIBS) $(LDFLAGS)
|
||||
|
||||
$(JNI_OBJECT): $(JNI_SOURCE)
|
||||
$(CXX) -c $(JNI_CXXFLAGS) $(CXXFLAGS) $^ -o $@
|
||||
|
||||
$(JNI_TARGET): $(LIBRARY_OBJECTS) $(JNI_OBJECT)
|
||||
$(CXX) $(DYNAMIC_LDFLAGS) $^ -o $@ $(LIBRARY_LIBS) $(LDFLAGS)
|
||||
|
||||
$(JAR_TARGET): $(JAVA_SOURCE)
|
||||
$(JAVAC) $^
|
||||
$(JAR) cvf $@ $(JAVA_OBJECT)
|
||||
|
||||
$(VAMP_TARGET): $(LIBRARY_OBJECTS) $(VAMP_OBJECTS)
|
||||
$(CXX) $(VAMP_LDFLAGS) -o $@ $^ $(VAMP_PLUGIN_LIBS) $(LDFLAGS)
|
||||
|
||||
$(LADSPA_TARGET): $(LIBRARY_OBJECTS) $(LADSPA_OBJECTS)
|
||||
$(CXX) $(LADSPA_LDFLAGS) -o $@ $^ $(LADSPA_PLUGIN_LIBS) $(LDFLAGS)
|
||||
|
||||
bin:
|
||||
$(MKDIR) $@
|
||||
lib:
|
||||
$(MKDIR) $@
|
||||
|
||||
install: all
|
||||
$(MKDIR) -p $(DESTDIR)$(INSTALL_INCDIR)
|
||||
$(MKDIR) -p $(DESTDIR)$(INSTALL_LIBDIR)
|
||||
$(MKDIR) -p $(DESTDIR)$(INSTALL_PKGDIR)
|
||||
cp -p $(PUBLIC_INCLUDES) $(DESTDIR)$(INSTALL_INCDIR)
|
||||
cp -p $(STATIC_TARGET) $(DESTDIR)$(INSTALL_LIBDIR)
|
||||
rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_ABI_VERSION)
|
||||
rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION)
|
||||
rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(JNINAME)$(DYNAMIC_EXTENSION)
|
||||
cp -p $(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)
|
||||
test -f $(JNI_TARGET) && cp -fp $(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 -p $(PROGRAM_TARGET) $(DESTDIR)$(INSTALL_BINDIR)
|
||||
endif
|
||||
ifeq ($(WITH_VAMP), yes)
|
||||
$(MKDIR) -p $(DESTDIR)$(INSTALL_VAMPDIR)
|
||||
cp -p $(VAMP_TARGET) $(DESTDIR)$(INSTALL_VAMPDIR)
|
||||
cp -p vamp/vamp-rubberband.cat $(DESTDIR)$(INSTALL_VAMPDIR)
|
||||
endif
|
||||
ifeq ($(WITH_LADSPA), yes)
|
||||
$(MKDIR) -p $(DESTDIR)$(INSTALL_LADSPADIR)
|
||||
$(MKDIR) -p $(DESTDIR)$(INSTALL_LRDFDIR)
|
||||
cp -p $(LADSPA_TARGET) $(DESTDIR)$(INSTALL_LADSPADIR)
|
||||
cp -p ladspa/ladspa-rubberband.cat $(DESTDIR)$(INSTALL_LADSPADIR)
|
||||
cp -p ladspa/ladspa-rubberband.rdf $(DESTDIR)$(INSTALL_LRDFDIR)
|
||||
endif
|
||||
|
||||
clean:
|
||||
rm -f $(LIBRARY_OBJECTS) $(JNI_OBJECT) $(JAVA_OBJECT) $(PROGRAM_OBJECTS) $(LADSPA_OBJECTS) $(VAMP_OBJECTS)
|
||||
rm -f $(LIBRARY_OBJECTS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(PROGRAM_TARGET) $(STATIC_TARGET) $(DYNAMIC_TARGET) $(JNI_TARGET) $(JAR_TARGET) $(VAMP_TARGET) $(LADSPA_TARGET)
|
||||
rm -f $(STATIC_TARGET)
|
||||
|
||||
depend:
|
||||
makedepend -Y $(LIBRARY_SOURCES) $(PROGRAM_SOURCES)
|
||||
makedepend -f otherbuilds/Makefile.linux -Y $(LIBRARY_SOURCES) $(PROGRAM_SOURCES)
|
||||
|
||||
|
||||
# DO NOT DELETE
|
||||
@@ -1,57 +1,25 @@
|
||||
|
||||
PREFIX := /usr/local
|
||||
CXX := clang++ -stdlib=libc++
|
||||
CC := clang
|
||||
|
||||
ARCHFLAGS := -mmacosx-version-min=10.7
|
||||
OPTFLAGS := -DNDEBUG -ffast-math -O3 -ftree-vectorize
|
||||
|
||||
ARCHFLAGS := -mmacosx-version-min=10.7
|
||||
|
||||
CXXFLAGS := $(ARCHFLAGS) $(OPTFLAGS) -I. -Isrc -Irubberband -I/usr/local/include -DUSE_PTHREADS -DMALLOC_IS_ALIGNED -DHAVE_VDSP -DUSE_SPEEX -DNO_THREAD_CHECKS -DNO_TIMING
|
||||
|
||||
CFLAGS := $(ARCHFLAGS) $(OPTFLAGS)
|
||||
LDFLAGS := $(ARCHFLAGS) -lpthread $(LDFLAGS)
|
||||
|
||||
LIBRARY_LIBS := -framework Accelerate
|
||||
PROGRAM_LIBS := -L$(PREFIX)/lib -lsndfile $(LIBRARY_LIBS)
|
||||
VAMP_PLUGIN_LIBS := -L$(PREFIX)/lib -lvamp-sdk $(LIBRARY_LIBS)
|
||||
LADSPA_PLUGIN_LIBS := $(LIBRARY_LIBS)
|
||||
AR := ar
|
||||
MKDIR := mkdir -p
|
||||
|
||||
MKDIR := mkdir
|
||||
AR := ar
|
||||
LIBNAME := librubberband
|
||||
|
||||
INSTALL_BINDIR := $(PREFIX)/bin
|
||||
INSTALL_INCDIR := $(PREFIX)/include/rubberband
|
||||
INSTALL_LIBDIR := $(PREFIX)/lib
|
||||
INSTALL_VAMPDIR := $(PREFIX)/lib/vamp
|
||||
INSTALL_LADSPADIR := $(PREFIX)/lib/ladspa
|
||||
INSTALL_LRDFDIR := $(PREFIX)/share/ladspa/rdf
|
||||
INSTALL_PKGDIR := $(PREFIX)/lib/pkgconfig
|
||||
|
||||
LIBNAME := librubberband
|
||||
|
||||
DYNAMIC_EXTENSION := .dylib
|
||||
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)
|
||||
VAMP_LDFLAGS := -dynamiclib -install_name vamp-rubberband.dylib -exported_symbols_list vamp/vamp-plugin.list
|
||||
LADSPA_LDFLAGS := -dynamiclib -install_name ladspa-rubberband.dylib -exported_symbols_list ladspa/ladspa-plugin.list
|
||||
|
||||
PROGRAM_TARGET := bin/rubberband
|
||||
STATIC_TARGET := lib/$(LIBNAME).a
|
||||
DYNAMIC_TARGET := lib/$(LIBNAME)$(DYNAMIC_EXTENSION)
|
||||
VAMP_TARGET := lib/vamp-rubberband$(DYNAMIC_EXTENSION)
|
||||
LADSPA_TARGET := lib/ladspa-rubberband$(DYNAMIC_EXTENSION)
|
||||
|
||||
default: bin lib $(STATIC_TARGET) $(DYNAMIC_TARGET) $(PROGRAM_TARGET)
|
||||
|
||||
all: bin lib $(STATIC_TARGET) $(DYNAMIC_TARGET) $(PROGRAM_TARGET) $(VAMP_TARGET) $(LADSPA_TARGET)
|
||||
STATIC_TARGET := lib/$(LIBNAME).a
|
||||
|
||||
default: lib $(STATIC_TARGET)
|
||||
all: lib $(STATIC_TARGET)
|
||||
static: lib $(STATIC_TARGET)
|
||||
dynamic: lib $(DYNAMIC_TARGET)
|
||||
library: static dynamic
|
||||
program: bin $(PROGRAM_TARGET)
|
||||
vamp: lib $(VAMP_TARGET)
|
||||
ladspa: lib $(LADSPA_TARGET)
|
||||
|
||||
PUBLIC_INCLUDES := \
|
||||
rubberband/rubberband-c.h \
|
||||
@@ -111,83 +79,24 @@ LIBRARY_INCLUDES := $(LIBRARY_INCLUDES) \
|
||||
LIBRARY_SOURCES := $(LIBRARY_SOURCES) \
|
||||
src/speex/resample.c
|
||||
|
||||
PROGRAM_SOURCES := \
|
||||
main/main.cpp
|
||||
|
||||
VAMP_HEADERS := \
|
||||
vamp/RubberBandVampPlugin.h
|
||||
|
||||
VAMP_SOURCES := \
|
||||
vamp/RubberBandVampPlugin.cpp \
|
||||
vamp/libmain.cpp
|
||||
|
||||
LADSPA_HEADERS := \
|
||||
ladspa/RubberBandPitchShifter.h
|
||||
|
||||
LADSPA_SOURCES := \
|
||||
ladspa/RubberBandPitchShifter.cpp \
|
||||
ladspa/libmain.cpp
|
||||
|
||||
LIBRARY_OBJECTS := $(LIBRARY_SOURCES:.cpp=.o)
|
||||
LIBRARY_OBJECTS := $(LIBRARY_OBJECTS:.c=.o)
|
||||
|
||||
PROGRAM_OBJECTS := $(PROGRAM_SOURCES:.cpp=.o)
|
||||
VAMP_OBJECTS := $(VAMP_SOURCES:.cpp=.o)
|
||||
LADSPA_OBJECTS := $(LADSPA_SOURCES:.cpp=.o)
|
||||
|
||||
$(PROGRAM_TARGET): $(LIBRARY_OBJECTS) $(PROGRAM_OBJECTS)
|
||||
$(CXX) -o $@ $^ $(PROGRAM_LIBS) $(LDFLAGS)
|
||||
|
||||
$(STATIC_TARGET): $(LIBRARY_OBJECTS)
|
||||
rm -f $@
|
||||
$(AR) rsc $@ $^
|
||||
|
||||
$(DYNAMIC_TARGET): $(LIBRARY_OBJECTS)
|
||||
$(CXX) $(DYNAMIC_LDFLAGS) $^ -o $@ $(LIBRARY_LIBS) $(LDFLAGS)
|
||||
|
||||
$(VAMP_TARGET): $(LIBRARY_OBJECTS) $(VAMP_OBJECTS)
|
||||
$(CXX) $(VAMP_LDFLAGS) -o $@ $^ $(VAMP_PLUGIN_LIBS) $(LDFLAGS)
|
||||
|
||||
$(LADSPA_TARGET): $(LIBRARY_OBJECTS) $(LADSPA_OBJECTS)
|
||||
$(CXX) $(LADSPA_LDFLAGS) -o $@ $^ $(LADSPA_PLUGIN_LIBS) $(LDFLAGS)
|
||||
|
||||
bin:
|
||||
$(MKDIR) $@
|
||||
lib:
|
||||
$(MKDIR) $@
|
||||
|
||||
install: default
|
||||
$(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_ABI_VERSION)$(DYNAMIC_EXTENSION)
|
||||
rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION)
|
||||
cp $(DYNAMIC_TARGET) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME).$(DYNAMIC_FULL_VERSION)$(DYNAMIC_EXTENSION)
|
||||
ln -s $(LIBNAME).$(DYNAMIC_FULL_VERSION)$(DYNAMIC_EXTENSION) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME).$(DYNAMIC_ABI_VERSION)$(DYNAMIC_EXTENSION)
|
||||
ln -s $(LIBNAME).$(DYNAMIC_FULL_VERSION)$(DYNAMIC_EXTENSION) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION)
|
||||
cp $(VAMP_TARGET) $(DESTDIR)$(INSTALL_VAMPDIR)
|
||||
cp vamp/vamp-rubberband.cat $(DESTDIR)$(INSTALL_VAMPDIR)
|
||||
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
|
||||
|
||||
clean:
|
||||
rm -f $(LIBRARY_OBJECTS) $(PROGRAM_OBJECTS) $(LADSPA_OBJECTS) $(VAMP_OBJECTS)
|
||||
rm -f $(LIBRARY_OBJECTS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(PROGRAM_TARGET) $(STATIC_TARGET) $(DYNAMIC_TARGET) $(VAMP_TARGET) $(LADSPA_TARGET)
|
||||
rm -f $(STATIC_TARGET)
|
||||
|
||||
depend:
|
||||
makedepend -f Makefile.osx -Y $(LIBRARY_SOURCES) $(PROGRAM_SOURCES)
|
||||
makedepend -f otherbuilds/Makefile.macos -Y $(LIBRARY_SOURCES) $(PROGRAM_SOURCES)
|
||||
|
||||
|
||||
# DO NOT DELETE
|
||||
@@ -1,57 +1,27 @@
|
||||
|
||||
PREFIX := /usr/local
|
||||
CXX := clang++ -stdlib=libc++
|
||||
CC := clang
|
||||
|
||||
OPTFLAGS := -DNDEBUG -ffast-math -O3 -ftree-vectorize
|
||||
|
||||
ARCHFLAGS := -arch arm64 -arch x86_64 -mmacosx-version-min=10.7
|
||||
OPTFLAGS := -DNDEBUG -ffast-math -O3
|
||||
|
||||
CXXFLAGS := $(ARCHFLAGS) $(OPTFLAGS) -I. -Isrc -Irubberband -I/usr/local/include -DUSE_PTHREADS -DMALLOC_IS_ALIGNED -DHAVE_VDSP -DUSE_SPEEX -DNO_THREAD_CHECKS -DNO_TIMING
|
||||
|
||||
CFLAGS := $(ARCHFLAGS) $(OPTFLAGS)
|
||||
LDFLAGS := $(ARCHFLAGS) -lpthread $(LDFLAGS)
|
||||
|
||||
LIBRARY_LIBS := -framework Accelerate
|
||||
PROGRAM_LIBS := -L$(PREFIX)/lib -lsndfile $(LIBRARY_LIBS)
|
||||
VAMP_PLUGIN_LIBS := -L$(PREFIX)/lib -lvamp-sdk $(LIBRARY_LIBS)
|
||||
LADSPA_PLUGIN_LIBS := $(LIBRARY_LIBS)
|
||||
|
||||
MKDIR := mkdir
|
||||
AR := ar
|
||||
|
||||
INSTALL_BINDIR := $(PREFIX)/bin
|
||||
INSTALL_INCDIR := $(PREFIX)/include/rubberband
|
||||
INSTALL_LIBDIR := $(PREFIX)/lib
|
||||
INSTALL_VAMPDIR := $(PREFIX)/lib/vamp
|
||||
INSTALL_LADSPADIR := $(PREFIX)/lib/ladspa
|
||||
INSTALL_LRDFDIR := $(PREFIX)/share/ladspa/rdf
|
||||
INSTALL_PKGDIR := $(PREFIX)/lib/pkgconfig
|
||||
MKDIR := mkdir
|
||||
|
||||
LIBNAME := librubberband
|
||||
|
||||
DYNAMIC_EXTENSION := .dylib
|
||||
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)
|
||||
VAMP_LDFLAGS := -dynamiclib -install_name vamp-rubberband.dylib -exported_symbols_list vamp/vamp-plugin.list
|
||||
LADSPA_LDFLAGS := -dynamiclib -install_name ladspa-rubberband.dylib -exported_symbols_list ladspa/ladspa-plugin.list
|
||||
|
||||
PROGRAM_TARGET := bin/rubberband
|
||||
STATIC_TARGET := lib/$(LIBNAME).a
|
||||
DYNAMIC_TARGET := lib/$(LIBNAME)$(DYNAMIC_EXTENSION)
|
||||
VAMP_TARGET := lib/vamp-rubberband$(DYNAMIC_EXTENSION)
|
||||
LADSPA_TARGET := lib/ladspa-rubberband$(DYNAMIC_EXTENSION)
|
||||
|
||||
default: bin lib $(STATIC_TARGET) $(DYNAMIC_TARGET) $(PROGRAM_TARGET)
|
||||
default: $(STATIC_TARGET)
|
||||
|
||||
all: bin lib $(STATIC_TARGET) $(DYNAMIC_TARGET) $(PROGRAM_TARGET) $(VAMP_TARGET) $(LADSPA_TARGET)
|
||||
all: $(STATIC_TARGET)
|
||||
|
||||
static: lib $(STATIC_TARGET)
|
||||
dynamic: lib $(DYNAMIC_TARGET)
|
||||
library: static dynamic
|
||||
program: bin $(PROGRAM_TARGET)
|
||||
vamp: lib $(VAMP_TARGET)
|
||||
ladspa: lib $(LADSPA_TARGET)
|
||||
static: $(STATIC_TARGET)
|
||||
|
||||
PUBLIC_INCLUDES := \
|
||||
rubberband/rubberband-c.h \
|
||||
@@ -111,83 +81,24 @@ LIBRARY_INCLUDES := $(LIBRARY_INCLUDES) \
|
||||
LIBRARY_SOURCES := $(LIBRARY_SOURCES) \
|
||||
src/speex/resample.c
|
||||
|
||||
PROGRAM_SOURCES := \
|
||||
main/main.cpp
|
||||
|
||||
VAMP_HEADERS := \
|
||||
vamp/RubberBandVampPlugin.h
|
||||
|
||||
VAMP_SOURCES := \
|
||||
vamp/RubberBandVampPlugin.cpp \
|
||||
vamp/libmain.cpp
|
||||
|
||||
LADSPA_HEADERS := \
|
||||
ladspa/RubberBandPitchShifter.h
|
||||
|
||||
LADSPA_SOURCES := \
|
||||
ladspa/RubberBandPitchShifter.cpp \
|
||||
ladspa/libmain.cpp
|
||||
|
||||
LIBRARY_OBJECTS := $(LIBRARY_SOURCES:.cpp=.o)
|
||||
LIBRARY_OBJECTS := $(LIBRARY_OBJECTS:.c=.o)
|
||||
|
||||
PROGRAM_OBJECTS := $(PROGRAM_SOURCES:.cpp=.o)
|
||||
VAMP_OBJECTS := $(VAMP_SOURCES:.cpp=.o)
|
||||
LADSPA_OBJECTS := $(LADSPA_SOURCES:.cpp=.o)
|
||||
|
||||
$(PROGRAM_TARGET): $(LIBRARY_OBJECTS) $(PROGRAM_OBJECTS)
|
||||
$(CXX) -o $@ $^ $(PROGRAM_LIBS) $(LDFLAGS)
|
||||
|
||||
$(STATIC_TARGET): $(LIBRARY_OBJECTS)
|
||||
rm -f $@
|
||||
$(AR) rsc $@ $^
|
||||
|
||||
$(DYNAMIC_TARGET): $(LIBRARY_OBJECTS)
|
||||
$(CXX) $(DYNAMIC_LDFLAGS) $^ -o $@ $(LIBRARY_LIBS) $(LDFLAGS)
|
||||
|
||||
$(VAMP_TARGET): $(LIBRARY_OBJECTS) $(VAMP_OBJECTS)
|
||||
$(CXX) $(VAMP_LDFLAGS) -o $@ $^ $(VAMP_PLUGIN_LIBS) $(LDFLAGS)
|
||||
|
||||
$(LADSPA_TARGET): $(LIBRARY_OBJECTS) $(LADSPA_OBJECTS)
|
||||
$(CXX) $(LADSPA_LDFLAGS) -o $@ $^ $(LADSPA_PLUGIN_LIBS) $(LDFLAGS)
|
||||
|
||||
bin:
|
||||
$(MKDIR) $@
|
||||
lib:
|
||||
$(MKDIR) $@
|
||||
|
||||
install: default
|
||||
$(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_ABI_VERSION)$(DYNAMIC_EXTENSION)
|
||||
rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION)
|
||||
cp $(DYNAMIC_TARGET) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME).$(DYNAMIC_FULL_VERSION)$(DYNAMIC_EXTENSION)
|
||||
ln -s $(LIBNAME).$(DYNAMIC_FULL_VERSION)$(DYNAMIC_EXTENSION) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME).$(DYNAMIC_ABI_VERSION)$(DYNAMIC_EXTENSION)
|
||||
ln -s $(LIBNAME).$(DYNAMIC_FULL_VERSION)$(DYNAMIC_EXTENSION) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION)
|
||||
cp $(VAMP_TARGET) $(DESTDIR)$(INSTALL_VAMPDIR)
|
||||
cp vamp/vamp-rubberband.cat $(DESTDIR)$(INSTALL_VAMPDIR)
|
||||
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
|
||||
|
||||
clean:
|
||||
rm -f $(LIBRARY_OBJECTS) $(PROGRAM_OBJECTS) $(LADSPA_OBJECTS) $(VAMP_OBJECTS)
|
||||
rm -f $(LIBRARY_OBJECTS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(PROGRAM_TARGET) $(STATIC_TARGET) $(DYNAMIC_TARGET) $(VAMP_TARGET) $(LADSPA_TARGET)
|
||||
rm -f $(STATIC_TARGET)
|
||||
|
||||
depend:
|
||||
makedepend -f Makefile.osx -Y $(LIBRARY_SOURCES) $(PROGRAM_SOURCES)
|
||||
makedepend -f otherbuilds/Makefile.macos-universal -Y $(LIBRARY_SOURCES) $(PROGRAM_SOURCES)
|
||||
|
||||
|
||||
# DO NOT DELETE
|
||||
13
otherbuilds/check.sh
Executable file
13
otherbuilds/check.sh
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
set -eu
|
||||
if [ ! -d /Applications ]; then
|
||||
make -f otherbuilds/Makefile.linux
|
||||
g++ main/main.cpp lib/librubberband.a -I. -Isrc -o test -lsndfile -lsamplerate -lpthread
|
||||
./test -V
|
||||
else
|
||||
make -f otherbuilds/Makefile.macos
|
||||
c++ main/main.cpp lib/librubberband.a -I. -Isrc -o test -lsndfile -lsamplerate -framework Accelerate
|
||||
./test -V
|
||||
make -f otherbuilds/Makefile.macos clean
|
||||
make -f otherbuilds/Makefile.ios
|
||||
fi
|
||||
@@ -19,26 +19,27 @@
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{06838307-FEAA-4DB0-8E08-AF19698E9C40}</ProjectGuid>
|
||||
<RootNamespace>rubberband-program</RootNamespace>
|
||||
<ProjectGuid>{020CEB11-EF4E-400E-971D-A35DB69D7CF9}</ProjectGuid>
|
||||
<RootNamespace>rubberband-library</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
@@ -62,67 +63,43 @@
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<OutDir>Debug\</OutDir>
|
||||
<IntDir>Debug\</IntDir>
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules />
|
||||
<CodeAnalysisRuleAssemblies />
|
||||
<EnableManagedIncrementalBuild>true</EnableManagedIncrementalBuild>
|
||||
<SourcePath>$(SourcePath)</SourcePath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules />
|
||||
<CodeAnalysisRuleAssemblies />
|
||||
<EnableManagedIncrementalBuild>true</EnableManagedIncrementalBuild>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<OutDir>Release\</OutDir>
|
||||
<IntDir>Release\</IntDir>
|
||||
<LinkIncremental />
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules />
|
||||
<CodeAnalysisRuleAssemblies />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental />
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules />
|
||||
<CodeAnalysisRuleAssemblies />
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>.;.\rubberband;.\src;C:\Program Files (x86)\Mega-Nerd\libsndfile\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>__MSVC__;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..;..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>__MSVC__;WIN32;_DEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_KISSFFT;USE_SPEEX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader />
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<WarningLevel>Level2</WarningLevel>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<ShowIncludes>false</ShowIncludes>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>.\Debug\rubberband-library.lib;C:\Program Files (x86)\Mega-Nerd\libsndfile\lib\libsndfile-1.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>.;.\rubberband;.\src;C:\Program Files\Mega-Nerd\libsndfile\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>__MSVC__;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..;..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>__MSVC__;WIN32;_DEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_KISSFFT;USE_SPEEX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<WarningLevel>Level2</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<ShowIncludes>false</ShowIncludes>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>.\x64\Debug\rubberband-library.lib;C:\Program Files\Mega-Nerd\libsndfile\lib\libsndfile-1.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
@@ -131,23 +108,16 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<AdditionalIncludeDirectories>.;.\rubberband;.\src;C:\Program Files (x86)\Mega-Nerd\libsndfile\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>__MSVC__;WIN32;NDEBUG;_CONSOLE;WANT_TIMING;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..;..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>__MSVC__;WIN32;NDEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_KISSFFT;NO_TIMING;USE_SPEEX;NO_THREAD_CHECKS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<PrecompiledHeader />
|
||||
<WarningLevel>Level2</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>.\Release\rubberband-library.lib;C:\Program Files (x86)\Mega-Nerd\libsndfile\lib\libsndfile-1.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
@@ -156,9 +126,10 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<AdditionalIncludeDirectories>.;.\rubberband;.\src;C:\Program Files\Mega-Nerd\libsndfile\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>__MSVC__;WIN32;NDEBUG;_CONSOLE;WANT_TIMING;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..;..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>__MSVC__;WIN32;NDEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_KISSFFT;NO_TIMING;USE_SPEEX;NO_THREAD_CHECKS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<PrecompiledHeader>
|
||||
@@ -166,28 +137,59 @@
|
||||
<WarningLevel>Level2</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>.\x64\Release\rubberband-library.lib;C:\Program Files\Mega-Nerd\libsndfile\lib\libsndfile-1.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="rubberband\RubberBandStretcher.h" />
|
||||
<ClInclude Include="src\float_cast\float_cast.h" />
|
||||
<ClInclude Include="src\getopt\getopt.h" />
|
||||
<ClInclude Include="src\getopt\unistd.h" />
|
||||
<ClInclude Include="..\rubberband\rubberband-c.h" />
|
||||
<ClInclude Include="..\rubberband\RubberBandStretcher.h" />
|
||||
<ClInclude Include="..\src\audiocurves\CompoundAudioCurve.h" />
|
||||
<ClInclude Include="..\src\audiocurves\ConstantAudioCurve.h" />
|
||||
<ClInclude Include="..\src\audiocurves\HighFrequencyAudioCurve.h" />
|
||||
<ClInclude Include="..\src\audiocurves\PercussiveAudioCurve.h" />
|
||||
<ClInclude Include="..\src\audiocurves\SilentAudioCurve.h" />
|
||||
<ClInclude Include="..\src\audiocurves\SpectralDifferenceAudioCurve.h" />
|
||||
<ClInclude Include="..\src\base\Profiler.h" />
|
||||
<ClInclude Include="..\src\base\RingBuffer.h" />
|
||||
<ClInclude Include="..\src\base\Scavenger.h" />
|
||||
<ClInclude Include="..\src\dsp\AudioCurveCalculator.h" />
|
||||
<ClInclude Include="..\src\dsp\FFT.h" />
|
||||
<ClInclude Include="..\src\dsp\MovingMedian.h" />
|
||||
<ClInclude Include="..\src\dsp\Resampler.h" />
|
||||
<ClInclude Include="..\src\dsp\SampleFilter.h" />
|
||||
<ClInclude Include="..\src\dsp\SincWindow.h" />
|
||||
<ClInclude Include="..\src\dsp\Window.h" />
|
||||
<ClInclude Include="..\src\float_cast\float_cast.h" />
|
||||
<ClInclude Include="..\src\speex\speex_resampler.h" />
|
||||
<ClInclude Include="..\src\StretchCalculator.h" />
|
||||
<ClInclude Include="..\src\StretcherChannelData.h" />
|
||||
<ClInclude Include="..\src\StretcherImpl.h" />
|
||||
<ClInclude Include="..\src\system\Allocators.h" />
|
||||
<ClInclude Include="..\src\system\sysutils.h" />
|
||||
<ClInclude Include="..\src\system\Thread.h" />
|
||||
<ClInclude Include="..\src\system\VectorOps.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="main\main.cpp" />
|
||||
<ClCompile Include="src\getopt\getopt.c" />
|
||||
<ClCompile Include="src\getopt\getopt_long.c" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="debug\BuildLog.htm" />
|
||||
<None Include="wub\index.html" />
|
||||
<ClCompile Include="..\src\audiocurves\CompoundAudioCurve.cpp" />
|
||||
<ClCompile Include="..\src\audiocurves\ConstantAudioCurve.cpp" />
|
||||
<ClCompile Include="..\src\audiocurves\HighFrequencyAudioCurve.cpp" />
|
||||
<ClCompile Include="..\src\audiocurves\PercussiveAudioCurve.cpp" />
|
||||
<ClCompile Include="..\src\audiocurves\SilentAudioCurve.cpp" />
|
||||
<ClCompile Include="..\src\audiocurves\SpectralDifferenceAudioCurve.cpp" />
|
||||
<ClCompile Include="..\src\base\Profiler.cpp" />
|
||||
<ClCompile Include="..\src\dsp\AudioCurveCalculator.cpp" />
|
||||
<ClCompile Include="..\src\dsp\FFT.cpp" />
|
||||
<ClCompile Include="..\src\dsp\Resampler.cpp" />
|
||||
<ClCompile Include="..\src\kissfft\kiss_fft.c" />
|
||||
<ClCompile Include="..\src\kissfft\kiss_fftr.c" />
|
||||
<ClCompile Include="..\src\rubberband-c.cpp" />
|
||||
<ClCompile Include="..\src\RubberBandStretcher.cpp" />
|
||||
<ClCompile Include="..\src\speex\resample.c" />
|
||||
<ClCompile Include="..\src\StretchCalculator.cpp" />
|
||||
<ClCompile Include="..\src\StretcherChannelData.cpp" />
|
||||
<ClCompile Include="..\src\StretcherImpl.cpp" />
|
||||
<ClCompile Include="..\src\StretcherProcess.cpp" />
|
||||
<ClCompile Include="..\src\system\Allocators.cpp" />
|
||||
<ClCompile Include="..\src\system\sysutils.cpp" />
|
||||
<ClCompile Include="..\src\system\Thread.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
@@ -28,6 +28,13 @@
|
||||
#define RUBBERBAND_API_MAJOR_VERSION 2
|
||||
#define RUBBERBAND_API_MINOR_VERSION 6
|
||||
|
||||
#undef RUBBERBAND_DLLEXPORT
|
||||
#ifdef _MSC_VER
|
||||
#define RUBBERBAND_DLLEXPORT __declspec(dllexport)
|
||||
#else
|
||||
#define RUBBERBAND_DLLEXPORT
|
||||
#endif
|
||||
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <cstddef>
|
||||
@@ -60,7 +67,8 @@
|
||||
namespace RubberBand
|
||||
{
|
||||
|
||||
class RubberBandStretcher
|
||||
class RUBBERBAND_DLLEXPORT
|
||||
RubberBandStretcher
|
||||
{
|
||||
public:
|
||||
/**
|
||||
|
||||
@@ -32,6 +32,13 @@ extern "C" {
|
||||
#define RUBBERBAND_API_MAJOR_VERSION 2
|
||||
#define RUBBERBAND_API_MINOR_VERSION 6
|
||||
|
||||
#undef RB_EXTERN
|
||||
#ifdef _MSC_VER
|
||||
#define RB_EXTERN extern __declspec(dllexport)
|
||||
#else
|
||||
#define RB_EXTERN extern
|
||||
#endif
|
||||
|
||||
/**
|
||||
* This is a C-linkage interface to the Rubber Band time stretcher.
|
||||
*
|
||||
@@ -91,52 +98,54 @@ typedef int RubberBandOptions;
|
||||
struct RubberBandState_;
|
||||
typedef struct RubberBandState_ *RubberBandState;
|
||||
|
||||
extern RubberBandState rubberband_new(unsigned int sampleRate,
|
||||
RB_EXTERN RubberBandState rubberband_new(unsigned int sampleRate,
|
||||
unsigned int channels,
|
||||
RubberBandOptions options,
|
||||
double initialTimeRatio,
|
||||
double initialPitchScale);
|
||||
|
||||
extern void rubberband_delete(RubberBandState);
|
||||
RB_EXTERN void rubberband_delete(RubberBandState);
|
||||
|
||||
extern void rubberband_reset(RubberBandState);
|
||||
RB_EXTERN void rubberband_reset(RubberBandState);
|
||||
|
||||
extern void rubberband_set_time_ratio(RubberBandState, double ratio);
|
||||
extern void rubberband_set_pitch_scale(RubberBandState, double scale);
|
||||
RB_EXTERN void rubberband_set_time_ratio(RubberBandState, double ratio);
|
||||
RB_EXTERN void rubberband_set_pitch_scale(RubberBandState, double scale);
|
||||
|
||||
extern double rubberband_get_time_ratio(const RubberBandState);
|
||||
extern double rubberband_get_pitch_scale(const RubberBandState);
|
||||
RB_EXTERN double rubberband_get_time_ratio(const RubberBandState);
|
||||
RB_EXTERN double rubberband_get_pitch_scale(const RubberBandState);
|
||||
|
||||
extern unsigned int rubberband_get_latency(const RubberBandState);
|
||||
RB_EXTERN unsigned int rubberband_get_latency(const RubberBandState);
|
||||
|
||||
extern void rubberband_set_transients_option(RubberBandState, RubberBandOptions options);
|
||||
extern void rubberband_set_detector_option(RubberBandState, RubberBandOptions options);
|
||||
extern void rubberband_set_phase_option(RubberBandState, RubberBandOptions options);
|
||||
extern void rubberband_set_formant_option(RubberBandState, RubberBandOptions options);
|
||||
extern void rubberband_set_pitch_option(RubberBandState, RubberBandOptions options);
|
||||
RB_EXTERN void rubberband_set_transients_option(RubberBandState, RubberBandOptions options);
|
||||
RB_EXTERN void rubberband_set_detector_option(RubberBandState, RubberBandOptions options);
|
||||
RB_EXTERN void rubberband_set_phase_option(RubberBandState, RubberBandOptions options);
|
||||
RB_EXTERN void rubberband_set_formant_option(RubberBandState, RubberBandOptions options);
|
||||
RB_EXTERN void rubberband_set_pitch_option(RubberBandState, RubberBandOptions options);
|
||||
|
||||
extern void rubberband_set_expected_input_duration(RubberBandState, unsigned int samples);
|
||||
RB_EXTERN void rubberband_set_expected_input_duration(RubberBandState, unsigned int samples);
|
||||
|
||||
extern unsigned int rubberband_get_samples_required(const RubberBandState);
|
||||
RB_EXTERN unsigned int rubberband_get_samples_required(const RubberBandState);
|
||||
|
||||
extern void rubberband_set_max_process_size(RubberBandState, unsigned int samples);
|
||||
extern void rubberband_set_key_frame_map(RubberBandState, unsigned int keyframecount, unsigned int *from, unsigned int *to);
|
||||
RB_EXTERN void rubberband_set_max_process_size(RubberBandState, unsigned int samples);
|
||||
RB_EXTERN void rubberband_set_key_frame_map(RubberBandState, unsigned int keyframecount, unsigned int *from, unsigned int *to);
|
||||
|
||||
extern void rubberband_study(RubberBandState, const float *const *input, unsigned int samples, int final);
|
||||
extern void rubberband_process(RubberBandState, const float *const *input, unsigned int samples, int final);
|
||||
RB_EXTERN void rubberband_study(RubberBandState, const float *const *input, unsigned int samples, int final);
|
||||
RB_EXTERN void rubberband_process(RubberBandState, const float *const *input, unsigned int samples, int final);
|
||||
|
||||
extern int rubberband_available(const RubberBandState);
|
||||
extern unsigned int rubberband_retrieve(const RubberBandState, float *const *output, unsigned int samples);
|
||||
RB_EXTERN int rubberband_available(const RubberBandState);
|
||||
RB_EXTERN unsigned int rubberband_retrieve(const RubberBandState, float *const *output, unsigned int samples);
|
||||
|
||||
extern unsigned int rubberband_get_channel_count(const RubberBandState);
|
||||
RB_EXTERN unsigned int rubberband_get_channel_count(const RubberBandState);
|
||||
|
||||
extern void rubberband_calculate_stretch(RubberBandState);
|
||||
RB_EXTERN void rubberband_calculate_stretch(RubberBandState);
|
||||
|
||||
extern void rubberband_set_debug_level(RubberBandState, int level);
|
||||
extern void rubberband_set_default_debug_level(int level);
|
||||
RB_EXTERN void rubberband_set_debug_level(RubberBandState, int level);
|
||||
RB_EXTERN void rubberband_set_default_debug_level(int level);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#undef RB_EXTERN
|
||||
|
||||
#endif
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
#include <utility>
|
||||
#include <iostream>
|
||||
|
||||
#ifndef WIN32
|
||||
#ifndef _MSC_VER
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
|
||||
|
||||
@@ -24,13 +24,6 @@
|
||||
#ifndef RUBBERBAND_SYSUTILS_H
|
||||
#define RUBBERBAND_SYSUTILS_H
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# if _MSC_VER < 1800
|
||||
# include "float_cast/float_cast.h"
|
||||
# endif
|
||||
# define R__ __restrict
|
||||
#endif
|
||||
|
||||
#ifdef __clang__
|
||||
# define R__ __restrict__
|
||||
#else
|
||||
@@ -39,6 +32,15 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# if _MSC_VER < 1800
|
||||
# include "float_cast/float_cast.h"
|
||||
# endif
|
||||
# ifndef R__
|
||||
# define R__ __restrict
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef R__
|
||||
# define R__
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user