source: python/demos/demo_tss.py @ bec1396

feature/autosinkfeature/cnnfeature/constantqfeature/crepefeature/crepe_orgfeature/pitchshiftfeature/timestretchfix/ffmpeg5
Last change on this file since bec1396 was 773a7f3, checked in by Paul Brossier <piem@piem.org>, 8 years ago

python/demos/demo_tss.py: improve default parameters, exit before plotting

  • Property mode set to 100755
File size: 1.5 KB
Line 
1#! /usr/bin/env python
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 = 1024       # fft size
13    hop_s = win_s // 8 # block size
14
15    f = source(sys.argv[1], samplerate, hop_s)
16    g = sink(sys.argv[2], samplerate)
17    h = sink(sys.argv[3], samplerate)
18
19    pva = pvoc(win_s, hop_s)    # a phase vocoder
20    pvb = pvoc(win_s, hop_s)    # another phase vocoder
21    t = tss(win_s, hop_s)       # transient steady state separation
22
23    t.set_threshold(0.01)
24    t.set_alpha(3.)
25    t.set_beta(4.)
26
27    read = hop_s
28
29    while read:
30        samples, read = f()               # read file
31        spec = pva(samples)               # compute spectrum
32        trans_spec, stead_spec = t(spec)  # transient steady-state separation
33        transients = pva.rdo(trans_spec)  # overlap-add synthesis of transients
34        steadstate = pvb.rdo(stead_spec)  # overlap-add synthesis of steady states
35        g(transients, read)               # write transients to output
36        h(steadstate, read)               # write steady states to output
37
38    del f, g, h                           # finish writing the files now
39    sys.exit(0)
40
41    from demo_spectrogram import get_spectrogram
42    from pylab import subplot, show
43    subplot(311)
44    get_spectrogram(sys.argv[1])
45    subplot(312)
46    get_spectrogram(sys.argv[2])
47    subplot(313)
48    get_spectrogram(sys.argv[3])
49    show()
Note: See TracBrowser for help on using the repository browser.