Ejemplo n.º 1
0
def test_enforce_time_signature_08():
    staff = abjad.Staff(r"\times 2/3 {c'2 d'2 e'2} f'1")
    time_signatures = [
        abjad.TimeSignature((2, 4)),
        abjad.TimeSignature((3, 4)),
    ]
    auxjad.mutate(staff).enforce_time_signature(time_signatures)
    assert format(staff) == abjad.String.normalize(r"""
        \new Staff
        {
            \times 2/3 {
                \time 2/4
                c'2
                d'4
                ~
            }
            \times 2/3 {
                \time 3/4
                d'4
                e'2
            }
            f'4
            ~
            f'2.
        }
        """)
Ejemplo n.º 2
0
def test_enforce_time_signature_10():
    staff = abjad.Staff(r"c'1 d'1 e'1 f'1")
    time_signatures = [
        (2, 4),
        None,
        None,
        (3, 4),
        None,
        (4, 4),
    ]
    auxjad.mutate(staff).enforce_time_signature(time_signatures)
    assert format(staff) == abjad.String.normalize(r"""
        \new Staff
        {
            \time 2/4
            c'2
            ~
            c'2
            d'2
            ~
            \time 3/4
            d'2
            e'4
            ~
            e'2.
            \time 4/4
            f'1
        }
        """)
def test_remove_repeated_time_signatures_01():
    staff = abjad.Staff(r"c'4 d'8 | c'4 d'8")
    abjad.attach(abjad.TimeSignature((3, 8)), staff[0])
    abjad.attach(abjad.TimeSignature((3, 8)), staff[2])
    assert format(staff) == abjad.String.normalize(r"""
        \new Staff
        {
            \time 3/8
            c'4
            d'8
            \time 3/8
            c'4
            d'8
        }
        """)
    auxjad.mutate(staff[:]).remove_repeated_time_signatures()
    assert format(staff) == abjad.String.normalize(r"""
        \new Staff
        {
            \time 3/8
            c'4
            d'8
            c'4
            d'8
        }
        """)
Ejemplo n.º 4
0
def test_reposition_dynamics_06():
    staff = abjad.Staff(r"c'1\p d'1 r1\f e'1\p")
    auxjad.mutate(staff[:]).reposition_dynamics()
    assert format(staff) == abjad.String.normalize(r"""
        \new Staff
        {
            c'1
            \p
            d'1
            r1
            e'1
        }
        """)
    staff = abjad.Staff(r"c'1\p d'1 r1\f e'1\p")
    auxjad.mutate(staff[:]).reposition_dynamics(remove_repeated_dynamics=False)
    assert format(staff) == abjad.String.normalize(r"""
        \new Staff
        {
            c'1
            \p
            d'1
            r1
            e'1
            \p
        }
        """)
def test_double_barlines_before_time_signatures_05():
    staff = abjad.Staff(r"R1 "
                        r"\time 3/4 c'2. "
                        r"\time 4/4 d'1 "
                        r"e'1 "
                        r"\time 6/4 f'2. g'2. "
                        r"\time 2/4 a'2")
    abjad.attach(abjad.BarLine('.|:'), staff[0])
    abjad.attach(abjad.BarLine(':|.'), staff[1])
    abjad.attach(abjad.BarLine('|'), staff[3])
    abjad.attach(abjad.BarLine('!'), staff[5])
    auxjad.mutate(staff[:]).double_barlines_before_time_signatures()
    assert format(staff) == abjad.String.normalize(r"""
        \new Staff
        {
            R1
            \bar ".|:"
            \time 3/4
            c'2.
            \bar ":|."
            \time 4/4
            d'1
            e'1
            \bar "||"
            \time 6/4
            f'2.
            g'2.
            \bar "!"
            \time 2/4
            a'2
        }
        """)
