Mercurial > hg > multitrack-audio-matcher
comparison 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 |
comparison
equal
deleted
inserted
replaced
1:852173ca8365 | 2:179c09199b3c |
---|---|
154 array[tmpIndex] = tmpArray[i]; | 154 array[tmpIndex] = tmpArray[i]; |
155 } | 155 } |
156 tmpArray.clear(); | 156 tmpArray.clear(); |
157 //now delete tmp array | 157 //now delete tmp array |
158 } | 158 } |
159 | |
160 | |
161 | |
162 void DynamicVector::addGaussianShapeFromRealTime(const double& actualTime, const double& StdDev, double factor){ | |
163 | |
164 double mean = getRealTermsAsIndex(actualTime); | |
165 printf("Gaussian realtime %f at index %f\n", actualTime, mean); | |
166 int i; | |
167 double std_dev_factor = (2*StdDev*StdDev); | |
168 factor *= (1/(StdDev*sqrt(2*PI))); | |
169 int maxVal = min((int) array.size(), (int)(mean + 4.8*StdDev)); | |
170 int minVal = max(0, (int)(mean - 4.8*StdDev)); | |
171 | |
172 for (i=minVal;i < maxVal;i++){ | |
173 array[i] += factor*exp(-1*(i-mean)*(i-mean)/(std_dev_factor)); | |
174 } | |
175 | |
176 // addGaussianShapeByLookupTable(mean, StdDev, factor); | |
177 } | |
178 | |
159 | 179 |
160 void DynamicVector::addGaussianShape(const double& mean, const double& StdDev, double factor){ | 180 void DynamicVector::addGaussianShape(const double& mean, const double& StdDev, double factor){ |
161 | 181 |
162 int i; | 182 int i; |
163 double std_dev_factor = (2*StdDev*StdDev); | 183 double std_dev_factor = (2*StdDev*StdDev); |