Marsyas  0.6.0-alpha
/usr/src/RPM/BUILD/marsyas-0.6.0/src/marsyas/marsystems/UpdatingBassModel.h
Go to the documentation of this file.
00001 #ifndef MARSYAS_UPDATINGBASSMODEL_H
00002 #define MARSYAS_UPDATINGBASSMODEL_H
00003 
00004 #include <marsyas/system/MarSystem.h>
00005 #include <cstdlib>
00006 #include <ctime>
00007 
00008 namespace Marsyas
00009 {
00029 class UpdatingBassModel: public MarSystem
00030 {
00031 private:
00032   mrs_natural K_;
00033   mrs_natural I_;
00034   mrs_natural rootMin_;
00035   mrs_natural rootMax_;
00036   mrs_natural rootBin_;
00037   realvec d_;
00038   realvec k_;
00039   realvec seg_;
00040   realvec time_;
00041   realvec freq_;
00042   realvec logFreq_;
00043   realvec start_;
00044   realvec counts_;
00045   realvec templates_;
00046   mrs_real lowFreq_;
00047   mrs_real highFreq_;
00048   mrs_real rootFreq_;
00049 
00050   MarControlPtr ctrl_nTemplates_;
00051   MarControlPtr ctrl_nDevision_;
00052   MarControlPtr ctrl_segmentation_;
00053   MarControlPtr ctrl_time_;
00054   MarControlPtr ctrl_freq_;
00055   MarControlPtr ctrl_templates_;
00056   MarControlPtr ctrl_counts_;
00057   MarControlPtr ctrl_lowFreq_;
00058   MarControlPtr ctrl_highFreq_;
00059   MarControlPtr ctrl_rootFreq_;
00060   MarControlPtr ctrl_intervals_;
00061   MarControlPtr ctrl_selections_;
00062 
00063   void addControls();
00064   void myUpdate(MarControlPtr sender);
00065 
00066 public:
00067   UpdatingBassModel(std::string name);
00068   UpdatingBassModel(const UpdatingBassModel& a);
00069   ~UpdatingBassModel();
00070 
00071   MarSystem* clone() const;
00072 
00073   void myProcess(realvec& in, realvec& out);
00074 };
00075 }
00076 
00077 #endif
00078