Mercurial > hg > midi-score-follower
view src/DynamicVector.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 | 75dcd1308658 |
children | 9860abc92a30 |
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; double integratedEstimate; void updateIntegratedEstimate(); 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