00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef BICCHANGEDETECTOR_H
00020 #define BICCHANGEDETECTOR_H
00021
00022 #include "MarSystem.h"
00023 #include "QGMMModel.h"
00024 #include <time.h>
00025
00026 namespace Marsyas
00027 {
00041 class Memory;
00042
00043 class BICchangeDetector: public MarSystem
00044 {
00045 private:
00046 mrs_natural segFrames_;
00047 mrs_natural minSegFrames_;
00048 mrs_natural segHop_;
00049 mrs_natural nfeats_;
00050 mrs_natural BICTick_;
00051 mrs_real hopSeconds_;
00052
00053
00054 realvec C1_;
00055 realvec C2_;
00056 realvec C3_;
00057 realvec C4_;
00058 mrs_real dist12_;
00059 mrs_real dist34_;
00060 mrs_real BICdist_;
00061
00062
00063 mrs_natural nrPrevDists_;
00064 Memory* prevDists_;
00065 realvec pdists_;
00066
00067 mrs_natural pIndex_;
00068 mrs_real dynThres_;
00069
00070 mrs_real alpha1_;
00071
00072
00073 mrs_real lambda_;
00074
00075
00076 QGMMModel QGMMmodel_;
00077
00078 MarControlPtr ctrl_reset_;
00079 MarControlPtr ctrl_prevDists_;
00080 MarControlPtr ctrl_alpha1_;
00081 MarControlPtr ctrl_lambda_;
00082 MarControlPtr ctrl_hopMS_;
00083
00084 void addControls();
00085 void myUpdate(MarControlPtr sender);
00086
00087 public:
00088 BICchangeDetector(std::string name);
00089 BICchangeDetector(const BICchangeDetector& a);
00090 ~BICchangeDetector();
00091 MarSystem* clone() const;
00092
00093 void myProcess(realvec& in, realvec& out);
00094 };
00095
00096 }
00097
00098 #endif