ref: 013d0d71dee15b81dcc9465e081dcf653365a26e
dir: /python/demos/demo_pysoundcard_record.py/
#! /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(blocksize = hop_size, channels = 1)
g = sink(sink_path, samplerate = int(s.samplerate))
print s.channels
s.start()
total_frames = 0
try:
while total_frames < duration * s.samplerate:
vec = s.read(hop_size)
# mix down to mono
mono_vec = vec.sum(-1) / float(s.channels[0])
g(mono_vec, hop_size)
total_frames += hop_size
except KeyboardInterrupt, e:
print "stopped after", "%.2f seconds" % (total_frames / s.samplerate)
pass
s.stop()
if __name__ == '__main__':
import sys
record_sink(sys.argv[1])