Esempio n. 1
0
def test_linear_beaming_from_nt():
    score = m21.converter.parse(
        str(Path("tests/test_musicxml/test_score1.musicxml")))
    measures = score.parts[0].getElementsByClass("Measure")
    for m in measures:
        gns = m.getElementsByClass("GeneralNote")
        bt = m21_2_notationtree(gns, "beamings", consider_grace_notes=True)
        tt = m21_2_notationtree(gns, "tuplets", consider_grace_notes=True)
        assert m21_2_seq_struct(gns, "beamings")[0] == nt2seq_structure(bt)[0]
        assert m21_2_seq_struct(gns, "tuplets")[0] == nt2seq_structure(tt)[0]
        assert m21_2_seq_struct(gns, "beamings")[1] == nt2seq_structure(bt)[1]
        assert m21_2_seq_struct(gns, "tuplets")[1] == nt2seq_structure(tt)[1]
Esempio n. 2
0
def test_m21_2_notationtree3():
    # test from lamarque dataset. It has problems in the xml encoding of the gracenotes
    score = m21.converter.parse(
        str(Path("tests/test_musicxml/101-Beethoven-bagatelle4op33.musicxml")))
    reconstruct(score)
    measures = score.parts[0].getElementsByClass("Measure")
    # third measure is problematic because of grace notes
    m = measures[2]
    voice = m.getElementsByClass("Voice")[0]
    gns_m3 = voice.getElementsByClass("GeneralNote")
    nt_bt = m21_2_notationtree(gns_m3, "beamings")
    nt_tt = m21_2_notationtree(gns_m3, "tuplets")
Esempio n. 3
0
def test_m21_2_notationtree4():
    score = m21.converter.parse(
        str(
            Path("tests/test_musicxml/51_fantasiestucke_op.12-2_aufschwung.xml"
                 )))
    reconstruct(score)
    measures = score.parts[0].getElementsByClass("Measure")
    # third measure is problematic because of grace notes
    m = measures[5]
    voice = m.getElementsByClass("Voice")[0]
    gns_m3 = voice.getElementsByClass("GeneralNote")
    nt_bt = m21_2_notationtree(gns_m3, "beamings")
    nt_tt = m21_2_notationtree(gns_m3, "tuplets")
Esempio n. 4
0
def test_m21_2_notationtree2():
    score = m21.converter.parse(
        str(Path("tests/test_musicxml/test_score2.musicxml")))
    measures = score.parts[0].getElementsByClass("Measure")
    # measure 3 (grace note)
    gns_m3 = measures[3].getElementsByClass("GeneralNote")
    nt_bt = m21_2_notationtree(gns_m3, "beamings", consider_grace_notes=True)
    nt_tt = m21_2_notationtree(gns_m3, "tuplets", consider_grace_notes=True)
    assert len(nt_bt.get_nodes()) == 6
    assert len(nt_bt.get_leaf_nodes()) == 4
    assert len(nt_bt.root.children) == 4
    assert len(nt_tt.get_nodes()) == 5
    assert len(nt_tt.get_leaf_nodes()) == 4
    assert len(nt_tt.root.children) == 4
Esempio n. 5
0
def test_nt2general_notes2():
    score = m21.converter.parse(
        str(Path("tests/test_musicxml/test_score3.musicxml")))
    measures = score.parts[0].getElementsByClass("Measure")
    for m in measures:
        gns = m.getElementsByClass("GeneralNote")
        bt = m21_2_notationtree(gns, "beamings")
        tt = m21_2_notationtree(gns, "tuplets")
        out_gns = nt2general_notes(bt, tt)
        # check beamings and tuplets
        assert m21_2_seq_struct(gns, "beamings") == m21_2_seq_struct(
            out_gns, "beamings")
        assert (correct_tuplet(m21_2_seq_struct(
            gns, "tuplets")[0]) == m21_2_seq_struct(out_gns, "tuplets")[0])
        assert (m21_2_seq_struct(gns, "tuplets")[1] == m21_2_seq_struct(
            out_gns, "tuplets")[1])
        for n1, n2 in zip(gns, out_gns):
            assert gn2label(n1) == gn2label(n2)
            # check m21 proprieties without the modifications that we do for importing
            assert get_type_number(n1) == get_type_number(n2)
Esempio n. 6
0
def test_m21_2_notationtree1():
    score = m21.converter.parse(
        str(Path("tests/test_musicxml/test_score1.musicxml")))
    measures = score.parts[0].getElementsByClass("Measure")
    # measure 0
    gns_m0 = measures[0].getElementsByClass("GeneralNote")
    bt = m21_2_notationtree(gns_m0, "beamings")
    assert len(bt.get_nodes()) == 2
    assert len(bt.get_leaf_nodes()) == 1
    assert len(bt.root.children) == 1
    # measure 1
    gns_m0 = measures[1].getElementsByClass("GeneralNote")
    bt = m21_2_notationtree(gns_m0, "beamings")
    assert len(bt.get_nodes()) == 12
    assert len(bt.get_leaf_nodes()) == 8
    assert len(bt.root.children) == 4
    # measure 2
    gns_m0 = measures[2].getElementsByClass("GeneralNote")
    nt_bt = m21_2_notationtree(gns_m0, "beamings")
    nt_tt = m21_2_notationtree(gns_m0, "tuplets")
    assert len(nt_bt.get_nodes()) == 10
    assert len(nt_bt.get_leaf_nodes()) == 6
    assert len(nt_bt.root.children) == 4
    assert len(nt_tt.get_nodes()) == 7
    assert len(nt_tt.get_leaf_nodes()) == 6
    assert len(nt_tt.root.children) == 6
    # measure 3
    gns_m0 = measures[3].getElementsByClass("GeneralNote")
    nt_bt = m21_2_notationtree(gns_m0, "beamings")
    nt_tt = m21_2_notationtree(gns_m0, "tuplets")
    assert len(nt_bt.get_nodes()) == 11
    assert len(nt_bt.get_leaf_nodes()) == 8
    assert len(nt_bt.root.children) == 5
    assert len(nt_tt.get_nodes()) == 11
    assert len(nt_tt.get_leaf_nodes()) == 8
    assert len(nt_tt.root.children) == 4