python/demos/demo_pitch.py: remove stdout, plot in midi
[aubio.git] / python / demos / demo_simple_robot_voice.py
1 #! /usr/bin/env python
2
3 import sys
4 from aubio import source, sink, pvoc
5
6 if __name__ == '__main__':
7   if len(sys.argv) < 2:
8     print 'usage: %s <inputfile> <outputfile>' % sys.argv[0]
9     sys.exit(1)
10   samplerate = 44100
11   f = source(sys.argv[1], samplerate, 256)
12   g = sink(sys.argv[2], samplerate)
13   total_frames, read = 0, 256
14
15   win_s = 512                 # fft size
16   hop_s = win_s / 2           # hop size
17   pv = pvoc(win_s, hop_s)                            # phase vocoder
18
19   while read:
20     samples, read = f()
21     spectrum = pv(samples)            # compute spectrum
22     #spectrum.norm *= .8               # reduce amplitude a bit
23     spectrum.phas[:] = 0.             # zero phase
24     new_samples = pv.rdo(spectrum)    # compute modified samples
25     g(new_samples, read)              # write to output
26     total_frames += read
27
28   print "wrote", total_frames, "from", f.uri, "to", g.uri
29
30