Ejemplo n.º 6
0
def test_remove_repeated_dynamics_05():
    staff = abjad.Staff(r"c'4\pp\< d'8\f\> | c'4\f d'8\f")
    assert format(staff) == abjad.String.normalize(
        r"""
        \new Staff
        {
            c'4
            \pp
            \<
            d'8
            \f
            \>
            c'4
            \f
            d'8
            \f
        }
        """)
    auxjad.mutate(staff[:]).remove_repeated_dynamics(ignore_hairpins=True)
    assert format(staff) == abjad.String.normalize(
        r"""
        \new Staff
        {
            c'4
            \pp
            \<
            d'8
            \f
            \>
            c'4
            d'8
        }
        """)
Ejemplo n.º 7
0
def test_remove_repeated_dynamics_06():
    staff = abjad.Staff(r"c'4\pp r2. | c'1\pp")
    auxjad.mutate(staff[:]).remove_repeated_dynamics()
    assert format(staff) == abjad.String.normalize(
        r"""
        \new Staff
        {
            c'4
            \pp
            r2.
            c'1
        }
        """)
    staff = abjad.Staff(r"c'4\pp r2. | c'1\pp")
    auxjad.mutate(staff[:]).remove_repeated_dynamics(reset_after_rests=True)
    assert format(staff) == abjad.String.normalize(
        r"""
        \new Staff
        {
            c'4
            \pp
            r2.
            c'1
            \pp
        }
        """)
Ejemplo n.º 8
0
def test_sustain_notes_07():
    staff = abjad.Staff(r"r4 c'16 r8. d'16 r4.. "
                        r"R1"
                        r"r4 e'4 r2"
                        r"\time 5/8 r8 f'4 r4"
                        r"R1 * 5/8 "
                        r"r8 g'8 a'8 r4")
    auxjad.mutate(staff).sustain_notes()
    assert format(staff) == abjad.String.normalize(r"""
        \new Staff
        {
            r4
            c'4
            d'2
            ~
            d'1
            ~
            d'4
            e'2.
            ~
            \time 5/8
            e'8
            f'2
            ~
            f'4.
            ~
            f'4
            f'8
            g'4
            a'4
        }
        """)
Ejemplo n.º 9
0
def test_enforce_time_signature_14():
    staff = abjad.Staff(r"c'4. d'8 e'2")
    auxjad.mutate(staff).enforce_time_signature(abjad.TimeSignature((4, 4)))
    assert format(staff) == abjad.String.normalize(r"""
        \new Staff
        {
            \time 4/4
            c'4.
            d'8
            e'2
        }
        """)
    staff = abjad.Staff(r"c'4. d'8 e'2")
    auxjad.mutate(staff).enforce_time_signature(
        abjad.TimeSignature((4, 4)),
        boundary_depth=1,
    )
    assert format(staff) == abjad.String.normalize(r"""
        \new Staff
        {
            \time 4/4
            c'4
            ~
            c'8
            d'8
            e'2
        }
        """)
Ejemplo n.º 10
0
def test_reposition_dynamics_09():
    staff = abjad.Staff(r"c'1\p\> d'1\f\> e'1\p")
    auxjad.mutate(staff[:]).reposition_dynamics()
    assert format(staff) == abjad.String.normalize(r"""
        \new Staff
        {
            c'1
            \p
            d'1
            \f
            \>
            e'1
            \p
        }
    """)
    staff = abjad.Staff(r"c'1\p\> d'1\f\> e'1\p")
    auxjad.mutate(staff[:]).reposition_dynamics(check_hairpin_trends=False)
    assert format(staff) == abjad.String.normalize(r"""
        \new Staff
        {
            c'1
            \p
            \>
            d'1
            \f
            \>
            e'1
            \p
        }
        """)
Ejemplo n.º 11
0
def test_sync_containers_14():
    container1 = abjad.Staff(r"\time 5/4 g'1~g'4 | R1 * 5/4")
    container2 = abjad.Staff(r"\time 5/4 c'2.")
    auxjad.mutate([container1, container2]).sync_containers()
    assert (abjad.inspect(container1).duration() == abjad.inspect(
        container2).duration())
    assert format(container1) == abjad.String.normalize(r"""
        \new Staff
        {
            \time 5/4
            g'1
            ~
            g'4
            R1 * 5/4
        }
        """)
    assert format(container2) == abjad.String.normalize(r"""
        \new Staff
        {
            \time 5/4
            c'2.
            r2
            R1 * 5/4
        }
        """)
