annotate dsp/chromagram/ConstantQ.h @ 499:af5b7ef02aa7

Style fixes: avoid unsigned, fix formatting
author Chris Cannam <cannam@all-day-breakfast.com>
date Mon, 03 Jun 2019 14:20:39 +0100
parents 1bea13b8f951
children
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@309 7 This file 2005-2006 Christian Landone.
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
cannam@489 16 #ifndef QM_DSP_CONSTANTQ_H
cannam@489 17 #define QM_DSP_CONSTANTQ_H
c@225 18
c@225 19 #include <vector>
c@241 20 #include "maths/MathAliases.h"
c@241 21 #include "maths/MathUtilities.h"
c@225 22
cannam@465 23 struct CQConfig {
cannam@465 24 double FS; // samplerate
c@245 25 double min; // minimum frequency
c@245 26 double max; // maximum frequency
cannam@499 27 int BPO; // bins per octave
c@245 28 double CQThresh; // threshold
c@225 29 };
c@225 30
cannam@483 31 class ConstantQ
cannam@483 32 {
c@225 33 public:
cannam@495 34 ConstantQ(CQConfig config);
c@225 35 ~ConstantQ();
c@225 36
cannam@495 37 void process(const double* FFTRe, const double* FFTIm,
cannam@495 38 double* CQRe, double* CQIm);
cannam@495 39
cannam@495 40 double* process(const double* FFTData);
c@225 41
c@225 42 void sparsekernel();
c@225 43
cannam@495 44 double getQ() { return m_dQ; }
cannam@495 45 int getK() { return m_uK; }
cannam@495 46 int getFFTLength() { return m_FFTLength; }
cannam@495 47 int getHop() { return m_hop; }
c@225 48
c@225 49 private:
cannam@495 50 void initialise(CQConfig config);
c@225 51 void deInitialise();
cannam@483 52
c@225 53 double* m_CQdata;
cannam@465 54 double m_FS;
c@225 55 double m_FMin;
c@225 56 double m_FMax;
c@225 57 double m_dQ;
c@225 58 double m_CQThresh;
cannam@495 59 int m_hop;
cannam@495 60 int m_BPO;
cannam@495 61 int m_FFTLength;
cannam@495 62 int m_uK;
c@276 63
c@276 64 struct SparseKernel {
cannam@495 65 std::vector<int> is;
cannam@495 66 std::vector<int> js;
c@276 67 std::vector<double> imag;
c@276 68 std::vector<double> real;
c@276 69 };
c@276 70
c@276 71 SparseKernel *m_sparseKernel;
c@225 72 };
c@225 73
c@225 74
c@225 75 #endif//CONSTANTQ_H
c@225 76