ref: 33cd81fb6aa26952dc0e08c1a32a993d6ca2c041
dir: /python/demos/demo_slicing.py/
#! /usr/bin/env python
import sys
import os.path
from aubio import source, sink
if __name__ == '__main__':
if len(sys.argv) < 3:
print 'usage: %s <inputfile> <duration>' % sys.argv[0]
sys.exit(1)
source_file = sys.argv[1]
duration = float(sys.argv[2])
sink_base, sink_ext = os.path.splitext(os.path.basename(source_file))
slice_n, total_frames, read = 1, 0, 256
f = source(source_file, 0, 256)
g = sink(sink_base + '-%02d' % slice_n + sink_ext, f.samplerate)
while read:
vec, read = f()
g(vec, read)
total_frames += read
if total_frames / float(f.samplerate) >= duration * slice_n:
slice_n += 1
del g
g = sink(sink_base + '-%02d' % slice_n + sink_ext, f.samplerate)
total_duration = total_frames / float(f.samplerate)
print 'created %(slice_n)d slices from %(source_file)s' % locals(),
print ' (total duration %(total_duration).2fs)' % locals()
del f, g