Ejemplo n.º 1
0
 def test_txt(self):
     # save activations as txt file
     run_save(self.bin, sample_file, tmp_act, args=['--sep', ' '])
     act = Activations(tmp_act, sep=' ', fps=100)
     self.assertTrue(np.allclose(act, self.activations, atol=1e-5))
     # reload from file
     run_load(self.bin, tmp_act, tmp_result, args=['--sep', ' '])
     result = np.loadtxt(tmp_result)
     self.assertTrue(np.allclose(result, self.result, atol=1e-5))
Ejemplo n.º 2
0
 def test_txt(self):
     for sf, true_act, true_res in zip([sample_file, sample2_file],
                                       self.activations, self.results):
         # save activations as txt file
         run_save(self.bin, sf, tmp_act, args=['--sep', ' '])
         act = Activations(tmp_act, sep=' ', fps=0)
         self.assertTrue(np.allclose(act, true_act, atol=1e-5))
         # reload from file
         run_load(self.bin, tmp_act, tmp_result, args=['--sep', ' '])
         self.assertEqual(load_key(tmp_result), true_res)
Ejemplo n.º 3
0
 def test_binary(self):
     # save activations as binary file
     run_program([self.bin, '--save', 'single', sample_file, '-o', tmp_act])
     act = Activations(tmp_act)
     self.assertTrue(np.allclose(act, self.activations, atol=1e-5))
     self.assertEqual(act.fps, self.activations.fps)
     # reload from file
     run_program([self.bin, '--load', 'single', tmp_act, '-o', tmp_result])
     result = np.loadtxt(tmp_result)
     self.assertTrue(np.allclose(result, self.result, atol=1e-5))
Ejemplo n.º 4
0
 def setUp(self):
     self.bin = pj(program_path, 'KeyRecognition')
     self.activations = [
         Activations(pj(ACTIVATIONS_PATH, af))
         for af in ['sample.key_cnn.npz', 'sample2.key_cnn.npz']
     ]
     self.results = [
         load_key(pj(DETECTIONS_PATH, df)) for df in
         ['sample.key_recognition.txt', 'sample2.key_recognition.txt']
     ]
Ejemplo n.º 5
0
 def test_binary(self):
     # save activations as binary file
     run_save(self.bin, sample_file, tmp_act)
     act = Activations(tmp_act)
     self.assertTrue(np.allclose(act, self.activations, atol=1e-5))
     self.assertEqual(act.fps, self.activations.fps)
     # reload from file
     run_load(self.bin, tmp_act, tmp_result)
     result = np.loadtxt(tmp_result)
     self.assertTrue(np.allclose(result, self.result, atol=1e-5))
Ejemplo n.º 6
0
 def setUp(self):
     self.bin = pj(program_path, "DCChordRecognition")
     self.activations = [
         Activations(pj(ACTIVATIONS_PATH, af))
         for af in ['sample.deep_chroma.npz', 'sample2.deep_chroma.npz']
     ]
     self.results = [
         load_chords(pj(DETECTIONS_PATH, df))
         for df in ['sample.dc_chord_recognition.txt',
                    'sample2.dc_chord_recognition.txt']
     ]
Ejemplo n.º 7
0
 def test_binary(self):
     for sf, true_act, true_res in zip([sample_file, sample2_file],
                                       self.activations, self.results):
         # save activations as binary file
         run_save(self.bin, sf, tmp_act)
         act = Activations(tmp_act)
         self.assertTrue(np.allclose(act, true_act, atol=1e-5))
         self.assertEqual(act.fps, true_act.fps)
         # reload from file
         run_load(self.bin, tmp_act, tmp_result)
         self.assertEqual(load_key(tmp_result), true_res)
Ejemplo n.º 8
0
 def test_binary(self):
     for sf, true_act, true_res in zip([sample_file, sample2_file],
                                       self.activations, self.results):
         # save activations as binary file
         run_program([self.bin, '--save', 'single', sf, '-o', tmp_act])
         act = Activations(tmp_act)
         self.assertTrue(np.allclose(act, true_act, atol=1e-5))
         self.assertEqual(act.fps, true_act.fps)
         # reload from file
         run_program(
             [self.bin, '--load', 'single', tmp_act, '-o', tmp_result])
         self._check_results(load_chords(tmp_result), true_res)
