History

python/demos/demo_bpm_extract.py: add argparse

Paul Brossier committed 9 years ago

Commit 5db398e1 parent 8a3acad1 file · +31 −16Browse files

Showing the changes to python (1 of 1 file). Show all

Unified · Split

python/demos/demo_bpm_extract.py+31−16
@@ -10,19 +10,26 @@ def get_file_bpm(path, params = None): · 9 unmodified lines
1010 """
1111 if params is None:
1212 params = {}
13− try:
14− win_s = params['win_s']
15− samplerate = params['samplerate']
16− hop_s = params['hop_s']
17− except KeyError:
18− """
19− # super fast
20− samplerate, win_s, hop_s = 4000, 128, 64
21− # fast
22− samplerate, win_s, hop_s = 8000, 512, 128
23− """
24− # default:
25− samplerate, win_s, hop_s = 44100, 1024, 512
13+ # default:
14+ samplerate, win_s, hop_s = 44100, 1024, 512
15+ if 'mode' in params:
16+ if params.mode in ['super-fast']:
17+ # super fast
18+ samplerate, win_s, hop_s = 4000, 128, 64
19+ elif params.mode in ['fast']:
20+ # fast
21+ samplerate, win_s, hop_s = 8000, 512, 128
22+ elif params.mode in ['default']:
23+ pass
24+ else:
25+ print("unknown mode {:s}".format(params.mode))
26+ # manual settings
27+ if 'samplerate' in params:
28+ samplerate = params.samplerate
29+ if 'win_s' in params:
30+ win_s = params.win_s
31+ if 'hop_s' in params:
32+ hop_s = params.hop_s
2633
2734 s = source(path, samplerate, hop_s)
2835 samplerate = s.samplerate
@@ -56,7 +63,15 @@ def get_file_bpm(path, params = None): · 27 unmodified lines
5663 return b
5764
5865 if __name__ == '__main__':
59− import sys
60− for f in sys.argv[1:]:
61− bpm = get_file_bpm(f)
66+ import argparse
67+ parser = argparse.ArgumentParser()
68+ parser.add_argument('-m', '--mode',
69+ help="mode [default|fast|super-fast]",
70+ dest="mode")
71+ parser.add_argument('sources',
72+ nargs='*',
73+ help="input_files")
74+ args = parser.parse_args()
75+ for f in args.sources:
76+ bpm = get_file_bpm(f, params = args)
6277 print("{:6s} {:s}".format("{:2f}".format(bpm), f))

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t