BTrack icon indicating copy to clipboard operation
BTrack copied to clipboard

Some question about algorithm implementation

Open LinChihShan opened this issue 6 years ago • 2 comments

Hi, thank you for sharing this library!

I have some question about this implementation:

  1. Why swapping of the windowed time-domain signal before taking FFT while calculating ODF, but no swapping of the ODF while calculating ACF?

  2. Is it necessary to do resampling on ODF? even if onsetDFBufferSize is equal to output_len?

  3. Why only 41 BPM values kept (80:2:160) but not 81 values (80:1:160)?

  4. Why x[0] is abandoned in x_thresh calculation at first 't' sample in adaptiveThreshold?

  5. In the mapping from "beat period observation vector" to "tempo observation vector", why the higher octave of beat period (the "t_index2" term) is considered but without the lower octave? And Is it necessary to calculate the whole 128 dimension combFilterBankOutput as Davies[2007]?

Thanks in advance!

LinChihShan avatar Jun 10 '19 03:06 LinChihShan

Is it necessary to do resampling on ODF? even if onsetDFBufferSize is equal to output_len?

From reading the code it looks like the resampling is always done "just in case", but it would only be useful in the case where onsetDFBufferSize != 512. If you keep everything 512, it's OK to omit it.

sevagh avatar Jan 19 '20 18:01 sevagh

I am also wondering why the time-domain signal halves are swapped before FFT. I can't find any property of the FFT related to this kind of swapping. Any idea?

lemairecarl avatar Apr 18 '22 22:04 lemairecarl