| Index: Source/platform/audio/FFTFrame.cpp
|
| diff --git a/Source/platform/audio/FFTFrame.cpp b/Source/platform/audio/FFTFrame.cpp
|
| index 58df785fbd2f3cb7da97c2625d5ba5c05b34e670..806a148d30cfbfc3e0c7ea78e6205f9608055a7a 100644
|
| --- a/Source/platform/audio/FFTFrame.cpp
|
| +++ b/Source/platform/audio/FFTFrame.cpp
|
| @@ -32,6 +32,8 @@
|
|
|
| #include "platform/audio/FFTFrame.h"
|
|
|
| +#include "platform/audio/VectorMath.h"
|
| +
|
| #ifndef NDEBUG
|
| #include <stdio.h>
|
| #endif
|
| @@ -259,6 +261,27 @@ void FFTFrame::addConstantGroupDelay(double sampleFrameDelay)
|
| }
|
| }
|
|
|
| +void FFTFrame::multiply(const FFTFrame& frame)
|
| +{
|
| + FFTFrame& frame1 = *this;
|
| + FFTFrame& frame2 = const_cast<FFTFrame&>(frame);
|
| +
|
| + float* realP1 = frame1.realData();
|
| + float* imagP1 = frame1.imagData();
|
| + const float* realP2 = frame2.realData();
|
| + const float* imagP2 = frame2.imagData();
|
| +
|
| + unsigned halfSize = fftSize() / 2;
|
| + float real0 = realP1[0];
|
| + float imag0 = imagP1[0];
|
| +
|
| + VectorMath::zvmul(realP1, imagP1, realP2, imagP2, realP1, imagP1, halfSize);
|
| +
|
| + // Multiply the packed DC/nyquist component
|
| + realP1[0] = real0 * realP2[0];
|
| + imagP1[0] = imag0 * imagP2[0];
|
| +}
|
| +
|
| #ifndef NDEBUG
|
| void FFTFrame::print()
|
| {
|
|
|