diff options
| author | mick grierson <mickgrierson@gmail.com> | 2015-10-27 17:05:12 +0000 |
|---|---|---|
| committer | mick grierson <mickgrierson@gmail.com> | 2015-10-27 17:05:12 +0000 |
| commit | 60341ac292bb9ba6f1d33632f8fd8e767c6a99d4 (patch) | |
| tree | dd801de535997f2f6ff4fc6faab8cfc86c003b7a /openFrameworks/ofxMaxim/libs/fft.h | |
| parent | bb210658ed2aa4eafa790197f84f3e24df22351b (diff) | |
clean up
Diffstat (limited to 'openFrameworks/ofxMaxim/libs/fft.h')
| -rw-r--r-- | openFrameworks/ofxMaxim/libs/fft.h | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/openFrameworks/ofxMaxim/libs/fft.h b/openFrameworks/ofxMaxim/libs/fft.h new file mode 100644 index 0000000..7f0e688 --- /dev/null +++ b/openFrameworks/ofxMaxim/libs/fft.h @@ -0,0 +1,79 @@ +/* + * maximilian + * platform independent synthesis library using portaudio or rtaudio + * + * Created by Mick Grierson on 29/12/2009. + * Copyright 2009 Mick Grierson & Strangeloop Limited. All rights reserved. + * Thanks to the Goldsmiths Creative Computing Team. + * Special thanks to Arturo Castro for the PortAudio implementation. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + */ + +#ifndef _FFT +#define _FFT + +#ifndef M_PI +#define M_PI 3.14159265358979323846 /* pi */ +#endif + +#ifdef __APPLE_CC__ +#include <Accelerate/Accelerate.h> +#endif + + + +class fft { + +public: + + fft(int fftSize); + ~fft(); + + int n; //fftSize + int half; //halfFFTSize + + float *in_real, *out_real, *in_img, *out_img; + +#ifdef __APPLE_CC__ + int log2n; //log2(n); + FFTSetup setupReal; + COMPLEX_SPLIT A; + float *polar; + void powerSpectrum_vdsp(int start, float *data, float *window, float *magnitude,float *phase); + void inversePowerSpectrum_vdsp(int start, float *finalOut, float *window, float *magnitude,float *phase); + void convToDB_vdsp(float *in, float *out); +#endif + + /* Calculate the power spectrum */ + void powerSpectrum(int start, float *data, float *window, float *magnitude, float *phase); + /* ... the inverse */ + void inversePowerSpectrum(int start, float *finalOut, float *window, float *magnitude,float *phase); + void convToDB(float *in, float *out); + + static void genWindow(int whichFunction, int NumSamples, float *window); + +}; + + +#endif |
