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