コード例 #1
0
ファイル: test_parser.py プロジェクト: gianmarialari/tbon
def test_relative_tempo_change():
    mp = MidiPreEvaluator()
    mp.eval('#d - t=0.5 ef z |')
    assert mp.subbeat_lengths == [1.0, 1.0, 0.5, 1.0]
    assert mp.meta_output == [('T', 0, 120), ('T', 2, 60), ('M', 0, 4, 4, 0)]
    evaluate('T=120 #d - | t=0.5  - - |', [(63, 0.0, 4.0)])
    evaluate('#d - | t=0.5  - - |', [(63, 0.0, 4.0)])
コード例 #2
0
ファイル: test_parser.py プロジェクト: gianmarialari/tbon
def test_beat_map():
    mp = MidiPreEvaluator()
    mp.eval('a b cd | e f - a |')
    assert mp.beat_map == {1: [3, 4]}
    m = MidiEvaluator(pitch_order=tuple('abcdefg'), ignore_velocity=True)
    m.eval('a b cd | e f - a |')
    assert m.beat_map == {1: (3, 4)}
コード例 #3
0
def pre_evaluate(source, expected, target='subbeat_lengths'):
    m = MidiPreEvaluator()
    m.eval(source)
    assert len(m.partstates) > 0
    if target == 'subbeat_lengths':
        for i, t in enumerate(m.subbeat_lengths):
            assert t == approx(expected[i])
    elif target == 'subbeat_starts':
        for i, p in enumerate(m.partstates.values()):
            for t in p['subbeat_starts']:
                assert t == approx(expected[i])
コード例 #4
0
ファイル: test_parser.py プロジェクト: gianmarialari/tbon
def test_pre_evaluation():
    mp = MidiPreEvaluator()
    mp.eval('#d - - - |')
    assert mp.subbeat_lengths == [1.0] * 4
    mp = MidiPreEvaluator()
    mp.eval('#d - ef z |')
    assert mp.subbeat_lengths == [1.0, 1.0, 0.5, 1.0]
コード例 #5
0
ファイル: test_parser.py プロジェクト: gianmarialari/tbon
def test_chord_pre_evaluation():
    mp = MidiPreEvaluator()
    mp.eval('(ac) - - - |')
    assert mp.subbeat_lengths == [1.0] * 4
    mp = MidiPreEvaluator()
    mp.eval('c (ac) - -  |')
    assert mp.subbeat_lengths == [1.0] * 4
コード例 #6
0
ファイル: test_parser.py プロジェクト: gianmarialari/tbon
def test_keysig_insert():
    mp = MidiPreEvaluator()
    mp.eval('K=D #d - t=0.5 ef z |')
    assert mp.subbeat_lengths == [1.0, 1.0, 0.5, 1.0]
    assert mp.meta_output == [('K', 0, (2, 0), 0), ('T', 0, 120),
                              ('T', 2, 60), ('M', 0, 4, 4, 0)]
    mp = MidiPreEvaluator()
    mp.eval('P=1 K=C #d - t=0.5 ef z | P=2 K=D #d - ef z |')
    assert mp.meta_output[0] == ('K', 0, (0, 0), 0)
    assert mp.meta_output[4] == ('K', 0, (2, 0), 1)
コード例 #7
0
ファイル: test_parser.py プロジェクト: gianmarialari/tbon
def test_polymeters():
    mp = MidiPreEvaluator()
    mp.eval('P=1 c d e | P=2 B=4. efg abc |')
    assert mp.meta_output == [('T', 0, 120), ('M', 0.0, 3, 4, 0),
                              ('M', 0.0, 6, 8, 1)]
コード例 #8
0
ファイル: test_parser.py プロジェクト: gianmarialari/tbon
def test_instrument():
    mp = MidiPreEvaluator()
    mp.eval('I=25 K=D #d - t=0.5 ef z |')
    assert mp.meta_output == [('I', 0, 25, 0, 1), ('K', 0, (2, 0), 0),
                              ('T', 0, 120), ('T', 2, 60), ('M', 0, 4, 4, 0)]
コード例 #9
0
ファイル: test_parser.py プロジェクト: gianmarialari/tbon
def test_subbeat_pre_evaluation():
    mp = MidiPreEvaluator()
    mp.eval('#d - - - |')
    assert mp.subbeat_starts == [(0.0,), (1.0,), (2.0,), (3.0,)]
    mp = MidiPreEvaluator()
    mp.eval('#d - ef z | -g a - (ab) |')
    assert mp.subbeat_starts == [(0.0,), (1.0,), (2.0, 2.5), (3.0,),
                                 (4.0, 4.5), (5.0,), (6.0,), (7.0,)]
    mp = MidiPreEvaluator()
    mp.eval('B=8  zg a - (ab) |')
    assert mp.subbeat_starts == [(0.0, 0.25), (0.5,), (1.0,), (1.5,)]

    mp = MidiPreEvaluator()
    mp.eval('#d - ef z | B=8  -g a - (ab) |')
    assert mp.subbeat_starts == [(0.0,), (1.0,), (2.0, 2.5), (3.0,),
                                 (4.0, 4.25), (4.5,), (5.0,), (5.5,)]