ref: 19f1dc9b5dd9997b2b152cebacb9ff8112adc323
dir: /tests/demo/bench/onset/bench-window/
#! /usr/bin/python
from aubio.bench.onset import benchonset
from aubio.task.onset import taskonset
from aubio.task.params import taskparams
class mybenchonset(benchonset):
def run_bench(self,modes=['dual'],thresholds=[0.5]):
from os.path import dirname,basename
self.thresholds = thresholds
self.pretty_titles()
for mode in modes:
self.params.onsetmode = mode
self.params.localmin = True
self.params.delay = 1.
self.params.threshold = thresholds[0]
self.params.localmin = False
#
for delay in (0., 4.):
d = []
self.params.delay = delay
for buf in (2048, 1024, 512):
for hop in (buf/2, buf/4):
self.params.bufsize = buf
self.params.hopsize = hop
self.params.step = float(self.params.hopsize)/float(self.params.samplerate)
self.dir_eval_print()
self.plotdiffs(d,plottitle="%s %s" % (buf,hop))
#plotplotdiffs(d)
outplot = "_-_".join(("window",mode,"delay-%s" % int(delay),
basename(self.datadir) ))
for ext in ("png","svg","ps"):
self.plotplotdiffs(d,outplot=outplot,extension=ext)
if __name__ == "__main__":
import sys
if len(sys.argv) > 1: datapath = sys.argv[1]
else: print "ERR: a path is required"; sys.exit(1)
modes = ['complex', 'energy', 'phase', 'hfc', 'specdiff', 'kl', 'mkl', 'dual']
#thresholds = [ 0.01, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2]
#modes = [ 'hfc' ]
thresholds = [0.5]
#datapath = "%s%s" % (DATADIR,'/onset/DB/*/')
respath = '/var/tmp/DB-testings'
benchonset = mybenchonset(datapath,respath,checkres=True,checkanno=True)
benchonset.params = taskparams()
benchonset.task = taskonset
benchonset.valuesdict = {}
try:
#benchonset.auto_learn2(modes=modes)
benchonset.run_bench(modes=modes,thresholds=thresholds)
except KeyboardInterrupt:
sys.exit(1)