Mercurial > hg > multitrack-audio-matcher
comparison bayesianArraySrc/BayesianArrayStructure.cpp @ 7:33dedfe32893
kick, snare and bass windowed. Likelihoods in dedicated screen regions
author | Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk> |
---|---|
date | Thu, 02 Feb 2012 21:55:51 +0000 |
parents | 746a5af43c02 |
children | 572564b7cb85 |
comparison
equal
deleted
inserted
replaced
6:746a5af43c02 | 7:33dedfe32893 |
---|---|
14 | 14 |
15 BayesianArrayStructure::BayesianArrayStructure(){ | 15 BayesianArrayStructure::BayesianArrayStructure(){ |
16 printf("Bayesian structure: DeFault constructor called"); | 16 printf("Bayesian structure: DeFault constructor called"); |
17 | 17 |
18 usingIntegratedTempoEstimate = false;// use max index | 18 usingIntegratedTempoEstimate = false;// use max index |
19 updatingSpeedDistribution = false; | |
19 | 20 |
20 relativeSpeedLikelihoodStdDev = 5.0; | 21 relativeSpeedLikelihoodStdDev = 5.0; |
21 | 22 |
22 prior.createVector(1); | 23 prior.createVector(1); |
23 likelihood.createVector(1); | 24 likelihood.createVector(1); |
102 speedPriorValue = f; | 103 speedPriorValue = f; |
103 int index = relativeSpeedPosterior.getRealTermsAsIndex(speedPriorValue); | 104 int index = relativeSpeedPosterior.getRealTermsAsIndex(speedPriorValue); |
104 relativeSpeedPosterior.zero(); | 105 relativeSpeedPosterior.zero(); |
105 relativeSpeedPosterior.addGaussianShape(index, priorWidth, 0.8); | 106 relativeSpeedPosterior.addGaussianShape(index, priorWidth, 0.8); |
106 printf("speed adding to index for 1 = %f\n", relativeSpeedPosterior.getRealTermsAsIndex(1)); | 107 printf("speed adding to index for 1 = %f\n", relativeSpeedPosterior.getRealTermsAsIndex(1)); |
107 relativeSpeedPosterior.addToIndex(relativeSpeedPosterior.getRealTermsAsIndex(1), 1); | 108 relativeSpeedPosterior.addToIndex(relativeSpeedPosterior.getRealTermsAsIndex(1), 0.1); |
109 relativeSpeedPosterior.addGaussianShapeFromRealTime(1, 3, 0.5); | |
108 | 110 |
109 relativeSpeedPosterior.renormalise(); | 111 relativeSpeedPosterior.renormalise(); |
110 relativeSpeedPosterior.getMaximum(); | 112 relativeSpeedPosterior.getMaximum(); |
111 relativeSpeedPrior.copyFromDynamicVector(relativeSpeedPosterior); | 113 relativeSpeedPrior.copyFromDynamicVector(relativeSpeedPosterior); |
112 printf("BAYES STRUCTU ' SPEED PRIOR %f . index %i\n", speedPriorValue, index); | 114 printf("BAYES STRUCTU ' SPEED PRIOR %f . index %i\n", speedPriorValue, index); |
161 setNewDistributionOffsets(0); | 163 setNewDistributionOffsets(0); |
162 | 164 |
163 int zeroIndex = posterior.getRealTermsAsIndex(0); | 165 int zeroIndex = posterior.getRealTermsAsIndex(0); |
164 printf("ZERO INDEX %i\n", zeroIndex); | 166 printf("ZERO INDEX %i\n", zeroIndex); |
165 | 167 |
166 posterior.addGaussianShapeFromRealTime(0, 500, 1);//one way to add at x msec | 168 posterior.addGaussianShapeFromRealTime(0, 60, 1);//one way to add at x msec |
167 posterior.addGaussianShape(posterior.getRealTermsAsIndex(10), 50, 1);//alternative way | 169 // posterior.addGaussianShape(posterior.getRealTermsAsIndex(10), 50, 1);//alternative way |
168 | 170 |
169 //posterior.addToIndex(0, 1); | 171 //posterior.addToIndex(0, 1); |
170 likelihood.addConstant(1); | 172 likelihood.addConstant(1); |
171 | 173 |
172 updateCounter = 0; | 174 updateCounter = 0; |
286 // printf("updating distributions at time %f diff %f offset %f tmpmap est %i\n", newEventTime, timeDifference, bayesianStruct.posterior.offset, tmpMap); | 288 // printf("updating distributions at time %f diff %f offset %f tmpmap est %i\n", newEventTime, timeDifference, bayesianStruct.posterior.offset, tmpMap); |
287 | 289 |
288 //addnoise to the tempo distribution | 290 //addnoise to the tempo distribution |
289 //bayesianStruct.decaySpeedDistribution(timeDifference); | 291 //bayesianStruct.decaySpeedDistribution(timeDifference); |
290 | 292 |
291 if (timeDifference > 50){ | 293 if (timeDifference > 50 && updatingSpeedDistribution){ |
292 addGaussianNoiseToSpeedPosterior(timeDifference * 10.0 / 100.); | 294 addGaussianNoiseToSpeedPosterior(timeDifference * 10.0 / 100.); |
293 } | 295 } |
294 | 296 |
295 printPostOffset(); | 297 printPostOffset(); |
296 | 298 |