From 3e29681b55793fe78814b006079a3d7f9b8315d6 Mon Sep 17 00:00:00 2001 From: Paul Brossier Date: Thu, 4 May 2006 15:03:58 +0000 Subject: [PATCH] update aubiopitch options update aubiopitch options --- python/aubiopitch | 145 +++++++++++++++++++++++----------------------- 1 file changed, 74 insertions(+), 71 deletions(-) diff --git a/python/aubiopitch b/python/aubiopitch index e6852cb2..2e22b5b7 100755 --- a/python/aubiopitch +++ b/python/aubiopitch @@ -11,74 +11,77 @@ usage = "usage: %s [options] -i soundfile" % sys.argv[0] def parse_args(): - from optparse import OptionParser - parser = OptionParser(usage=usage) - parser.add_option("-i","--input", - action="store", dest="filename", - help="input sound file") - parser.add_option("-m","--mode", - action="store", dest="mode", default='mcomb', - help="pitch detection mode [default=mcomb] \ - mcomb|yin|fcomb|schmitt") - parser.add_option("-u","--units", action="callback", - callback=check_pitchm_mode, dest="omode", - default=aubio_pitchm_freq, - help="output pitch in units [default=Hz] \ - freq|midi|cent|bin") - parser.add_option("-B","--bufsize", - action="store", dest="bufsize", default=None, - help="buffer size [default=1024]") - parser.add_option("-H","--hopsize", - action="store", dest="hopsize", default=None, - help="overlap size [default=512]") - parser.add_option("-t","--threshold", - action="store", dest="threshold", default=0.1, - help="pitch threshold (for yin) [default=0.1]") - parser.add_option("-s","--silence", - action="store", dest="silence", default=-70, - help="silence threshold [default=-70]") - parser.add_option("-D","--delay", - action="store", dest="delay", - help="number of seconds frames to take back [default=0]") - parser.add_option("-S","--smoothing", - action="store", dest="smoothing", default=False, - help="use a median filter of N frames [default=0]") - parser.add_option("-M","--maximum", - action="store", dest="pitchmax", default=False, - help="maximum pitch value to look for (Hz) [default=20000]") - parser.add_option("-l","--minimum", - action="store", dest="pitchmin", default=False, - help="minimum pitch value to look for (Hz) [default=20]") - # to be implemented - parser.add_option("-n","--note", - action="store_true", dest="note", default=False, - help="NOT IMPLEMENTED output notes") - # plotting functions - parser.add_option("-p","--plot", - action="store_true", dest="plot", default=False, - help="draw plot of the pitch track") - parser.add_option("-O","--outplot", - action="store", dest="outplot", default=None, - help="save the plot to output.{ps,png,svg} instead of displaying it") - parser.add_option("-v","--verbose", - action="store_true", dest="verbose", default=False, - help="make lots of noise") - parser.add_option("-q","--quiet", - action="store_false", dest="verbose", default=False, - help="be quiet") - (options, args) = parser.parse_args() - if not options.bufsize: - if options.mode == aubio_pitch_yin: options.bufsize = 1024 - if options.mode == aubio_pitch_schmitt: options.bufsize = 2048 - if options.mode == aubio_pitch_mcomb: options.bufsize = 4096 - if options.mode == aubio_pitch_fcomb: options.bufsize = 4096 - else: options.bufsize = 2048 - if not options.hopsize: - options.hopsize = float(options.bufsize) / 2 - if not options.filename: - print "no file name given\n", usage - sys.exit(1) - return options, args + from optparse import OptionParser + parser = OptionParser(usage=usage) + parser.add_option("-i","--input", + action="store", dest="filename", + help="input sound file") + parser.add_option("-m","--mode", + action="store", dest="mode", default='mcomb', + help="pitch detection mode [default=mcomb] \ + mcomb|yin|fcomb|schmitt") + parser.add_option("-u","--units", action="callback", + callback=check_pitchm_mode, dest="omode", + default=aubio_pitchm_freq, + help="output pitch in units [default=Hz] \ + freq|midi|cent|bin") + parser.add_option("-B","--bufsize", + action="store", dest="bufsize", default=None, + help="buffer size [default=1024]") + parser.add_option("-H","--hopsize", + action="store", dest="hopsize", default=None, + help="overlap size [default=512]") + parser.add_option("-t","--threshold", + action="store", dest="threshold", default=0.1, + help="pitch threshold (for yin) [default=0.1]") + parser.add_option("-s","--silence", + action="store", dest="silence", default=-70, + help="silence threshold [default=-70]") + parser.add_option("-D","--delay", + action="store", dest="delay", + help="number of seconds frames to take back [default=0]") + parser.add_option("-S","--smoothing", + action="store", dest="smoothing", default=False, + help="use a median filter of N frames [default=0]") + parser.add_option("-M","--maximum", + action="store", dest="pitchmax", default=False, + help="maximum pitch value to look for (Hz) [default=20000]") + parser.add_option("-l","--minimum", + action="store", dest="pitchmin", default=False, + help="minimum pitch value to look for (Hz) [default=20]") + # to be implemented + parser.add_option("-n","--note", + action="store_true", dest="note", default=False, + help="NOT IMPLEMENTED output notes") + # plotting functions + parser.add_option("-T","--plottruth", + action="store_true", dest="plottruth", default=False, + help="draw plot of the ground truth pitch track") + parser.add_option("-p","--plot", + action="store_true", dest="plot", default=False, + help="draw plot of the pitch track") + parser.add_option("-O","--outplot", + action="store", dest="outplot", default=None, + help="save the plot to output.{ps,png,svg} instead of displaying it") + parser.add_option("-v","--verbose", + action="store_true", dest="verbose", default=False, + help="make lots of noise") + parser.add_option("-q","--quiet", + action="store_false", dest="verbose", default=False, + help="be quiet") + (options, args) = parser.parse_args() + if not options.bufsize: + if options.mode == aubio_pitch_yin: options.bufsize = 1024 + if options.mode == aubio_pitch_schmitt: options.bufsize = 2048 + if options.mode == aubio_pitch_mcomb: options.bufsize = 4096 + if options.mode == aubio_pitch_fcomb: options.bufsize = 4096 + else: options.bufsize = 2048 + if not options.hopsize: + options.hopsize = float(options.bufsize) / 2 + if not options.filename: + print "no file name given\n", usage + sys.exit(1) + return options, args options, args = parse_args() @@ -103,7 +106,7 @@ if options.delay: params.pitchdelay = float(options.delay) if options.note: exit("not implemented yet") -wplot,oplots = [],[] +wplot,oplots,titles = [],[],[] modes = options.mode.split(',') for i in range(len(modes)): pitch = [] @@ -111,7 +114,7 @@ for i in range(len(modes)): filetask = taskpitch(filename,params=params) pitch = filetask.compute_all() #print filetask.eval(pitch[i]) - if options.plot: filetask.plot(pitch,wplot,oplots) + if options.plot: filetask.plot(pitch,wplot,oplots,titles) if options.plot: - filetask.plotplot(wplot,oplots,outplot=options.outplot) + filetask.plotplot(wplot,oplots,titles,outplot=options.outplot,truth=options.plottruth) -- 2.26.2