annotate dsp/keydetection/GetKeyMode.h @ 475:64fc3009d0a3

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