27{ 0.0384, 0.0629, 0.0258, 0.0121, 0.0146, 0.0106, 0.0364, 0.0610, 0.0267,
28 0.0126, 0.0121, 0.0086, 0.0364, 0.0623, 0.0279, 0.0275, 0.0414, 0.0186,
29 0.0173, 0.0248, 0.0145, 0.0364, 0.0631, 0.0262, 0.0129, 0.0150, 0.0098,
30 0.0312, 0.0521, 0.0235, 0.0129, 0.0142, 0.0095, 0.0289, 0.0478, 0.0239};
33{ 0.0375, 0.0682, 0.0299, 0.0119, 0.0138, 0.0093, 0.0296, 0.0543, 0.0257,
34 0.0292, 0.0519, 0.0246, 0.0159, 0.0234, 0.0135, 0.0291, 0.0544, 0.0248,
35 0.0137, 0.0176, 0.0104, 0.0352, 0.0670, 0.0302, 0.0222, 0.0349, 0.0164,
36 0.0174, 0.0297, 0.0166, 0.0222, 0.0401, 0.0202, 0.0175, 0.0270, 0.0146};
45 double hpcpAverage,
double medianAverage ) :
46 m_hpcpAverage( hpcpAverage ),
47 m_medianAverage( medianAverage ),
55 m_MedianFilterBuffer(0),
69 (48, 0, tuningFrequency);
71 (96, 0, tuningFrequency);
150 for(
unsigned int i = 0; i <length; i++ )
152 num += ( pData1[i] - mX ) * ( pData2[i] - mY );
154 sum1 += ( (pData1[i]-mX) * (pData1[i]-mX) );
155 sum2 += ( (pData2[i]-mY) * (pData2[i]-mY) );
158 den = sqrt(sum1 * sum2);
196 for( j = 0; j <
m_BPO; j++ )
211 for( k = 0; k <
m_BPO; k++ )
223 for( k = 0; k <
m_BPO; k++ )
232 for( k = 0; k <
m_BPO; k++ )
238 for (k = 0; k < 24; ++k) {
242 for( k = 0; k <
m_BPO*2; k++ )
244 int idx = k / (
m_BPO/12);
245 int rem = k % (
m_BPO/12);
292 unsigned int ijx = 0;
309 int midpoint = (int)ceil((
double)sortlength/2);
static double MajProfile[36]
static double MinProfile[36]
unsigned int getFrameSize()
double * process(const double *data)
Decimator carries out a fast downsample by a power-of-two factor.
void process(const double *src, double *dst)
Process inLength samples (as supplied to constructor) from src and write inLength / decFactor samples...
ChromaConfig m_ChromaConfig
unsigned int m_MedianBufferFilling
unsigned int m_DecimationFactor
unsigned int m_ChromaBufferFilling
GetKeyMode(int sampleRate, float tuningFrequency, double hpcpAverage, double medianAverage)
unsigned int m_MedianWinsize
int process(double *PCMData)
double * m_DecimatedBuffer
unsigned int m_ChromaBuffersize
double krumCorr(double *pData1, double *pData2, unsigned int length)
unsigned int m_ChromaHopSize
int * m_MedianFilterBuffer
unsigned int m_bufferindex
bool isModeMinor(int key)
unsigned int m_ChromaFrameSize
static int compareInt(const void *a, const void *b)
static double mean(const double *src, unsigned int len)
Return the mean of the given array of the given length.
static int getMax(double *data, unsigned int length, double *max=0)
static void circShift(double *data, int length, int shift)
static float getFrequencyForPitch(int midiPitch, float centsOffset=0, float concertA=440.0)
MathUtilities::NormaliseType normalise