python/demos/demo_filter.py: clean-up
authorPaul Brossier <piem@piem.org>
Tue, 10 May 2016 16:50:36 +0000 (18:50 +0200)
committerPaul Brossier <piem@piem.org>
Tue, 10 May 2016 16:50:36 +0000 (18:50 +0200)
python/demos/demo_filter.py

index 345e651..10226ce 100755 (executable)
@@ -1,25 +1,34 @@
 #! /usr/bin/env python
 
 
-def apply_filter(path, params = {}):
+def apply_filter(path):
     from aubio import source, sink, digital_filter
-    from os.path import basename, splitex, splitextt
+    from os.path import basename, splitext
+
+    # open input file, get its samplerate
     s = source(path)
+    samplerate = s.samplerate
+
+    # create an A-weighting filter
     f = digital_filter(7)
-    f.set_a_weighting(s.samplerate)
-    #f = digital_filter(3)
-    #f.set_biquad(...)
-    o = sink("filtered_" + splitext(basename(path))[0] + ".wav")
-    # Total number of frames read
-    total_frames = 0
+    f.set_a_weighting(samplerate)
+    # alternatively, apply another filter
 
+    # create output file
+    o = sink("filtered_" + splitext(basename(path))[0] + ".wav", samplerate)
+
+    total_frames = 0
     while True:
         samples, read = s()
         filtered_samples = f(samples)
-        o(samples, read)
+        o(filtered_samples, read)
         total_frames += read
         if read < s.hop_size: break
-    print "filtered", s.uri, "to", o.uri, "using an A-weighting filter"
+
+    duration = total_frames / float(samplerate)
+    print ("read {:s}".format(s.uri))
+    print ("applied A-weighting filtered ({:d} Hz)".format(samplerate))
+    print ("wrote {:s} ({:.2f} s)".format(o.uri, duration))
 
 if __name__ == '__main__':
     import sys