summaryrefslogtreecommitdiff
path: root/tests/test_partial_tracking.py
blob: 004ded7d6ae0dfa910cdd0df4fc43406d803d245 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import os
import numpy as np
from nose.tools import assert_almost_equals
import simpl
import simpl.peak_detection as peak_detection
import simpl.partial_tracking as partial_tracking

float_precision = 5
frame_size = 512
hop_size = 512
audio_path = os.path.join(
    os.path.dirname(__file__), 'audio/flute.wav'
)


class TestPartialTracking(object):
    @classmethod
    def setup_class(cls):
        cls.audio = simpl.read_wav(audio_path)[0]

    def test_partial_tracking(self):
        pd = peak_detection.PeakDetection()
        frames = pd.find_peaks(self.audio)

        pt = partial_tracking.PartialTracking()
        frames = pt.find_partials(frames)

        assert len(frames) == len(self.audio) / hop_size
        assert len(frames[0].partials) == 100