Пример #1
0
def test_LilyPondParser__spanners__Hairpin_06():
    """
    With direction.
    """

    maker = abjad.NoteMaker()
    target = abjad.Staff(maker([0] * 5, [(1, 4)]))
    start_hairpin = abjad.StartHairpin("<", direction=abjad.Up)
    abjad.attach(start_hairpin, target[0])
    stop_hairpin = abjad.StopHairpin()
    abjad.attach(stop_hairpin, target[2])
    hairpin = abjad.StartHairpin(">", direction=abjad.Down)
    abjad.attach(hairpin, target[2])
    dynamic = abjad.Dynamic("ppp")
    abjad.attach(dynamic, target[-1])

    assert format(target) == abjad.String.normalize(r"""
        \new Staff
        {
            c'4
            ^ \<
            c'4
            c'4
            \!
            _ \>
            c'4
            c'4
            \ppp
        }
        """)

    parser = abjad.parser.LilyPondParser()
    result = parser(format(target))
    assert format(target) == format(result) and target is not result
Пример #2
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
        }
        """)
Пример #3
0
 def add_attachments(self, selections):
     runs = abjad.select(selections).runs()
     ties = abjad.select(selections).logical_ties(pitched=True)
     for run in runs:
         if self.clef != None:
             abjad.attach(
                 abjad.Clef(self.clef), run[0]
             )  #doesn't seem to always work, redo entire attachment handler?
         if len(run) > 1:
             leaves = abjad.select(run).leaves()
             if self.starting_dynamic != None:
                 abjad.attach(abjad.Dynamic(self.starting_dynamic),
                              leaves[0])
             if self.hairpin != None:
                 abjad.attach(abjad.StartHairpin(self.hairpin), leaves[0])
             if self.ending_dynamic != None:
                 abjad.attach(abjad.Dynamic(self.ending_dynamic),
                              leaves[-1])
                 abjad.attach(
                     abjad.StartHairpin('--'), leaves[-1]
                 )  #makes ending with a logical tie weird. If problematic: reduce indentation by 1
             if self.text_list != None:
                 if len(self.text_list) > 1:
                     self._apply_text_and_span_lr(run)
                 else:
                     self._apply_text_and_span_l_only(run)
         else:
             leaves = abjad.select(run).leaves()
             dynamic = next(self._cyc_dynamics)
             if self.starting_dynamic != None:
                 if self.ending_dynamic != None:
                     abjad.attach(abjad.Dynamic(dynamic), leaves[0])
                 else:
                     abjad.attach(abjad.Dynamic(self.starting_dynamic),
                                  leaves[0])
             if self.starting_dynamic == None:
                 if self.ending_dynamic != None:
                     abjad.attach(abjad.Dynamic(self.ending_dynamic),
                                  leaves[0])
             abjad.attach(abjad.StartHairpin('--'), leaves[0])
             if self.text_list != None:
                 self._apply_text_and_span_l_only(run)
     for tie in ties:
         if len(tie) == 1:
             if self.articulation_list != None:
                 articulation = self._cyc_articulations
                 abjad.attach(abjad.Articulation(next(articulation)),
                              tie[0])
     return selections
Пример #4
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
        }
        """)
Пример #5
0
def apply_scratch(selections):
    start_dynamic = abjad.Dynamic("sfp")
    stop_dynamic = abjad.Dynamic("ff")
    scratch_text = abjad.Markup(
        r"""\override #'(style . "box") \override #'(box-padding . 0.5) \italic \box \whiteout \small "scratch" """,
        literal=True,
    )
    start_scratch_span = abjad.StartTextSpan(
        left_text=scratch_text,
        style="solid-line-with-hook",
    )
    abjad.tweak(start_scratch_span).padding = 2
    abjad.tweak(start_scratch_span).staff_padding = 3
    stop_scratch_span = abjad.StopTextSpan()
    scratch_dynamic = abjad.Dynamic("f")
    ties = abjad.select(selections).logical_ties(pitched=True)
    for i, tie in enumerate(ties):
        if len(tie) < 2:
            abjad.attach(start_dynamic, tie[0])
        else:
            if i % 2 == 0:
                abjad.attach(start_dynamic, tie[0])
                abjad.attach(abjad.StartHairpin("<"), tie[0])
                abjad.attach(stop_dynamic, tie[-1])
            else:
                next_leaf = abjad.get.leaf(tie[-1], 1)
                abjad.attach(start_scratch_span, tie[0])
                abjad.attach(scratch_dynamic, tie[0])
                abjad.attach(stop_scratch_span, next_leaf)
