diff dsp/chromagram/Chromagram.h @ 225:49844bc8a895

* Queen Mary C++ DSP library
author Chris Cannam <c.cannam@qmul.ac.uk>
date Wed, 05 Apr 2006 17:35:59 +0000
parents
children 07ac3de1e53b
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dsp/chromagram/Chromagram.h	Wed Apr 05 17:35:59 2006 +0000
@@ -0,0 +1,69 @@
+/* -*- 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 2005-2006 Christian Landone.
+    All rights reserved.
+*/
+
+#ifndef CHROMAGRAM_H
+#define CHROMAGRAM_H
+
+#include "dsp/transforms/FFT.h"
+#include "ConstantQ.h"
+
+struct ChromaConfig{
+    unsigned int FS;
+    double min;
+    double max;
+    unsigned int BPO;
+    double CQThresh;
+    bool isNormalised;
+};
+
+class Chromagram 
+{
+
+public:	
+    Chromagram( ChromaConfig Config );
+    ~Chromagram();
+	
+    double* process( double *data );
+    void unityNormalise( double* src );
+
+    // Complex arithmetic
+    double kabs( double real, double imag );
+	
+    // Results
+    unsigned int getK() { return m_uK;}
+    unsigned int getFrameSize() { return m_frameSize; }
+    unsigned int getHopSize()   { return m_hopSize; }
+
+private:
+    int initialise( ChromaConfig Config );
+    int deInitialise();
+	
+    double* m_chromadata;
+    double m_FMin;
+    double m_FMax;
+    unsigned int m_BPO;
+    unsigned int m_uK;
+
+    bool isNormalised;
+
+    unsigned int m_frameSize;
+    unsigned int m_hopSize;
+
+    FFT*	 m_FFT;
+    ConstantQ* m_ConstantQ;
+
+    double* m_FFTRe;
+    double* m_FFTIm;
+    double* m_CQRe;
+    double* m_CQIm;
+
+};
+
+#endif