Ejemplo n.º 12
0
def test_fill_with_rests_07():
    staff = abjad.Staff(r"\time 4/4 c'8 d'4 e'4")
    auxjad.mutate(staff).fill_with_rests()
    assert format(staff) == abjad.String.normalize(
        r"""
        \new Staff
        {
            \time 4/4
            c'8
            d'4
            e'8
            ~
            e'8
            r4.
        }
        """)
    staff = abjad.Staff(r"\time 4/4 c'8 d'4 e'4")
    auxjad.mutate(staff).fill_with_rests(disable_rewrite_meter=True)
    assert format(staff) == abjad.String.normalize(
        r"""
        \new Staff
        {
            \time 4/4
            c'8
            d'4
            e'4
            r4.
        }
        """)
Ejemplo n.º 13
0
def test_remove_repeated_dynamics_01():
    staff = abjad.Staff(r"c'4\pp d'8\pp | c'4\f d'8\f")
    assert format(staff) == abjad.String.normalize(
        r"""
        \new Staff
        {
            c'4
            \pp
            d'8
            \pp
            c'4
            \f
            d'8
            \f
        }
        """)
    auxjad.mutate(staff[:]).remove_repeated_dynamics()
    assert format(staff) == abjad.String.normalize(
        r"""
        \new Staff
        {
            c'4
            \pp
            d'8
            c'4
            \f
            d'8
        }
        """)
Ejemplo n.º 14
0
def test_reposition_dynamics_11():
    staff = abjad.Staff(r"c'1 d'1 e'1 r1\mf r1\ff f'1 r1 g'1")
    abjad.attach(abjad.Dynamic('niente', hide=True), staff[0])
    abjad.attach(abjad.Dynamic('niente', hide=True), staff[7])
    abjad.attach(abjad.StartHairpin('o<'), staff[0])
    abjad.attach(abjad.StartHairpin('>o'), staff[4])
    abjad.attach(abjad.StopHairpin(), staff[7])
    auxjad.mutate(staff[:]).reposition_dynamics()
    assert format(staff) == abjad.String.normalize(r"""
        \new Staff
        {
            c'1
            - \tweak circled-tip ##t
            \<
            d'1
            e'1
            r1
            \mf
            r1
            f'1
            \ff
            - \tweak circled-tip ##t
            \>
            r1
            \!
            g'1
        }
        """)
Ejemplo n.º 15
0
def test_prettify_rewrite_meter_11():
    staff = abjad.Staff(r"\time 3/4 c'8 d'4 e'4 f'16 g'16 | "
                        r"\time 4/4 a'8 b'4 c''8 d''16 e''4 f''8.")
    meters = [abjad.Meter((3, 4)), abjad.Meter((4, 4))]
    for meter, measure in zip(
            meters,
            abjad.select(staff[:]).group_by_measure(),
    ):
        abjad.mutate(measure).rewrite_meter(meter)
    assert format(staff) == abjad.String.normalize(r"""
        \new Staff
        {
            \time 3/4
            c'8
            d'8
            ~
            d'8
            e'8
            ~
            e'8
            f'16
            g'16
            \time 4/4
            a'8
            b'8
            ~
            b'8
            c''8
            d''16
            e''8.
            ~
            e''16
            f''8.
        }
        """)
    for meter, measure in zip(
            meters,
            abjad.select(staff[:]).group_by_measure(),
    ):
        auxjad.mutate(measure).prettify_rewrite_meter(meter)
    assert format(staff) == abjad.String.normalize(r"""
        \new Staff
        {
            \time 3/4
            c'8
            d'4
            e'4
            f'16
            g'16
            \time 4/4
            a'8
            b'4
            c''8
            d''16
            e''8.
            ~
            e''16
            f''8.
        }
        """)
