Mercurial > hg > midi-score-follower
diff hackday/DynamicBayesianArray.h @ 28:49a5b023df1e
Hackday files comitted - version as demo'd at London hackday
author | Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk> |
---|---|
date | Mon, 05 Dec 2011 07:00:47 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hackday/DynamicBayesianArray.h Mon Dec 05 07:00:47 2011 +0000 @@ -0,0 +1,105 @@ +/* + * DynamicBayesianArray.h + * midiCannamReader + * + * Created by Andrew on 17/07/2011. + * Copyright 2011 QMUL. All rights reserved. + * + */ + +/* + * DynamicBayesianArray.cpp + * bayesianTest5 + * + * Created by Andrew Robertson on 08/05/2010. + * Copyright 2010 __MyCompanyName__. All rights reserved. + * + */ + +/* + * DynamicBayesianArray.h + * bayesianTest5 + * + * Created by Andrew Robertson on 08/05/2010. + * Copyright 2010 __MyCompanyName__. All rights reserved. + * + */ + +#include "ofMain.h" + +#include "DynamicVector.h" + +#ifndef _DYNAMIC_BAYESIAN_ARRAY +#define _DYNAMIC_BAYESIAN_ARRAY + +#define ARRAY_SIZE 240 + + +class DynamicBayesianArray{ + +public: + + DynamicBayesianArray(); + void initialiseArray(); + +// void setGaussianLikelihoodForBeats(float mean, float StdDev); + void setGaussianLikelihood(float mean, float StdDev); + void setGaussianPrior(float mean, float StdDev); + void setGaussianPosterior(float mean, float StdDev); + + void calculatePosterior(); + void renormalisePosterior(); + void resetMaximumPosterior();//resets the max index + void decayPosteriorWithGaussianNoise(); + void translateDistribution(int translationIndex); + void setDecayNoiseGaussian(float mean, float StdDev); + double calculateStandardDeviation(); + + int arraySize; + + + float getMaximum(float *ptr, int length); + void renormaliseArray(float *ptr, int length); + void resetPrior(); + void decayPosterior(); + float* getMaximumEstimate(float *ptr, int length); + double getMaximumIndex();//return the index where the probability is maximal + double getIntegratedEstimateIndex(); + +// void drawArray(const int& minIndex, const int& maxIndex); + void drawFloatArray(float* arrayToDraw, const int& minIndex, const int& maxIndex); + void drawDoubleArray(double* arrayToDraw, const int& minIndex, const int& maxIndex); + + + typedef std::vector<double> DoubleVector; +// typedef std::vector<IntVector> DoubleMatrix; + + +// DynamicVector prior; +// DynamicVector posterior; +// DynamicVector likelihood; + + DynamicVector testVector; +// DynamicVector prior; + + float prior [ARRAY_SIZE]; + float posterior [ARRAY_SIZE]; + float likelihood [ARRAY_SIZE]; + float tempPosteriorArray[ARRAY_SIZE]; + + float decayNoiseArray[ARRAY_SIZE]; + float decayNoiseStdDev, decayNoiseAmount; + + float likelihoodMean, likelihoodStdDev, likelihoodNoise; + float maximumTest, posteriorDecayRate, maximumValue; + float eighthNoteProportion, earlySixteenthNoteProportion, lateSixteenthNoteProportion ; + float maximumEstimate, maximumIndex, integratedEstimate; + double standardDeviation; + +private: +}; + +#endif + + +