Mercurial > hg > qm-dsp
annotate dsp/tonal/TCSgram.h @ 30:a251fb0de594
* Make MFCC able to accept already-FFT'd input, and simplify API a bit
* Add log power value to MFCC, restore windowing, and avoid some heap allocs
* In HMM, bail out of iteration if loglik hits NaN
author | cannam |
---|---|
date | Fri, 18 Jan 2008 13:24:12 +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 |