demos/demo_sink.py: add samplerate and hop_size options
authorPaul Brossier <piem@piem.org>
Tue, 5 Mar 2013 22:11:46 +0000 (17:11 -0500)
committerPaul Brossier <piem@piem.org>
Tue, 5 Mar 2013 22:11:46 +0000 (17:11 -0500)
python/demos/demo_sink.py

index 702838c5b3dbb893474eabfffcda2a29050486e9..8a5b587cc6cfbf7e3cc3f892963123159ecd2a12 100755 (executable)
@@ -5,13 +5,24 @@ from aubio import source, sink
 
 if __name__ == '__main__':
   if len(sys.argv) < 3:
-    print 'usage: %s <inputfile> <outputfile>' % sys.argv[0]
+    print 'usage: %s <inputfile> <outputfile> [samplerate] [hop_size]' % sys.argv[0]
     sys.exit(1)
-  f = source(sys.argv[1], 8000, 256)
-  g = sink(sys.argv[2], 8000)
-  total_frames, read = 0, 256
+
+  if len(sys.argv) > 3: samplerate = int(sys.argv[3])
+  else: samplerate = 0
+  if len(sys.argv) > 4: hop_size = int(sys.argv[4])
+  else: hop_size = 256
+
+  f = source(sys.argv[1], samplerate, hop_size)
+  if samplerate == 0: samplerate = f.samplerate
+  g = sink(sys.argv[2], samplerate)
+
+  total_frames, read = 0, hop_size
   while read:
     vec, read = f()
     g(vec, read)
     total_frames += read
-  print "read", total_frames / float(f.samplerate), "seconds from", f.uri
+  print "wrote", "%.2fs" % (total_frames / float(samplerate) ),
+  print "(", total_frames, "frames", "in", total_frames % hop_size, "blocks", "at", "%dHz" % samplerate, ")",
+  print "from", f.uri,
+  print "to", g.uri