shithub: aubio

Download patch

ref: d3b1eb196325b80ad269ca74456b8f08d1ea4f27
parent: f1198eff4b34b29bc4d6bdd5e3c1e03d5a8d068e
author: Paul Brossier <piem@piem.org>
date: Fri Jul 27 05:28:07 EDT 2012

demo_tss.py: added simple tss demo

--- /dev/null
+++ b/interfaces/python/demo_tss.py
@@ -1,0 +1,35 @@
+#! /usr/bin/python
+
+import sys
+from aubio import source, sink, pvoc, tss
+
+if __name__ == '__main__':
+  if len(sys.argv) < 2:
+    print 'usage: %s <inputfile> <outputfile_transient> <outputfile_steady>' % sys.argv[0]
+    sys.exit(1)
+
+  samplerate = 44100
+  win_s = 512                 # fft size
+  hop_s = win_s / 2           # block size
+  threshold = 0.26
+
+  f = source(sys.argv[1], samplerate, hop_s)
+  g = sink(sys.argv[2], samplerate)
+  h = sink(sys.argv[3], samplerate)
+
+  pv = pvoc(win_s, hop_s)     # phase vocoder
+  pw = pvoc(win_s, hop_s)     # another phase vocoder
+  t = tss(win_s, hop_s)       # transient steady state separation
+
+  t.set_threshold(threshold)
+
+  read = hop_s
+
+  while read:
+    samples, read = f()               # read file
+    spec = pv(samples)                # compute spectrum
+    trans_spec, stead_spec = t(spec)  # transient steady-state separation
+    transients = pv.rdo(trans_spec)   # overlap-add synthesis of transients
+    steadstate = pw.rdo(stead_spec)   # overlap-add synthesis of steady states
+    g(transients, read)               # write transients to output
+    h(steadstate, read)               # write steady states to output