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()), )
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))
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), )
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()), )
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(),
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",
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)
) 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(),
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()),
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)),
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
# 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"),
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))),
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(), ),