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()
if options.note:
exit("not implemented yet")
-wplot,oplots = [],[]
+wplot,oplots,titles = [],[],[]
modes = options.mode.split(',')
for i in range(len(modes)):
pitch = []
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)