annotate src/BayesianArrayStructure.h @ 0:b299a65a3ad0

start project
author Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk>
date Tue, 16 Aug 2011 11:29:59 +0100
parents
children 5581023e0de4
rev   line source
andrew@0 1 /*
andrew@0 2 * BayesianArrayStructure.h
andrew@0 3 * midiCannamReader
andrew@0 4 *
andrew@0 5 * Created by Andrew on 17/07/2011.
andrew@0 6 * Copyright 2011 QMUL. All rights reserved.
andrew@0 7 *
andrew@0 8 */
andrew@0 9
andrew@0 10 #include "ofMain.h"
andrew@0 11 //#include "DynamicBayesianArray.h"
andrew@0 12 #include "DynamicVector.h"
andrew@0 13
andrew@0 14 class BayesianArrayStructure {
andrew@0 15
andrew@0 16 public:
andrew@0 17 // BayesianArrayStructure();
andrew@0 18 BayesianArrayStructure();
andrew@0 19 BayesianArrayStructure(int length);
andrew@0 20
andrew@0 21 void calculatePosterior();
andrew@0 22 void drawArrays();
andrew@0 23 void drawArraysRelativeToTimeframe(const double& startTimeMillis, const double& endTimeMillis);
andrew@0 24
andrew@0 25 void drawTempoArrays();
andrew@0 26
andrew@0 27 void resetSize(int length);
andrew@0 28 void resetArrays();
andrew@0 29 void simpleExample();
andrew@0 30
andrew@0 31 double screenWidth;
andrew@0 32
andrew@0 33 void copyPriorToPosterior();
andrew@0 34 // DynamicBayesianArray bayesArray;
andrew@0 35
andrew@0 36 double lastEventTime;
andrew@0 37
andrew@0 38 DynamicVector tmpPrior;
andrew@0 39
andrew@0 40 DynamicVector prior;
andrew@0 41 DynamicVector posterior;
andrew@0 42 DynamicVector likelihood;
andrew@0 43
andrew@0 44 DynamicVector relativeSpeedPrior;
andrew@0 45 DynamicVector relativeSpeedLikelihood;
andrew@0 46 DynamicVector relativeSpeedPosterior;
andrew@0 47 DynamicVector acceleration;
andrew@0 48
andrew@0 49 void resetSpeedToOne();
andrew@0 50
andrew@0 51 double bestEstimate;
andrew@0 52 void updateBestEstimate();
andrew@0 53 // double lastBestEstimateUpdateTime;
andrew@0 54
andrew@0 55 double speedDecayWidth, speedDecayAmount;
andrew@0 56 void decaySpeedDistribution(double timeDifference);
andrew@0 57
andrew@0 58 void resetSpeedSize(int length);
andrew@0 59 void setRelativeSpeedScalar(double f);
andrew@0 60 void calculateNewPriorOffset(const double& timeDifference);
andrew@0 61 void setNewDistributionOffsets(const double& newOffset);
andrew@0 62
andrew@0 63 void updateTempoDistribution(const double& speedRatio, const double& matchFactor);
andrew@0 64
andrew@0 65 void setFlatTempoLikelihood();
andrew@0 66 void calculateTempoUpdate();
andrew@0 67 void updateTempoLikelihood(const double& speedRatio, const double& matchFactor);
andrew@0 68
andrew@0 69 void crossUpdateArrays(DynamicVector& position, DynamicVector& speed, double timeDifference);
andrew@0 70
andrew@0 71 };
andrew@0 72