From 8373f12eaf63b6db27a1848202a86aeeb15c4d26 Mon Sep 17 00:00:00 2001 From: John Glover Date: Tue, 21 Dec 2010 11:25:11 +0000 Subject: Fixing bugs in SMSResidual. --- sms/sms.h | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'sms/sms.h') diff --git a/sms/sms.h b/sms/sms.h index 4726760..7e80ee4 100644 --- a/sms/sms.h +++ b/sms/sms.h @@ -195,11 +195,18 @@ typedef struct */ typedef struct { + int samplingRate; int residualSize; sfloat *residual; sfloat *residualWindow; sfloat residualMag; sfloat originalMag; + int nCoeffs; + sfloat *stocCoeffs; + int sizeStocMagSpectrum; + sfloat *stocMagSpectrum; + sfloat *approxEnvelope; + sfloat fftBuffer[SMS_MAX_SPEC * 2]; } SMS_ResidualParams; /*! \struct SMS_AnalParams @@ -561,13 +568,13 @@ sfloat sms_dBToMag(sfloat x); void sms_arrayMagToDB(int sizeArray, sfloat *pArray); void sms_arrayDBToMag(int sizeArray, sfloat *pArray); void sms_setMagThresh(sfloat x); -sfloat sms_rms ( int sizeArray, sfloat *pArray ); -sfloat sms_sine (sfloat fTheta); -sfloat sms_sinc (sfloat fTheta); -sfloat sms_random ( void ); +sfloat sms_rms(int sizeArray, sfloat *pArray); +sfloat sms_sine(sfloat fTheta); +sfloat sms_sinc(sfloat fTheta); +sfloat sms_random(void); int sms_power2(int n); -sfloat sms_scalarTempered( sfloat x); -void sms_arrayScalarTempered( int sizeArray, sfloat *pArray); +sfloat sms_scalarTempered(sfloat x); +void sms_arrayScalarTempered(int sizeArray, sfloat *pArray); #ifndef MAX /*! \brief returns the maximum of a and b */ @@ -586,8 +593,8 @@ int sms_findPeaks(int sizeWaveform, sfloat *pWaveform, SMS_AnalParams *pAnalPara int sms_findPartials(SMS_Data *pSmsFrame, SMS_AnalParams *pAnalParams); int sms_findResidual(int sizeSynthesis, sfloat* pSynthesis, int sizeOriginal, sfloat* pOriginal, - int sizeResidual, sfloat* pResidual, - SMS_AnalParams *analParams); + SMS_ResidualParams *residualParams); +void sms_approxResidual(SMS_ResidualParams *residualParams); int sms_analyze(int sizeWaveform, sfloat *pWaveform, SMS_Data *pSmsData, SMS_AnalParams *pAnalParams); void sms_analyzeFrame(int iCurrentFrame, SMS_AnalParams *pAnalParams, sfloat fRefFundamental); -- cgit v1.2.3