andrew@0: /* andrew@0: * ChordDetect.h andrew@0: * ChordDetect andrew@0: * andrew@0: * Created by Adam Stark on 28/04/2008. andrew@0: * Copyright 2008 __MyCompanyName__. All rights reserved. andrew@0: * andrew@0: */ andrew@0: andrew@0: #ifndef CHORDDETECT_H andrew@0: #define CHORDDETECT_H andrew@0: andrew@0: #include "fftw3.h" andrew@0: andrew@0: class ChordDetect andrew@0: { andrew@0: public: andrew@0: ChordDetect(); // constructor andrew@0: ~ChordDetect(); // destructor andrew@0: void C_Detect(float c[],float c_low[]); andrew@0: andrew@0: int root; andrew@0: int quality; andrew@0: int intervals; andrew@0: andrew@0: private: andrew@0: void makeprofiles(); andrew@0: void calculateweightings(); andrew@0: void classifychromagram(); andrew@0: andrew@0: float calcchordvalue(float c[],float T[],float biasval, float N); andrew@0: float max(float array[],int length); andrew@0: int minindex(float array[],int length); andrew@0: andrew@0: float chroma[12]; andrew@0: float chroma_low[12]; andrew@0: float weight_sus[12]; andrew@0: float weight_aug[12]; andrew@0: float profiles[108][12]; andrew@0: float w_profile[12]; andrew@0: andrew@0: float chord[108]; andrew@0: andrew@0: float bias; andrew@0: andrew@0: andrew@0: }; andrew@0: andrew@0: #endif