From 4d1bf0e59fa457dceec899d316bd094053b26eee Mon Sep 17 00:00:00 2001 From: Paul Brossier Date: Thu, 14 Sep 2017 14:01:00 +0200 Subject: [PATCH] python/demos/demo_bpm_extract.py: add beats_to_bpm --- python/demos/demo_bpm_extract.py | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/python/demos/demo_bpm_extract.py b/python/demos/demo_bpm_extract.py index ebb17774..ab0ceab8 100755 --- a/python/demos/demo_bpm_extract.py +++ b/python/demos/demo_bpm_extract.py @@ -3,7 +3,7 @@ from aubio import source, tempo from numpy import median, diff -def get_file_bpm(path, params = None): +def get_file_bpm(path, params=None): """ Calculate the beats per minute (bpm) of a given file. path: path to the file param: dictionary of parameters @@ -51,16 +51,18 @@ def get_file_bpm(path, params = None): if read < hop_s: break - # Convert to periods and to bpm - if len(beats) > 1: - if len(beats) < 4: - print("few beats found in {:s}".format(path)) - bpms = 60./diff(beats) - b = median(bpms) - else: - b = 0 - print("not enough beats found in {:s}".format(path)) - return b + def beats_to_bpm(beats, path): + # if enough beats are found, convert to periods then to bpm + if len(beats) > 1: + if len(beats) < 4: + print("few beats found in {:s}".format(path)) + bpms = 60./diff(beats) + return median(bpms) + else: + print("not enough beats found in {:s}".format(path)) + return 0 + + return beats_to_bpm(beats, path) if __name__ == '__main__': import argparse -- 2.11.0