annotate Source/AudioSourceFeatureExtractor.h @ 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 73852457b624
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@10 18 #include "SpectralContrast.h"
d@0 19 #include "ObservationData.h"
d@0 20
d@0 21 #define MAGNITUDESIZE 512
d@0 22 #define FFTSIZE 1024
d@0 23 #define PI 3.14159265359
d@7 24 #include <memory>
d@0 25
d@0 26 class AudioSourceFeatureExtractor
d@0 27 {
d@0 28
d@0 29 public:
d@0 30
d@0 31 AudioSourceFeatureExtractor();
d@0 32 ~AudioSourceFeatureExtractor();
d@0 33
d@0 34 void Initialise ( float fSampleRate);
d@9 35 std::vector<ObservationData> Process (const std::vector<float> data);
d@0 36 void Finalize();
d@0 37
d@0 38 private:
d@0 39 //Computes the magnitude of FFT
d@4 40 void VectorDistance(std::vector<float> vIn1, int stride1, std::vector<float>, int stride2, std::vector<float> &vOut, int strideOut, size_t nElements);
d@0 41
d@4 42 void SpectralFeatures(std::vector<float> &magnitude, std::vector<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 43
d@9 44 float EstimatePerdiodicity(std::vector<float> data);
d@0 45
d@8 46 void EnvelopeCurve(std::vector<float> data, std::vector<float> &out, float sampleRate);
d@0 47
d@8 48 void XCorr(std::vector<float> &output, std::vector<float> input1, std::vector<float> input2, size_t maxLag);
d@0 49
d@9 50 float EntropyOfEnergy(std::vector<float> data);
d@0 51
d@0 52 float Log2(float n);
d@0 53
d@0 54 int Sign(float x);
d@0 55
d@0 56 std::vector<float> LinSpace(float min, float max, int n);
d@0 57
d@0 58 std::vector<float> LogSpace(float min, float max, int n);
d@0 59
d@7 60 //void Normalise(float* data, float* &out, size_t len);
d@7 61
d@7 62 //void ConvolveFunction(float* &z, float *x, float *y, size_t &lenz, size_t lenx, size_t leny);
d@7 63
d@7 64 //void DownSampler(float* data, float* &out, size_t lenIn, size_t &lenOut, float currentSampleRate, float futureSampleRate);
d@7 65
d@7 66 //void PDF_getResampleKrnl(std::vector<float> freqVec, float fsProc, int nfft, int nBin, std::vector<float> &outLogFreqVec, std::vector<std::vector<float>> &outKrnl);
d@7 67
d@1 68 size_t m_iWriteIdx;
d@1 69 size_t m_iFlucIdx;
d@0 70 float m_fSampleRate;
d@4 71 std::unique_ptr<FFTW> m_fft;
d@4 72 std::vector<float> m_OutReal;
d@4 73 std::vector<float> m_OutImag;
d@0 74 MFCC m_MFCC;
d@10 75 SpectralContrast m_SpectralContrast;
d@4 76 std::vector<float> m_fInputBuffer;
d@4 77 std::vector<float> m_fMagnitudeSpectrum;
d@4 78 std::vector<float> m_fPreviousMagnitudeSpectrum;
d@0 79 std::vector<float> m_fFreqBins;
d@0 80 };
d@0 81
d@0 82 #endif // AUDIOSOURCEFEATUREXTRACTOR_H_INCLUDED