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 _TCSGram_ cannam@0: #define _TCSGram_ cannam@0: cannam@0: #include cannam@0: #include cannam@0: #include cannam@0: cannam@0: #include "TonalEstimator.h" cannam@0: cannam@0: typedef std::vector > vectorlist_t; cannam@0: cannam@0: class TCSGram cannam@0: { cannam@0: public: cannam@0: TCSGram(); cannam@0: ~TCSGram(); cannam@0: void getTCSVector(int, TCSVector&) const; cannam@0: void addTCSVector(const TCSVector&); cannam@0: long getTime(size_t) const; cannam@0: long getDuration() const; cannam@0: void printDebug(); cannam@0: int getSize() const { return m_VectorList.size(); } cannam@0: void reserve(size_t uSize) { m_VectorList.reserve(uSize); } cannam@0: void clear() { m_VectorList.clear(); } cannam@0: void setFrameDuration(const double dFrameDurationMS) { m_dFrameDurationMS = dFrameDurationMS; } cannam@0: void setNumBins(const unsigned int uNumBins) { m_uNumBins = uNumBins; } cannam@0: void normalize(); cannam@0: protected: cannam@0: vectorlist_t m_VectorList; cannam@0: unsigned int m_uNumBins; cannam@0: double m_dFrameDurationMS; cannam@0: }; cannam@0: cannam@0: #endif