annotate DrumTimingLoader_OF/ofxAudioFileLoader/AudioAnalysis.h @ 3:303edbbcf1bd tip

updated ofxAubioOnsetDetection file
author Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk>
date Sun, 24 Nov 2013 08:15:17 +0000
parents 82352cfc0b23
children
rev   line source
andrew@0 1 /*
andrew@0 2 * AudioAnalysis.h
andrew@0 3 * audioFileLoader4
andrew@0 4 *
andrew@0 5 * Created by Andrew on 14/08/2011.
andrew@0 6 * Copyright 2011 QMUL. All rights reserved.
andrew@0 7 *
andrew@0 8 */
andrew@0 9
andrew@0 10 #ifndef AUDIO_ANALYSIS_H
andrew@0 11 #define AUDIO_ANALYSIS_H
andrew@0 12
andrew@0 13
andrew@0 14 //#include "fftw3.h"
andrew@0 15 #include "ofMain.h"
andrew@0 16 //#include "chromaGram.h"
andrew@0 17 //#include "ChordDetect.h"
andrew@0 18 #include "sndfile.h"
andrew@0 19 #include "ofxFileDialogOSX.h"
andrew@0 20 #include "AudioFile.h"
andrew@0 21
andrew@0 22 #define FRAMESIZE 512
andrew@0 23 #define ENERGY_LENGTH 80000
andrew@0 24 #define CHROMA_LENGTH 12000
andrew@0 25 #define CHROMA_CONVERSION_FACTOR 16 //16 times as many frames in energy as in chroma
andrew@0 26
andrew@0 27
andrew@0 28 //this does a chromagram analysis and aubio onset analysis
andrew@0 29 //held in double matrix and doubleVector respectively
andrew@0 30 //these are dynamic vectors, so size set by what's needed for the file
andrew@0 31
andrew@0 32 class AudioAnalysis{
andrew@0 33
andrew@0 34 public:
andrew@0 35
andrew@0 36 AudioAnalysis();
andrew@0 37
andrew@0 38 typedef std::vector<double> DoubleVector;
andrew@0 39 typedef std::vector<DoubleVector> DoubleMatrix;
andrew@0 40
andrew@0 41 DoubleMatrix chromaMatrix;
andrew@0 42 // DoubleMatrix* matrixPtr;
andrew@0 43 DoubleVector energyVector;
andrew@0 44
andrew@0 45 AudioFile* audioHolder;
andrew@0 46 void loadNewAudio(string soundFileName);//??
andrew@0 47
andrew@0 48 // Chromagram chromoGramm;
andrew@0 49 int currentPlayingFrame;
andrew@0 50
andrew@0 51 // ChordDetect chord;
andrew@0 52
andrew@0 53 double getEnergyOfFrame();
andrew@0 54 int scrollWidth;
andrew@0 55 //int totalFrames;
andrew@0 56 void drawEnergyVectorFromPointer();
andrew@0 57 void drawSpectralDifference();
andrew@0 58
andrew@0 59 /*
andrew@0 60 double getEnergyOfFrame();
andrew@0 61
andrew@0 62
andrew@0 63 void initialiseVariables();
andrew@0 64
andrew@0 65
andrew@0 66 void initialiseVariables();
andrew@0 67
andrew@0 68
andrew@0 69 AudioFile audioHolder;
andrew@0 70
andrew@0 71 void drawDoubleMatrix(DoubleMatrix* dMatrix);//DoubleMatrix* dMatrix); WOULD BE NICE TO USE POINTER BUT NOT WORKING YET
andrew@0 72
andrew@0 73
andrew@0 74 DoubleVector firstEnergyVector;
andrew@0 75
andrew@0 76 void drawEnergyVectorFromPointer(DoubleVector* energyVec);
andrew@0 77
andrew@0 78 void processAudioToDoubleMatrix(Chromagram* chromaG, DoubleMatrix* myDoubleMatrix, DoubleVector* energyVector);
andrew@0 79
andrew@0 80 void loadNewAudio(string soundFileName);
andrew@0 81
andrew@0 82
andrew@0 83
andrew@0 84 */
andrew@0 85
andrew@0 86
andrew@0 87 };
andrew@0 88 #endif
andrew@0 89
andrew@0 90
andrew@0 91