demos/demo_source.py: indent, add samplerate and hop_size options
authorPaul Brossier <piem@piem.org>
Wed, 6 Mar 2013 20:49:32 +0000 (15:49 -0500)
committerPaul Brossier <piem@piem.org>
Wed, 6 Mar 2013 20:49:32 +0000 (15:49 -0500)
python/demos/demo_source.py

index 3b9c96369614ae430bdd5de2dd302a661aef0817..30318b1db96d1fec63f23aede594810b4a905049 100755 (executable)
@@ -4,13 +4,23 @@ import sys
 from aubio import source
 
 if __name__ == '__main__':
-  if len(sys.argv) < 2:
-    print 'usage: %s <inputfile>' % sys.argv[0]
-    sys.exit(1)
-  f = source(sys.argv[1], 1, 256)
-  samplerate = f.get_samplerate()
-  total_frames, read = 0, 256
-  while read:
-    vec, read = f()
-    total_frames += read
-  print "read", total_frames / float(samplerate), "seconds from", f.uri
+    if len(sys.argv) < 2:
+        print 'usage: %s <inputfile> [samplerate] [hop_size]' % sys.argv[0]
+        sys.exit(1)
+    samplerate = 0
+    hop_size = 256
+    if len(sys.argv) > 2: samplerate = int(sys.argv[2])
+    if len(sys.argv) > 3: hop_size = int(sys.argv[3])
+
+    f = source(sys.argv[1], samplerate, hop_size)
+    samplerate = f.samplerate
+
+    total_frames, read = 0, f.hop_size
+    while read:
+        vec, read = f()
+        total_frames += read
+        if read < f.hop_size: break
+    print "read", "%.2fs" % (total_frames / float(samplerate) ),
+    print "(", total_frames, "frames", "in",
+    print total_frames / f.hop_size, "blocks", "at", "%dHz" % f.samplerate, ")",
+    print "from", f.uri