Ejemplo n.º 16
0
def test_reposition_dynamics_12():
    staff = abjad.Staff(r"c'1\p d'1\f\> e'1\ff\< r1\fff f'1\p\> g'1\ppp")
    abjad.attach(abjad.StartHairpin('--'), staff[0])
    auxjad.mutate(staff[:]).reposition_dynamics()
    assert format(staff) == abjad.String.normalize(r"""
        \new Staff
        {
            c'1
            \p
            - \tweak stencil #constante-hairpin
            \<
            d'1
            \f
            e'1
            \ff
            \<
            r1
            \fff
            f'1
            \p
            \>
            g'1
            \ppp
        }
        """)
Ejemplo n.º 17
0
def test_reposition_dynamics_14():
    staff = abjad.Staff(r"c'1\p\< d'2 r2\f r1 e'1")
    auxjad.mutate(staff[:]).reposition_dynamics()
    assert format(staff) == abjad.String.normalize(r"""
        \new Staff
        {
            c'1
            \p
            \<
            d'2
            r2
            \f
            r1
            e'1
        }
        """)
    staff = abjad.Staff(r"c'1\p\< d'2 r2\f r1 e'1")
    auxjad.mutate(staff[:]).reposition_dynamics(
        allow_hairpin_to_rest_with_dynamic=False, )
    assert format(staff) == abjad.String.normalize(r"""
        \new Staff
        {
            c'1
            \p
            \<
            d'2
            r2
            \!
            r1
            e'1
            \f
        }
        """)
Ejemplo n.º 18
0
def test_enforce_time_signature_03():
    staff = abjad.Staff(r"c'1 d'1 e'1 f'1")
    auxjad.mutate(staff).enforce_time_signature(
        abjad.TimeSignature((3, 4)),
        close_container=True,
    )
    assert format(staff) == abjad.String.normalize(r"""
        \new Staff
        {
            \time 3/4
            c'2.
            ~
            c'4
            d'2
            ~
            d'2
            e'4
            ~
            e'2.
            f'2.
            ~
            \time 1/4
            f'4
        }
        """)
Ejemplo n.º 19
0
def test_remove_repeated_dynamics_08():
    staff = abjad.Staff(r"c'4\pp r2. | R1 | c'1\pp")
    auxjad.mutate(staff[:]).remove_repeated_dynamics(
        reset_after_rests=abjad.Duration(4, 4)
    )
    assert format(staff) == abjad.String.normalize(
        r"""
        \new Staff
        {
            c'4
            \pp
            r2.
            R1
            c'1
            \pp
        }
        """)
    staff = abjad.Staff(r"c'4\pp r2. | R1 | c'1\pp")
    auxjad.mutate(staff[:]).remove_repeated_dynamics(reset_after_rests=2)
    assert format(staff) == abjad.String.normalize(
        r"""
        \new Staff
        {
            c'4
            \pp
            r2.
            R1
            c'1
        }
        """)
Ejemplo n.º 20
0
def test_auto_rewrite_meter_01():
    staff = abjad.Staff(r"c'16 d'8 e'16 f'8 g'4 a'4 b'8 "
                        r"c'16 d'4. e'16 f'8 g'4 a'16 b'16")
    auxjad.mutate(staff).auto_rewrite_meter()
    assert format(staff) == abjad.String.normalize(r"""
        \new Staff
        {
            c'16
            d'8
            e'16
            f'8
            g'8
            ~
            g'8
            a'4
            b'8
            c'16
            d'8.
            ~
            d'8.
            e'16
            f'8
            g'4
            a'16
            b'16
        }
        """)
Ejemplo n.º 21
0
def test_remove_repeated_dynamics_02():
    staff = abjad.Staff(r"c'4\p d'8 | e'4.\p | c'4\p d'8\f")
    assert format(staff) == abjad.String.normalize(
        r"""
        \new Staff
        {
            c'4
            \p
            d'8
            e'4.
            \p
            c'4
            \p
            d'8
            \f
        }
        """)
    auxjad.mutate(staff[:]).remove_repeated_dynamics()
    assert format(staff) == abjad.String.normalize(
        r"""
        \new Staff
        {
            c'4
            \p
            d'8
            e'4.
            c'4
            d'8
            \f
        }
        """)