Ejemplo n.º 9
0
 def test_txt(self):
     # save activations as txt file
     run_program([
         self.bin, '--save', '--sep', ' ', 'single', sample_file, '-o',
         tmp_act
     ])
     act = Activations(tmp_act, sep=' ', fps=100)
     self.assertTrue(np.allclose(act, self.activations, atol=1e-5))
     # reload from file
     run_program([
         self.bin, '--load', '--sep', ' ', 'single', tmp_act, '-o',
         tmp_result
     ])
     result = np.loadtxt(tmp_result)
     self.assertTrue(np.allclose(result, self.result, atol=1e-5))
Ejemplo n.º 10
0
 def test_txt(self):
     for sf, true_act, true_res in zip([sample_file, sample2_file],
                                       self.activations, self.results):
         # save activations as txt file
         run_program([
             self.bin, '--save', '--sep', ' ', 'single', sf, '-o', tmp_act
         ])
         act = Activations(tmp_act, sep=' ', fps=100)
         self.assertTrue(np.allclose(act, true_act, atol=1e-5))
         # reload from file
         run_program([
             self.bin, '--load', '--sep', ' ', 'single', tmp_act, '-o',
             tmp_result
         ])
         self._check_results(load_chords(tmp_result), true_res)
Ejemplo n.º 11
0
 def setUp(self):
     self.bin = pj(program_path, "SuperFluxNN")
     self.activations = Activations(
         pj(ACTIVATIONS_PATH, "sample.super_flux_nn.npz"))
     self.result = np.loadtxt(
         pj(DETECTIONS_PATH, "sample.super_flux_nn.txt"))
Ejemplo n.º 12
0
 def setUp(self):
     self.bin = pj(program_path, "SpectralOnsetDetection")
     self.activations = Activations(
         pj(ACTIVATIONS_PATH, "sample.spectral_flux.npz"))
     self.result = np.loadtxt(
         pj(DETECTIONS_PATH, "sample.spectral_flux.txt"))
Ejemplo n.º 13
0
 def setUp(self):
     self.bin = pj(program_path, "PianoTranscriptor")
     self.activations = Activations(
         pj(ACTIVATIONS_PATH, "stereo_sample.notes_brnn.npz"))
     self.result = np.loadtxt(
         pj(DETECTIONS_PATH, "stereo_sample.piano_transcriptor.txt"))
Ejemplo n.º 14
0
 def setUp(self):
     self.bin = pj(program_path, "BeatDetector")
     self.activations = Activations(
         pj(ACTIVATIONS_PATH, "sample.beats_blstm.npz"))
     self.result = np.loadtxt(
         pj(DETECTIONS_PATH, "sample.beat_detector.txt"))
Ejemplo n.º 15
0
 def setUp(self):
     self.bin = pj(program_path, "OnsetDetectorLL")
     self.activations = Activations(
         pj(ACTIVATIONS_PATH, "sample.onsets_rnn.npz"))
     self.result = np.loadtxt(
         pj(DETECTIONS_PATH, "sample.onset_detector_ll.txt"))
Ejemplo n.º 16
0
 def setUp(self):
     self.bin = pj(program_path, "MMBeatTracker")
     self.activations = Activations(
         pj(ACTIVATIONS_PATH, "sample.beats_blstm_mm.npz"))
     self.result = np.loadtxt(
         pj(DETECTIONS_PATH, "sample.mm_beat_tracker.txt"))
Ejemplo n.º 17
0
 def setUp(self):
     self.bin = pj(program_path, "LogFiltSpecFlux")
     self.activations = Activations(
         pj(ACTIVATIONS_PATH, "sample.log_filt_spec_flux.npz"))
     self.result = np.loadtxt(
         pj(DETECTIONS_PATH, "sample.log_filt_spec_flux.txt"))
Ejemplo n.º 18
0
This file contains tests for the madmom.features.key module.

