def add_markups(runs): cyc_marks = evans.CyclicList( [ abjad.Markup(fr"\markup {_}", direction=abjad.Up) for _ in ["clt.", "½clt.", "norm.", "½clt."] ], forget=False, ) for run in runs: abjad.attach(cyc_marks(r=1)[0], abjad.Selection(run).leaf(0))
def full_bows(selections): bowings = evans.CyclicList(["downbow", "upbow"], forget=False) for run in abjad.Selection(selections).runs(): for tie in abjad.Selection(run).logical_ties(): articulation = abjad.Articulation(bowings(r=1)[0]) abjad.attach(articulation, tie[0]) mark = abjad.Markup( fr"\markup {{ {rotations(r=1)[0]} }}", direction=abjad.Up, ) abjad.attach(mark, abjad.Selection(run).logical_tie(0)[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)
def attach_clicks(selections): cyc_clicks = evans.CyclicList( [ "XSB(c.2 clicks per second)", "XSB(c.3 clicks/s)", "XSB(c.4)", "XSB(c.5)", "XSB(c.6)", "XSB(c.7)", "XSB(c.8)", "slow bow", "norm.", "quasi noise", ], forget=False, ) for leaf in abjad.Selection(selections).leaves(): text = cyc_clicks(r=1)[0] mark = abjad.Markup(fr"\upright {{ {text} }}", direction=abjad.Up) span = abjad.StartTextSpan( left_text=mark, style="dashed-line-with-arrow", ) abjad.tweak(span).padding = 6.75 abjad.attach(span, leaf) abjad.attach(abjad.StopTextSpan(), leaf) first_leaf = abjad.Selection(selections).leaf(0) abjad.attach(abjad.Dynamic("fff"), first_leaf) abjad.detach(abjad.StopTextSpan(), first_leaf) final = abjad.StartTextSpan( left_text=abjad.Markup(r"\upright { quasi noise }"), style="invisible-line", ) abjad.tweak(final).padding = 6.75 final_leaf = abjad.Selection(selections).leaf(-1) start_span_indicator = [ _ for _ in abjad.get.indicators(final_leaf) if isinstance(_, abjad.StartTextSpan) ] abjad.detach(start_span_indicator[0], final_leaf) abjad.attach(final, final_leaf) abjad.attach(abjad.StopTextSpan(), abjad.get.leaf(final_leaf, 1))
fundamentals = ["c''", "c''", "c'", "c"] voice_length = 0 for fundamental, voice in zip(fundamentals, voicewise_ratios): handlers_3.append( evans.PitchHandler( [ evans.JIPitch(fundamental, ratio) for ratio in voicewise_ratios[voice] ], forget=False, )) voice_length = len(voicewise_ratios[voice]) cyc_durs = evans.CyclicList( [abjad.Duration((5, 4)), abjad.Duration((3, 4)), abjad.Duration((7, 4))], forget=False, ) durations = cyc_durs(r=len(out_)) leaves_1 = [abjad.Rest((2, 1))] + [ maker(["c'", "c'", None, "c'", None, "c'", "c'", "c'", None], durations) ] leaves_2 = [abjad.Rest((2, 1))] + [ maker(["c'", "c'", None, "c'", None, "c'", "c'", "c'", None], durations) ] leaves_3 = [abjad.Rest((2, 1))] + [ maker(["c'", "c'", None, "c'", None, "c'", "c'", "c'", None], durations) ] leaves_4 = [abjad.Rest((2, 1))] + [ maker(["c'", "c'", None, "c'", None, "c'", "c'", "c'", None], durations)
import abjad import baca import evans import quicktions from adumbration.materials.pitch import clef_handlers, seg_7_global_pitch_handler from adumbration.materials.score_structure.instruments import instruments as insts from adumbration.materials.score_structure.score_structure import score from adumbration.materials.score_structure.segment_07.time_signatures import ( time_signatures, ) from adumbration.materials.timespans.segment_07.convert_timespans import ( handler_commands, rhythm_commands, ) cyc_padding = evans.CyclicList([7.2, 4.2, 5.3, 6.6], forget=False) def add_markups(runs): cyc_marks = evans.CyclicList( [ abjad.Markup(fr"\markup {_}", direction=abjad.Up) for _ in ["clt.", "½clt.", "norm.", "½clt."] ], forget=False, ) for run in runs: abjad.attach(cyc_marks(r=1)[0], abjad.Selection(run).leaf(0)) section_title = abjad.Markup(
handler_commands, rhythm_commands, ) def _add_tremolos(selections): for leaf in abjad.Selection(selections).leaves(pitched=True): tremolo = abjad.StemTremolo(32) abjad.attach(tremolo, leaf) x = abjad.Markup(r"\markup XFB.", direction=abjad.Up) n = abjad.Markup(r"\markup norm.", direction=abjad.Up) s = abjad.Markup(r"\markup noise", direction=abjad.Up) cyc_techniques = evans.CyclicList([x, n, s, n, x, n, s], forget=False) def _attach_marks(selections): for tie in abjad.Selection(selections).logical_ties(pitched=True): abjad.attach(cyc_techniques(r=1)[0], tie[0]) crescendo_markup = abjad.Markup( r"""\markup { \override #'(style . "box") \override #'(box-padding . 0.5) \italic \box \whiteout \small "cresc. a m.28 (ff)" }""", direction=abjad.Down, ) section_title = abjad.Markup( r"""\markup { \box \override #'(font-name . "STIXGeneral Bold") \caps { Komm (i) } }""", direction=abjad.Up,
from adumbration.materials.score_structure.score_structure import score from adumbration.materials.score_structure.segment_01.time_signatures import ( time_signatures, ) from adumbration.materials.timespans.segment_01.convert_timespans import ( handler_commands, rhythm_commands, ) def _add_tremolos(selections): for leaf in abjad.Selection(selections).leaves(pitched=True): tremolo = abjad.StemTremolo(32) abjad.attach(tremolo, leaf) cyc_padding = evans.CyclicList([4, 5.2, 4.6, 5.9], forget=False) def _call_text_spanner(selections): trem_text = evans.TextSpanHandler( span_one_positions=["noise", "norm.", "XFB", "noise", "XFB", "norm."], span_one_style="solid-line", span_one_padding=cyc_padding(r=1)[0], attach_span_one_to="bounds", hooks=False, forget=False, ) for run in abjad.Selection(selections).runs(): if 1 < len(run): trem_text(run)
from adumbration.materials.score_structure.segment_12.time_signatures import bounds from adumbration.materials.timespans.segment_12.make_timespans import ( dynamic_timespan_list, notehead_timespan_list, pitch_timespan_list, rhythm_timespan_list, ) from .make_timespans import music_specifiers voice_names = [specifier for specifier in music_specifiers] # ####### # rhythm# # ####### rhythm_mat = evans.CyclicList(rhythm_material_list, forget=False) for voice in voice_names: for span in rhythm_timespan_list: if span.voice_name == voice: span._handler = rhythm_mat(r=1)[0] segment_12_rhythm_timespans = evans.timespan.make_split_list( rhythm_timespan_list, bounds) rhythm_commands = [] for span in segment_12_rhythm_timespans: r_command = evans.RhythmCommand( voice_name=span.voice_name, timespan=abjad.Timespan(span.start_offset, span.stop_offset), handler=span.handler,
trem_handler = evans.ArticulationHandler(["tremolo"], forget=True) trem_speed_handler = evans.TextSpanHandler( span_one_positions=[ """ "slow (accel.)" """, """ "mod. (accel.)" """, """ "fast (rit.)" """, """ "mod. (rit.)" """, ], span_one_style="dashed-line", span_one_padding=1, attach_span_one_to="leaves", forget=False, ) rain_dynamics = evans.CyclicList(["p", "mf", "f", "mp"], forget=False) def apply_rain_tremolo(selections): trem_handler(selections) speed_leaves = abjad.select(selections).leaves() trem_speed_handler(speed_leaves[:-1]) ties = abjad.select(selections).logical_ties(pitched=True) non_last_ties = ties[:-1] dynamics = rain_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)
articulation_timespan_list, dynamic_timespan_list, gliss_timespan_list, grace_timespan_list, notehead_timespan_list, pitch_timespan_list, rhythm_timespan_list, tempo_timespan_list, trill_timespan_list, ) print("Converting timespans ...") # ####### # rhythm# # ####### rhythm_mat = evans.CyclicList(rhythm_material_list, forget=False) for span in rhythm_timespan_list: span._handler = rhythm_mat(r=1)[0] segment_01_rhythm_timespans = evans.timespan.make_split_list( rhythm_timespan_list, bounds) rhythm_commands = [] for span in segment_01_rhythm_timespans: r_command = evans.RhythmCommand( voice_name=span.voice_name, timespan=abjad.Timespan(span.start_offset, span.stop_offset), handler=span.handler, ) rhythm_commands.append(r_command)
marks = evans.CyclicList( [ abjad.LilyPondLiteral( r"^ \markup { ½clt. \raise #0.75 \baca-circle-very-wide-markup }", format_slot="after", ), # abjad.LilyPondLiteral( # r"^ \markup { finger percussion }", # format_slot="after", # ), abjad.LilyPondLiteral( r"^ \markup { slow bow }", format_slot="after", ), abjad.LilyPondLiteral( r"^ \markup { arco \raise #0.75 \baca-circle-granulation-markup }", format_slot="after", ), abjad.LilyPondLiteral( r"^ \markup { slow bow }", format_slot="after", ), abjad.LilyPondLiteral( r"^ \markup { arco \raise #0.75 \baca-circle-ext-tight-markup }", format_slot="after", ), abjad.LilyPondLiteral( r"^ \markup { clt. \raise #0.75 \baca-circle-fast-markup }", format_slot="after", ), abjad.LilyPondLiteral( r"^ \markup { slow bow }", format_slot="after", ), # abjad.LilyPondLiteral( # r"^ \markup { finger percussion }", # format_slot="after", # ), abjad.LilyPondLiteral( r"^ \markup { ½clt. \raise #0.75 \baca-circle-slow-markup }", format_slot="after", ), abjad.LilyPondLiteral( r"^ \markup { arco \raise #0.75 \baca-circle-tight-poss-grind-at-talon-markup }", format_slot="after", ), abjad.LilyPondLiteral( r"^ \markup { clt. \raise #0.75 \baca-circle-wide-poss-markup }", format_slot="after", ), abjad.LilyPondLiteral( r"^ \markup { slow bow }", format_slot="after", ), abjad.LilyPondLiteral( r"^ \markup { ½clt. \raise #0.75 \baca-circle-slow-markup }", format_slot="after", ), abjad.LilyPondLiteral( r"^ \markup { arco \raise #0.75 \baca-circle-very-wide-markup }", format_slot="after", ), abjad.LilyPondLiteral( r"^ \markup { clt. \raise #0.75 \baca-circle-fast-markup }", format_slot="after", ), ], forget=False, )
8, # denominator ), # rmakers.beam(), rmakers.extract_trivial(), # rmakers.tie(selector), ) # NEW MATERIAL # REST LIST rest_list = evans.e_dovan_cycle( n=2, iters=16, first=1, second=1, modulus=5) rest_list.sort(reverse=True) # NOTE LIST note_list = [4, 1] non_cyc_generator = evans.CyclicList(lst=note_list, continuous=False, count=1) new_note_list = non_cyc_generator(r=40) new_note_list # NOTE + REST = TALEA note_and_rest = [] note_sublist = [] random.seed(4) N = random.randrange(4)+1 for n in range(0, len(new_note_list), N): random.seed(n+2) print(random.randrange(4)+1) note_sublist.append(new_note_list[n:n+random.randrange(4)+1]) note_sublist note_and_rest = [] for rest, note_group in zip(rest_list, note_sublist):
5, 12, 25, ] ), denominator=4, ), playing_groupings=([1]), silence_talea=rmakers.Talea(counts=([0]), denominator=4), ) timespan_list_01 = timespan_maker_01( music_specifiers=music_specifiers, target_timespan=target_timespan_01 ) cyc_rhythm_materials_01 = evans.CyclicList(rhythm_materials_01, forget=False) for voice in voice_names: for span in timespan_list_01: if span.voice_name == voice: span._handler = cyc_rhythm_materials_01(r=1)[0] rhythm_timespans_01 = evans.timespan.make_split_list(timespan_list_01, bounds_01) temp_01 = abjad.TimespanList() for timespan in rhythm_timespans_01: if timespan.handler.name == "heterophony_handler": timespan_as_split_list = timespan.split_at_offsets(quarter_bounds_01) for sub_span in timespan_as_split_list: temp_01.append(sub_span)
rhythm_material_list, ) from adumbration.materials.score_structure.segment_06.time_signatures import bounds from adumbration.materials.timespans.segment_06.make_timespans import ( dynamic_timespan_list, pitch_timespan_list, rhythm_timespan_list, ) from .make_timespans import music_specifiers voice_names = [specifier for specifier in music_specifiers] # ####### # rhythm# # ####### rhythm_mat = evans.CyclicList(rhythm_material_list, forget=False) for voice in voice_names: for span in rhythm_timespan_list: if span.voice_name == voice: span._handler = rhythm_mat(r=1)[0] segment_06_rhythm_timespans = evans.timespan.make_split_list( rhythm_timespan_list, bounds) rhythm_commands = [] for span in segment_06_rhythm_timespans: r_command = evans.RhythmCommand( voice_name=span.voice_name, timespan=abjad.Timespan(span.start_offset, span.stop_offset), handler=span.handler,
import evans from adumbration.materials.score_structure.segment_18.rhythm_material_pattern import ( rhythm_material_list, ) from adumbration.materials.score_structure.segment_18.time_signatures import bounds from adumbration.materials.timespans.segment_18.make_timespans import ( rhythm_timespan_list, ) from .make_timespans import music_specifiers voice_names = [specifier for specifier in music_specifiers] # ####### # rhythm# # ####### rhythm_mat = evans.CyclicList(rhythm_material_list, forget=False) for voice in voice_names: for span in rhythm_timespan_list: if span.voice_name == voice: span._handler = rhythm_mat(r=1)[0] segment_18_rhythm_timespans = evans.timespan.make_split_list( rhythm_timespan_list, bounds) rhythm_commands = [] for span in segment_18_rhythm_timespans: r_command = evans.RhythmCommand( voice_name=span.voice_name, timespan=abjad.Timespan(span.start_offset, span.stop_offset), handler=span.handler,
from hamon_shu.materials.score_structure.segment_04.time_signatures import bounds from hamon_shu.materials.timespans.segment_04.make_timespans import ( articulation_timespan_list, dynamic_timespan_list, pitch_timespan_list, rhythm_timespan_list, ) from .make_timespans import music_specifiers voice_names = [specifier for specifier in music_specifiers] # ####### # rhythm# # ####### rhythm_mat = evans.CyclicList(rhythm_material_list, forget=False) for voice in voice_names: for span in rhythm_timespan_list: if span.voice_name == voice: span._handler = rhythm_mat(r=1)[0] segment_04_rhythm_timespans = evans.timespan.make_split_list( rhythm_timespan_list, bounds ) rhythm_commands = [] for span in segment_04_rhythm_timespans: r_command = evans.RhythmCommand( voice_name=span.voice_name, timespan=abjad.Timespan(span.start_offset, span.stop_offset),
), evans.DynamicHandler( dynamic_list=["p", "mp"], hold_first_boolean_vector=[1, 0], hold_first_forget=False, hold_last_boolean_vector=[0, 1], hold_last_forget=False, forget=False, with_constante_hairpins=False, ), ], ) #### SEGMENT 14 rotations = evans.CyclicList(["½clt.", "clt.", "½clt.", "norm."], forget=False) def full_bows(selections): bowings = evans.CyclicList(["downbow", "upbow"], forget=False) for run in abjad.Selection(selections).runs(): for tie in abjad.Selection(run).logical_ties(): articulation = abjad.Articulation(bowings(r=1)[0]) abjad.attach(articulation, tie[0]) mark = abjad.Markup( fr"\markup {{ {rotations(r=1)[0]} }}", direction=abjad.Up, ) abjad.attach(mark, abjad.Selection(run).logical_tie(0)[0])
8, # denominator ), # rmakers.beam(), rmakers.extract_trivial(), # rmakers.tie(selector), ) # MATERIAL FROM SEGMENT 2 AND 3 # REST LIST rest_list = evans.e_dovan_cycle(n=2, iters=16, first=1, second=1, modulus=5) rest_list.sort(reverse=True) # NOTE LIST VOICE TWO note_list_voice_two = [4, 1] non_cyc_generator = evans.CyclicList(lst=note_list_voice_two, continuous=False, count=1) new_note_list_voice_two = non_cyc_generator(r=40) # NOTE + REST = TALEA VOICE TWO note_and_rest_voice_two = [] note_sublist_voice_two = [] random.seed(4) N = random.randrange(4) + 1 for n in range(0, len(new_note_list_voice_two), N): random.seed(n + 2) note_sublist_voice_two.append( new_note_list_voice_two[n:n + random.randrange(4) + 1]) note_and_rest_voice_two = [] for rest, note_group in zip(rest_list, note_sublist_voice_two): note_and_rest_voice_two.append(-rest)
def full_bows_without_rotations(selections): bowings = evans.CyclicList(["downbow", "upbow"], forget=False) for run in abjad.Selection(selections).runs(): for tie in abjad.Selection(run).logical_ties(): articulation = abjad.Articulation(bowings(r=1)[0]) abjad.attach(articulation, tie[0])
rhythm_material_list, ) from adumbration.materials.score_structure.segment_09.time_signatures import bounds from adumbration.materials.timespans.segment_09.make_timespans import ( dynamic_timespan_list, pitch_timespan_list, rhythm_timespan_list, ) from .make_timespans import music_specifiers voice_names = [specifier for specifier in music_specifiers] # ####### # rhythm# # ####### rhythm_mat = evans.CyclicList(rhythm_material_list, forget=False) for voice in voice_names: for span in rhythm_timespan_list: if span.voice_name == voice: span._handler = rhythm_mat(r=1)[0] segment_09_rhythm_timespans = evans.timespan.make_split_list( rhythm_timespan_list, bounds) rhythm_commands = [] for span in segment_09_rhythm_timespans: r_command = evans.RhythmCommand( voice_name=span.voice_name, timespan=abjad.Timespan(span.start_offset, span.stop_offset), handler=span.handler,