Пример #6
0
 def add_attachments(self, selections):
     runs = abjad.select(selections).runs()
     ties = abjad.select(selections).logical_ties(pitched=True)
     for run in runs:
         if len(run) > 1:
             leaves = abjad.select(run).leaves()
             abjad.attach(abjad.Dynamic(self.starting_dynamic), leaves[0])
             abjad.attach(abjad.StartHairpin(self.hairpin_indicator), leaves[0])
             abjad.attach(abjad.Dynamic(self.ending_dynamic), leaves[-1])
             abjad.attach(abjad.StartHairpin("--"), leaves[-1])
         else:
             leaves = abjad.select(run).leaves()
             dynamic = next(self._cyc_dynamics)
             abjad.attach(abjad.Dynamic(dynamic), leaves[0])
             abjad.attach(abjad.StartHairpin("--"), leaves[0])
     for tie in ties:
         if len(tie) == 1:
             abjad.attach(abjad.Articulation(self.articulation), tie[0])
     return selections
Пример #7
0
def apply_spectrum_tremolo(selections):
    trem_handler(selections)
    ties = abjad.select(selections).logical_ties(pitched=True)
    non_last_ties = ties[:-1]
    dynamics = spectrum_dynamics(r=len(ties))
    for i, tie in enumerate(non_last_ties):
        leaf = abjad.select(tie).leaf(0)
        dynamic_string = dynamics[i]
        dynamic = abjad.Dynamic(dynamic_string)
        next_dynamic_string = dynamics[i + 1]
        next_dynamic = abjad.Dynamic(next_dynamic_string)
        if dynamic.ordinal < next_dynamic.ordinal:
            hairpin = abjad.StartHairpin("<")
        else:
            hairpin = abjad.StartHairpin(">")
        abjad.attach(dynamic, leaf)
        abjad.attach(hairpin, leaf)
    first_leaf = abjad.select(selections).leaf(0, pitched=True)
    final_leaf = abjad.select(selections).leaf(-1, pitched=True)
    abjad.attach(abjad.Dynamic(dynamics[-1]), final_leaf)
    abjad.attach(tasto_markup, first_leaf)
