python/demos/demo_a_weighting.py: add simple demo for a_weighting
authorPaul Brossier <piem@piem.org>
Wed, 19 Mar 2014 04:37:21 +0000 (01:37 -0300)
committerPaul Brossier <piem@piem.org>
Sun, 24 Aug 2014 17:24:07 +0000 (12:24 -0500)
python/demos/demo_a_weighting.py [new file with mode: 0755]

diff --git a/python/demos/demo_a_weighting.py b/python/demos/demo_a_weighting.py
new file mode 100755 (executable)
index 0000000..345e651
--- /dev/null
@@ -0,0 +1,27 @@
+#! /usr/bin/env python
+
+
+def apply_filter(path, params = {}):
+    from aubio import source, sink, digital_filter
+    from os.path import basename, splitex, splitextt
+    s = source(path)
+    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
+
+    while True:
+        samples, read = s()
+        filtered_samples = f(samples)
+        o(samples, read)
+        total_frames += read
+        if read < s.hop_size: break
+    print "filtered", s.uri, "to", o.uri, "using an A-weighting filter"
+
+if __name__ == '__main__':
+    import sys
+    for f in sys.argv[1:]:
+        apply_filter(f)