.by_leaf()
         ),
     staccati=consort.AttachmentExpression(
         attachments=indicatortools.Articulation('staccato'),
         selector=selectortools.Selector()
             .by_logical_tie(pitched=True)
             .by_duration('==', (1, 16), preprolated=True)
             .by_contiguity()
             .by_length('>', 1)
             .by_leaf()
             [-1]
         ),
     staff_lines_spanner=spannertools.StaffLinesSpanner([-4, -2, 0, 2, 4]),
     text_spanner=consort.AttachmentExpression(
         attachments=abbreviations.make_text_spanner('marimba'),
         selector=selectortools.select_pitched_runs(),
         ),
     ),
 color='darkyellow',
 pitch_handler=consort.AbsolutePitchHandler(
     forbid_repetitions=True,
     logical_tie_expressions=[
         consort.ChordExpression(chord_expr=[0, 5]),
         ],
     pitch_specifier="d' f'",
     ),
 rhythm_maker=rhythmmakertools.TaleaRhythmMaker(
     extra_counts_per_division=[0, 0, 1, 2, 0, 1],
     talea=rhythmmakertools.Talea(
         counts=[1, 1, -3],
         denominator=16,
# -*- encoding: utf-8 -*-
import consort
from abjad.tools import indicatortools
from abjad.tools import rhythmmakertools
from abjad.tools import selectortools
from abjad.tools import spannertools
from ersilia.materials import abbreviations

guitar_tremolo_music_specifier = consort.MusicSpecifier(
    attachment_handler=consort.AttachmentHandler(
        accents=consort.AttachmentExpression(
            attachments=indicatortools.Articulation('accent'),
            selector=selectortools.select_pitched_runs().by_counts(
                [3], cyclic=True)[1],
        ),
        dynamic_expressions=consort.DynamicExpression(
            division_period=2,
            dynamic_tokens='pp mf p p mf mf pp',
            start_dynamic_tokens='fp niente',
            stop_dynamic_tokens='niente f',
        ),
        stem_tremolo_spanner=consort.AttachmentExpression(
            attachments=spannertools.StemTremoloSpanner(),
            selector=selectortools.select_pitched_runs(),
        ),
    ),
    color='red',
    pitch_handler=consort.AbsolutePitchHandler(
        logical_tie_expressions=[
            consort.ChordExpression(chord_expr=_, )
            for _ in abbreviations.guitar_chords
Example #3
0
def select_all_but_last_logical_tie_in_pitched_runs(expr=None):
    r'''Selects all but last logical tie in pitched runs.

    ..  container:: example

        ::

            >>> selector = selectortools.select_all_but_last_logical_tie_in_pitched_runs()
            >>> print(format(selector))
            selectortools.Selector(
                callbacks=(
                    selectortools.PrototypeSelectorCallback(
                        prototype=scoretools.Leaf,
                        ),
                    selectortools.RunSelectorCallback(
                        prototype=(
                            scoretools.Note,
                            scoretools.Chord,
                            ),
                        ),
                    selectortools.LogicalTieSelectorCallback(
                        flatten=False,
                        pitched=False,
                        trivial=True,
                        ),
                    selectortools.SliceSelectorCallback(
                        stop=-1,
                        apply_to_each=True,
                        ),
                    selectortools.FlattenSelectorCallback(
                        depth=1,
                        ),
                    ),
                )

        ::

            >>> staff = Staff("c' d' ~ d' e' r f' g' r a' b' ~ b' c''")
            >>> tuplet = Tuplet((2, 3), staff[2:5])
            >>> tuplet = Tuplet((2, 3), staff[5:8])
            >>> print(format(staff))
            \new Staff {
                c'4
                d'4 ~
                \times 2/3 {
                    d'4
                    e'4
                    r4
                }
                f'4
                g'4
                \times 2/3 {
                    r4
                    a'4
                    b'4 ~
                }
                b'4
                c''4
            }

        ::

            >>> for x in selector(staff):
            ...     x
            ...
            LogicalTie(Note("c'4"),)
            LogicalTie(Note("d'4"), Note("d'4"))
            LogicalTie(Note("f'4"),)
            LogicalTie(Note("a'4"),)
            LogicalTie(Note("b'4"), Note("b'4"))

    '''
    from abjad.tools import selectortools
    selector = selectortools.select_pitched_runs()
    selector = selector.by_logical_tie(flatten=False)
    selector = selector[:-1]
    selector = selector.flatten(depth=1)
    if expr is None:
        return selector
    return selector(expr)
Example #4
0
from abjad.tools import rhythmmakertools
from abjad.tools import selectortools
from abjad.tools import spannertools


piano_tremolo_music_specifier = consort.MusicSpecifier(
    attachment_handler=consort.AttachmentHandler(
        dynamic_expressions=consort.DynamicExpression(
            start_dynamic_tokens='fp',
            dynamic_tokens="p mf p p mf pp",
            division_period=2,
            ),
        octavation=consort.OctavationExpression(),
        stem_tremolo_spanner=consort.AttachmentExpression(
            attachments=spannertools.StemTremoloSpanner(),
            selector=selectortools.select_pitched_runs(),
            ),
        ),
    color='red',
    labels=[
        'pedaled',
        'piano tremolo',
        ],
    pitch_handler=consort.AbsolutePitchHandler(
        deviations=[0, -2, 0, 0, 2, 0, 3],
        logical_tie_expressions=(
            consort.ChordExpression(
                chord_expr=pitchtools.IntervalSegment([-7, -3, 0, 5, 6, 12]),
                ),
            consort.ChordExpression(
                chord_expr=pitchtools.IntervalSegment([-7, -3, 0, 1, 5, 12]),
def select_last_logical_tie_in_pitched_runs(expr=None):
    r'''Selects last logical tie in pitched runs.

    ..  container:: example

        ::

            >>> selector = selectortools.select_last_logical_tie_in_pitched_runs()
            >>> print(format(selector))
            selectortools.Selector(
                callbacks=(
                    selectortools.PrototypeSelectorCallback(
                        prototype=scoretools.Leaf,
                        ),
                    selectortools.RunSelectorCallback(
                        prototype=(
                            scoretools.Note,
                            scoretools.Chord,
                            ),
                        ),
                    selectortools.LogicalTieSelectorCallback(
                        flatten=False,
                        pitched=False,
                        trivial=True,
                        ),
                    selectortools.ItemSelectorCallback(
                        item=-1,
                        apply_to_each=True,
                        ),
                    ),
                )

        ::

            >>> staff = Staff()
            >>> staff.extend(r"c'4. d'8 ~ \times 2/3 { d'4 r4 e'4 ~ } e'8 f'4.")
            >>> print(format(staff))
            \new Staff {
                c'4.
                d'8 ~
                \times 2/3 {
                    d'4
                    r4
                    e'4 ~
                }
                e'8
                f'4.
            }

        ::

            >>> for x in selector(staff):
            ...     x
            ...
            LogicalTie(Note("d'8"), Note("d'4"))
            LogicalTie(Note("f'4."),)

    '''
    from abjad.tools import selectortools
    selector = selectortools.select_pitched_runs()
    selector = selector.by_logical_tie(flatten=False)
    selector = selector[-1]
    if expr is None:
        return selector
    return selector(expr)
from abjad.tools import selectortools
from abjad.tools import spannertools


unpitched_shimmer = consort.MusicSpecifier(
    attachment_handler=consort.AttachmentHandler(
        dynamics=consort.DynamicExpression(
            division_period=2,
            dynamic_tokens='ppp p ppp mf',
            start_dynamic_tokens='fp niente',
            stop_dynamic_tokens='niente f',
            ),
        accent=consort.AttachmentExpression(
            attachments=indicatortools.Articulation('accent'),
            selector=selectortools.select_pitched_runs()
                .by_logical_tie()
                .rest()
                [0]
            ),
        stem_tremolo_spanner=consort.AttachmentExpression(
            attachments=spannertools.StemTremoloSpanner(),
            selector=selectortools.select_pitched_runs(),
            ),
        ),
    color=consort.Color.from_x11('Lavender')
        .scale_luminance(-1)
        .rotate_hue(-0.6),
    comment='unpitched_shimmer',
    labels=['unpitched_shimmer'],
    pitch_handler=consort.AbsolutePitchHandler(pitch_specifier='C4'),
    rhythm_maker=rhythmmakertools.EvenDivisionRhythmMaker(
        denominators=[4, 8],
# -*- encoding: utf-8 -*-
import consort
from abjad.tools import indicatortools
from abjad.tools import rhythmmakertools
from abjad.tools import selectortools
from abjad.tools import spannertools
from ersilia.materials import abbreviations


guitar_tremolo_music_specifier = consort.MusicSpecifier(
    attachment_handler=consort.AttachmentHandler(
        accents=consort.AttachmentExpression(
            attachments=indicatortools.Articulation('accent'),
            selector=selectortools.select_pitched_runs()
                .by_counts([3], cyclic=True)
                [1],
            ),
        dynamic_expressions=consort.DynamicExpression(
            division_period=2,
            dynamic_tokens='pp mf p p mf mf pp',
            start_dynamic_tokens='fp niente',
            stop_dynamic_tokens='niente f',
            ),
        stem_tremolo_spanner=consort.AttachmentExpression(
            attachments=spannertools.StemTremoloSpanner(),
            selector=selectortools.select_pitched_runs(),
            ),
        ),
    color='red',
    pitch_handler=consort.AbsolutePitchHandler(
        logical_tie_expressions=[