示例#1
0
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
示例#2
0
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
示例#3
0
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']
示例#4
0
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)
示例#5
0
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)
示例#6
0
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
示例#7
0
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)
示例#8
0
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
示例#9
0
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)
示例#10
0
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
示例#11
0
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)
示例#12
0
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
示例#13
0
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']
示例#14
0
 def __test(ann, target):
     jams.convert(ann, target)
示例#15
0
def test_noop(namespace):

    ann = jams.Annotation(namespace=namespace)
    a2 = jams.convert(ann, namespace)
    assert ann == a2
示例#16
0
 def __test(ns):
     ann = jams.Annotation(namespace=ns)
     a2 = jams.convert(ann, ns)
     eq_(ann, a2)
示例#17
0
def test_bad_sources(target):

    ann = jams.Annotation(namespace='vector')
    jams.convert(ann, target)
示例#18
0
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')