34 "key",
"SMSAnalysisCore",
35 "category",
"Analysis",
36 "description",
"SMSAnalysisCore",
39 static FactoryRegistrator<ProcessingFactory, SMSAnalysisCore>
reg =
metadata;
44 : mInputAudio(
"Input Audio",this ),
45 mOutputResSpectrum(
"Residual Branch Spectrum",this ),
46 mOutputSinSpectrum(
"Sinusoidal Branch Spectrum",this ),
47 mOutputSpectralPeaks(
"Sinusoidal Peaks",this ),
48 mOutputFundamental(
"Fundamental",this ),
49 mOutputSubstractedSpectrum(
"Residual Spectrum", this )
52 ConnectAndPublishPorts();
57 : mInputAudio(
"Input Audio",this ),
58 mOutputResSpectrum(
"Residual Branch Spectrum",this ),
59 mOutputSinSpectrum(
"Sinusoidal Branch Spectrum",this ),
60 mOutputSpectralPeaks(
"Sinusoidal Peaks",this ),
61 mOutputFundamental(
"Fundamental",this ),
62 mOutputSubstractedSpectrum(
"Residual Spectrum", this )
65 ConnectAndPublishPorts();
84 bool SMSAnalysisCore::ConfigureChildren()
86 mSinSpectralAnalysis.
Configure(mConfig.GetSinSpectralAnalysis());
87 mResSpectralAnalysis.
Configure(mConfig.GetResSpectralAnalysis());
88 mPeakDetect.
Configure(mConfig.GetPeakDetect());
89 mFundDetect.
Configure(mConfig.GetFundFreqDetect());
90 mSinTracking.
Configure(mConfig.GetSinTracking());
91 mSynthSineSpectrum.
Configure(mConfig.GetSynthSineSpectrum());
108 void SMSAnalysisCore::ConfigureData()
118 scfg.SetSize(mConfig.GetResSpectralAnalysis().GetFFT().GetAudioSize()/2+1);
120 resSpec.Configure(scfg);
124 scfg.SetSize(mConfig.GetSinSpectralAnalysis().GetFFT().GetAudioSize()/2+1);
125 sinSpec.Configure(scfg);
132 SpecTypeFlags sflags;
135 sflags.bMagPhase = 0;
136 sflags.bMagPhaseBPF = 0;
137 Scfg.SetType(sflags);
138 Scfg.SetSize(resSpec.GetSize());
140 Spectrum tmpSpecIn(Scfg);
145 void SMSAnalysisCore::AttachChildren()
159 "SMSAnalysisCore::ConcreteStart in port 'Input' needs an attached out port, to start");
167 std::cout <<
"SMSAnalysisCore::ConcreteStart() Alert!! setting size mSinSpec... : "<< sinSize <<
"\n";
185 mSinSpectralAnalysis.
Do();
186 mResSpectralAnalysis.
Do();
189 "SMSAnalysisCore::Do() mPeakDetect should have data feeded");
193 "SMSAnalysisCore::Do() mFundDetect should have data feeded");
197 "SMSAnalysisCore::Do() mSinTracking should have data feeded");
201 "SMSAnalysisCore::Do() mSynthSineSpectrum should have data feeded");
202 mSynthSineSpectrum.
Do();
205 "SMSAnalysisCore::Do() specSubstracter should have data feeded");
206 mSpecSubstracter.
Do();
214 void SMSAnalysisCore::ConnectAndPublishPorts()