Пример #1
0
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))
Пример #2
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])
Пример #3
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)
Пример #4
0
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))
Пример #5
0
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)
Пример #6
0
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(
Пример #7
0
    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,
Пример #8
0
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,
Пример #10
0
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)
Пример #11
0
    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)
Пример #12
0
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):
Пример #14
0
                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)
Пример #15
0
    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,
Пример #16
0
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,
Пример #17
0
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),
Пример #18
0
        ),
        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])

Пример #19
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)
Пример #20
0
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])
Пример #21
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,