source: python/demos/demo_tss.py @ 9a226ef

feature/autosinkfeature/cnnfeature/cnn_orgfeature/constantqfeature/crepefeature/crepe_orgfeature/pitchshiftfeature/pydocstringsfeature/timestretchfix/ffmpeg5pitchshiftsamplertimestretchyinfft+
Last change on this file since 9a226ef was 26adcfb, checked in by Paul Brossier <piem@piem.org>, 12 years ago

moved tests to subdirectory

  • Property mode set to 100755
File size: 1.4 KB
RevLine 
[7175ed4]1#! /usr/bin/env python
[d3b1eb1]2
3import sys
4from aubio import source, sink, pvoc, tss
5
6if __name__ == '__main__':
7  if len(sys.argv) < 2:
8    print 'usage: %s <inputfile> <outputfile_transient> <outputfile_steady>' % sys.argv[0]
9    sys.exit(1)
10
11  samplerate = 44100
12  win_s = 512                 # fft size
13  hop_s = win_s / 2           # block size
14  threshold = 0.26
15
16  f = source(sys.argv[1], samplerate, hop_s)
17  g = sink(sys.argv[2], samplerate)
18  h = sink(sys.argv[3], samplerate)
19
20  pv = pvoc(win_s, hop_s)     # phase vocoder
21  pw = pvoc(win_s, hop_s)     # another phase vocoder
22  t = tss(win_s, hop_s)       # transient steady state separation
23
24  t.set_threshold(threshold)
25
26  read = hop_s
27
28  while read:
29    samples, read = f()               # read file
30    spec = pv(samples)                # compute spectrum
31    trans_spec, stead_spec = t(spec)  # transient steady-state separation
32    transients = pv.rdo(trans_spec)   # overlap-add synthesis of transients
33    steadstate = pw.rdo(stead_spec)   # overlap-add synthesis of steady states
34    g(transients, read)               # write transients to output
35    h(steadstate, read)               # write steady states to output
[0c83de6]36
37  del f, g, h                         # finish writing the files now
38
39  from demo_spectrogram import get_spectrogram
40  from pylab import subplot, show
41  subplot(311)
42  get_spectrogram(sys.argv[1])
43  subplot(312)
44  get_spectrogram(sys.argv[2])
45  subplot(313)
46  get_spectrogram(sys.argv[3])
47  show()
Note: See TracBrowser for help on using the repository browser.