annotate Source/.svn/text-base/AudioSourceFeatureExtractor.h.svn-base @ 15:585caf503ef5 tip

Tidy up for ROLI
author Geogaddi\David <d.m.ronan@qmul.ac.uk>
date Tue, 17 May 2016 18:50:19 +0100
parents 25bf17994ef1
children
rev   line source
d@0 1 /*
d@0 2 ==============================================================================
d@0 3
d@0 4 AudioSourceFeatureExtractor.h
d@0 5 Created: 11 Aug 2014 10:41:02am
d@0 6 Author: david.ronan
d@0 7
d@0 8 ==============================================================================
d@0 9 */
d@0 10
d@0 11 #ifndef AUDIOSOURCEFEATUREXTRACTOR_H_INCLUDED
d@0 12 #define AUDIOSOURCEFEATUREXTRACTOR_H_INCLUDED
d@0 13
d@0 14 #include <vector>
d@0 15
d@0 16 #include "FFT.h"
d@0 17 #include "MFCC.h"
d@0 18 #include "ObservationData.h"
d@0 19
d@0 20 #define MAGNITUDESIZE 512
d@0 21 #define FFTSIZE 1024
d@0 22 #define PI 3.14159265359
d@0 23
d@0 24 class AudioSourceFeatureExtractor
d@0 25 {
d@0 26
d@0 27 public:
d@0 28
d@0 29 AudioSourceFeatureExtractor();
d@0 30 ~AudioSourceFeatureExtractor();
d@0 31
d@0 32 void Initialise ( float fSampleRate);
d@0 33 std::vector<ObservationData> Process (const float* data, size_t numSamples);
d@0 34 void Finalize();
d@0 35
d@0 36 private:
d@0 37 //Computes the magnitude of FFT
d@0 38 void VectorDistance(const float* vIn1, int stride1, const float* vIn2, int stride2, float* &vOut, int strideOut, size_t nElements);
d@0 39
d@0 40 void SpectralFeatures(float* &magnitude, float* &previousmagnitude, size_t windowSize, float &centroid, float &spread, float &skew, float &kurtosis, float &brightness, float &rolloff95, float &rolloff85, float &spectralentropy, float &flatness, float &spectralcf, float &spectralflux);
d@0 41
d@0 42 void MFCCs(float* &magnitude, size_t windowSize, float sampleRate);
d@0 43
d@0 44 float EstimatePerdiodicity(float* data, size_t numSamples);
d@0 45
d@0 46 void ConvolveFunction(float* &z, float *x, float *y, size_t &lenz, size_t lenx, size_t leny);
d@0 47
d@0 48 void DownSampler(float* data, float* &out, size_t lenIn, size_t &lenOut, float currentSampleRate, float futureSampleRate);
d@0 49
d@0 50 void EnvelopeCurve(float* data, float* &out, size_t dataLen, float sampleRate);
d@0 51
d@0 52 void Normalise(float* data, float* &out, size_t len);
d@0 53
d@0 54 void XCorr(float *&output, float* input1, float* input2, size_t &outputlen, size_t input1len, size_t maxLag);
d@0 55
d@0 56 float EntropyOfEnergy(float* data, size_t numSamples);
d@0 57
d@0 58 void AudioSourceFeatureExtractor::PDF_getResampleKrnl(std::vector<float> freqVec, float fsProc, int nfft, int nBin, std::vector<float> &outLogFreqVec, std::vector<std::vector<float>> &outKrnl);
d@0 59
d@0 60 float Log2(float n);
d@0 61
d@0 62 int Sign(float x);
d@0 63
d@0 64 std::vector<float> LinSpace(float min, float max, int n);
d@0 65
d@0 66 std::vector<float> LogSpace(float min, float max, int n);
d@0 67
d@0 68 size_t m_iWriteIdx;
d@0 69 size_t m_iFlucIdx;
d@0 70 float m_fSampleRate;
d@0 71 FFTW *m_fft;
d@0 72 float *m_OutReal;
d@0 73 float *m_OutImag;
d@0 74 MFCC m_MFCC;
d@0 75 float* m_fInputBuffer;
d@0 76 float* m_fMagnitudeSpectrum;
d@0 77 float* m_fPreviousMagnitudeSpectrum;
d@0 78 std::vector<float> m_fFreqBins;
d@0 79 };
d@0 80
d@0 81 #endif // AUDIOSOURCEFEATUREXTRACTOR_H_INCLUDED