annotate dsp/tonal/TCSgram.h @ 40:163f6e03e9e7

* Add key strength output; increase chromagram lower bound so as to shorten hop size
author cannam
date Fri, 01 Feb 2008 16:45:49 +0000
parents d7116e3183f8
children e5907ae6de17
rev   line source
cannam@0 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
cannam@0 2
cannam@0 3 /*
cannam@0 4 QM DSP Library
cannam@0 5
cannam@0 6 Centre for Digital Music, Queen Mary, University of London.
cannam@0 7 This file copyright 2006 Martin Gasser.
cannam@0 8 All rights reserved.
cannam@0 9 */
cannam@0 10
cannam@0 11 #ifndef _TCSGram_
cannam@0 12 #define _TCSGram_
cannam@0 13
cannam@0 14 #include <vector>
cannam@0 15 #include <valarray>
cannam@0 16 #include <utility>
cannam@0 17
cannam@0 18 #include "TonalEstimator.h"
cannam@0 19
cannam@0 20 typedef std::vector<std::pair<long, TCSVector> > vectorlist_t;
cannam@0 21
cannam@0 22 class TCSGram
cannam@0 23 {
cannam@0 24 public:
cannam@0 25 TCSGram();
cannam@0 26 ~TCSGram();
cannam@0 27 void getTCSVector(int, TCSVector&) const;
cannam@0 28 void addTCSVector(const TCSVector&);
cannam@0 29 long getTime(size_t) const;
cannam@0 30 long getDuration() const;
cannam@0 31 void printDebug();
cannam@0 32 int getSize() const { return m_VectorList.size(); }
cannam@0 33 void reserve(size_t uSize) { m_VectorList.reserve(uSize); }
cannam@0 34 void clear() { m_VectorList.clear(); }
cannam@0 35 void setFrameDuration(const double dFrameDurationMS) { m_dFrameDurationMS = dFrameDurationMS; }
cannam@0 36 void setNumBins(const unsigned int uNumBins) { m_uNumBins = uNumBins; }
cannam@0 37 void normalize();
cannam@0 38 protected:
cannam@0 39 vectorlist_t m_VectorList;
cannam@0 40 unsigned int m_uNumBins;
cannam@0 41 double m_dFrameDurationMS;
cannam@0 42 };
cannam@0 43
cannam@0 44 #endif