Mercurial > hg > bayesian-drum-tracker
view src/BayesDrumTracker.h @ 12:e148d1534733 tip
adding new max player
author | Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk> |
---|---|
date | Fri, 09 Mar 2012 20:42:34 +0000 |
parents | 0f9165f96bdb |
children |
line wrap: on
line source
/* * BayesDrumTracker.h * bayesianTempoInitialiser5 * * Created by Andrew on 14/07/2011. * Copyright 2011 QMUL. All rights reserved. * */ #include "ofxOsc.h" #include "bayesianArray.h" #include "beatTempo.h" class BayesDrumTracker{ #ifndef _BAYES_DRUM_TRACKER #define _BAYES_DRUM_TRACKER #define ARRAY_SIZE 240 //#define BAYES_ARRAY_SIZE 240 public: BayesDrumTracker(); ~BayesDrumTracker(); void initialiseTracker(); void resetParameters(); void decayDistributions();//on update void setBeatDistribution(int beatPosition); void newKickError(const float& error, const double& cpuEventTime, const string& onsetTypeString); void startTatum(const float& startTatum); void setNewClickIndex(const int& clickIndex, const float& clickTime); void sendMaxTempo(); void sendMaxPhase(); void newBeat(int& beatIndex); void setUniformTempo(); void setUniformPhase(); void setBeatNow(const double& beatTime); void doBeatCorrection(const float& beatCorrFloat); bool filterBeatTime(double newBeatTime); void crossUpdateArrays(float timeInterval); bool updateTempoIfWithinRange(double timeInterval); void calculateTempoUpdate(double tempoInterval); void updateTempoProcess(const double& cpuTime, const string& onsetDescription); float beatIndexToMsec(const int& index); float tempoIndexToMsec(const int& index); float kickError, snareError; double cpuBeatTime; float testArray[5]; double setBeatToNowTime; float prior [ARRAY_SIZE]; float posterior [ARRAY_SIZE]; float likelihood [ARRAY_SIZE]; float likelihoodMean, likelihoodStdDev, likelihoodNoise, stepSize; float maximumEstimate; float maximumTest, posteriorDecayRate, maximumIndex; float eighthNoteProportion; bool paused; double maxPhase, maxTempo; float tmpArray[ARRAY_SIZE]; float correctionFactor; float beatCorrection; int correctBeatBy; bayesianArray beatDistribution; bayesianArray tempoDistribution; double tempoMinimum, tempoMaximum; double tempoInterval; beatTempo beatTimes; string onsetType; string timeString; //double cpuBeatTime; ofxOscSender sender; double posteriorMaximum; bool adaptiveStandardDeviationMode; double tempoStdDev; bool accompanimentStarted; bool setDistributionOnStartTempo; int integerMultipleOfTatum; double recentClickTime; string kickString;//for info float debugArray [4]; string tempoUpdateStrings[16]; string tempoDataString; }; #endif