view Source/MFCC.h @ 1:e86e9c111b29

Updates stuff that potentially fixes the memory leak and also makes it work on Windows and Linux (Need to test). Still have to fix fftw include for linux in Jucer.
author David Ronan <d.m.ronan@qmul.ac.uk>
date Thu, 09 Jul 2015 15:01:32 +0100
parents 25bf17994ef1
children 345acbd06029
line wrap: on
line source
/*
  ==============================================================================

    MFCC.h
    Created: 2 Sep 2014 3:30:50pm
    Author:  david.ronan

  ==============================================================================
*/

#ifndef MFCC_H_INCLUDED
#define MFCC_H_INCLUDED

#include<vector>

class MFCC
{
public:
	void initMFFCvariables(int NCoeffs, int Nfft, float fSampleRate);
	void ComputeMFCC(float* magnitude, std::vector<float> &mfccs);
	void freeMFCCmemory();
private:
	// -------- MFFC computation
	int     m_iNumMFCCCoefs;
	int     m_iTotalMFCCFilters;
	int*    m_pMFCCFilterStart;
	int*    m_pMFCCFilterLength;
	float** m_ppMFCCFilters;
	float*  m_ppMFFC_DCT;
	float*  m_fMelFilteredFFT;
	float*  m_pMFCC;
	float*  m_pfTempMelFilterResult;

  
// -------- tools
inline void  vDSP_vmul(float* v1,int stride1, float* v2, int stride2, float* out, int outstride, int iNumSamples);

inline float vDSP_sve(float* v, int stride, int iNumSamples);

inline void  vDSP_mmul(float* v1, int stride1, float* v2, int stride2, float* &vout, int strideOut, int M, int N, int P);

};



#endif  // MFCC_H_INCLUDED