annotate dsp/tonal/TCSgram.h @ 468:a72d98f8baa3

Revise mechanism for extending chromagram to round number of octaves - do it only in the chromagram itself, so that we can still create deviant constant-Q spectrograms if desired
author Chris Cannam <cannam@all-day-breakfast.com>
date Thu, 30 May 2019 11:35:35 +0100
parents d5014ab8b0e5
children cbe668c7d724
rev   line source
c@225 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
c@225 2
c@225 3 /*
c@225 4 QM DSP Library
c@225 5
c@225 6 Centre for Digital Music, Queen Mary, University of London.
c@225 7 This file copyright 2006 Martin Gasser.
c@309 8
c@309 9 This program is free software; you can redistribute it and/or
c@309 10 modify it under the terms of the GNU General Public License as
c@309 11 published by the Free Software Foundation; either version 2 of the
c@309 12 License, or (at your option) any later version. See the file
c@309 13 COPYING included with this distribution for more information.
c@225 14 */
c@225 15
c@225 16 #ifndef _TCSGram_
c@225 17 #define _TCSGram_
c@225 18
c@225 19 #include <vector>
c@225 20 #include <valarray>
c@225 21 #include <utility>
c@225 22
c@225 23 #include "TonalEstimator.h"
c@225 24
c@225 25 typedef std::vector<std::pair<long, TCSVector> > vectorlist_t;
c@225 26
c@225 27 class TCSGram
c@225 28 {
c@225 29 public:
c@225 30 TCSGram();
c@225 31 ~TCSGram();
c@225 32 void getTCSVector(int, TCSVector&) const;
c@225 33 void addTCSVector(const TCSVector&);
c@225 34 long getTime(size_t) const;
c@225 35 long getDuration() const;
c@225 36 void printDebug();
c@225 37 int getSize() const { return m_VectorList.size(); }
c@225 38 void reserve(size_t uSize) { m_VectorList.reserve(uSize); }
c@225 39 void clear() { m_VectorList.clear(); }
c@225 40 void setFrameDuration(const double dFrameDurationMS) { m_dFrameDurationMS = dFrameDurationMS; }
c@225 41 void setNumBins(const unsigned int uNumBins) { m_uNumBins = uNumBins; }
c@225 42 void normalize();
c@225 43 protected:
c@225 44 vectorlist_t m_VectorList;
c@225 45 unsigned int m_uNumBins;
c@225 46 double m_dFrameDurationMS;
c@225 47 };
c@225 48
c@225 49 #endif