Beispiel #1
0
def upper_voice_suite():
    return baca.suite(
        baca.only_parts(baca.text_script_extra_offset((1, 3))),
        baca.only_parts(baca.text_spanner_staff_padding(5)),
        baca.not_parts(
            baca.dynamic_text_stencil_false(selector=baca.selectors.leaves())),
        baca.not_parts(baca.hairpin_stencil_false()),
        baca.not_parts(baca.text_spanner_stencil_false()),
        baca.not_parts(baca.voice_one()),
    )
Beispiel #2
0
def brass_sforzando(maker, range_=(1, -1)):
    voice_to_pitch = {
        "Horn.Voice.1": "C4",
        "Horn.Voice.2": "Gb3",
        "Horn.Voice.3": "F3",
        "Horn.Voice.4": "E3",
        "Trumpet.Voice.1": "D5",
        "Trumpet.Voice.2": "Ab4",
        "Trumpet.Voice.3": "G4",
        "Trumpet.Voice.4": "F4",
        "Trombone.Voice.1": "G4",
        "Trombone.Voice.2": "Db4",
        "Trombone.Voice.3": "C4",
        "Trombone.Voice.4": "B3",
        "Tuba.Voice.1": "C2",
    }

    for voice, pitch in voice_to_pitch.items():
        maker((voice, range_), downbeat_attack(), baca.marcato())
        words = abjad.string.delimit_words(voice)
        member = int(words[-1])
        if member in (1, 2):
            maker((voice, range_), baca.dynamic("sffz"))
        elif member in (3, 4):
            maker((voice, range_), baca.only_parts(baca.dynamic("sffz")))
        else:
            raise ValueError(member)
        maker((voice, range_), baca.pitch(pitch))
Beispiel #3
0
def attach_grand_pause_fermatas(maker, score, *, measure=-1):
    assert isinstance(maker, baca.CommandAccumulator)
    for voice in abjad.iterate.components(score, abjad.Voice):
        markup = abjad.Markup(r'\markup \musicglyph #"scripts.ufermata"')
        markup_command = baca.markup(
            markup,
            selector=baca.selectors.leaf(0),
        )
        string = r"\once \override Score.MultiMeasureRest.transparent = ##t"
        literal_1 = baca.literal(string)
        string = r"\once \override Score.TimeSignature.stencil = ##f"
        literal_2 = baca.literal(string)
        maker(
            (voice.name, measure),
            baca.only_parts(markup_command),
            baca.only_parts(literal_1),
            baca.only_parts(literal_2),
        )
Beispiel #4
0
def tremolo_suite():
    return baca.suite(
        baca.accent(selector=baca.selectors.pleaves()),
        baca.dynamic("ff-ancora"),
        baca.hairpin(
            "ff > pp",
            selector=baca.selectors.pleaves((2, -2)),
        ),
        baca.only_parts(
            baca.markup(r"\animales-ext-ponticello-like-acid-markup"), ),
        baca.text_spanner(
            "ext. pont. => tasto",
            selector=baca.selectors.pleaves((2, -2)),
        ),
        baca.stem_tremolo(selector=baca.selectors.pleaves()),
    )
