annotate src/AudioAnalysis.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 ba2a17cf81bf
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@1 22 #define FRAMESIZE 512
andrew@1 23 #define ENERGY_LENGTH 80000
andrew@1 24 #define CHROMA_LENGTH 12000
andrew@1 25 #define CHROMA_CONVERSION_FACTOR 16 //16 times as many frames in energy as in chroma
andrew@1 26
andrew@1 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@1 35
andrew@1 36 AudioAnalysis();
andrew@1 37
andrew@1 38 typedef std::vector<double> DoubleVector;
andrew@1 39 typedef std::vector<DoubleVector> DoubleMatrix;
andrew@1 40
andrew@1 41 DoubleMatrix chromaMatrix;
andrew@1 42 // DoubleMatrix* matrixPtr;
andrew@1 43 DoubleVector energyVector;
andrew@1 44
andrew@1 45 AudioFile* audioHolder;
andrew@1 46 void loadNewAudio(string soundFileName);//??
andrew@1 47
andrew@1 48 Chromagram chromoGramm;
andrew@1 49 int currentPlayingFrame;
andrew@1 50
andrew@1 51 ChordDetect chord;
andrew@1 52
andrew@1 53 double getEnergyOfFrame();
andrew@1 54 int scrollWidth;
andrew@1 55 //int totalFrames;
andrew@1 56 void drawEnergyVectorFromPointer();
andrew@1 57 void drawSpectralDifference();
andrew@1 58
andrew@0 59 /*
andrew@0 60 double getEnergyOfFrame();
andrew@1 61
andrew@0 62
andrew@0 63 void initialiseVariables();
andrew@0 64
andrew@1 65
andrew@1 66 void initialiseVariables();
andrew@0 67
andrew@1 68
andrew@1 69 AudioFile audioHolder;
andrew@1 70
andrew@1 71 void drawDoubleMatrix(DoubleMatrix* dMatrix);//DoubleMatrix* dMatrix); WOULD BE NICE TO USE POINTER BUT NOT WORKING YET
andrew@0 72
andrew@1 73
andrew@1 74 DoubleVector firstEnergyVector;
andrew@1 75
andrew@1 76 void drawEnergyVectorFromPointer(DoubleVector* energyVec);
andrew@1 77
andrew@1 78 void processAudioToDoubleMatrix(Chromagram* chromaG, DoubleMatrix* myDoubleMatrix, DoubleVector* energyVector);
andrew@1 79
andrew@1 80 void loadNewAudio(string soundFileName);
andrew@1 81
andrew@1 82
andrew@1 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