Ejemplo n.º 22
0
def test_sustain_notes_08():
    staff = abjad.Staff(r"r4 c'16 r8. d'16 r4.. "
                        r"R1"
                        r"r4 e'4 r2"
                        r"\time 5/8 r8 f'4 r4"
                        r"R1 * 5/8 "
                        r"r8 g'8 a'8 r4")
    auxjad.mutate(staff).sustain_notes(sustain_multimeasure_rests=False)
    assert format(staff) == abjad.String.normalize(r"""
        \new Staff
        {
            r4
            c'4
            d'2
            R1
            r4
            e'2.
            ~
            \time 5/8
            e'8
            f'2
            R1 * 5/8
            r8
            g'8
            a'4.
        }
        """)
Ejemplo n.º 23
0
def test_enforce_time_signature_11():
    staff = abjad.Staff(r"c'1 d'1 e'1 f'1")
    time_signatures = [
        None,
        (4, 4),
    ]
    with pytest.raises(ValueError):
        auxjad.mutate(staff).enforce_time_signature(time_signatures)
Ejemplo n.º 24
0
def test_prettify_rewrite_meter_09():
    staff = abjad.Staff(r"\times 2/3 {c'16 d'8 ~ } "
                        r"\times 2/3 {d'32 e'8 f'32 ~ } "
                        r"f'32 \times 2/3 {g'16 a'32} r32")
    abjad.attach(abjad.TimeSignature((3, 8)), staff[0][0])
    meter = abjad.Meter((3, 8))
    abjad.mutate(staff[:]).rewrite_meter(meter)
    assert format(staff) == abjad.String.normalize(r"""
        \new Staff
        {
            \times 2/3 {
                \time 3/8
                c'16
                d'8
                ~
            }
            \times 2/3 {
                d'32
                e'32
                ~
                e'16.
                f'32
                ~
            }
            f'32
            \times 2/3 {
                g'16
                a'32
            }
            r32
        }
        """)
    auxjad.mutate(staff[:]).prettify_rewrite_meter(meter)
    assert format(staff) == abjad.String.normalize(r"""
        \new Staff
        {
            \times 2/3 {
                \time 3/8
                c'16
                d'8
                ~
            }
            \times 2/3 {
                d'32
                e'32
                ~
                e'16.
                f'32
                ~
            }
            f'32
            \times 2/3 {
                g'16
                a'32
            }
            r32
        }
        """)
Ejemplo n.º 25
0
def test_prettify_rewrite_meter_02():
    staff = abjad.Staff(r"\time 3/4 c'32 d'32 e'8 f'16 "
                        r"\times 2/3 {g'32 a'32 b'32} c''8 "
                        r"r16 r32. d''64 e''8 f''32 g''32")
    meter = abjad.Meter((3, 4))
    abjad.mutate(staff[:]).rewrite_meter(meter)
    assert format(staff) == abjad.String.normalize(r"""
        \new Staff
        {
            \time 3/4
            c'32
            d'32
            e'16
            ~
            e'16
            f'16
            \times 2/3 {
                g'32
                a'32
                b'32
            }
            c''16
            ~
            c''16
            r16
            r32.
            d''64
            e''16
            ~
            e''16
            f''32
            g''32
        }
        """)
    auxjad.mutate(staff[:]).prettify_rewrite_meter(meter)
    assert format(staff) == abjad.String.normalize(r"""
        \new Staff
        {
            \time 3/4
            c'32
            d'32
            e'8
            f'16
            \times 2/3 {
                g'32
                a'32
                b'32
            }
            c''8
            r16
            r32.
            d''64
            e''8
            f''32
            g''32
        }
        """)
Ejemplo n.º 26
0
def test_rests_to_multimeasure_rest_01():
    staff = abjad.Staff(r"r1")
    auxjad.mutate(staff[:]).rests_to_multimeasure_rest()
    assert format(staff) == abjad.String.normalize(r"""
        \new Staff
        {
            R1
        }
        """)
