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