python/demos/demo_pysoundcard_record.py: added simple example using pysoundcard
authorPaul Brossier <piem@piem.org>
Fri, 14 Feb 2014 21:56:11 +0000 (18:56 -0300)
committerPaul Brossier <piem@piem.org>
Fri, 14 Feb 2014 21:56:11 +0000 (18:56 -0300)
python/demos/demo_pysoundcard_record.py [new file with mode: 0755]

diff --git a/python/demos/demo_pysoundcard_record.py b/python/demos/demo_pysoundcard_record.py
new file mode 100755 (executable)
index 0000000..ff9815c
--- /dev/null
@@ -0,0 +1,26 @@
+#! /usr/bin/env python
+
+def record_sink(sink_path):
+    """Record an audio file using pysoundcard."""
+
+    from aubio import sink
+    from pysoundcard import Stream
+
+    hop_size = 256
+    duration = 5 # in seconds
+    s = Stream(block_length = hop_size)
+    g = sink(sink_path, samplerate = s.sample_rate)
+
+    s.start()
+    total_frames = 0
+    while total_frames < duration * s.sample_rate:
+        vec = s.read(hop_size)
+        # mix down to mono
+        mono_vec = vec.sum(-1)
+        g(mono_vec, hop_size)
+        total_frames += hop_size 
+    s.stop()
+
+if __name__ == '__main__':
+    import sys
+    record_sink(sys.argv[1])