shithub: aubio

Download patch

ref: 9e3fc16056c811bdae97b42cd9fbf3df0e65baa9
parent: 1f6a9f84fbe06965c588944d1e1de17544c2f923
author: Paul Brossier <piem@piem.org>
date: Wed Dec 21 07:37:34 EST 2016

python/tests/test_notes.py: test results are correct for 44100Hz_44100f_sine441.wav

--- a/python/tests/test_notes.py
+++ b/python/tests/test_notes.py
@@ -38,5 +38,44 @@
         self.o.set_silence(val)
         assert_equal (self.o.get_silence(), val)
 
+from utils import list_all_sounds
+list_of_sounds = list_all_sounds('sounds')
+
+class aubio_notes_sinewave(TestCase):
+
+    def analyze_file(self, filepath, samplerate=0):
+        from aubio import source
+        import numpy as np
+        win_s = 512 # fft size
+        hop_s = 256 # hop size
+
+        s = source(filepath, samplerate, hop_s)
+        samplerate = s.samplerate
+
+        tolerance = 0.8
+
+        notes_o = notes("default", win_s, hop_s, samplerate)
+        total_frames = 0
+
+        results = []
+        while True:
+            samples, read = s()
+            new_note = notes_o(samples)
+            if (new_note[0] != 0):
+                note_str = ' '.join(["%.2f" % i for i in new_note])
+                results.append( [total_frames, np.copy(new_note)] )
+            total_frames += read
+            if read < hop_s: break
+        return results
+
+    def test_sinewave(self):
+        for filepath in list_of_sounds:
+            if '44100Hz_44100f_sine441.wav' in filepath:
+                results = self.analyze_file(filepath)
+                assert_equal (len(results), 1)
+                assert_equal (len(results[0]), 2)
+                assert_equal (results[0][0], 1280)
+                assert_equal (results[0][1], [69, 123, -1])
+
 if __name__ == '__main__':
     main()