Merge from branch bqfft
This commit is contained in:
30
README.md
30
README.md
@@ -87,8 +87,8 @@ Rubber Band consists of:
|
|||||||
* The Rubber Band Library code. This is the code that will normally
|
* The Rubber Band Library code. This is the code that will normally
|
||||||
be used by your applications. The headers for this are in the
|
be used by your applications. The headers for this are in the
|
||||||
rubberband/ directory, and the source code is in src/.
|
rubberband/ directory, and the source code is in src/.
|
||||||
The Rubber Band Library depends upon resampler and FFT code; see
|
The Rubber Band Library may also depend upon external resampler
|
||||||
section 3a below for details.
|
and FFT code; see section 3a below for details.
|
||||||
|
|
||||||
* The Rubber Band command-line tool. This is in main/main.cpp.
|
* The Rubber Band command-line tool. This is in main/main.cpp.
|
||||||
This program uses the Rubber Band Library and also requires libsndfile
|
This program uses the Rubber Band Library and also requires libsndfile
|
||||||
@@ -194,9 +194,9 @@ standard. It is unlikely to make any difference (performance or
|
|||||||
otherwise) which C++ standard your compiler uses - as long as it's no
|
otherwise) which C++ standard your compiler uses - as long as it's no
|
||||||
older than C++98!
|
older than C++98!
|
||||||
|
|
||||||
If you are building this software using one of the bundled library
|
If you are building this software using either of the Speex or KissFFT
|
||||||
options (Speex or KissFFT), please be sure to review the terms for
|
library options, please be sure to review the terms for those
|
||||||
those libraries in `src/speex/COPYING` and `src/kissfft/COPYING` as
|
libraries in `src/speex/COPYING` and `src/kissfft/COPYING` as
|
||||||
applicable.
|
applicable.
|
||||||
|
|
||||||
|
|
||||||
@@ -369,13 +369,26 @@ options (Speex or KissFFT), please be sure to review the terms for
|
|||||||
those libraries in `src/speex/COPYING` and `src/kissfft/COPYING` as
|
those libraries in `src/speex/COPYING` and `src/kissfft/COPYING` as
|
||||||
applicable.
|
applicable.
|
||||||
|
|
||||||
|
If you are proposing to package Rubber Band for a Linux distribution
|
||||||
|
using other packaged libraries, please select FFTW and libsamplerate.
|
||||||
|
|
||||||
#### FFT libraries supported
|
#### FFT libraries supported
|
||||||
|
|
||||||
```
|
```
|
||||||
Library Build option CPP define Notes
|
Library Build option CPP define Notes
|
||||||
---- ------------ ---------- -----
|
---- ------------ ---------- -----
|
||||||
|
|
||||||
KissFFT -Dfft=kissfft -DUSE_KISSFFT Default except on macOS/iOS.
|
Built-in -Dfft=builtin -DUSE_BUILTIN_FFT
|
||||||
|
Default except on macOS/iOS.
|
||||||
|
Can be distributed with either
|
||||||
|
the Rubber Band GPL or
|
||||||
|
commercial licence.
|
||||||
|
|
||||||
|
KissFFT -Dfft=kissfft -DHAVE_KISSFFT
|
||||||
|
Single precision.
|
||||||
|
Only indicated for use with
|
||||||
|
single-precision sample type
|
||||||
|
(see below).
|
||||||
Bundled, can be distributed with
|
Bundled, can be distributed with
|
||||||
either the Rubber Band GPL or
|
either the Rubber Band GPL or
|
||||||
commercial licence.
|
commercial licence.
|
||||||
@@ -432,8 +445,9 @@ build files will handle these for you.)
|
|||||||
|
|
||||||
-DPROCESS_SAMPLE_TYPE=float
|
-DPROCESS_SAMPLE_TYPE=float
|
||||||
Select single precision for internal calculations. The default is
|
Select single precision for internal calculations. The default is
|
||||||
double precision. Consider using for mobile architectures with
|
double precision. Consider in conjunction with single-precision
|
||||||
slower double-precision support.
|
KissFFT for mobile architectures with slower double-precision
|
||||||
|
support.
|
||||||
|
|
||||||
-DUSE_POMMIER_MATHFUN
|
-DUSE_POMMIER_MATHFUN
|
||||||
Select the Julien Pommier implementations of trig functions for ARM
|
Select the Julien Pommier implementations of trig functions for ARM
|
||||||
|
|||||||
@@ -77,7 +77,7 @@
|
|||||||
<ClCompile>
|
<ClCompile>
|
||||||
<Optimization>Disabled</Optimization>
|
<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>
|
<PreprocessorDefinitions>__MSVC__;WIN32;_DEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_BUILTIN_FFT;USE_SPEEX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<MinimalRebuild>true</MinimalRebuild>
|
<MinimalRebuild>true</MinimalRebuild>
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
@@ -91,7 +91,7 @@
|
|||||||
<ClCompile>
|
<ClCompile>
|
||||||
<Optimization>Disabled</Optimization>
|
<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>
|
<PreprocessorDefinitions>__MSVC__;WIN32;_DEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_BUILTIN_FFT;USE_SPEEX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
@@ -109,7 +109,7 @@
|
|||||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||||
<OmitFramePointers>true</OmitFramePointers>
|
<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>
|
<PreprocessorDefinitions>__MSVC__;WIN32;NDEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_BUILTIN_FFT;NO_TIMING;USE_SPEEX;NO_THREAD_CHECKS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
|
||||||
@@ -127,7 +127,7 @@
|
|||||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||||
<OmitFramePointers>true</OmitFramePointers>
|
<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>
|
<PreprocessorDefinitions>__MSVC__;WIN32;NDEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_BUILTIN_FFT;NO_TIMING;USE_SPEEX;NO_THREAD_CHECKS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
|
||||||
@@ -178,8 +178,6 @@
|
|||||||
<ClCompile Include="..\src\dsp\AudioCurveCalculator.cpp" />
|
<ClCompile Include="..\src\dsp\AudioCurveCalculator.cpp" />
|
||||||
<ClCompile Include="..\src\dsp\FFT.cpp" />
|
<ClCompile Include="..\src\dsp\FFT.cpp" />
|
||||||
<ClCompile Include="..\src\dsp\Resampler.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\rubberband-c.cpp" />
|
||||||
<ClCompile Include="..\src\RubberBandStretcher.cpp" />
|
<ClCompile Include="..\src\RubberBandStretcher.cpp" />
|
||||||
<ClCompile Include="..\src\speex\resample.c" />
|
<ClCompile Include="..\src\speex\resample.c" />
|
||||||
|
|||||||
17
meson.build
17
meson.build
@@ -2,7 +2,7 @@
|
|||||||
project(
|
project(
|
||||||
'Rubber Band Library',
|
'Rubber Band Library',
|
||||||
'c', 'cpp',
|
'c', 'cpp',
|
||||||
version: '1.9.1',
|
version: '1.9.2-pre',
|
||||||
license: 'GPL-2.0-or-later',
|
license: 'GPL-2.0-or-later',
|
||||||
default_options: [
|
default_options: [
|
||||||
# All Rubber Band code is actually C++98, but some compilers no
|
# All Rubber Band code is actually C++98, but some compilers no
|
||||||
@@ -132,7 +132,7 @@ if fft == 'auto'
|
|||||||
if system == 'darwin'
|
if system == 'darwin'
|
||||||
fft = 'vdsp'
|
fft = 'vdsp'
|
||||||
else
|
else
|
||||||
fft = 'kissfft'
|
fft = 'builtin'
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -144,14 +144,23 @@ if resampler == 'auto'
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if fft == 'kissfft'
|
if fft == 'builtin'
|
||||||
|
config_summary += { 'FFT': 'Built-in' }
|
||||||
|
message('For FFT: using built-in implementation')
|
||||||
|
if fftw3_dep.found()
|
||||||
|
message('(to use FFTW instead, reconfigure with -Dfft=fftw)')
|
||||||
|
endif
|
||||||
|
feature_defines += ['-DUSE_BUILTIN_FFT']
|
||||||
|
|
||||||
|
elif fft == 'kissfft'
|
||||||
config_summary += { 'FFT': 'KissFFT' }
|
config_summary += { 'FFT': 'KissFFT' }
|
||||||
message('For FFT: using KissFFT')
|
message('For FFT: using KissFFT')
|
||||||
if fftw3_dep.found()
|
if fftw3_dep.found()
|
||||||
message('(to use FFTW instead, reconfigure with -Dfft=fftw)')
|
message('(to use FFTW instead, reconfigure with -Dfft=fftw)')
|
||||||
endif
|
endif
|
||||||
feature_sources += ['src/kissfft/kiss_fft.c', 'src/kissfft/kiss_fftr.c']
|
feature_sources += ['src/kissfft/kiss_fft.c', 'src/kissfft/kiss_fftr.c']
|
||||||
feature_defines += ['-DUSE_KISSFFT']
|
feature_defines += ['-DHAVE_KISSFFT']
|
||||||
|
general_include_dirs += 'src/kissfft'
|
||||||
|
|
||||||
elif fft == 'fftw'
|
elif fft == 'fftw'
|
||||||
if fftw3_dep.found()
|
if fftw3_dep.found()
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
|
|
||||||
option('fft',
|
option('fft',
|
||||||
type: 'combo',
|
type: 'combo',
|
||||||
choices: ['auto', 'kissfft', 'fftw', 'vdsp', 'ipp'],
|
choices: ['auto', 'builtin', 'kissfft', 'fftw', 'vdsp', 'ipp'],
|
||||||
value: 'auto',
|
value: 'auto',
|
||||||
description: 'FFT library to use. The default (auto) will use vDSP if available, KissFFT otherwise.')
|
description: 'FFT library to use. The default (auto) will use vDSP if available, the builtin implementation otherwise.')
|
||||||
|
|
||||||
option('resampler',
|
option('resampler',
|
||||||
type: 'combo',
|
type: 'combo',
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ OPTFLAGS := -DNDEBUG -ffast-math -O3 -ftree-vectorize
|
|||||||
|
|
||||||
ARCHFLAGS :=
|
ARCHFLAGS :=
|
||||||
|
|
||||||
CXXFLAGS := -std=c++98 $(ARCHFLAGS) $(OPTFLAGS) -I. -Isrc -Irubberband -DHAVE_LIBSAMPLERATE -DUSE_KISSFFT -DNO_THREAD_CHECKS -DUSE_PTHREADS -DNO_TIMING -DHAVE_POSIX_MEMALIGN -DNDEBUG
|
CXXFLAGS := -std=c++98 $(ARCHFLAGS) $(OPTFLAGS) -I. -Isrc -Irubberband -DHAVE_LIBSAMPLERATE -DUSE_BUILTIN_FFT -DNO_THREAD_CHECKS -DUSE_PTHREADS -DNO_TIMING -DHAVE_POSIX_MEMALIGN -DNDEBUG
|
||||||
|
|
||||||
CFLAGS := $(ARCHFLAGS) $(OPTFLAGS)
|
CFLAGS := $(ARCHFLAGS) $(OPTFLAGS)
|
||||||
|
|
||||||
@@ -69,9 +69,7 @@ LIBRARY_SOURCES := \
|
|||||||
src/system/sysutils.cpp \
|
src/system/sysutils.cpp \
|
||||||
src/system/Thread.cpp \
|
src/system/Thread.cpp \
|
||||||
src/StretcherChannelData.cpp \
|
src/StretcherChannelData.cpp \
|
||||||
src/StretcherImpl.cpp \
|
src/StretcherImpl.cpp
|
||||||
src/kissfft/kiss_fft.c \
|
|
||||||
src/kissfft/kiss_fftr.c
|
|
||||||
|
|
||||||
LIBRARY_OBJECTS := $(LIBRARY_SOURCES:.cpp=.o)
|
LIBRARY_OBJECTS := $(LIBRARY_SOURCES:.cpp=.o)
|
||||||
LIBRARY_OBJECTS := $(LIBRARY_OBJECTS:.c=.o)
|
LIBRARY_OBJECTS := $(LIBRARY_OBJECTS:.c=.o)
|
||||||
|
|||||||
@@ -77,7 +77,7 @@
|
|||||||
<ClCompile>
|
<ClCompile>
|
||||||
<Optimization>Disabled</Optimization>
|
<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>
|
<PreprocessorDefinitions>__MSVC__;WIN32;_DEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_BUILTIN_FFT;USE_SPEEX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<MinimalRebuild>true</MinimalRebuild>
|
<MinimalRebuild>true</MinimalRebuild>
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
@@ -91,7 +91,7 @@
|
|||||||
<ClCompile>
|
<ClCompile>
|
||||||
<Optimization>Disabled</Optimization>
|
<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>
|
<PreprocessorDefinitions>__MSVC__;WIN32;_DEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_BUILTIN_FFT;USE_SPEEX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
@@ -109,7 +109,7 @@
|
|||||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||||
<OmitFramePointers>true</OmitFramePointers>
|
<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>
|
<PreprocessorDefinitions>__MSVC__;WIN32;NDEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_BUILTIN_FFT;NO_TIMING;USE_SPEEX;NO_THREAD_CHECKS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
|
||||||
@@ -127,7 +127,7 @@
|
|||||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||||
<OmitFramePointers>true</OmitFramePointers>
|
<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>
|
<PreprocessorDefinitions>__MSVC__;WIN32;NDEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_BUILTIN_FFT;NO_TIMING;USE_SPEEX;NO_THREAD_CHECKS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
|
||||||
@@ -178,8 +178,6 @@
|
|||||||
<ClCompile Include="..\src\dsp\AudioCurveCalculator.cpp" />
|
<ClCompile Include="..\src\dsp\AudioCurveCalculator.cpp" />
|
||||||
<ClCompile Include="..\src\dsp\FFT.cpp" />
|
<ClCompile Include="..\src\dsp\FFT.cpp" />
|
||||||
<ClCompile Include="..\src\dsp\Resampler.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\rubberband-c.cpp" />
|
||||||
<ClCompile Include="..\src\RubberBandStretcher.cpp" />
|
<ClCompile Include="..\src\RubberBandStretcher.cpp" />
|
||||||
<ClCompile Include="..\src\speex\resample.c" />
|
<ClCompile Include="..\src\speex\resample.c" />
|
||||||
|
|||||||
2818
src/dsp/FFT.cpp
2818
src/dsp/FFT.cpp
File diff suppressed because it is too large
Load Diff
@@ -64,6 +64,8 @@ public:
|
|||||||
FFT(int size, int debugLevel = 0); // may throw InvalidSize
|
FFT(int size, int debugLevel = 0); // may throw InvalidSize
|
||||||
~FFT();
|
~FFT();
|
||||||
|
|
||||||
|
int getSize() const;
|
||||||
|
|
||||||
void forward(const double *R__ realIn, double *R__ realOut, double *R__ imagOut);
|
void forward(const double *R__ realIn, double *R__ realOut, double *R__ imagOut);
|
||||||
void forwardInterleaved(const double *R__ realIn, double *R__ complexOut);
|
void forwardInterleaved(const double *R__ realIn, double *R__ complexOut);
|
||||||
void forwardPolar(const double *R__ realIn, double *R__ magOut, double *R__ phaseOut);
|
void forwardPolar(const double *R__ realIn, double *R__ magOut, double *R__ phaseOut);
|
||||||
@@ -121,6 +123,10 @@ protected:
|
|||||||
FFTImpl *d;
|
FFTImpl *d;
|
||||||
static std::string m_implementation;
|
static std::string m_implementation;
|
||||||
static void pickDefaultImplementation();
|
static void pickDefaultImplementation();
|
||||||
|
|
||||||
|
private:
|
||||||
|
FFT(const FFT &); // not provided
|
||||||
|
FFT &operator=(const FFT &); // not provided
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -366,32 +366,32 @@ inline void v_scale(double *const R__ dst,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
template<typename T>
|
template<typename T, typename S>
|
||||||
inline void v_multiply(T *const R__ dst,
|
inline void v_multiply(T *const R__ srcdst,
|
||||||
const T *const R__ src,
|
const S *const R__ src,
|
||||||
const int count)
|
const int count)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < count; ++i) {
|
for (int i = 0; i < count; ++i) {
|
||||||
dst[i] *= src[i];
|
srcdst[i] *= src[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined HAVE_IPP
|
#if defined HAVE_IPP
|
||||||
template<>
|
template<>
|
||||||
inline void v_multiply(float *const R__ dst,
|
inline void v_multiply(float *const R__ srcdst,
|
||||||
const float *const R__ src,
|
const float *const R__ src,
|
||||||
const int count)
|
const int count)
|
||||||
{
|
{
|
||||||
ippsMul_32f_I(src, dst, count);
|
ippsMul_32f_I(src, srcdst, count);
|
||||||
}
|
}
|
||||||
template<>
|
template<>
|
||||||
inline void v_multiply(double *const R__ dst,
|
inline void v_multiply(double *const R__ srcdst,
|
||||||
const double *const R__ src,
|
const double *const R__ src,
|
||||||
const int count)
|
const int count)
|
||||||
{
|
{
|
||||||
ippsMul_64f_I(src, dst, count);
|
ippsMul_64f_I(src, srcdst, count);
|
||||||
}
|
}
|
||||||
#endif
|
#endif // HAVE_IPP
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
inline void v_multiply(T *const R__ dst,
|
inline void v_multiply(T *const R__ dst,
|
||||||
|
|||||||
Reference in New Issue
Block a user