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'
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, )