summaryrefslogtreecommitdiff
path: root/libs/qm-dsp/dsp/tonal/TCSgram.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/qm-dsp/dsp/tonal/TCSgram.h')
-rw-r--r--libs/qm-dsp/dsp/tonal/TCSgram.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/libs/qm-dsp/dsp/tonal/TCSgram.h b/libs/qm-dsp/dsp/tonal/TCSgram.h
new file mode 100644
index 0000000000..83e8c93f8b
--- /dev/null
+++ b/libs/qm-dsp/dsp/tonal/TCSgram.h
@@ -0,0 +1,49 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
+
+/*
+ QM DSP Library
+
+ Centre for Digital Music, Queen Mary, University of London.
+ This file copyright 2006 Martin Gasser.
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version. See the file
+ COPYING included with this distribution for more information.
+*/
+
+#ifndef _TCSGram_
+#define _TCSGram_
+
+#include <vector>
+#include <valarray>
+#include <utility>
+
+#include "TonalEstimator.h"
+
+typedef std::vector<std::pair<long, TCSVector> > vectorlist_t;
+
+class TCSGram
+{
+public:
+ TCSGram();
+ ~TCSGram();
+ void getTCSVector(int, TCSVector&) const;
+ void addTCSVector(const TCSVector&);
+ long getTime(size_t) const;
+ long getDuration() const;
+ void printDebug();
+ int getSize() const { return m_VectorList.size(); }
+ void reserve(size_t uSize) { m_VectorList.reserve(uSize); }
+ void clear() { m_VectorList.clear(); }
+ void setFrameDuration(const double dFrameDurationMS) { m_dFrameDurationMS = dFrameDurationMS; }
+ void setNumBins(const unsigned int uNumBins) { m_uNumBins = uNumBins; }
+ void normalize();
+protected:
+ vectorlist_t m_VectorList;
+ unsigned int m_uNumBins;
+ double m_dFrameDurationMS;
+};
+
+#endif