Ejemplo n.º 27
0
def test_prettify_rewrite_meter_10():
    staff = abjad.Staff(r"\time 4/4 c'8 d'4 e'4 f'4 g'8 | "
                        r"a'8 b'4 c''8 d''16 e''4 f''8.")
    meter = abjad.Meter((4, 4))
    for measure in abjad.select(staff[:]).group_by_measure():
        abjad.mutate(measure).rewrite_meter(meter)
    assert format(staff) == abjad.String.normalize(r"""
        \new Staff
        {
            \time 4/4
            c'8
            d'8
            ~
            d'8
            e'8
            ~
            e'8
            f'8
            ~
            f'8
            g'8
            a'8
            b'8
            ~
            b'8
            c''8
            d''16
            e''8.
            ~
            e''16
            f''8.
        }
        """)
    for measure in abjad.select(staff[:]).group_by_measure():
        auxjad.mutate(measure).prettify_rewrite_meter(meter)
    assert format(staff) == abjad.String.normalize(r"""
        \new Staff
        {
            \time 4/4
            c'8
            d'4
            e'8
            ~
            e'8
            f'4
            g'8
            a'8
            b'4
            c''8
            d''16
            e''8.
            ~
            e''16
            f''8.
        }
        """)
Ejemplo n.º 28
0
def test_CrossFader_16():
    random.seed(81662)
    fade_out_container = abjad.Container(r"\time 3/4 c'4 d'4 e'4")
    fade_in_container = abjad.Container(r"\time 4/4 g'2 a'2")
    fader = auxjad.CrossFader(
        fade_out_container,
        fade_in_container,
        fade_in_first=True,
        fade_out_last=True,
        weighted_duration=True,
    )
    selection_a, selection_b = fader.output_all()
    staff_a = abjad.Staff(selection_a)
    staff_b = abjad.Staff(selection_b)
    auxjad.mutate([staff_a, staff_b]).sync_containers()
    score = abjad.Score([staff_a, staff_b])
    assert format(score) == abjad.String.normalize(r"""
        \new Score
        <<
            \new Staff
            {
                \time 3/4
                c'4
                d'4
                e'4
                c'4
                d'4
                e'4
                c'4
                r4
                e'4
                c'4
                r2
                c'4
                r2
                R1 * 3/4
                R1 * 3/4
                R1 * 3/4
            }
            \new Staff
            {
                \time 4/4
                R1
                r2
                a'2
                r2
                a'2
                r2
                a'2
                g'2
                a'2
                g'2
                a'2
            }
        >>
        """)
Ejemplo n.º 29
0
def test_reposition_clefs_02():
    staff = abjad.Staff(r"c'1 | d'2 e'4 r4 | f'1")
    abjad.attach(abjad.Clef('treble'), staff[0])
    abjad.attach(abjad.Clef('treble'), staff[4])
    assert format(staff) == abjad.String.normalize(
        r"""
        \new Staff
        {
            \clef "treble"
            c'1
            d'2
            e'4
            r4
            \clef "treble"
            f'1
        }
        """)
    auxjad.mutate(staff[:]).reposition_clefs()
    assert format(staff) == abjad.String.normalize(
        r"""
        \new Staff
        {
            \clef "treble"
            c'1
            d'2
            e'4
            r4
            f'1
        }
        """)
    staff = abjad.Staff(r"c'1 | d'2 e'4 r4 | f'1")
    abjad.attach(abjad.Clef('treble'), staff[4])
    assert format(staff) == abjad.String.normalize(
        r"""
        \new Staff
        {
            c'1
            d'2
            e'4
            r4
            \clef "treble"
            f'1
        }
        """)
    auxjad.mutate(staff[:]).reposition_clefs()
    assert format(staff) == abjad.String.normalize(
        r"""
        \new Staff
        {
            c'1
            d'2
            e'4
            r4
            f'1
        }
        """)
Ejemplo n.º 30
0
def test_extract_trivial_tuplets_04():
    staff = abjad.Staff(r"\times 2/3 {<c' d'>1 ~ <c' d'>2}")
    auxjad.mutate(staff[:]).extract_trivial_tuplets()
    assert format(staff) == abjad.String.normalize(
        r"""
        \new Staff
        {
            <c' d'>1
        }
        """)