Changeset d207300 for src/tempo/tempo.c
- Timestamp:
- Dec 4, 2009, 1:40:48 AM (15 years ago)
- Branches:
- feature/autosink, feature/cnn, feature/cnn_org, feature/constantq, feature/crepe, feature/crepe_org, feature/pitchshift, feature/pydocstrings, feature/timestretch, fix/ffmpeg5, master, pitchshift, sampler, timestretch, yinfft+
- Children:
- 8e5c051
- Parents:
- 741bdda
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/tempo/tempo.c
r741bdda rd207300 59 59 /*if (usedoubled) { 60 60 aubio_specdesc_do(o2,fftgrain, onset2); 61 onset->data[0] [0] *= onset2->data[0][0];61 onset->data[0] *= onset2->data[0]; 62 62 }*/ 63 63 /* execute every overlap_size*step */ … … 67 67 /* rotate dfframe */ 68 68 for (i = 0 ; i < winlen - step; i++ ) 69 o->dfframe->data[ 0][i] = o->dfframe->data[0][i+step];69 o->dfframe->data[i] = o->dfframe->data[i+step]; 70 70 for (i = winlen - step ; i < winlen; i++ ) 71 o->dfframe->data[ 0][i] = 0.;71 o->dfframe->data[i] = 0.; 72 72 o->blockpos = -1; 73 73 } 74 74 o->blockpos++; 75 75 aubio_peakpicker_do (o->pp, o->of, o->onset); 76 tempo->data[ 0][1] = o->onset->data[0][0];76 tempo->data[1] = o->onset->data[0]; 77 77 thresholded = aubio_peakpicker_get_thresholded_input(o->pp); 78 o->dfframe->data[ 0][winlen - step + o->blockpos] = thresholded->data[0][0];78 o->dfframe->data[winlen - step + o->blockpos] = thresholded->data[0]; 79 79 /* end of second level loop */ 80 tempo->data[0] [0]= 0; /* reset tactus */80 tempo->data[0] = 0; /* reset tactus */ 81 81 i=0; 82 for (i = 1; i < o->out->data[0] [0]; i++ ) {82 for (i = 1; i < o->out->data[0]; i++ ) { 83 83 /* if current frame is a predicted tactus */ 84 if (o->blockpos == FLOOR(o->out->data[ 0][i])) {85 tempo->data[0] [0] = o->out->data[0][i] - FLOOR(o->out->data[0][i]); /* set tactus */84 if (o->blockpos == FLOOR(o->out->data[i])) { 85 tempo->data[0] = o->out->data[i] - FLOOR(o->out->data[i]); /* set tactus */ 86 86 /* test for silence */ 87 87 if (aubio_silence_detection(input, o->silence)==1) { 88 tempo->data[ 0][1] = 0; /* unset onset */88 tempo->data[1] = 0; /* unset onset */ 89 89 } 90 90 } … … 105 105 /* Allocate memory for an tempo detection */ 106 106 aubio_tempo_t * new_aubio_tempo (char_t * onset_mode, 107 uint_t buf_size, uint_t hop_size, uint_t channels, uint_tsamplerate)107 uint_t buf_size, uint_t hop_size, uint_t samplerate) 108 108 { 109 109 aubio_tempo_t * o = AUBIO_NEW(aubio_tempo_t); … … 115 115 o->silence = -90.; 116 116 o->blockpos = 0; 117 o->dfframe = new_fvec(o->winlen ,channels);118 o->fftgrain = new_cvec(buf_size , channels);119 o->out = new_fvec(o->step ,channels);120 o->pv = new_aubio_pvoc(buf_size, hop_size , channels);121 o->pp = new_aubio_peakpicker( channels);117 o->dfframe = new_fvec(o->winlen); 118 o->fftgrain = new_cvec(buf_size); 119 o->out = new_fvec(o->step); 120 o->pv = new_aubio_pvoc(buf_size, hop_size); 121 o->pp = new_aubio_peakpicker(); 122 122 aubio_peakpicker_set_threshold (o->pp, o->threshold); 123 o->od = new_aubio_specdesc(onset_mode,buf_size ,channels);124 o->of = new_fvec(1 , channels);125 o->bt = new_aubio_beattracking(o->winlen ,channels);126 o->onset = new_fvec(1 , channels);123 o->od = new_aubio_specdesc(onset_mode,buf_size); 124 o->of = new_fvec(1); 125 o->bt = new_aubio_beattracking(o->winlen); 126 o->onset = new_fvec(1); 127 127 /*if (usedoubled) { 128 o2 = new_aubio_specdesc(type_onset2,buffer_size ,channels);129 onset2 = new_fvec(1 , channels);128 o2 = new_aubio_specdesc(type_onset2,buffer_size); 129 onset2 = new_fvec(1); 130 130 }*/ 131 131 return o;
Note: See TracChangeset
for help on using the changeset viewer.