Showing the changes to python (1 of 1 file). Show all
Unified · Split
| @@ -4,44 +4,43 @@ import sys · 3 unmodified lines | |||
| 4 | from aubio import source, sink, pvoc, tss | 4 | from aubio import source, sink, pvoc, tss |
| 5 | 5 | ||
| 6 | if __name__ == '__main__': | 6 | if __name__ == '__main__': |
| 7 | if len(sys.argv) < 2: | 7 | if len(sys.argv) < 2: |
| 8 | print 'usage: %s <inputfile> <outputfile_transient> <outputfile_steady>' % sys.argv[0] | 8 | print 'usage: %s <inputfile> <outputfile_transient> <outputfile_steady>' % sys.argv[0] |
| 9 | sys.exit(1) | 9 | sys.exit(1) |
| 10 | 10 | ||
| 11 | samplerate = 44100 | 11 | samplerate = 44100 |
| 12 | win_s = 1024 # fft size | 12 | win_s = 1024 # fft size |
| 13 | hop_s = win_s / 4 # block size | 13 | hop_s = win_s / 4 # block size |
| 14 | threshold = 0.5 | 14 | threshold = 0.5 |
| 15 | 15 | ||
| 16 | f = source(sys.argv[1], samplerate, hop_s) | 16 | f = source(sys.argv[1], samplerate, hop_s) |
| 17 | g = sink(sys.argv[2], samplerate) | 17 | g = sink(sys.argv[2], samplerate) |
| 18 | h = sink(sys.argv[3], samplerate) | 18 | h = sink(sys.argv[3], samplerate) |
| 19 | 19 | ||
| 20 | pva = pvoc(win_s, hop_s) # a phase vocoder | 20 | pva = pvoc(win_s, hop_s) # a phase vocoder |
| 21 | pvb = pvoc(win_s, hop_s) # another phase vocoder | 21 | pvb = pvoc(win_s, hop_s) # another phase vocoder |
| 22 | t = tss(win_s, hop_s) # transient steady state separation | 22 | t = tss(win_s, hop_s) # transient steady state separation |
| 23 | 23 | ||
| 24 | t.set_threshold(threshold) | 24 | t.set_threshold(threshold) |
| 25 | 25 | ||
| 26 | read = hop_s | 26 | read = hop_s |
| 27 | 27 | ||
| 28 | while read: | 28 | while read: |
| 29 | samples, read = f() # read file | 29 | samples, read = f() # read file |
| 30 | spec = pva(samples) # compute spectrum | 30 | spec = pva(samples) # compute spectrum |
| 31 | trans_spec, stead_spec = t(spec) # transient steady-state separation | 31 | trans_spec, stead_spec = t(spec) # transient steady-state separation |
| 32 | transients = pva.rdo(trans_spec) # overlap-add synthesis of transients | 32 | transients = pva.rdo(trans_spec) # overlap-add synthesis of transients |
| 33 | steadstate = pvb.rdo(stead_spec) # overlap-add synthesis of steady states | 33 | steadstate = pvb.rdo(stead_spec) # overlap-add synthesis of steady states |
| 34 | g(transients, read) # write transients to output | 34 | g(transients, read) # write transients to output |
| 35 | h(steadstate, read) # write steady states to output | 35 | h(steadstate, read) # write steady states to output |
| 36 | 36 | ||
| 37 | del f, g, h # finish writing the files now | 37 | del f, g, h # finish writing the files now |
| 38 | 38 | ||
| 39 | from demo_spectrogram import get_spectrogram | 39 | from demo_spectrogram import get_spectrogram |
| 40 | from pylab import subplot, show | 40 | from pylab import subplot, show |
| 41 | subplot(311) | 41 | subplot(311) |
| 42 | get_spectrogram(sys.argv[1]) | 42 | get_spectrogram(sys.argv[1]) |
| 43 | subplot(312) | 43 | subplot(312) |
| 44 | get_spectrogram(sys.argv[2]) | 44 | get_spectrogram(sys.argv[2]) |
| 45 | subplot(313) | 45 | subplot(313) |
| 46 | get_spectrogram(sys.argv[3]) | 46 | get_spectrogram(sys.argv[3]) |
| 47 | show() | ||