Marsyas
0.6.0-alpha
|
00001 #ifndef MARSYAS_MATCHBASSMODEL_H 00002 #define MARSYAS_MATCHBASSMODEL_H 00003 00004 #include <marsyas/system/MarSystem.h> 00005 #include <cstdlib> 00006 #include <ctime> 00007 00008 namespace Marsyas 00009 { 00036 class MatchBassModel: public MarSystem 00037 { 00038 private: 00039 mrs_natural K_; 00040 mrs_natural I_; 00041 mrs_natural rootMin_; 00042 mrs_natural rootMax_; 00043 mrs_natural rootBin_; 00044 realvec d_; 00045 realvec k_; 00046 realvec seg_; 00047 realvec time_; 00048 realvec freq_; 00049 realvec logFreq_; 00050 realvec start_; 00051 realvec templates_; 00052 realvec covMatrix_; 00053 realvec i_featVec_; 00054 realvec j_featVec_; 00055 realvec stackedFeatVecs_; 00056 realvec metricResult_; 00057 realvec invec_; 00058 realvec costVector_; 00059 realvec distance_; 00060 mrs_real lowFreq_; 00061 mrs_real highFreq_; 00062 mrs_real rootFreq_; 00063 mrs_real totaldis_; 00064 00065 MarControlPtr ctrl_nTemplates_; 00066 MarControlPtr ctrl_nDevision_; 00067 MarControlPtr ctrl_segmentation_; 00068 MarControlPtr ctrl_time_; 00069 MarControlPtr ctrl_freq_; 00070 MarControlPtr ctrl_totalDistance_; 00071 MarControlPtr ctrl_lowFreq_; 00072 MarControlPtr ctrl_highFreq_; 00073 MarControlPtr ctrl_rootFreq_; 00074 MarControlPtr ctrl_templates_; 00075 MarControlPtr ctrl_intervals_; 00076 MarControlPtr ctrl_selections_; 00077 MarControlPtr ctrl_mode_; 00078 MarControlPtr ctrl_calcCovMatrix_; 00079 MarControlPtr ctrl_covMatrix_; 00080 MarControlPtr ctrl_stdDev_; 00081 MarControlPtr ctrl_normalize_; 00082 MarControlPtr ctrl_distance_; 00083 00084 void addControls(); 00085 void myUpdate(MarControlPtr sender); 00086 00087 public: 00088 enum covMatrixType { 00089 noCovMatrix = 0, 00090 fixedStdDev = 1, 00091 diagCovMatrix = 2, 00092 fullCovMatrix = 3 00093 }; 00094 00095 MatchBassModel(std::string name); 00096 MatchBassModel(const MatchBassModel& a); 00097 ~MatchBassModel(); 00098 00099 MarSystem* clone() const; 00100 00101 void myProcess(realvec& in, realvec& out); 00102 }; 00103 } 00104 00105 #endif 00106 00107