summaryrefslogtreecommitdiff
path: root/sms
diff options
context:
space:
mode:
Diffstat (limited to 'sms')
-rw-r--r--sms/analysis.c14
-rw-r--r--sms/sms.c20
2 files changed, 20 insertions, 14 deletions
diff --git a/sms/analysis.c b/sms/analysis.c
index 90bec7f..ec4e0fe 100644
--- a/sms/analysis.c
+++ b/sms/analysis.c
@@ -156,11 +156,6 @@ int sms_findPeaks(int sizeWaveform, sfloat *pWaveform, SMS_AnalParams *pAnalPara
/* initialize the current frame */
sms_initFrame(iCurrentFrame, pAnalParams, pAnalParams->windowSize);
- if(sms_errorCheck())
- {
- printf("Error in init frame: %s \n", sms_errorString());
- return 0;
- }
if(pAnalParams->ppFrames[iCurrentFrame]->iStatus == SMS_FRAME_READY)
{
@@ -196,14 +191,17 @@ int sms_findPeaks(int sizeWaveform, sfloat *pWaveform, SMS_AnalParams *pAnalPara
/* save peaks */
pSpectralPeaks->nPeaksFound = pAnalParams->ppFrames[iCurrentFrame]->nPeaks;
pSpectralPeaks->nPeaks = pAnalParams->maxPeaks;
- pSpectralPeaks->pSpectralPeaks = pAnalParams->ppFrames[iCurrentFrame]->pSpectralPeaks;
- /* convert peak amps to linear */
for(i = 0; i < pSpectralPeaks->nPeaks; i++)
{
if(i < pSpectralPeaks->nPeaksFound)
{
- pSpectralPeaks->pSpectralPeaks[i].fMag = pow(10.0, 0.05*(pSpectralPeaks->pSpectralPeaks[i].fMag));
+ pSpectralPeaks->pSpectralPeaks[i].fMag =
+ pow(10.0, 0.05*(pAnalParams->ppFrames[iCurrentFrame]->pSpectralPeaks[i].fMag));
+ pSpectralPeaks->pSpectralPeaks[i].fFreq =
+ pAnalParams->ppFrames[iCurrentFrame]->pSpectralPeaks[i].fFreq;
+ pSpectralPeaks->pSpectralPeaks[i].fPhase =
+ pAnalParams->ppFrames[iCurrentFrame]->pSpectralPeaks[i].fPhase;
}
else
{
diff --git a/sms/sms.c b/sms/sms.c
index f9ed932..89bfa9f 100644
--- a/sms/sms.c
+++ b/sms/sms.c
@@ -518,6 +518,17 @@ void sms_freeAnalysis(SMS_AnalParams *pAnalParams)
free(pAnalParams->stocMagSpectrum);
if(pAnalParams->approxEnvelope)
free(pAnalParams->approxEnvelope);
+
+ pAnalParams->pFrames = NULL;
+ pAnalParams->ppFrames = NULL;
+ pAnalParams->soundBuffer.pFBuffer = NULL;
+ pAnalParams->synthBuffer.pFBuffer = NULL;
+ pAnalParams->residual = NULL;
+ pAnalParams->residualWindow = NULL;
+ pAnalParams->guideStates = NULL;
+ pAnalParams->guides = NULL;
+ pAnalParams->stocMagSpectrum = NULL;
+ pAnalParams->approxEnvelope = NULL;
}
/*! \brief free analysis data
@@ -579,8 +590,6 @@ void sms_freeSpectralPeaks(SMS_SpectralPeaks* peaks)
{
if(!peaks)
return;
- if(peaks->nPeaks <= 0)
- return;
if(peaks->pSpectralPeaks)
free(peaks->pSpectralPeaks);
@@ -671,11 +680,11 @@ int sms_clearAnalysisFrame(int iCurrentFrame, SMS_AnalParams *pAnalParams)
int sms_initFrame(int iCurrentFrame, SMS_AnalParams *pAnalParams, int sizeWindow)
{
/* clear deterministic data */
- memset((sfloat *) pAnalParams->ppFrames[iCurrentFrame]->deterministic.pFSinFreq, 0,
+ memset((sfloat *)pAnalParams->ppFrames[iCurrentFrame]->deterministic.pFSinFreq, 0,
sizeof(sfloat) * pAnalParams->nGuides);
- memset((sfloat *) pAnalParams->ppFrames[iCurrentFrame]->deterministic.pFSinAmp, 0,
+ memset((sfloat *)pAnalParams->ppFrames[iCurrentFrame]->deterministic.pFSinAmp, 0,
sizeof(sfloat) * pAnalParams->nGuides);
- memset((sfloat *) pAnalParams->ppFrames[iCurrentFrame]->deterministic.pFSinPha, 0,
+ memset((sfloat *)pAnalParams->ppFrames[iCurrentFrame]->deterministic.pFSinPha, 0,
sizeof(sfloat) * pAnalParams->nGuides);
/* clear peaks */
@@ -697,7 +706,6 @@ int sms_initFrame(int iCurrentFrame, SMS_AnalParams *pAnalParams, int sizeWindow
/* if first frame set center of data around 0 */
if(pAnalParams->ppFrames[iCurrentFrame]->iFrameNum == 1)
pAnalParams->ppFrames[iCurrentFrame]->iFrameSample = 0;
-
/* if not, increment center of data by sizeHop */
else
pAnalParams->ppFrames[iCurrentFrame]->iFrameSample =