Mercurial > hg > multitrack-audio-matcher
diff bayesianArraySrc/DynamicVector.cpp @ 2:179c09199b3c
bayesian vector now adding gaussians for kick onsets
author | Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk> |
---|---|
date | Tue, 31 Jan 2012 21:34:19 +0000 |
parents | c4f9e49226eb |
children | 5e188c0035b6 |
line wrap: on
line diff
--- a/bayesianArraySrc/DynamicVector.cpp Tue Jan 31 17:35:30 2012 +0000 +++ b/bayesianArraySrc/DynamicVector.cpp Tue Jan 31 21:34:19 2012 +0000 @@ -157,6 +157,26 @@ //now delete tmp array } + + +void DynamicVector::addGaussianShapeFromRealTime(const double& actualTime, const double& StdDev, double factor){ + + double mean = getRealTermsAsIndex(actualTime); + printf("Gaussian realtime %f at index %f\n", actualTime, mean); + int i; + double std_dev_factor = (2*StdDev*StdDev); + factor *= (1/(StdDev*sqrt(2*PI))); + int maxVal = min((int) array.size(), (int)(mean + 4.8*StdDev)); + int minVal = max(0, (int)(mean - 4.8*StdDev)); + + for (i=minVal;i < maxVal;i++){ + array[i] += factor*exp(-1*(i-mean)*(i-mean)/(std_dev_factor)); + } + + // addGaussianShapeByLookupTable(mean, StdDev, factor); +} + + void DynamicVector::addGaussianShape(const double& mean, const double& StdDev, double factor){ int i;