cannam@0: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ cannam@0: cannam@0: /* cannam@0: QM DSP Library cannam@0: cannam@0: Centre for Digital Music, Queen Mary, University of London. cannam@0: This file copyright 2006 Martin Gasser. cannam@0: All rights reserved. cannam@0: */ cannam@0: cannam@0: #ifndef _CHANGEDETECTIONFUNCTION_ cannam@0: #define _CHANGEDETECTIONFUNCTION_ cannam@0: cannam@50: //#define DEBUG_CHANGE_DETECTION_FUNCTION 1 cannam@0: cannam@0: #include "TCSgram.h" cannam@0: cannam@0: #include cannam@0: using std::valarray; cannam@0: cannam@0: typedef valarray ChangeDistance; cannam@0: cannam@0: struct ChangeDFConfig cannam@0: { cannam@0: int smoothingWidth; cannam@0: }; cannam@0: cannam@0: class ChangeDetectionFunction cannam@0: { cannam@0: public: cannam@0: ChangeDetectionFunction(ChangeDFConfig); cannam@0: ~ChangeDetectionFunction(); cannam@0: ChangeDistance process(const TCSGram& rTCSGram); cannam@0: private: cannam@0: void setFilterWidth(const int iWidth); cannam@0: cannam@0: private: cannam@0: valarray m_vaGaussian; cannam@0: double m_dFilterSigma; cannam@0: int m_iFilterWidth; cannam@0: }; cannam@0: cannam@0: #endif // _CHANGDETECTIONFUNCTION_