"""

from __future__ import absolute_import, division, print_function

import unittest
from os.path import join as pj

from madmom.features import Activations
from madmom.features.key import *
from . import AUDIO_PATH, ACTIVATIONS_PATH

sample_file = pj(AUDIO_PATH, 'sample.wav')
sample2_file = pj(AUDIO_PATH, 'sample2.wav')
sample_key_act = Activations(pj(ACTIVATIONS_PATH, 'sample.key_cnn.npz'))
sample2_key_act = Activations(pj(ACTIVATIONS_PATH, 'sample2.key_cnn.npz'))


class TestHelperFunctions(unittest.TestCase):

    def test_key_prediction_to_label_function(self):
        self.assertEqual(key_prediction_to_label(sample_key_act), 'Ab major')
        self.assertEqual(
            key_prediction_to_label(sample_key_act[0]), 'Ab major')
        self.assertEqual(
            key_prediction_to_label(np.roll(sample_key_act[0], 1)), 'A minor')
        self.assertEqual(
            key_prediction_to_label(np.roll(sample_key_act[0], -3)), 'F major')

        self.assertEqual(key_prediction_to_label(sample2_key_act), 'A minor')
Ejemplo n.º 19
0
 def setUp(self):
     self.bin = pj(program_path, "ComplexFlux")
     self.activations = Activations(
         pj(ACTIVATIONS_PATH, "sample.complex_flux.npz"))
     self.result = np.loadtxt(pj(DETECTIONS_PATH,
                                 "sample.complex_flux.txt"))
Ejemplo n.º 20
0
"""

from __future__ import absolute_import, division, print_function

import numpy as np
import unittest
from . import AUDIO_PATH, ACTIVATIONS_PATH
from madmom.audio.chroma import DeepChromaProcessor, CLPChroma
from madmom.features import Activations
from os.path import join as pj
from madmom.audio.signal import Signal

sample_files = [pj(AUDIO_PATH, sf) for sf in ['sample.wav', 'sample2.wav']]
sample_acts = [
    Activations(pj(ACTIVATIONS_PATH, af))
    for af in ['sample.deep_chroma.npz', 'sample2.deep_chroma.npz']
]
sample_file = pj(AUDIO_PATH, 'sample.wav')
sample_file_22050 = pj(AUDIO_PATH, 'sample_22050.wav')
sample_act_deep_chroma = Activations(
    pj(ACTIVATIONS_PATH, 'sample.deep_chroma.npz'))


class TestDeepChromaProcessorClass(unittest.TestCase):
    def setUp(self):
        self.processor = DeepChromaProcessor()

    def test_process(self):
        for f, a in zip(sample_files, sample_acts):
            self.assertTrue(np.allclose(self.processor(f), a))
Ejemplo n.º 21
0
"""
This file contains tests for the madmom.features.notes module.

"""

from __future__ import absolute_import, division, print_function

import unittest
from os.path import join as pj

from . import AUDIO_PATH, ACTIVATIONS_PATH, ANNOTATIONS_PATH
from madmom.features import Activations
from madmom.features.notes import *

sample_file = pj(AUDIO_PATH, "stereo_sample.wav")
sample_act = Activations(pj(ACTIVATIONS_PATH, "stereo_sample.notes_brnn.npz"))

NOTES = np.array([[0.147, 72, 3.323, 63], [1.567, 41, 0.223, 29],
                  [2.526, 77, 0.93, 72], [2.549, 60, 0.211, 28],
                  [2.563, 65, 0.202, 34], [2.577, 56, 0.234, 31],
                  [3.369, 75, 0.78, 64], [3.449, 43, 0.272, 35]])


class TestLoadNotesFunction(unittest.TestCase):
    def test_values(self):
        result = load_notes(pj(ANNOTATIONS_PATH, 'stereo_sample.notes'))
        self.assertTrue(np.allclose(result, NOTES))


class TestExpandNotesFunction(unittest.TestCase):
    def test_values(self):
Ejemplo n.º 22
0
"""

from __future__ import absolute_import, division, print_function

import unittest
from os.path import join as pj

from madmom.features import Activations
from madmom.features.chords import *
from madmom.io import load_chords
from . import ACTIVATIONS_PATH, AUDIO_PATH, DETECTIONS_PATH

sample_files = [pj(AUDIO_PATH, sf) for sf in ['sample.wav', 'sample2.wav']]

sample_cnn_acts = [Activations(pj(ACTIVATIONS_PATH, af))
                   for af in ['sample.cnn_chord_features.npz',
                              'sample2.cnn_chord_features.npz']]

sample_cnn_labels = [load_chords(pj(DETECTIONS_PATH, df))
                     for df in ['sample.cnn_chord_recognition.txt',
                                'sample2.cnn_chord_recognition.txt']]

sample_deep_chroma_acts = [Activations(pj(ACTIVATIONS_PATH, af))
                           for af in ['sample.deep_chroma.npz',
                                      'sample2.deep_chroma.npz']]

sample_deep_chroma_labels = [load_chords(pj(DETECTIONS_PATH, df))
                             for df in ['sample.dc_chord_recognition.txt',
                                        'sample2.dc_chord_recognition.txt']]
Ejemplo n.º 23
0
"""

