update aubiopitch options
authorPaul Brossier <piem@altern.org>
Thu, 4 May 2006 15:03:58 +0000 (15:03 +0000)
committerPaul Brossier <piem@altern.org>
Thu, 4 May 2006 15:03:58 +0000 (15:03 +0000)
update aubiopitch options

python/aubiopitch

index e6852cb..2e22b5b 100755 (executable)
@@ -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)