Mercurial > hg > midi-score-follower
view src/DynamicBayesianArray.h @ 11:df9c838d0b8f
fixed bug where the full midi file was sometimes not drawn (since minNoteIndexToPrint) was at the max and did not decrease properly in draw routine
author | Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk> |
---|---|
date | Tue, 25 Oct 2011 15:01:52 +0100 |
parents | b299a65a3ad0 |
children | c7107e5c8f03 |
line wrap: on
line source
/* * 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 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