Example #1
0
def test_track():
    # test data home None
    track_default = medleydb_pitch.Track('AClassicEducation_NightOwl_STEM_08')
    assert track_default._data_home == os.path.join(DEFAULT_DATA_HOME, 'MedleyDB-Pitch')

    data_home = 'tests/resources/mir_datasets/MedleyDB-Pitch'

    with pytest.raises(ValueError):
        medleydb_pitch.Track('asdfasdf', data_home=data_home)

    track = medleydb_pitch.Track(
        'AClassicEducation_NightOwl_STEM_08', data_home=data_home
    )

    # test attributes
    assert track.track_id == 'AClassicEducation_NightOwl_STEM_08'
    assert track._data_home == data_home
    assert track._track_paths == {
        'audio': [
            'audio/AClassicEducation_NightOwl_STEM_08.wav',
            '6cfb976517cf377863ba0ef6c66c6a07',
        ],
        'pitch': [
            'pitch/AClassicEducation_NightOwl_STEM_08.csv',
            '67009ae37766c37d3c29146bf763e06d',
        ],
    }
    assert (
        track.audio_path
        == 'tests/resources/mir_datasets/'
        + 'MedleyDB-Pitch/audio/AClassicEducation_NightOwl_STEM_08.wav'
    )
    assert track.instrument == 'male singer'
    assert track.artist == 'AClassicEducation'
    assert track.title == 'NightOwl'
    assert track.genre == 'Singer/Songwriter'

    assert type(track.pitch) is utils.F0Data

    y, sr = track.audio
    assert sr == 44100
    assert y.shape == (44100 * 2,)

    repr_string = (
        "MedleyDb-Pitch Track(track_id=AClassicEducation_NightOwl_STEM_08, "
        + "audio_path=tests/resources/mir_datasets/MedleyDB-Pitch/audio/"
        + "AClassicEducation_NightOwl_STEM_08.wav, "
        + "artist=AClassicEducation, title=NightOwl, genre=Singer/Songwriter, "
        + "instrument=male singer, pitch=PitchData('times', 'pitches', 'confidence'))"
    )
    assert track.__repr__() == repr_string
def test_to_jams():

    data_home = 'tests/resources/mir_datasets/MedleyDB-Pitch'
    track = medleydb_pitch.Track('AClassicEducation_NightOwl_STEM_08',
                                 data_home=data_home)
    jam = track.to_jams()

    f0s = jam.search(namespace='pitch_contour')[0]['data']
    assert [f0.time
            for f0 in f0s] == [0.06965986394557823, 0.07546485260770976]
    assert [f0.duration for f0 in f0s] == [0.0, 0.0]
    assert [f0.value for f0 in f0s] == [
        {
            'frequency': 0.0,
            'index': 0,
            'voiced': False
        },
        {
            'frequency': 191.877,
            'index': 0,
            'voiced': True
        },
    ]
    assert [f0.confidence for f0 in f0s] == [0.0, 1.0]

    assert jam['file_metadata']['title'] == 'NightOwl'
    assert jam['file_metadata']['artist'] == 'AClassicEducation'
Example #3
0
def test_track():
    default_trackid = 'AClassicEducation_NightOwl_STEM_08'
    data_home = 'tests/resources/mir_datasets/MedleyDB-Pitch'
    track = medleydb_pitch.Track(default_trackid, data_home=data_home)

    expected_attributes = {
        'track_id': 'AClassicEducation_NightOwl_STEM_08',
        'audio_path': 'tests/resources/mir_datasets/' +
        'MedleyDB-Pitch/audio/AClassicEducation_NightOwl_STEM_08.wav',
        'pitch_path': 'tests/resources/mir_datasets/' +
        'MedleyDB-Pitch/pitch/AClassicEducation_NightOwl_STEM_08.csv',
        'instrument': 'male singer',
        'artist': 'AClassicEducation',
        'title': 'NightOwl',
        'genre': 'Singer/Songwriter'
    }

    expected_property_types = {
        'pitch': utils.F0Data,
    }

    run_track_tests(track, expected_attributes, expected_property_types)

    y, sr = track.audio
    assert sr == 44100
    assert y.shape == (44100 * 2, )