annotate chromagramm/Chromagram.h @ 2:fa2af670b5c5 tip

SoundFileLoader might have moved
author Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk>
date Fri, 06 Jan 2012 00:23:26 +0000
parents bcb0d40158f4
children
rev   line source
andrew@0 1
andrew@0 2
andrew@0 3 #ifndef CHROMAGRAM_H
andrew@0 4 #define CHROMAGRAM_H
andrew@0 5
andrew@0 6 #include "fftw3.h"
andrew@0 7
andrew@0 8 class Chromagram
andrew@0 9 {
andrew@0 10 public:
andrew@0 11 Chromagram(); // constructor
andrew@0 12 ~Chromagram(); // destructor
andrew@0 13 void chromacalc(float frame[]);
andrew@0 14 void initialise(int framesize,int hsize);
andrew@0 15 void processframe(float frame[]);
andrew@0 16
andrew@0 17 float rawChroma[12];
andrew@0 18 float chroma[12];
andrew@0 19 float chroma_low[12];
andrew@0 20 int chromaready;
andrew@0 21
andrew@0 22 float maximumChromaValue;
andrew@0 23
andrew@0 24 private:
andrew@0 25 void hamming(int N);
andrew@0 26 void makeprofiles();
andrew@0 27 void getmagspectrum();
andrew@0 28 void generatechromagram();
andrew@0 29 //float euclidean(float v1[],float v2[],int length);
andrew@0 30 float max(float array[],int length);
andrew@0 31 int minindex(float array[],int length);
andrew@0 32 void downsampleframe(float frame[]);
andrew@0 33
andrew@0 34 int bsize;
andrew@0 35 int count;
andrew@0 36 int hopsize;
andrew@0 37 int fsize;
andrew@0 38 int calcrate;
andrew@0 39 float ratio;
andrew@0 40
andrew@0 41 float *buffer; // audio buffer
andrew@0 42 float *wbuffer; // windowed audio buffer
andrew@0 43 float *win; // hanning window
andrew@0 44 float *mag;
andrew@0 45 float *d_frame;
andrew@0 46 float *hop;
andrew@0 47
andrew@0 48
andrew@0 49 float note[12];
andrew@0 50 int harmonics;
andrew@0 51 int octaves;
andrew@0 52 int search;
andrew@0 53
andrew@0 54 fftwf_plan p; // create fft plan
andrew@0 55 fftwf_complex *out; // to hold complex fft values
andrew@0 56
andrew@0 57 float pi;
andrew@0 58
andrew@0 59
andrew@0 60 };
andrew@0 61
andrew@0 62 #endif