from __future__ import absolute_import, division, print_function

import unittest
from os.path import join as pj

from madmom.features import Activations
from madmom.features.chords import *
from . import AUDIO_PATH, ACTIVATIONS_PATH, DETECTIONS_PATH

sample_files = [pj(AUDIO_PATH, sf) for sf in ['sample.wav', 'sample2.wav']]

sample_cnn_acts = [
    Activations(pj(ACTIVATIONS_PATH, af)) for af in
    ['sample.cnn_chord_features.npz', 'sample2.cnn_chord_features.npz']
]

sample_cnn_labels = [
    load_chords(pj(DETECTIONS_PATH, df)) for df in
    ['sample.cnn_chord_recognition.txt', 'sample2.cnn_chord_recognition.txt']
]

sample_deep_chroma_acts = [
    Activations(pj(ACTIVATIONS_PATH, af))
    for af in ['sample.deep_chroma.npz', 'sample2.deep_chroma.npz']
]

sample_deep_chroma_labels = [
    load_chords(pj(DETECTIONS_PATH, df)) for df in
Ejemplo n.º 24
0
from os.path import join as pj

from madmom.ml.hmm import HiddenMarkovModel

from madmom.audio.chroma import CLPChroma
from madmom.features import Activations
from madmom.features.downbeats import *
from madmom.models import PATTERNS_BALLROOM
from . import ACTIVATIONS_PATH, ANNOTATIONS_PATH, AUDIO_PATH, DETECTIONS_PATH
from .test_utils import DETECTION_FILES

sample_file = pj(AUDIO_PATH, "sample.wav")
sample_beats = np.loadtxt(pj(ANNOTATIONS_PATH, "sample.beats"))
sample_det_file = pj(DETECTIONS_PATH, 'sample.dbn_beat_tracker.txt')
sample_beat_det = np.loadtxt(sample_det_file)
sample_bar_act = Activations(pj(ACTIVATIONS_PATH, "sample.bar_tracker.npz"))
sample_downbeat_act = Activations(
    pj(ACTIVATIONS_PATH, "sample.downbeats_blstm.npz"))
sample_pattern_features = Activations(
    pj(ACTIVATIONS_PATH, "sample.gmm_pattern_tracker.npz"))


class TestRNNDownBeatProcessorClass(unittest.TestCase):
    def setUp(self):
        self.processor = RNNDownBeatProcessor()

    def test_process(self):
        downbeat_act = self.processor(sample_file)
        self.assertTrue(
            np.allclose(downbeat_act, sample_downbeat_act, atol=1e-5))
Ejemplo n.º 25
0
from madmom.audio.signal import SignalProcessor, FramedSignalProcessor
from madmom.audio.filters import LogarithmicFilterbank
from madmom.audio.stft import ShortTimeFourierTransformProcessor
from madmom.audio.spectrogram import (Spectrogram, SpectrogramProcessor,
                                      FilteredSpectrogramProcessor,
                                      LogarithmicFilteredSpectrogram,
                                      LogarithmicSpectrogramProcessor)
from madmom.features import Activations
from madmom.features.onsets import *

sample_file = pj(AUDIO_PATH, 'sample.wav')
sample_spec = Spectrogram(sample_file, circular_shift=True)
sample_log_filt_spec = LogarithmicFilteredSpectrogram(
    sample_spec, num_bands=24, mul=1, add=1)
sample_cnn_act = Activations(pj(ACTIVATIONS_PATH, 'sample.onsets_cnn.npz'))
sample_rnn_act = Activations(pj(ACTIVATIONS_PATH, 'sample.onsets_rnn.npz'))
sample_brnn_act = Activations(pj(ACTIVATIONS_PATH, 'sample.onsets_brnn.npz'))
sample_superflux_act = Activations(pj(ACTIVATIONS_PATH,
                                      'sample.super_flux.npz'))


class TestHighFrequencyContentFunction(unittest.TestCase):

    def test_values(self):
        odf = high_frequency_content(sample_log_filt_spec)
        self.assertTrue(np.allclose(odf[:6], [8.97001563, 9.36399107,
                                              8.64144536, 8.34977449,
                                              8.21097918, 8.40412515]))