annotate dsp/keydetection/GetKeyMode.h @ 209:ccd2019190bf msvc

Some MSVC fixes, including (temporarily, probably) renaming the FFT source file to avoid getting it mixed up with the Vamp SDK one in our object dir
author Chris Cannam
date Thu, 01 Feb 2018 16:34:08 +0000
parents 715f779d0b4f
children e7e36ecd7ad2
rev   line source
cannam@7 1 /*
Chris@153 2 Copyright (c) 2005 Centre for Digital Music ( C4DM )
Chris@153 3 Queen Mary Univesrity of London
Chris@153 4
Chris@153 5 This program is free software; you can redistribute it and/or
Chris@153 6 modify it under the terms of the GNU General Public License as
Chris@153 7 published by the Free Software Foundation; either version 2 of the
Chris@153 8 License, or (at your option) any later version. See the file
Chris@153 9 COPYING included with this distribution for more information.
cannam@7 10 */
cannam@7 11
cannam@40 12 #ifndef GETKEYMODE_H
cannam@7 13 #define GETKEYMODE_H
cannam@7 14
cannam@7 15
cannam@7 16 #include "dsp/rateconversion/Decimator.h"
cannam@7 17 #include "dsp/chromagram/Chromagram.h"
cannam@7 18
cannam@7 19
cannam@7 20 class GetKeyMode
cannam@7 21 {
cannam@7 22 public:
cannam@9 23 GetKeyMode( int sampleRate, float tuningFrequency,
cannam@9 24 double hpcpAverage, double medianAverage );
cannam@7 25
cannam@7 26 virtual ~GetKeyMode();
cannam@7 27
cannam@7 28 int process( double* PCMData );
cannam@7 29
cannam@7 30 double krumCorr( double* pData1, double* pData2, unsigned int length );
cannam@7 31
cannam@7 32 unsigned int getBlockSize() { return m_ChromaFrameSize*m_DecimationFactor; }
cannam@7 33 unsigned int getHopSize() { return m_ChromaHopSize*m_DecimationFactor; }
cannam@7 34
cannam@7 35 double* getChroma() { return m_ChrPointer; }
cannam@7 36 unsigned int getChromaSize() { return m_BPO; }
cannam@7 37
cannam@7 38 double* getMeanHPCP() { return m_MeanHPCP; }
cannam@7 39
cannam@40 40 double *getKeyStrengths() { return m_keyStrengths; }
cannam@40 41
cannam@43 42 bool isModeMinor( int key );
cannam@7 43
cannam@7 44 protected:
cannam@7 45
cannam@7 46 double m_hpcpAverage;
cannam@7 47 double m_medianAverage;
cannam@7 48 unsigned int m_DecimationFactor;
cannam@7 49
cannam@7 50 //Decimator (fixed)
cannam@7 51 Decimator* m_Decimator;
cannam@7 52
cannam@7 53 //chroma configuration
cannam@9 54 ChromaConfig m_ChromaConfig;
cannam@7 55
cannam@7 56 //Chromagram object
cannam@7 57 Chromagram* m_Chroma;
cannam@7 58
cannam@7 59 //Chromagram output pointer
cannam@7 60 double* m_ChrPointer;
cannam@7 61
cannam@7 62 //Framesize
cannam@7 63 unsigned int m_ChromaFrameSize;
cannam@7 64 //Hop
cannam@7 65 unsigned int m_ChromaHopSize;
cannam@7 66 //Bins per octave
cannam@7 67 unsigned int m_BPO;
cannam@7 68
cannam@7 69
cannam@7 70 unsigned int m_ChromaBuffersize;
cannam@7 71 unsigned int m_MedianWinsize;
cannam@7 72
cannam@7 73 unsigned int m_bufferindex;
cannam@7 74 unsigned int m_ChromaBufferFilling;
cannam@7 75 unsigned int m_MedianBufferFilling;
cannam@7 76
cannam@7 77
cannam@7 78 double* m_DecimatedBuffer;
cannam@7 79 double* m_ChromaBuffer;
cannam@7 80 double* m_MeanHPCP;
cannam@7 81
cannam@7 82 double* m_MajCorr;
cannam@7 83 double* m_MinCorr;
cannam@7 84 double* m_Keys;
cannam@7 85 int* m_MedianFilterBuffer;
cannam@7 86 int* m_SortedBuffer;
cannam@40 87
cannam@40 88 double *m_keyStrengths;
cannam@7 89 };
cannam@7 90
cannam@7 91 #endif // !defined GETKEYMODE_H