33 : mAudioProvider(
"Audio provider", 0 )
41 : mAudioProvider(
"Audio provider", 0 )
60 bool SMSAnalysis::ConfigureChildren()
67 void SMSAnalysis::ConfigureData()
75 void SMSAnalysis::AttachChildren()
97 in.GetSpectrum().SetSize(mConfig.GetSinSpectralAnalysis().GetFFT().GetAudioSize()/2+1);
98 in.GetFundamental().SetnMaxCandidates(1);
105 mAudioProvider.
SetSampleRate( in.GetAudioFrame().GetSampleRate() );
106 mAudioProvider.
GetAudio().GetBuffer() = in.GetAudioFrame().GetBuffer();
132 "Residual spectrum is not being properly configured" );
136 in.SetIsHarmonic(in.GetFundamental().GetFreq(0)>0);
146 TTime frameCenterTime=frameIndex*step/samplingRate;
149 TIndex audioCenterSample=(mAudioFrameIndex)*step;
154 if(frameCenterTime>in.GetAudio().GetDuration()*0.001)
157 tmpFrame.SetDuration(step/samplingRate);
158 tmpFrame.SetCenterTime(
TData(frameCenterTime));
159 tmpFrame.AddAudioFrame();
161 tmpFrame.GetAudioFrame().SetBeginTime(((
float)frameIndex - 0.5f)*step/samplingRate);
162 tmpFrame.GetAudioFrame().SetSampleRate(in.GetAudio().GetSampleRate());
166 in.GetAudio().GetAudioChunk(audioCenterSample-step/2,audioCenterSample+step/2,
167 tmpFrame.GetAudioFrame(),
true);
173 bool hasProcessed=
Do(tmpFrame);
184 void SMSAnalysis::InitFrame(
Frame& in)
187 if ( !in.HasSpectrum() )
189 if ( !in.HasSpectralPeakArray() )
190 in.AddSpectralPeakArray();
191 if ( !in.HasFundamental() )
193 if ( !in.HasResidualSpec() )
194 in.AddResidualSpec();
195 if ( !in.HasIsHarmonic() )
197 if ( !in.HasSinusoidalAnalSpectrum() )
198 in.AddSinusoidalAnalSpectrum();