Warning: session_start(): open(/var/lib/php/sessions/sess_urb2d79n8624kgfplu97atqg52, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
sclass BPMExtractor1 {
double minBPM = 60, maxBPM = 200;
// 0 if not found
double getBPM(L ranges) {
int[] gaps = intRangeStartGaps(ranges);
if (empty(gaps)) ret 0;
sort(gaps);
MultiSet ms = intArrayAsTreeMultiSet(gaps);
new Best best;
for (int gap : keys(ms))
if (isBetween_double(
audio_frequencyImage_pixelsToBPM(gap),
minBPM, maxBPM))
best.put(gap, ms.get(gap-1)+ms.get(gap)+ms.get(gap+1));
Int gap = best!;
if (gap == null) { print("no fitting gaps"); ret 0; }
print(ms);
double exactGap = weightedAverage_lit(
gap-1, ms.get(gap-1),
gap, ms.get(gap),
gap+1, ms.get(gap+1));
double bpm = audio_frequencyImage_pixelsToBPM(exactGap);
printVars_str(+gap, +exactGap, +bpm);
ret bpm;
}
}