Пример #8
0
def attach_material(selections):
    ties = abjad.Selection(selections).logical_ties()
    first_leaf = abjad.Selection(ties).leaf(0)
    center_leaf = abjad.Selection(ties[len(ties) // 2]).leaf(0)
    last_leaf = abjad.Selection(ties).leaf(-1)
    cyc_dynamics = evans.CyclicList(["p", "f"], forget=False)
    cyc_hairpins = evans.CyclicList(["<", ">"], forget=False)
    for tie in ties:
        dynamic = abjad.Dynamic(cyc_dynamics(r=1)[0])
        abjad.attach(dynamic, tie[0])
    for tie in ties[:-1]:
        hairpin = abjad.StartHairpin(cyc_hairpins(r=1)[0])
        abjad.attach(hairpin, tie[0])
    start = abjad.StartTextSpan(
        left_text=abjad.Markup(r"\upright norm."),
        style="dashed-line-with-arrow",
    )
    middle = abjad.StartTextSpan(
        left_text=abjad.Markup(r"\upright msp."),
        right_text=abjad.Markup(r"\markup \upright st."),
        style="dashed-line-with-arrow",
    )
    middle_stop = abjad.StopTextSpan()
    final_stop = abjad.StopTextSpan()
    abjad.tweak(start).staff_padding = 2
    abjad.tweak(middle).staff_padding = 2
    abjad.attach(start, first_leaf)
    abjad.attach(middle_stop, center_leaf)
    abjad.attach(middle, center_leaf)
    abjad.attach(final_stop, last_leaf)
    for leaf in abjad.Selection(selections).leaves():
        literal_1 = abjad.LilyPondLiteral(
            r"\once \override Staff.Tie.transparent = ##t",
            format_slot="before",
        )
        abjad.attach(literal_1, leaf)
        literal_2 = abjad.LilyPondLiteral(
            r"\once \override Dots.staff-position = #1.75",
            format_slot="before",
        )
        abjad.attach(literal_2, leaf)
Пример #9
0
     abjad.Dynamic("fff"),
     baca.selectors.leaf(1),
 ),
 evans.attach(
     "Voice 4",
     abjad.Dynamic("fff"),
     baca.selectors.leaf(0),
 ),
 evans.attach(
     "Voice 1",
     abjad.Dynamic("sfp"),
     baca.selectors.leaf(3),
 ),
 evans.attach(
     "Voice 1",
     abjad.StartHairpin("<|"),
     baca.selectors.leaf(3),
 ),
 evans.attach(
     "Voice 1",
     abjad.Dynamic("ff"),
     baca.selectors.leaf(5),
 ),
 evans.attach(
     "Voice 1",
     abjad.Dynamic("mp"),
     baca.selectors.leaf(6),
 ),
 evans.attach(
     "Voice 1",
     abjad.Dynamic("f"),
Пример #10
0
     apply_spectrum_tremolo,
     abjad.select().run(2),
 ),
 evans.call(
     "Voice 7",
     apply_spectrum_tremolo,
     abjad.select().run(4),
 ),
 evans.call(
     "Voice 7",
     apply_spectrum_tremolo,
     abjad.select().run(6).leaves().get([0, 1, 2, 3, 4]),
 ),
 evans.detach(
     "Voice 7",
     abjad.StartHairpin(">"),
     abjad.select().run(0).leaf(-1),
 ),
 evans.detach(
     "Voice 7",
     abjad.StartHairpin("<"),
     abjad.select().run(2).leaf(-1),
 ),
 evans.call("Voice 8", apply_scratch,
            abjad.select().runs().get([1, 3])),
 evans.attach(
     "Voice 8",
     normale_markup,
     abjad.select().run(1).leaf(0),
 ),
 evans.attach(
Пример #11
0
def main() -> versemaker.Verse:
    vm = versemaker.VerseMaker(
        59,
        1,
        tempo_factor=0.32,
        octave_of_first_pitch=-1,
        harmonic_tolerance=0.8,
        ro_temperature=0.712,
        ro_density=0.68,
        harmonic_pitches_tonality_flux_maximum_octave_difference_from_melody_pitch=(
            1,
            0,
        ),
        harmonic_pitches_complex_interval_helper_maximum_octave_difference_from_melody_pitch=(
            1,
            0,
        ),
        area_density_maker=infit.Gaussian(0.5, 0.05),
        area_density_reference_size=F(1, 2),
        area_min_split_size=F(3, 16),
    )

    vm.remove_area(0, 1)

    vm.attach(
        violin=strings.SimpleStringMaker(
            globals_.VIOLIN,
            pizz_maker=infit.ActivityLevel(5, start_at=0),
            tremolo_maker=infit.ActivityLevel(0),
            acciaccatura_maker=infit.ActivityLevel(6),
            force_acciaccatura_to_glissando_maker=infit.ActivityLevel(0),
            acciaccatura_glissando_size_maker=infit.Cycle((0, 1, 0, 0, 1)),
            harmonic_pitches_activity=0.6,
            harmonic_pitches_density=0.72,
            shall_add_optional_pitches=True,
            optional_pitches_maximum_octave_difference_from_melody_pitch=(1, 0),
            optional_pitches_min_size=F(3, 32),
            optional_pitches_avg_size=F(2, 16),
            optional_pitches_density=0.7,
            after_glissando_size=F(1, 8),
        ),
        viola=strings.SimpleStringMaker(
            globals_.VIOLA,
            tremolo_maker=infit.ActivityLevel(0),
            pizz_maker=infit.ActivityLevel(5, start_at=0),
            acciaccatura_maker=infit.ActivityLevel(6, start_at=2),
            force_acciaccatura_to_glissando_maker=infit.ActivityLevel(0),
            acciaccatura_glissando_size_maker=infit.Cycle((0, 1, 0, 1, 2, 0, 1)),
            harmonic_pitches_activity=0.65,
            harmonic_pitches_density=0.72,
            shall_add_optional_pitches=True,
            optional_pitches_maximum_octave_difference_from_melody_pitch=(1, 0),
            optional_pitches_min_size=F(3, 32),
            optional_pitches_avg_size=F(1, 8),
            optional_pitches_density=0.7,
        ),
        cello=strings.SimpleStringMaker(
            globals_.CELLO,
            tremolo_maker=infit.ActivityLevel(0),
            pizz_maker=infit.ActivityLevel(8),
            acciaccatura_maker=infit.ActivityLevel(8),
            force_acciaccatura_to_glissando_maker=infit.ActivityLevel(0),
            acciaccatura_glissando_size_maker=infit.Cycle((0, 1, 0, 1, 1)),
            shall_add_optional_pitches=True,
            harmonic_pitches_activity=0.69,
            harmonic_pitches_density=0.72,
            optional_pitches_min_size=F(1, 8),
            optional_pitches_avg_size=F(2, 16),
            optional_pitches_density=0.9,
        ),
        keyboard=keyboard.KeyboardMaker(
            lh_min_metricity_to_add_harmony=0.4,
            lh_min_metricity_to_add_accent=1.2,
            lh_max_metricity_for_arpeggio=0.35,
            lh_min_metricity_to_add_restricted_harmony=0,
            lh_prohibit_repetitions=False,
            lh_add_repetitions_avoiding_notes=False,
            rh_likelihood_making_harmony=1,
            harmonies_max_difference=1200,
            harmonies_min_difference=250,
            colotomic_structure=(0, 1, 1, 1),
        ),
    )

    _adapt_violin(vm.violin.musdat[1], vm)
    _adapt_viola(vm.viola.musdat[1], vm)
    _adapt_cello(vm.cello.musdat[1], vm)
    _adapt_keyboard(vm.keyboard.musdat[2], vm.keyboard.musdat[1], vm)

    vm.add_bar(5, abjad.TimeSignature((2, 4)))
    vm.add_bar(11, abjad.TimeSignature((2, 4)))
    vm.add_bar(13, abjad.TimeSignature((1, 4)))

    vm.force_remove_area(len(vm.violin.bars) - 1, len(vm.violin.bars))

    # second round of postprocessing
    _adapt_violin2(vm.violin.musdat[1], vm)
    _adapt_viola2(vm.viola.musdat[1], vm)
    _adapt_cello2(vm.cello.musdat[1], vm)
    _adapt_left2(vm.keyboard.musdat[2], vm)
    _adapt_right2(vm.keyboard.musdat[1], vm)

    for instr in ("violin", "viola", "cello", "keyboard"):
        if instr == "keyboard":
            nth_line = (2, 1)
        else:
            nth_line = (1,)

        novent_line = getattr(vm, instr).musdat[nth_line[0]]
        novent_line[0].dynamic = attachments.Dynamic("pp")

    for string in (vm.violin.musdat[1], vm.viola.musdat[1], vm.cello.musdat[1]):
        tw.detach_hauptstimme(string)

    verse = vm()

    for instr in ("violin", "viola", "cello", "keyboard"):
        if instr == "keyboard":
            indices = ((1, 0), (1, 1))
        else:
            indices = ((1,),)

        for idx in indices:
            staff = getattr(verse, instr).abjad
            for subidx in idx:
                staff = staff[subidx]

            # [bar_idx][event_idx]

            # adapting accidental notation of keyboard
            if instr == "keyboard" and idx[1] == 0:
                abjad.Accidental.respell_with_sharps(staff[1])
                abjad.Accidental.respell_with_sharps(staff[2])
                abjad.Accidental.respell_with_sharps(staff[3])
                # abjad.Accidental.respell_with_sharps(staff[4])

                abjad.Accidental.respell_with_sharps(staff[7])
                abjad.Accidental.respell_with_flats(staff[8])

                abjad.Accidental.respell_with_sharps(staff[15][2:])

                abjad.attach(abjad.Tie(), staff[19][1])
                abjad.attach(abjad.Tie(), staff[19][2])

            elif instr == "keyboard" and idx[1] == 1:
                # abjad.Accidental.respell_with_sharps(staff[11])
                abjad.Accidental.respell_with_sharps(staff[1])
                abjad.Accidental.respell_with_sharps(staff[2])
                abjad.Accidental.respell_with_sharps(staff[3])
                # abjad.Accidental.respell_with_sharps(staff[4])

                # abjad.attach(abjad.Ottava(-1), staff[9][0])
                # tw.put_gong_to_separate_vox(9, 0, staff)

            elif instr == "violin":
                abjad.detach(abjad.Markup, staff[2][2])
                abjad.attach(
                    tw.scpm("arco sul tasto"), staff[2][2],
                )
                abjad.attach(
                    tw.scpm("molto sul tasto"), staff[3][2],
                )
                abjad.attach(abjad.StartHairpin(">"), staff[3][2])
                abjad.attach(abjad.Dynamic("ppp"), staff[4][0])
                abjad.attach(abjad.Dynamic("pp"), staff[4][1])
                abjad.detach(abjad.Markup, staff[5][1])
                abjad.attach(
                    tw.scpm("arco ordinario"), staff[5][1],
                )

            elif instr == "viola":
                abjad.attach(
                    abjad.StartTextSpan(left_text=abjad.Markup("rit.")), staff[-1][0]
                )
                abjad.attach(abjad.StopTextSpan(), staff[-1][-1])
                abjad.attach(abjad.StartHairpin(">"), staff[-1][0])
                abjad.attach(abjad.Dynamic("ppp"), staff[-1][-1])

    return verse
Пример #12
0
     evans.PitchHandler(
         [
             "gs,",
             "gtqs,",
             "etqf,",
         ],
         forget=False,
     ),
     lambda _: abjad.Selection(_),
 ),
 evans.attach(
     "Voice 4",
     abjad.Dynamic("f"),
     baca.selectors.leaf(0),
 ),
 evans.attach("Voice 4", abjad.StartHairpin(">o"),
              baca.selectors.leaf(-2, pitched=True)),
 evans.attach("Voice 4", abjad.StopHairpin(), baca.selectors.leaf(-2)),
 evans.attach(
     "Voice 4",
     abjad.Markup(r"\markup { molto vibrato }", direction=abjad.Up),
     baca.selectors.leaf(-3, pitched=True),
 ),
 evans.call(
     "Voice 4",
     evans.GlissandoHandler(
         line_style="zigzag",
         boolean_vector=[1],
         forget=False,
         apply_to="runs",
     ),
Пример #13
0
 #     demo,
 #     evans.return_vertical_moment_ties,
 # ),
 evans.call(
     "score",
     evans.SegmentMaker.beam_score,
     abjad.select().components(abjad.Score),
 ),
 evans.attach(
     "Voice 1",
     abjad.Dynamic("mp"),
     baca.leaf(0),
 ),
 evans.attach(
     "Voice 1",
     abjad.StartHairpin(">"),
     baca.leaf(0),
 ),
 evans.attach(
     "Voice 1",
     abjad.Dynamic("pp"),
     baca.leaf(-1, pitched=True),
 ),
 evans.attach(
     "Voice 2",
     abjad.Dynamic("mp"),
     baca.leaf(0),
 ),
 evans.attach(
     "Voice 2",
     abjad.StartHairpin(">"),
Пример #14
0
def main() -> versemaker.Verse:
    vm = versemaker.VerseMaker(
        59,
        "closing",
        tempo_factor=0.31,
        octave_of_first_pitch=-1,
        harmonic_tolerance=0.89,
        ro_temperature=0.685,
        ro_density=0.8,
        harmonic_pitches_tonality_flux_maximum_octave_difference_from_melody_pitch=(
            1,
            0,
        ),
        harmonic_pitches_complex_interval_helper_maximum_octave_difference_from_melody_pitch=(
            1,
            0,
        ),
        area_density_maker=infit.Gaussian(0.35, 0.1),
        area_density_reference_size=F(1, 2),
        area_min_split_size=F(1, 8),
    )

    vm.remove_area(0, 1)
    # vm.remove_area(30, len(vm.bars))
    # vm.remove_area(len(vm.bars) - 2, len(vm.bars) + 1)
    vm.add_bar(5, abjad.TimeSignature((3, 4)))
    vm.add_bar(9, abjad.TimeSignature((2, 4)))
    vm.add_bar(23, abjad.TimeSignature((1, 4)))
    vm.add_bar(25, abjad.TimeSignature((2, 4)))
    # vm.add_bar(26, abjad.TimeSignature((1, 4)))

    vm.attach(
        violin=strings.SimpleStringMaker(
            globals_.VIOLIN,
            pizz_maker=infit.ActivityLevel(5, start_at=0),
            tremolo_maker=infit.ActivityLevel(0),
            acciaccatura_maker=infit.ActivityLevel(5),
            force_acciaccatura_to_glissando_maker=infit.ActivityLevel(0),
            acciaccatura_glissando_size_maker=infit.Cycle((0, 1, 0)),
            harmonic_pitches_activity=0.3,
            harmonic_pitches_density=0.7,
            shall_add_optional_pitches=True,
            optional_pitches_maximum_octave_difference_from_melody_pitch=(1, 0),
            optional_pitches_min_size=F(3, 16),
            optional_pitches_density=0.75,
            after_glissando_size=F(1, 8),
        ),
        viola=strings.SimpleStringMaker(
            globals_.VIOLA,
            tremolo_maker=infit.ActivityLevel(0),
            pizz_maker=infit.ActivityLevel(5, start_at=0),
            acciaccatura_maker=infit.ActivityLevel(5),
            force_acciaccatura_to_glissando_maker=infit.ActivityLevel(0),
            acciaccatura_glissando_size_maker=infit.Cycle((0, 1, 0, 1, 0, 0, 0)),
            harmonic_pitches_activity=0.4,
            harmonic_pitches_density=0.75,
            shall_add_optional_pitches=True,
            optional_pitches_maximum_octave_difference_from_melody_pitch=(1, 0),
            optional_pitches_min_size=F(3, 16),
            optional_pitches_density=0.75,
        ),
        cello=strings.SimpleStringMaker(
            globals_.CELLO,
            tremolo_maker=infit.ActivityLevel(0),
            pizz_maker=infit.ActivityLevel(0),
            force_acciaccatura_to_glissando_maker=infit.ActivityLevel(0),
            acciaccatura_glissando_size_maker=infit.Cycle((0, 1, 0, 1, 0)),
            shall_add_optional_pitches=True,
            acciaccatura_maker=infit.ActivityLevel(5),
            harmonic_pitches_activity=0.35,
            harmonic_pitches_density=0.7,
            optional_pitches_maximum_octave_difference_from_melody_pitch=(1, 0),
            optional_pitches_min_size=F(3, 16),
            optional_pitches_density=0.7,
            after_glissando_size=F(1, 8),
        ),
        keyboard=keyboard.KeyboardMaker(
            lh_min_volume=0.68,
            lh_max_volume=0.79,
            lh_min_metricity_to_add_harmony=0,
            lh_min_metricity_to_add_accent=10,
            lh_max_metricity_for_arpeggio=0.3,
            lh_min_metricity_to_add_restricted_harmony=0,
            lh_prohibit_repetitions=False,
            lh_add_repetitions_avoiding_notes=False,
            rh_likelihood_making_harmony=1,
            harmonies_max_difference=1200,
            harmonies_min_difference=250,
            colotomic_structure=(1, 2, 2, 2),
        ),
    )

    _adapt_violin(vm.violin.musdat[1], vm)
    _adapt_viola(vm.viola.musdat[1], vm)
    _adapt_cello(vm.cello.musdat[1], vm)
    _adapt_keyboard(vm.keyboard.musdat[2], vm.keyboard.musdat[1], vm)

    # vm.add_bar(33, abjad.TimeSignature((2, 4)), force_adding=True)

    # _adapt_left_hand(vm.keyboard.musdat[2], vm)

    for string in (vm.violin.musdat[1], vm.viola.musdat[1], vm.cello.musdat[1]):
        tw.detach_hauptstimme(string)
        tw.detach_optional_events(string)

    for instr in (
        vm.violin.musdat[1],
        vm.viola.musdat[1],
        vm.cello.musdat[1],
        vm.keyboard.musdat[2],
        vm.keyboard.musdat[1],
    ):
        tw.detach_optional_events(instr)

    verse = vm()

    for instr in ("violin", "viola", "cello", "keyboard"):
        if instr == "keyboard":
            indices = ((1, 0), (1, 1))
        else:
            indices = ((1,),)

        for idx in indices:
            staff = getattr(verse, instr).abjad
            for subidx in idx:
                staff = staff[subidx]

            """
            # adapting accidental notation of keyboard
            if instr == "keyboard" and idx[1] == 1:
                abjad.Accidental.respell_with_sharps(staff[6][3:])
                abjad.Accidental.respell_with_sharps(staff[7])
                abjad.Accidental.respell_with_sharps(staff[8])
                abjad.Accidental.respell_with_sharps(staff[18])
                abjad.Accidental.respell_with_sharps(staff[19])
                abjad.Accidental.respell_with_sharps(staff[20])
            """

            if instr == "violin":
                # abjad.attach(abjad.Dynamic('ppp'), staff[0][0])
                abjad.attach(abjad.StartHairpin(), staff[2][0])
                abjad.attach(abjad.Dynamic("p"), staff[3][0])
                abjad.attach(abjad.StartHairpin(">"), staff[3][6])
                abjad.attach(abjad.Dynamic("ppp"), staff[4][2])
                abjad.attach(abjad.StartHairpin(">"), staff[6][2])
                abjad.attach(abjad.Dynamic("pppp"), staff[7][0])
                # abjad.attach(
                #     abjad.StringContactPoint("sul tasto").markup, staff[7][0],
                # )
                # abjad.attach(
                #     abjad.StringContactPoint("ordinario").markup, staff[8][0],
                # )
                # abjad.attach(
                #     abjad.StringContactPoint("sul tasto").markup, staff[9][0],
                # )
                abjad.attach(abjad.Dynamic("pp"), staff[12][2])
                abjad.attach(abjad.Fermata(), staff[16][2])
                abjad.attach(abjad.Dynamic("p"), staff[17][0])
                abjad.attach(abjad.Dynamic("pppp"), staff[17][2])
                abjad.attach(abjad.StartHairpin(), staff[18][1])
                abjad.attach(abjad.Dynamic("p"), staff[19][0])
                abjad.attach(abjad.Dynamic("pp"), staff[22][-1])
                abjad.attach(abjad.Dynamic("p"), staff[30][2])
                abjad.attach(abjad.StartHairpin(">"), staff[31][-1])
                abjad.attach(abjad.Dynamic("pppp"), staff[33][0])
                # abjad.attach(FLAUTANDO, staff[33][0])

            elif instr == "viola":
                abjad.attach(abjad.StartHairpin(), staff[2][0])
                abjad.attach(abjad.Dynamic("pp"), staff[3][0])
                abjad.attach(abjad.StartHairpin(">"), staff[3][3])
                abjad.attach(abjad.Dynamic("ppp"), staff[4][1])
                abjad.attach(abjad.Dynamic("pppp"), staff[7][0])
                # abjad.attach(
                #     abjad.StringContactPoint("sul tasto").markup, staff[8][0],
                # )
                abjad.attach(abjad.Dynamic("pp"), staff[12][2])
                abjad.attach(abjad.Fermata(), staff[16][2])
                abjad.attach(abjad.Dynamic("p"), staff[17][0])
                abjad.attach(abjad.Dynamic("pp"), staff[18][2])
                abjad.attach(abjad.StartHairpin(), staff[18][2])
                abjad.attach(abjad.Dynamic("p"), staff[19][0])
                abjad.attach(abjad.Dynamic("pp"), staff[23][0])
                abjad.attach(abjad.Dynamic("p"), staff[30][1])
                abjad.attach(abjad.StartHairpin(">"), staff[31][-1])
                abjad.attach(abjad.Dynamic("pppp"), staff[33][0])
                # abjad.attach(FLAUTANDO, staff[33][0])

            elif instr == "cello":
                abjad.attach(abjad.StartHairpin(), staff[2][0])
                abjad.attach(abjad.Dynamic("pp"), staff[3][0])
                # abjad.attach(abjad.Dynamic('pp'), staff[2][0])
                abjad.attach(abjad.StartHairpin(">"), staff[3][5])
                abjad.attach(abjad.Dynamic("ppp"), staff[4][1])
                abjad.attach(abjad.StartHairpin(">"), staff[6][1])
                abjad.attach(abjad.Dynamic("pppp"), staff[7][0])
                abjad.attach(
                    abjad.StringContactPoint("sul tasto"), staff[8][0],
                )
                abjad.attach(abjad.Dynamic("pp"), staff[12][2])
                abjad.attach(abjad.Fermata(), staff[16][2])
                abjad.attach(abjad.Dynamic("p"), staff[17][0])
                abjad.attach(abjad.Dynamic("ppp"), staff[18][0])
                abjad.attach(abjad.StartHairpin(), staff[18][0])
                abjad.attach(abjad.Dynamic("p"), staff[19][0])
                abjad.attach(abjad.Dynamic("pp"), staff[23][0])
                abjad.attach(abjad.Dynamic("ppp"), staff[24][5])
                abjad.attach(abjad.Dynamic("pp"), staff[26][0])
                abjad.attach(abjad.Dynamic("ppp"), staff[29][0])
                abjad.attach(abjad.Dynamic("pp"), staff[29][4])
                abjad.attach(abjad.Dynamic("p"), staff[30][1])
                abjad.attach(abjad.StartHairpin(">"), staff[31][4])
                abjad.attach(abjad.Dynamic("pppp"), staff[33][0])

                abjad.attach(abjad.Fermata("longfermata"), staff[-1][-1])

                abjad.detach(globals_.NONVIB_MARKUP, staff[0][0])
                abjad.detach(globals_.CON_SORDINO_MARKUP, staff[0][0])
                abjad.attach(globals_.NONVIB_MARKUP, staff[0][1])
                abjad.attach(globals_.CON_SORDINO_MARKUP, staff[0][1])

                # abjad.attach(FLAUTANDO, staff[33][0])

            elif instr == "keyboard":
                if idx[1] == 1:
                    abjad.attach(abjad.Dynamic("pp"), staff[2][0])
                    abjad.attach(abjad.Dynamic("ppp"), staff[7][0])
                    abjad.attach(abjad.Dynamic("p"), staff[11][0])
                    abjad.attach(abjad.Dynamic("pp"), staff[12][1])
                    abjad.attach(abjad.Dynamic("p"), staff[18][1])
                    abjad.attach(abjad.Dynamic("pp"), staff[26][3])
                    abjad.attach(abjad.Dynamic("ppp"), staff[27][1])
                    abjad.attach(abjad.Dynamic("pp"), staff[30][0])
                    abjad.attach(abjad.Dynamic("p"), staff[31][0])
                    abjad.attach(abjad.StartHairpin(">"), staff[32][1])
                    abjad.attach(abjad.Dynamic("ppp"), staff[33][0])

                    abjad.attach(abjad.Fermata(), staff[16][1])
                else:
                    abjad.attach(abjad.Fermata(), staff[16][1])

            abjad.attach(abjad.Dynamic("ppp"), staff[0][0])

    return verse
Пример #15
0
 ),
 evans.attach(
     "Voice 1",
     xsb_noise_poco_a_poco_final_noise,
     baca.selectors.leaf(8, pitched=True),
 ),
 evans.attach(
     "Voice 1",
     abjad.StopTextSpan(),
     baca.selectors.leaf(9, pitched=True),
 ),
 evans.attach(
     "Voice 1", abjad.Dynamic("pp"), baca.selectors.leaf(0, pitched=True)
 ),
 evans.attach(
     "Voice 1", abjad.StartHairpin("<"), baca.selectors.leaf(0, pitched=True)
 ),
 evans.attach(
     "Voice 1",
     abjad.Markup(
         r"""\markup \box "cresc. a m.196 (ff)" """,
         direction=abjad.Down,
     ),
     baca.selectors.leaf(0, pitched=True),
 ),
 evans.attach(
     "Voice 1", abjad.StopHairpin(), baca.selectors.leaf(9, pitched=True)
 ),
 evans.attach(
     "Voice 1", abjad.Dynamic("ff"), baca.selectors.leaf(9, pitched=True)
 ),
Пример #16
0
     quasi_pont_markup,
     baca.leaf(8, pitched=True),
 ),
 evans.attach(
     "Voice 9",
     normale_markup,
     baca.leaf(13, pitched=True),
 ),
 evans.attach(
     "Voice 9",
     abjad.Dynamic("sfp"),
     baca.leaf(13, pitched=True),
 ),
 evans.attach(
     "Voice 9",
     abjad.StartHairpin("<"),
     baca.leaf(13, pitched=True),
 ),
 evans.attach(
     "Voice 9",
     abjad.Dynamic("ff"),
     baca.leaf(15, pitched=True),
 ),
 evans.attach(
     "Voice 9",
     abjad.Dynamic("p"),
     baca.leaf(16, pitched=True),
 ),
 evans.attach(
     "Voice 9",
     quasi_pont_markup,