def test_beat_position(): ann = jams.Annotation(namespace='beat_position') ann.append(time=0, duration=0, confidence=0.5, value=dict(position=1, measure=0, num_beats=4, beat_units=4)) ann.append(time=0.5, duration=0, confidence=0.5, value=dict(position=2, measure=0, num_beats=4, beat_units=4)) ann.append(time=1, duration=0, confidence=0.5, value=dict(position=3, measure=0, num_beats=4, beat_units=4)) ann.append(time=1.5, duration=0, confidence=0.5, value=dict(position=4, measure=0, num_beats=4, beat_units=4)) ann2 = jams.convert(ann, 'beat') ann.validate() ann2.validate() # Check the namespace assert ann2.namespace == 'beat' # Check all else is equal assert len(ann) == len(ann2) for obs1, obs2 in zip(ann.data, ann2.data): assert obs1.time == obs2.time assert obs1.duration == obs2.duration assert obs1.confidence == obs2.confidence
def test_scaper_tag_open(): ann = jams.Annotation(namespace='scaper') value = { "source_time": 5, "event_duration": 0.5310546236891855, "event_time": 5.6543442662431795, "time_stretch": 0.8455598669219283, "pitch_shift": -1.2204911976305648, "snr": 7.790682558359417, "label": 'gun_shot', "role": "foreground", "source_file": "/audio/foreground/gun_shot/135544-6-17-0.wav" } ann.append(time=0, duration=1, value=value) ann2 = jams.convert(ann, 'tag_open') ann.validate() ann2.validate() assert ann2.namespace == 'tag_open' assert len(ann) == len(ann2) for obs1, obs2 in zip(ann.data, ann2.data): assert obs1.time == obs2.time assert obs1.duration == obs2.duration assert obs1.confidence == obs2.confidence assert obs1.value['label'] == obs2.value
def test_pitch_hz_to_contour(): ann = jams.Annotation(namespace='pitch_hz') values = np.linspace(110, 220, num=100) # Unvoice the first half values[::len(values) // 2] *= -1 times = np.linspace(0, 1, num=len(values)) for t, v in zip(times, values): ann.append(time=t, value=v, duration=0) ann2 = jams.convert(ann, 'pitch_contour') ann.validate() ann2.validate() assert ann2.namespace == 'pitch_contour' # Check index values assert ann2.data[0].value['index'] == 0 assert ann2.data[-1].value['index'] == 0 # Check frequency assert np.abs(ann2.data[0].value['frequency'] == np.abs(values[0])) assert np.abs(ann2.data[-1].value['frequency'] == np.abs(values[-1])) # Check voicings assert not ann2.data[0].value['voiced'] assert ann2.data[-1].value['voiced']
def test_beat_position(): ann = jams.Annotation(namespace='beat_position') ann.append(time=0, duration=0, confidence=0.5, value=dict(position=1, measure=0, num_beats=4, beat_units=4)) ann.append(time=0.5, duration=0, confidence=0.5, value=dict(position=2, measure=0, num_beats=4, beat_units=4)) ann.append(time=1, duration=0, confidence=0.5, value=dict(position=3, measure=0, num_beats=4, beat_units=4)) ann.append(time=1.5, duration=0, confidence=0.5, value=dict(position=4, measure=0, num_beats=4, beat_units=4)) ann2 = jams.convert(ann, 'beat') ann.validate() ann2.validate() # Check the namespace eq_(ann2.namespace, 'beat') npt.assert_allclose(ann2.data.value.values, np.arange(1, 5)) # Check all else is equal pdt.assert_series_equal(ann.data.time, ann2.data.time) pdt.assert_series_equal(ann.data.duration, ann2.data.duration) pdt.assert_series_equal(ann.data.confidence, ann2.data.confidence)
def test_segment_open(): ann = jams.Annotation(namespace='segment_salami_upper') ann.append(time=0, duration=1, value='A', confidence=0.5) ann2 = jams.convert(ann, 'segment_open') ann.validate() ann2.validate() # Check the namespace eq_(ann.namespace, 'segment_salami_upper') eq_(ann2.namespace, 'segment_open') # Check all else is equal pdt.assert_frame_equal(ann.data, ann2.data)
def test_tag_open(): ann = jams.Annotation(namespace='tag_gtzan') ann.append(time=0, duration=1, value='reggae', confidence=0.5) ann2 = jams.convert(ann, 'tag_open') ann.validate() ann2.validate() # Check the namespace assert ann.namespace == 'tag_gtzan' assert ann2.namespace == 'tag_open' # Check all else is equal assert ann.data == ann2.data
def test_tag_open(): ann = jams.Annotation(namespace='tag_gtzan') ann.append(time=0, duration=1, value='reggae', confidence=0.5) ann2 = jams.convert(ann, 'tag_open') ann.validate() ann2.validate() # Check the namespace eq_(ann.namespace, 'tag_gtzan') eq_(ann2.namespace, 'tag_open') # Check all else is equal pdt.assert_frame_equal(ann.data, ann2.data)
def test_chord(): ann = jams.Annotation(namespace='chord_harte') ann.append(time=0, duration=1, value='C:maj6', confidence=0.5) ann2 = jams.convert(ann, 'chord') ann.validate() ann2.validate() # Check the namespace assert ann.namespace == 'chord_harte' assert ann2.namespace == 'chord' # Check all else is equal assert ann.data == ann2.data
def test_chord(): ann = jams.Annotation(namespace='chord_harte') ann.append(time=0, duration=1, value='C:maj6', confidence=0.5) ann2 = jams.convert(ann, 'chord') ann.validate() ann2.validate() # Check the namespace eq_(ann.namespace, 'chord_harte', ann) eq_(ann2.namespace, 'chord', ann2) # Check all else is equal pdt.assert_frame_equal(ann.data, ann2.data)
def test_segment_open(): ann = jams.Annotation(namespace='segment_salami_upper') ann.append(time=0, duration=1, value='A', confidence=0.5) ann2 = jams.convert(ann, 'segment_open') ann.validate() ann2.validate() # Check the namespace assert ann.namespace == 'segment_salami_upper' assert ann2.namespace == 'segment_open' # Check all else is equal assert ann.data == ann2.data
def test_pitch_hz_to_midi(): ann = jams.Annotation(namespace='pitch_hz') ann.append(time=0, duration=1, value=440.0, confidence=0.5) ann2 = jams.convert(ann, 'pitch_midi') ann.validate() ann2.validate() # Check the namespace eq_(ann2.namespace, 'pitch_midi') # midi 69 = 440.0 Hz eq_(ann2.data.value.loc[0], 69) # Check all else is equal pdt.assert_series_equal(ann.data.time, ann2.data.time) pdt.assert_series_equal(ann.data.duration, ann2.data.duration) pdt.assert_series_equal(ann.data.confidence, ann2.data.confidence)
def test_pitch_midi_to_hz(): ann = jams.Annotation(namespace='pitch_midi') ann.append(time=0, duration=1, value=69, confidence=0.5) ann2 = jams.convert(ann, 'pitch_hz') ann.validate() ann2.validate() # Check the namespace assert ann2.namespace == 'pitch_hz' # midi 69 = 440.0 Hz assert ann2.data[0].value == 440.0 # Check all else is equal assert len(ann.data) == len(ann2.data) for obs1, obs2 in zip(ann.data, ann2.data): assert obs1.time == obs2.time assert obs1.duration == obs2.duration assert obs1.confidence == obs2.confidence
def test_pitch_midi_to_contour(): ann = jams.Annotation(namespace='pitch_midi') values = np.arange(100) times = np.linspace(0, 1, num=len(values)) for t, v in zip(times, values): ann.append(time=t, value=v, duration=0) ann2 = jams.convert(ann, 'pitch_contour') ann.validate() ann2.validate() assert ann2.namespace == 'pitch_contour' # Check index values assert ann2.data[0].value['index'] == 0 assert ann2.data[-1].value['index'] == 0 # Check voicings assert ann2.data[-1].value['voiced']
def __test(ann, target): jams.convert(ann, target)
def test_noop(namespace): ann = jams.Annotation(namespace=namespace) a2 = jams.convert(ann, namespace) assert ann == a2
def __test(ns): ann = jams.Annotation(namespace=ns) a2 = jams.convert(ann, ns) eq_(ann, a2)
def test_bad_sources(target): ann = jams.Annotation(namespace='vector') jams.convert(ann, target)
def test_bad_target(): ann = jams.Annotation(namespace='tag_open') ann.append(time=0, duration=1, value='foo', confidence=1) jams.convert(ann, 'bad namespace')