- Timestamp:
- Nov 26, 2013, 4:18:57 AM (11 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:
- 2dbcafa
- Parents:
- 18f14f9
- Location:
- src/tempo
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
src/tempo/beattracking.c
r18f14f9 r77db425 32 32 struct _aubio_beattracking_t 33 33 { 34 uint_t hop_size; /** length of one tempo detection function sample, in audio samples */ 35 uint_t samplerate; /** samplerate of the original signal */ 34 36 fvec_t *rwv; /** rayleigh weighting for beat period in general model */ 35 37 fvec_t *dfwv; /** exponential weighting for beat alignment in general model */ … … 55 57 56 58 aubio_beattracking_t * 57 new_aubio_beattracking (uint_t winlen )59 new_aubio_beattracking (uint_t winlen, uint_t hop_size, uint_t samplerate) 58 60 { 59 61 60 62 aubio_beattracking_t *p = AUBIO_NEW (aubio_beattracking_t); 61 63 uint_t i = 0; 62 /* parameter for rayleigh weight vector - sets preferred tempo to 63 * 120bpm [43] */ 64 smpl_t rayparam = 48. / 512. * winlen; 64 p->hop_size = hop_size; 65 p->samplerate = samplerate; 66 /* default value for rayleigh weighting - sets preferred tempo to 120bpm */ 67 smpl_t rayparam = 60. * samplerate / 120. / hop_size; 65 68 smpl_t dfwvnorm = EXP ((LOG (2.0) / rayparam) * (winlen + 2)); 66 69 /* length over which beat period is found [128] */ … … 415 418 aubio_beattracking_get_bpm (aubio_beattracking_t * bt) 416 419 { 417 if (bt->bp != 0 && bt->timesig != 0 && bt->counter == 0 && bt->flagstep == 0) {418 return 5168. / fvec_quadratic_peak_pos (bt->acfout, bt->bp);420 if (bt->bp != 0) { 421 return 60. * bt->samplerate/ bt->bp / bt->hop_size; 419 422 } else { 420 423 return 0.; -
src/tempo/beattracking.h
r18f14f9 r77db425 52 52 53 53 */ 54 aubio_beattracking_t * new_aubio_beattracking(uint_t hop_size); 54 aubio_beattracking_t * new_aubio_beattracking(uint_t winlen, uint_t hop_size, 55 uint_t samplerate); 55 56 56 57 /** track the beat -
src/tempo/tempo.c
r18f14f9 r77db425 142 142 aubio_tempo_t * o = AUBIO_NEW(aubio_tempo_t); 143 143 o->samplerate = samplerate; 144 o->winlen = SQR(512)/hop_size; 144 /* length of observations, worth about 6 seconds */ 145 o->winlen = aubio_next_power_of_two(5.8 * samplerate / hop_size); 145 146 o->step = o->winlen/4; 146 147 o->blockpos = 0; 147 148 o->threshold = 0.3; 148 149 o->silence = -90.; 149 o->blockpos = 0;150 150 o->total_frames = 0; 151 151 o->last_beat = 0; … … 160 160 o->od = new_aubio_specdesc(onset_mode,buf_size); 161 161 o->of = new_fvec(1); 162 o->bt = new_aubio_beattracking(o->winlen );162 o->bt = new_aubio_beattracking(o->winlen, o->hop_size, o->samplerate); 163 163 o->onset = new_fvec(1); 164 164 /*if (usedoubled) {
Note: See TracChangeset
for help on using the changeset viewer.