Mercurial > hg > constant-q-cpp
view cpp-qm-dsp/CQKernel.h @ 32:ba648b8672bd
Much of the actual CQ processing logic
author | Chris Cannam <c.cannam@qmul.ac.uk> |
---|---|
date | Wed, 06 Nov 2013 08:10:33 +0000 |
parents | 39dddbb78d8b |
children | 2e0d1300a065 |
line wrap: on
line source
/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ #ifndef CQ_KERNEL_H #define CQ_KERNEL_H #include <vector> #include <complex> class FFT; class CQKernel { public: CQKernel(double sampleRate, double maxFreq, int binsPerOctave); ~CQKernel(); struct Properties { double sampleRate; double maxFrequency; double minFrequency; int binsPerOctave; int fftSize; int fftHop; int atomsPerFrame; int atomSpacing; int firstCentre; double Q; }; Properties getProperties() const { return m_p; } std::vector<std::complex<double> > process (const std::vector<std::complex<double> > &); private: Properties m_p; FFT *m_fft; struct KernelMatrix { std::vector<int> origin; std::vector<std::vector<std::complex<double> > > data; }; KernelMatrix m_kernel; void generateKernel(); void finaliseKernel(); }; #endif