summaryrefslogtreecommitdiff
path: root/python/demos/demo_sink_multi.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/demos/demo_sink_multi.py')
-rwxr-xr-xpython/demos/demo_sink_multi.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/python/demos/demo_sink_multi.py b/python/demos/demo_sink_multi.py
new file mode 100755
index 0000000..70eb636
--- /dev/null
+++ b/python/demos/demo_sink_multi.py
@@ -0,0 +1,32 @@
+#! /usr/bin/env python
+
+import sys
+from aubio import source, sink
+
+if __name__ == '__main__':
+ if len(sys.argv) < 3:
+ print('usage: %s <inputfile> <outputfile> [samplerate] [hop_size]' % sys.argv[0])
+ sys.exit(1)
+
+ 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, f.channels)
+
+ total_frames, read = 0, hop_size
+ while read:
+ vec, read = f.do_multi()
+ g.do_multi(vec, read)
+ total_frames += read
+ outstr = "wrote %.2fs" % (total_frames / float(samplerate))
+ outstr += " (%d frames in" % total_frames
+ outstr += " %d blocks" % (total_frames // f.hop_size)
+ outstr += " of %d channels" % f.channels
+ outstr += " at %dHz)" % f.samplerate
+ outstr += " from " + f.uri
+ outstr += " to " + g.uri
+ print(outstr)