comparison src/BTrack.cpp @ 22:a8e3e95d14e4 develop

Renamed many variables, functions and arguments so they have more sensible names. Also removed an apparently redundant variable in OnsetDetectionFunction called wframe
author Adam <adamstark.uk@gmail.com>
date Fri, 24 Jan 2014 21:45:55 +0000
parents ef4721e7466c
children 92ee4ace9d46
comparison
equal deleted inserted replaced
21:ef4721e7466c 22:a8e3e95d14e4
72 // initialise parameters 72 // initialise parameters
73 tightness = 5; 73 tightness = 5;
74 alpha = 0.9; 74 alpha = 0.9;
75 tempo = 120; 75 tempo = 120;
76 estimatedTempo = 120.0; 76 estimatedTempo = 120.0;
77 p_fact = 60.*44100./512.; 77 tempoToLagFactor = 60.*44100./512.;
78 78
79 m0 = 10; 79 m0 = 10;
80 beatCounter = -1; 80 beatCounter = -1;
81 81
82 beatDueInFrame = false; 82 beatDueInFrame = false;
166 166
167 //======================================================================= 167 //=======================================================================
168 void BTrack::processAudioFrame(double *frame) 168 void BTrack::processAudioFrame(double *frame)
169 { 169 {
170 // calculate the onset detection function sample for the frame 170 // calculate the onset detection function sample for the frame
171 double sample = odf.getDFsample(frame); 171 double sample = odf.calculateOnsetDetectionFunctionSample(frame);
172 172
173 173
174 174
175 // process the new onset detection function sample in the beat tracking algorithm 175 // process the new onset detection function sample in the beat tracking algorithm
176 processOnsetDetectionFunctionSample(sample); 176 processOnsetDetectionFunctionSample(sample);
376 adaptiveThreshold(combFilterBankOutput,128); 376 adaptiveThreshold(combFilterBankOutput,128);
377 377
378 378
379 int t_index; 379 int t_index;
380 int t_index2; 380 int t_index2;
381 // calculate tempo observation vector from bperiod observation vector 381 // calculate tempo observation vector from beat period observation vector
382 for (int i = 0;i < 41;i++) 382 for (int i = 0;i < 41;i++)
383 { 383 {
384 t_index = (int) round(p_fact / ((double) ((2*i)+80))); 384 t_index = (int) round(tempoToLagFactor / ((double) ((2*i)+80)));
385 t_index2 = (int) round(p_fact / ((double) ((4*i)+160))); 385 t_index2 = (int) round(tempoToLagFactor / ((double) ((4*i)+160)));
386 386
387 387
388 tempoObservationVector[i] = combFilterBankOutput[t_index-1] + combFilterBankOutput[t_index2-1]; 388 tempoObservationVector[i] = combFilterBankOutput[t_index-1] + combFilterBankOutput[t_index2-1];
389 } 389 }
390 390
444 } 444 }
445 445
446 //======================================================================= 446 //=======================================================================
447 void BTrack::adaptiveThreshold(double *x,int N) 447 void BTrack::adaptiveThreshold(double *x,int N)
448 { 448 {
449 //int N = 512; // length of df
450 int i = 0; 449 int i = 0;
451 int k,t = 0; 450 int k,t = 0;
452 double x_thresh[N]; 451 double x_thresh[N];
453 452
454 int p_post = 7; 453 int p_post = 7;
530 acf[l] = sum / (512-l); // weight by number of mults and add to acf buffer 529 acf[l] = sum / (512-l); // weight by number of mults and add to acf buffer
531 } 530 }
532 } 531 }
533 532
534 //======================================================================= 533 //=======================================================================
535 double BTrack::calculateMeanOfArray(double *array,int start,int end) 534 double BTrack::calculateMeanOfArray(double *array,int startIndex,int endIndex)
536 { 535 {
537 int i; 536 int i;
538 double sum = 0; 537 double sum = 0;
539 538
540 int length = end - start; 539 int length = endIndex - startIndex;
541 540
542 // find sum 541 // find sum
543 for (i = start;i < end;i++) 542 for (i = startIndex;i < endIndex;i++)
544 { 543 {
545 sum = sum + array[i]; 544 sum = sum + array[i];
546 } 545 }
547 546
548 if (length > 0) 547 if (length > 0)
576 } 575 }
577 } 576 }
578 } 577 }
579 578
580 //======================================================================= 579 //=======================================================================
581 void BTrack::updateCumulativeScore(double df_sample) 580 void BTrack::updateCumulativeScore(double odfSample)
582 { 581 {
583 int start, end, winsize; 582 int start, end, winsize;
584 double max; 583 double max;
585 584
586 start = onsetDFBufferSize - round(2*beatPeriod); 585 start = onsetDFBufferSize - round(2*beatPeriod);
619 { 618 {
620 cumulativeScore[i] = cumulativeScore[i+1]; 619 cumulativeScore[i] = cumulativeScore[i+1];
621 } 620 }
622 621
623 // add new value to cumulative score 622 // add new value to cumulative score
624 cumulativeScore[onsetDFBufferSize-1] = ((1-alpha)*df_sample) + (alpha*max); 623 cumulativeScore[onsetDFBufferSize-1] = ((1-alpha)*odfSample) + (alpha*max);
625 624
626 latestCumulativeScoreValue = cumulativeScore[onsetDFBufferSize-1]; 625 latestCumulativeScoreValue = cumulativeScore[onsetDFBufferSize-1];
627 626
628 } 627 }
629 628