/usr/include/qm-dsp/dsp/chromagram/ConstantQ.h is in libqm-dsp-dev 1.7.1-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | /* -*- 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 2005-2006 Christian Landone.
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 CONSTANTQ_H
#define CONSTANTQ_H
#include <vector>
#include "maths/MathAliases.h"
#include "maths/MathUtilities.h"
struct CQConfig{
unsigned int FS; // samplerate
double min; // minimum frequency
double max; // maximum frequency
unsigned int BPO; // bins per octave
double CQThresh; // threshold
};
class ConstantQ {
//public functions incl. sparsekernel so can keep out of loop in main
public:
void process( const double* FFTRe, const double* FFTIm,
double* CQRe, double* CQIm );
ConstantQ( CQConfig Config );
~ConstantQ();
double* process( const double* FFTData );
void sparsekernel();
double hamming(int len, int n) {
double out = 0.54 - 0.46*cos(2*PI*n/len);
return(out);
}
int getnumwin() { return m_numWin;}
double getQ() { return m_dQ;}
int getK() {return m_uK ;}
int getfftlength() { return m_FFTLength;}
int gethop() { return m_hop;}
private:
void initialise( CQConfig Config );
void deInitialise();
double* m_CQdata;
unsigned int m_FS;
double m_FMin;
double m_FMax;
double m_dQ;
double m_CQThresh;
unsigned int m_numWin;
unsigned int m_hop;
unsigned int m_BPO;
unsigned int m_FFTLength;
unsigned int m_uK;
struct SparseKernel {
std::vector<unsigned> is;
std::vector<unsigned> js;
std::vector<double> imag;
std::vector<double> real;
};
SparseKernel *m_sparseKernel;
};
#endif//CONSTANTQ_H
|