Beispiel #5
0
commands(
    ("1vn2", (3, 6)),
    library.glissando_rhythm(),
    library.parts("First.Violin", 1),
    baca.hairpin(
        "p < f",
        selector=library.leaves_in_measure(1, rleak=True),
    ),
    baca.hairpin(
        "f > p",
        selector=library.leaves_in_measure(-1, lleak=True),
    ),
    baca.edition("solo (first violin)", "solo"),
    baca.not_parts(baca.dls_up()),
    baca.not_parts(baca.voice_one()),
    baca.only_parts(baca.stop_trill()),
    baca.suite(
        baca.untie(baca.selectors.leaves()),
        library.glissando_positions(reverse=True),
        baca.pitch(
            "C5",
            baca.selectors.pleaf(0),
            allow_repitch=True,
        ),
        baca.pitch(
            "C6",
            baca.selectors.pleaf(-1),
            allow_repitch=True,
        ),
        baca.tie(baca.selectors.ptail(-2)),
        baca.glissando(),
Beispiel #6
0
    baca.stem_tremolo(selector=baca.selectors.pleaves()),
)

# vibraphone

commands(
    "perc3",
    library.instrument("Vibraphone"),
    library.margin_markup("Perc. 3 (vib.)"),
    library.parts("Percussion", 3),
    library.harp_exchange_rhythm(0),
    baca.clef("treble"),
    baca.dynamic("mp"),
    baca.laissez_vibrer(selector=baca.selectors.ptails()),
    baca.markup(r"\animales-vibraphone-markup"),
    baca.only_parts(baca.text_script_extra_offset((1.5, 1.5))),
    baca.pitch("D5"),
)

# strings

commands(
    "1vn1",
    library.parts("First.Violin"),
    baca.make_repeat_tied_notes(),
    baca.not_parts(baca.markup(r"\animales-strings-still-non-vib-markup"), ),
    baca.pitch("Bb6"),
)

commands(
    "2vn1",
Beispiel #7
0
def battuti(
        maker,
        counts,
        *,
        first=False,
        omit_contrabasses=False,
        range_=(1, -1),
):
    section_to_members = {
        "First.Violin": 18,
        "Second.Violin": 18,
        "Viola": 18,
        "Cello": 14,
        "Contrabass": 6,
    }

    section_to_abbreviation = {
        "First.Violin": "Vni. I",
        "Second.Violin": "Vni. II",
        "Viola": "Vle.",
        "Cello": "Vc.",
        "Contrabass": "Cb.",
    }

    def upper_voice():
        return baca.suite(baca.not_parts(baca.voice_one()),
                          baca.staff_position(1))

    def lower_voice():
        return baca.suite(baca.not_parts(baca.voice_two()),
                          baca.staff_position(-1))

    duration = sum([_.duration for _ in maker.time_signatures])
    assert isinstance(duration, abjad.Duration), repr(duration)
    wrap = duration.with_denominator(16).numerator
    for section, members in section_to_members.items():
        if omit_contrabasses and section == "Contrabass":
            continue
        for member in range(1, members + 1):
            commands = []
            voice = f"{section}.Voice.{member}"
            maker(voice, parts(section, member))
            rhythm = clb_rhythm(section, member, counts, wrap)
            commands.append(rhythm)
            if member % 2 == 0:
                polyphony = lower_voice()
            else:
                polyphony = upper_voice()
            if first:
                markup = abjad.Markup(
                    r"\animales-col-legno-battuti-explanation")
                command: baca.CommandTyping
                command = baca.markup(
                    markup,
                    selector=baca.selectors.leaf(0),
                )
                command = baca.only_parts(command)
                commands.append(command)
                command = baca.staff_lines(1)
                commands.append(command)
                command = baca.clef("percussion")
                commands.append(command)
            if first and member % 2 == 1:
                abbreviation = section_to_abbreviation[section]
                key = f"{abbreviation} ({member}-{member+1})"
                margin_markup_ = margin_markup(key)
                commands.append(margin_markup_)
            commands.append(polyphony)
            maker((voice, range_), *commands)
Beispiel #8
0
)

commands(
    "fl4",
    library.parts("Flute", 4),
)

commands(
    ("fl1", (1, 3)),
    library.margin_markup("Fl. (1+3)"),
    library.pennant_pitches("G5", [6]),
    library.pennant_rhythm([0, 0, -1, -1, 0], [0, 1, 2]),
    baca.not_parts(baca.voice_one()),
    baca.only_parts(
        baca.hairpin(
            "mf < ff",
            selector=baca.selectors.tleaves(),
        ), ),
    baca.slur(),
)

commands(
    ("fl3", (1, 3)),
    library.pennant_pitches("F5", [6]),
    library.pennant_rhythm([0, 0, 0, -1, -1], [0, 1]),
    baca.hairpin(
        "mf < ff",
        selector=baca.selectors.tleaves(),
    ),
    baca.not_parts(baca.voice_two()),
    baca.slur(),
Beispiel #9
0
library.attach_grand_pause_fermatas(commands, score, measure=3)
library.attach_grand_pause_fermatas(commands, score, measure=8)

# brass

library.assign_brass_sforzando_parts(commands, omit_tuba=True)

# horns

commands(
    ("hn1", 1),
    library.downbeat_attack(),
    baca.not_parts(baca.dynamic_up()),
    baca.not_parts(baca.voice_one()),
    baca.only_parts(baca.dynamic("sfz")),
    baca.pitches("G3 A3", ignore_incomplete=True, persist="seconds"),
)

commands(
    ("hn3", 1),
    library.downbeat_attack(),
    baca.dynamic("sfz"),
    baca.not_parts(baca.voice_two()),
    baca.pitches("Gb3 Ab3", ignore_incomplete=True, persist="seconds"),
)

commands(
    ("hn2", 1),
    library.downbeat_attack(),
    baca.not_parts(baca.dynamic_up()),
Beispiel #10
0
    library.parts("Cello"),
)

most_strings = [
    "First.Violin.Rest_Voice.1",
    "Second.Violin.Rest_Voice.1",
    "Viola.Rest_Voice.1",
    "Cello.Rest_Voice.1",
    "Contrabass.Rest_Voice.3",
]

commands(
    (most_strings, 4),
    baca.only_parts(
        baca.markup(
            r"\animales-suddenly-ripped-off-markup",
            selector=baca.selectors.leaf(0),
        ), ),
)

commands(
    ("First.Violin.Rest_Voice.1", 4),
    baca.not_parts(
        baca.markup(
            r"\animales-strings-suddenly-ripped-off-markup",
            selector=baca.selectors.leaf(0),
        ), ),
)

commands(
    ("cb3", (1, 3)),
Beispiel #11
0
commands(
    "bsn2",
    library.parts("Bassoon", 2),
    baca.not_parts(baca.voice_two()),
)

commands(
    ("bsn1", (1, 5)),
    baca.make_repeat_tied_notes(),
    baca.pitch("B3"),
)

commands(
    ("bsn1", (1, 6)),
    baca.only_parts(swell("f")),
)

commands(
    ("bsn2", (1, 5)),
    baca.make_repeat_tied_notes(),
    baca.pitch("G2"),
)

commands(
    ("bsn2", (1, 6)),
    swell("f"),
)

# strings
Beispiel #12
0
# piano

commands(
    "pf1",
    library.parts("Piano"),
)

commands(
    ("pf1", (1, 9)),
    baca.note_head_style_harmonic(),
    baca.laissez_vibrer(selector=baca.selectors.ptails()),
    baca.make_notes(),
    baca.markup(r"\animales-harmonic-touch-lowest-string-of-piano-markup"),
    baca.pitch("C#4"),
    baca.only_parts(baca.text_script_x_offset(3)),
)

# slate

commands(
    "perc4",
    library.parts("Percussion", 4),
)

commands(
    ("perc4", (1, 8)),
    library.margin_markup("Perc. 4 (slate)"),
    baca.dynamic('"mf"'),
    baca.make_tied_repeated_durations([(1, 4)]),
    baca.markup(r"\animales-stonecircle-markup"),
Beispiel #13
0
    baca.make_repeat_tied_notes(),
    baca.staff_position(0),
    baca.stem_tremolo(selector=baca.selectors.pleaves()),
)

# bass drum

commands(
    "perc3",
    library.margin_markup("Perc. 3 (BD)"),
    library.parts("Percussion", 3),
    baca.clef("percussion"),
    baca.dynamic("p"),
    baca.make_repeat_tied_notes(),
    baca.markup(r"\animales-bass-drum-soft-yarn-mallets-markup"),
    baca.only_parts(baca.text_script_extra_offset((0, 4))),
    baca.staff_lines(1),
    baca.staff_position(0),
    baca.stem_tremolo(selector=baca.selectors.pleaves()),
)

# tam-tam

commands(
    "perc4",
    library.parts("Percussion", 4),
    baca.dynamic("p"),
    baca.make_repeat_tied_notes(),
    library.margin_markup("Perc. 4 (tam.)"),
    baca.markup(r"\animales-tam-tam-soft-yarn-mallets-markup"),
    baca.only_parts(baca.text_script_extra_offset((0, 4))),
Beispiel #14
0
commands(
    "1vn2",
    library.glissando_rhythm(),
    library.parts("First.Violin", 1),
    baca.hairpin(
        "p < f",
        selector=library.leaves_in_measure(1, rleak=True),
    ),
    baca.hairpin(
        "f > p",
        selector=library.leaves_in_measure(-1, lleak=True),
    ),
    baca.not_parts(baca.dls_up()),
    baca.not_parts(baca.voice_one()),
    baca.only_parts(baca.stop_trill()),
    baca.suite(
        baca.untie(baca.selectors.leaves()),
        library.glissando_positions(transpose=-1),
        baca.pitch(
            "B4",
            baca.selectors.pleaf(0),
            allow_repitch=True,
        ),
        baca.pitch(
            "B3",
            baca.selectors.pleaf(-1),
            allow_repitch=True,
        ),
        baca.glissando(),
    ),