Mercurial > hg > midi-score-follower
view src/DynamicVector.h @ 5:195907bb8bb7
added purple where notes have been seen - lets you see what updates have been used. Also the chopping of midi files to the beginning was introduced recently, so when they load, you chop any white space at the beginning, then use first note to launch.
author | Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk> |
---|---|
date | Fri, 19 Aug 2011 16:38:30 +0100 |
parents | 4a8e6a6cd224 |
children | 75dcd1308658 |
line wrap: on
line source
/* * DynamicVector.h * midiCannamReader * * Created by Andrew on 18/07/2011. * Copyright 2011 QMUL. All rights reserved. * */ //OPTIMIZE CONSTRAINED VECTOR #include "stdlib.h" #include "ofMain.h" #ifndef _DYNAMIC_VECTOR #define _DYNAMIC_VECTOR #define GAUSSIAN_LOOKUP_LENGTH 1000000 class DynamicVector{ public: DynamicVector(); void createVector(int len); void renormalise(); void translateDistribution(int translationIndex); typedef std::vector<double> DoubleVector; DoubleVector array; double getMaximum(); double getIntegratedEstimate(); double getLookupIndex(const int& i, const double& mean, const double& StdDev); void addGaussianShapeByLookupTable(double& mean, double& StdDev, double& factor); double gaussianLookupTable[GAUSSIAN_LOOKUP_LENGTH]; double gaussianLookupMean, gaussianLookupStdDev; void drawVector(const int& minIndex, const int& maxIndex); void drawConstrainedVector(const int& minIndex, const int& maxIndex, const int& minScreenIndex, const int& maxScreenIndex); void addConstant(double value); void addGaussianShape(double mean, double stddev, double factor); void addTriangularShape(double mean, double width, double factor); void addToIndex(int index, double constant); void doProduct(DynamicVector& arrayOne, DynamicVector& arrayTwo); double getIndexInRealTerms(const int& index); double getRealTermsAsIndex(double value); double getValueAtMillis(const double& millis); void printArray(); void zero(); void copyFromDynamicVector(const DynamicVector& dynamicVec); //variables int length, arraySize; double maximumValue; int MAPestimate; double offset; double scalar;//each array point is this much of the quantity //i.e. array[index] contributes to (offset + scalar*index) in real terms }; #endif