annotate dsp/chromagram/Chromagram.h @ 0:d7116e3183f8

* Queen Mary C++ DSP library
author cannam
date Wed, 05 Apr 2006 17:35:59 +0000
parents
children 07ac3de1e53b
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 2005-2006 Christian Landone.
cannam@0 8 All rights reserved.
cannam@0 9 */
cannam@0 10
cannam@0 11 #ifndef CHROMAGRAM_H
cannam@0 12 #define CHROMAGRAM_H
cannam@0 13
cannam@0 14 #include "dsp/transforms/FFT.h"
cannam@0 15 #include "ConstantQ.h"
cannam@0 16
cannam@0 17 struct ChromaConfig{
cannam@0 18 unsigned int FS;
cannam@0 19 double min;
cannam@0 20 double max;
cannam@0 21 unsigned int BPO;
cannam@0 22 double CQThresh;
cannam@0 23 bool isNormalised;
cannam@0 24 };
cannam@0 25
cannam@0 26 class Chromagram
cannam@0 27 {
cannam@0 28
cannam@0 29 public:
cannam@0 30 Chromagram( ChromaConfig Config );
cannam@0 31 ~Chromagram();
cannam@0 32
cannam@0 33 double* process( double *data );
cannam@0 34 void unityNormalise( double* src );
cannam@0 35
cannam@0 36 // Complex arithmetic
cannam@0 37 double kabs( double real, double imag );
cannam@0 38
cannam@0 39 // Results
cannam@0 40 unsigned int getK() { return m_uK;}
cannam@0 41 unsigned int getFrameSize() { return m_frameSize; }
cannam@0 42 unsigned int getHopSize() { return m_hopSize; }
cannam@0 43
cannam@0 44 private:
cannam@0 45 int initialise( ChromaConfig Config );
cannam@0 46 int deInitialise();
cannam@0 47
cannam@0 48 double* m_chromadata;
cannam@0 49 double m_FMin;
cannam@0 50 double m_FMax;
cannam@0 51 unsigned int m_BPO;
cannam@0 52 unsigned int m_uK;
cannam@0 53
cannam@0 54 bool isNormalised;
cannam@0 55
cannam@0 56 unsigned int m_frameSize;
cannam@0 57 unsigned int m_hopSize;
cannam@0 58
cannam@0 59 FFT* m_FFT;
cannam@0 60 ConstantQ* m_ConstantQ;
cannam@0 61
cannam@0 62 double* m_FFTRe;
cannam@0 63 double* m_FFTIm;
cannam@0 64 double* m_CQRe;
cannam@0 65 double* m_CQIm;
cannam@0 66
cannam@0 67 };
cannam@0 68
cannam@0 69 #endif