示例#1
0
def test_systemtools_StorageFormatAgent_get_import_statements_02():
    subject = selectortools.Selector().by_leaf()
    agent = systemtools.StorageFormatAgent(subject)
    assert agent.get_import_statements() == (
        'from abjad.tools import scoretools',
        'from abjad.tools import selectortools',
    )
示例#2
0
def select_pitched_runs(expr=None):
    r'''Selects first logical tie in pitched runs.

    ..  container:: example

        ::

            >>> selector = selectortools.select_pitched_runs()
            >>> print(format(selector))
            selectortools.Selector(
                callbacks=(
                    selectortools.PrototypeSelectorCallback(
                        prototype=scoretools.Leaf,
                        ),
                    selectortools.RunSelectorCallback(
                        prototype=(
                            scoretools.Note,
                            scoretools.Chord,
                            ),
                        ),
                    ),
                )

        ::

            >>> 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
            ...
            Selection(Note("c'4."), Note("d'8"), Note("d'4"))
            Selection(Note("e'4"), Note("e'8"), Note("f'4."))

    '''
    from abjad.tools import scoretools
    from abjad.tools import selectortools
    selector = selectortools.Selector()
    selector = selector.by_leaves()
    selector = selector.by_run((scoretools.Note, scoretools.Chord))
    if expr is None:
        return selector
    return selector(expr)
示例#3
0
def select(expr=None):
    r'''Selects `expr`.


    ..  container:: example

        **Example 1.** Returns selection when `expr` is not none:

        ::

            >>> staff = Staff("c'8 d'8 e'8 f'8")
            >>> select(staff[:2])
            Selection(Note("c'8"), Note("d'8"))

    ..  container:: example

        **Example 2.** Returns selector when `expr` is none:

        ::

            >>> select()
            Selector()

    Returns selection.
    '''
    from abjad.tools import scoretools
    from abjad.tools import selectiontools
    from abjad.tools import selectortools
    from abjad.tools import spannertools
    if expr is None:
        return selectortools.Selector()
    Selection = selectiontools.Selection
    if isinstance(expr, scoretools.Component):
        return selectiontools.Selection(expr)
    elif hasattr(expr, '_music'):
        music = expr._music
        return selectiontools.Selection(music)
    elif isinstance(expr, spannertools.Spanner):
        music = expr._components
        return selectiontools.Selection(music)
    elif expr is None:
        return selectiontools.Selection()
    else:
        return selectiontools.Selection(expr)
示例#4
0
# -*- encoding: utf-8 -*-
import consort
from abjad.tools import rhythmmakertools
from abjad.tools import selectortools

left_hand_dietro_music_specifier = consort.MusicSpecifier(
    attachment_handler=consort.AttachmentHandler(
        clef_spanner=consort.AttachmentExpression(
            attachments=consort.ClefSpanner(
                clef='percussion',
                overrides={
                    'note_head__style': 'cross',
                },
            ),
            selector=selectortools.Selector().by_leaf(),
        ), ),
    pitch_handler=consort.AbsolutePitchHandler(logical_tie_expressions=(
        consort.ChordExpression("g b"),
        consort.ChordExpression("b d'"),
        consort.ChordExpression("d' f'"),
    ), ),
    rhythm_maker=rhythmmakertools.NoteRhythmMaker(
        tie_specifier=rhythmmakertools.TieSpecifier(
            tie_across_divisions=False, ), ),
)
        schemetools.Scheme('ly:text-interface::print', ),
        'trill_pitch_head__text':
        markuptools.Markup.musicglyph(
            'noteheads.s0harmonic',
            direction=None,
        ),
    },
)

stopped_third_trill = consort.ConsortTrillSpanner(interval='+m3', )

intermittent_trills = consort.AttachmentExpression(
    attachments=(
        harmonic_fourth_trill,
        harmonic_third_trill,
        harmonic_fourth_trill,
        stopped_third_trill,
        stopped_third_trill,
        ),
    selector=selectortools.Selector()\
        .by_leaf()\
        [:-1]\
        .append_callback(consort.AfterGraceSelectorCallback())\
        .by_counts(
            [-3, 2, -2, 1, -1, 2, -1, 1],
            cyclic=True,
            overhang=False,
            fuse_overhang=False,
            rotate=True,
            ),
    )
from abjad.tools import indicatortools
from abjad.tools import patterntools
from abjad.tools import rhythmmakertools
from abjad.tools import scoretools
from abjad.tools import selectortools
from abjad.tools import spannertools
from ersilia.materials import abbreviations
import consort


piano_agitato_music_specifier = consort.MusicSpecifier(
    attachment_handler=consort.AttachmentHandler(
        accents=consort.AttachmentExpression(
            attachments=indicatortools.Articulation('accent'),
            selector=selectortools.Selector()
                .by_logical_tie(pitched=True)
                .by_duration('==', (1, 8), preprolated=True)
                [0],
            ),
        dynamic_expressions=consort.DynamicExpression(
            division_period=2,
            dynamic_tokens='mf mp fff',
            start_dynamic_tokens='f',
            stop_dynamic_tokens='mf',
            ),
        mordent=consort.AttachmentExpression(
            attachments=indicatortools.Articulation('mordent'),
            selector=selectortools.Selector()
                .by_logical_tie(pitched=True)
                .by_duration('>=', (1, 8), preprolated=True)
                .by_class(scoretools.Note)
                [0],
示例#7
0
### ATTACHMENTS ###

intermittent_trills = armilla.materials.intermittent_trills

### MUSIC SPECIFIERS ###

rh_circular = new(
    armilla.materials.right_hand_circular_music_specifier,
    attachment_handler__stem_tremolo_spanner=consort.AttachmentExpression(
        attachments=(
            None,
            spannertools.StemTremoloSpanner(),
        ),
        selector=selectortools.Selector().by_leaf().by_counts(
            [5, 1, 4, 2, 6, 3],
            cyclic=True,
        )),
)

lh_glissandi = new(
    armilla.materials.left_hand_glissandi_music_specifier,
    pitch_handler__pitch_specifier=consort.PitchSpecifier(
        pitch_segments=(
            "a c' a a c'",
            "c' ef' g c' c' ef'",
            "a' c'' a' c'' c'' g' a'",
        ),
        ratio=(1, 1, 2),
    ),
    attachment_handler__trill_spanner=intermittent_trills,
)
# -*- encoding: utf-8 -*-
import consort
from abjad.tools import indicatortools
from abjad.tools import rhythmmakertools
from abjad.tools import scoretools
from abjad.tools import selectortools
from abjad.tools import spannertools

right_hand_pizzicati_music_specifier = consort.MusicSpecifier(
    attachment_handler=consort.AttachmentHandler(
        bow_contact_points=consort.AttachmentExpression(
            attachments=(indicatortools.BowContactPoint(None), ),
            selector=selectortools.Selector().by_leaf().flatten(),
        ),
        bow_contact_spanner=spannertools.BowContactSpanner(),
        dynamic_expressions=consort.DynamicExpression(dynamic_tokens='mf', ),
        string_contact_points=consort.AttachmentExpression(
            attachments=indicatortools.StringContactPoint('pizzicato'),
            scope=scoretools.Voice,
            selector=selectortools.Selector().by_leaf()[0]),
        string_contact_spanner=consort.StringContactSpanner(),
    ),
    rhythm_maker=rhythmmakertools.IncisedRhythmMaker(
        incise_specifier=rhythmmakertools.InciseSpecifier(
            fill_with_notes=False,
            prefix_counts=(1, 1, 1, 1, 2, 1),
            prefix_talea=(1, ),
            suffix_talea=(1, ),
            suffix_counts=(0, ),
            talea_denominator=16,
        ), ),
from abjad.tools import indicatortools
from abjad.tools import rhythmmakertools
from abjad.tools import scoretools
from abjad.tools import selectortools
from abjad.tools import spannertools


guitar_continuo_music_specifier = consort.MusicSpecifier(
    attachment_handler=consort.AttachmentHandler(
        accents=consort.AttachmentExpression(
            attachments=indicatortools.Articulation('accent'),
            selector=selectortools.Selector()
                .by_leaf()
                .by_run(scoretools.Note)
                .by_counts(
                    [3, 3, 4],
                    cyclic=True,
                    overhang=True,
                    fuse_overhang=True,
                    )
                [0],
            ),
        dynamic_expressions=consort.DynamicExpression(
            start_dynamic_tokens='p mp',
            only_first=True,
            ),
        slur=consort.AttachmentExpression(
            attachments=spannertools.Slur(),
            selector=selectortools.Selector()
                .by_leaf()
                .by_run(scoretools.Note)
                .by_counts(
         indicatortools.BowContactPoint(0),
         indicatortools.BowContactPoint((1, 8)),
         indicatortools.BowContactPoint(0),
         indicatortools.BowContactPoint((1, 8)),
         indicatortools.BowContactPoint((1, 4)),
         indicatortools.BowContactPoint((1, 8)),
         indicatortools.BowContactPoint((3, 8)),
         indicatortools.BowContactPoint((1, 4)),
         indicatortools.BowContactPoint((3, 8)),
         indicatortools.BowContactPoint((1, 2)),
         indicatortools.BowContactPoint((5, 8)),
         indicatortools.BowContactPoint((3, 4)),
         indicatortools.BowContactPoint((7, 8)),
         indicatortools.BowContactPoint(1),
     ),
     selector=selectortools.Selector().by_leaf().flatten(),
 ),
 bow_contact_spanner=spannertools.BowContactSpanner(),
 dynamic_expressions=consort.DynamicExpression(
     dynamic_tokens='p ppp p ppp p ppp f', ),
 string_contact_points=consort.AttachmentExpression(
     attachments=(
         indicatortools.StringContactPoint('ordinario'),
         indicatortools.StringContactPoint('sul tasto'),
         indicatortools.StringContactPoint('molto sul tasto'),
     ),
     scope=scoretools.Voice,
     selector=selectortools.Selector().append_callback(
         consort.PhrasedSelectorCallback()).by_counts(
             [1, -2, 1, -2, 1, -1],
             cyclic=True,
from abjad.tools import rhythmmakertools
from abjad.tools import selectortools
from abjad.tools import spannertools

string_legato_music_specifier = consort.MusicSpecifier(
    attachment_handler=consort.AttachmentHandler(
        dynamic_expressions=consort.DynamicExpression(
            dynamic_tokens='p mf',
            start_dynamic_tokens='niente fp',
            stop_dynamic_tokens='niente ff'),
        glissando=consort.Glissando(),
        tenuti=consort.AttachmentExpression(
            attachments=indicatortools.Articulation('tenuto'),
            selector=selectortools.Selector().by_leaf().by_logical_tie(
                pitched=True).by_pattern(
                    patterntools.Pattern(
                        indices=[3],
                        period=4,
                    ), )[0]),
        tremolo_trill=consort.AttachmentExpression(
            attachments=(
                spannertools.ComplexTrillSpanner(interval='+m3'),
                spannertools.StemTremoloSpanner(),
                spannertools.ComplexTrillSpanner(interval='+m3'),
                spannertools.ComplexTrillSpanner(interval='+M2'),
                spannertools.StemTremoloSpanner(),
            ),
            selector=selectortools.Selector().by_leaf().by_logical_tie(
                pitched=True).by_pattern(
                    patterntools.Pattern(
                        indices=[0, 1, 2],
                        period=4,
# -*- encoding: utf-8 -*-
import consort
import ersilia
from abjad.tools import indicatortools
from abjad.tools import patterntools
from abjad.tools import pitchtools
from abjad.tools import rhythmmakertools
from abjad.tools import selectortools
from abjad.tools import spannertools
from ersilia.materials import abbreviations

percussion_low_pedal_music_specifier = consort.MusicSpecifier(
    attachment_handler=consort.AttachmentHandler(
        accents=consort.AttachmentExpression(
            attachments=indicatortools.Articulation('accent'),
            selector=selectortools.Selector().by_logical_tie().get_slice(
                start=1, apply_to_each=False)[0]),
        bass_drum_indication=consort.AttachmentExpression(
            attachments=consort.AttachmentExpression(
                attachments=abbreviations.make_text_spanner('bass drum'),
                selector=selectortools.select_pitched_runs(),
            ),
            selector=selectortools.Selector().by_logical_tie().by_pitch(
                pitches=ersilia.Percussion.BASS_DRUM).by_contiguity().by_leaf(
                )),
        tam_tam_indication=consort.AttachmentExpression(
            attachments=consort.AttachmentExpression(
                attachments=abbreviations.make_text_spanner('tam'),
                selector=selectortools.select_pitched_runs(),
            ),
            selector=selectortools.Selector().by_logical_tie().by_pitch(
                pitches=ersilia.Percussion.TAM_TAM).by_contiguity().by_leaf()),
示例#13
0
# -*- encoding: utf-8 -*-
import consort
from abjad.tools import indicatortools
from abjad.tools import selectortools

intermittent_circular = consort.AttachmentExpression(
    attachments=indicatortools.BowMotionTechnique('circular'),
    selector=selectortools.Selector().by_leaf()[:-1].by_counts(
        [-3, 1, -4, 2, -1, 3, -5, 2], ).flatten(),
)
示例#14
0
percussion_marimba_agitato_music_specifier = consort.MusicSpecifier(
    attachment_handler=consort.AttachmentHandler(
        accents=consort.AttachmentExpression(
            attachments=indicatortools.Articulation('accent'),
            selector=selectortools.select_pitched_runs()[0],
        ),
        chords=consort.AttachmentExpression(
            attachments=[
                consort.ChordExpression(chord_expr=[0, 3]),
                consort.ChordExpression(chord_expr=[0, 5]),
            ],
            is_destructive=True,
            selector=selectortools.Selector().by_logical_tie(
                pitched=True).by_duration('==', (1, 16),
                                          preprolated=True).by_pattern(
                                              patterntools.Pattern(
                                                  indices=[0, 3],
                                                  period=7,
                                              ), ),
        ),
        clef_spanner=consort.ClefSpannerExpression(),
        dynamic_expressions=consort.DynamicExpression(
            division_period=2,
            dynamic_tokens='mf mp fff',
            start_dynamic_tokens='f',
            stop_dynamic_tokens='mf',
        ),
        staccati=consort.AttachmentExpression(
            attachments=indicatortools.Articulation('staccato'),
            selector=selectortools.Selector().by_logical_tie(
                pitched=True).by_duration('==', (1, 16), preprolated=True)[0]),
示例#15
0
# -*- encoding: utf-8 -*-
import consort
from abjad.tools import indicatortools
from abjad.tools import rhythmmakertools
from abjad.tools import scoretools
from abjad.tools import selectortools
from abjad.tools import spannertools
from ersilia.materials import abbreviations


shaker_tremolo_music_specifier = consort.MusicSpecifier(
    attachment_handler=consort.AttachmentHandler(
        accents=consort.AttachmentExpression(
            attachments=indicatortools.Articulation('accent'),
            selector=selectortools.Selector()
                .by_leaf()
                .by_run(scoretools.Note)
                [0],
            ),
        dynamic_expression=consort.DynamicExpression(
            dynamic_tokens='fp',
            ),
        percussion_staff=abbreviations.percussion_staff,
        text_spanner=consort.AttachmentExpression(
            attachments=abbreviations.make_text_spanner('shaker'),
            selector=selectortools.Selector().by_leaf(),
            ),
        tremolo_spanner=spannertools.StemTremoloSpanner(),
        ),
    color='blue',
    labels=['shakers'],
    pitch_handler=consort.AbsolutePitchHandler(
import consort
from abjad.tools import indicatortools
from abjad.tools import markuptools
from abjad.tools import pitchtools
from abjad.tools import selectortools
from abjad.tools import spannertools

laissez_vibrer = consort.AttachmentExpression(
    attachments=[
        [
            indicatortools.LaissezVibrer(),
            markuptools.Markup(
                'L.V', Up).caps().tiny().pad_around(0.5).box().pad_around(0.5)
        ],
    ],
    selector=selectortools.Selector().by_logical_tie(
        pitched=True).by_contiguity().by_length('==', 1).by_leaf()[0])

black_keys_spanner = spannertools.make_solid_text_spanner_with_nib(
    markuptools.Markup.flat().vcenter(), )

chromatic_keys_spanner = spannertools.make_solid_text_spanner_with_nib(
    markuptools.Markup.concat([
        markuptools.Markup.natural(),
        markuptools.Markup.hspace(0.1),
        markuptools.Markup.flat(),
    ]).vcenter(), )

white_keys_spanner = spannertools.make_solid_text_spanner_with_nib(
    markuptools.Markup.natural().vcenter(), )

percussion_staff = consort.AttachmentExpression(attachments=[
### SEGMENT MAKER ###

segment_maker = armilla.ArmillaSegmentMaker(
    desired_duration_in_seconds=60,
    discard_final_silence=False,
    name='The Long Dune (ii)',
    repeat=False,
    tempo=indicatortools.Tempo((1, 4), 36),
)

### ATTACHMENTS ###

dietro_ponticello = consort.AttachmentExpression(
    attachments=indicatortools.StringContactPoint('dietro ponticello'),
    scope=scoretools.Voice,
    selector=selectortools.Selector().by_leaf(),
)
dynamics_a = dynamic_expressions = consort.DynamicExpression(
    dynamic_tokens='p mf p ppp f p ff', )
dynamics_b = dynamic_expressions = consort.DynamicExpression(
    dynamic_tokens='f p f mf ff p fff f fff mf fff', )
intermittent_accents = armilla.materials.intermittent_accents
intermittent_circular = armilla.materials.intermittent_circular
intermittent_glissandi = armilla.materials.intermittent_glissandi
intermittent_tremoli = armilla.materials.intermittent_tremoli

### MUSIC SPECIFIERS ###

lh_dietro = new(
    armilla.materials.left_hand_dietro_music_specifier,
    minimum_phrase_duration=durationtools.Duration(1, 4),
示例#18
0
from abjad.tools import indicatortools
from abjad.tools import patterntools
from abjad.tools import rhythmmakertools
from abjad.tools import selectortools
from abjad.tools import spannertools
from ersilia.materials import abbreviations

wind_tremolo_music_specifier = consort.MusicSpecifier(
    attachment_handler=consort.AttachmentHandler(
        outer_accents=consort.AttachmentExpression(
            attachments=indicatortools.Articulation('accent'),
            selector=selectortools.select_pitched_runs()[0],
        ),
        inner_accents=consort.AttachmentExpression(
            attachments=indicatortools.Articulation('accent'),
            selector=selectortools.Selector().by_logical_tie().by_duration(
                '==', (1, 8), preprolated=True).with_next_leaf()),
        dynamic_expressions=consort.DynamicExpression(
            division_period=2,
            dynamic_tokens='p ppp mp',
            start_dynamic_tokens='fp',
            stop_dynamic_tokens='mf ppp',
        ),
        trill_spanner=consort.AttachmentExpression(
            attachments=spannertools.ComplexTrillSpanner('M2'),
            selector=selectortools.select_pitched_runs(),
        ),
    ),
    color='red',
    labels=[],
    pitch_handler=consort.PitchClassPitchHandler(
        deviations=[0, 1],
string_agitato_music_specifier = consort.MusicSpecifier(
    attachment_handler=consort.AttachmentHandler(
        dynamic_expressions=consort.DynamicExpression(
            division_period=2,
            dynamic_tokens='mp fff',
            start_dynamic_tokens='f p',
            stop_dynamic_tokens='p f',
        ),
        harmonics=consort.AttachmentExpression(
            attachments=consort.HarmonicExpression('P4'),
            is_destructive=True,
            selector=selectortools.Selector().by_logical_tie(
                pitched=True).by_duration('==', (1, 16),
                                          preprolated=True).by_pattern(
                                              pattern=patterntools.Pattern(
                                                  indices=[2, 4],
                                                  period=5,
                                              ), )),
        slur=consort.AttachmentExpression(
            attachments=spannertools.Slur(),
            selector=selectortools.Selector().by_logical_tie(
                pitched=True).by_duration(
                    '==', (1, 16),
                    preprolated=True).by_contiguity().by_length('>',
                                                                1).by_leaf()),
        staccati=consort.AttachmentExpression(
            attachments=indicatortools.Articulation('staccato'),
            selector=selectortools.Selector().by_logical_tie(
                pitched=True).by_duration(
                    '==', (1, 16),
import consort
from abjad.tools import indicatortools
from abjad.tools import rhythmmakertools
from abjad.tools import scoretools
from abjad.tools import selectortools
from ersilia.materials import abbreviations

piano_pointillist_music_specifier = consort.MusicSpecifier(
    attachment_handler=consort.AttachmentHandler(
        dynamic_expressions=consort.DynamicExpression(
            start_dynamic_tokens='ppp',
            only_first=True,
        ),
        mordent=consort.AttachmentExpression(
            attachments=indicatortools.Articulation('mordent'),
            selector=selectortools.Selector().by_class(
                scoretools.Note).by_logical_tie()[0]),
        tenuti=consort.AttachmentExpression(
            attachments=indicatortools.Articulation('tenuto'),
            selector=selectortools.Selector().by_logical_tie(pitched=True)[0]),
    ),
    color='darkyellow',
    labels=['pedaled'],
    pitch_handler=consort.PitchClassPitchHandler(
        logical_tie_expressions=(
            None,
            consort.ChordExpression([-2, 3]),
            consort.ChordExpression([0, 3]),
            None,
            consort.ChordExpression([-4, 5]),
        ),
        pitch_specifier=abbreviations.agitato_pitch_specifier,
示例#21
0
# -*- encoding: utf-8 -*-
import consort
from abjad.tools import selectortools


intermittent_glissandi = consort.AttachmentExpression(
    attachments=consort.Glissando(
        allow_repeat_pitches=False,
        allow_ties=False,
        parenthesize_repeated_pitches=True,
        ),
    selector=selectortools.Selector()
        .by_leaf()
        [:-1]
        .append_callback(consort.AfterGraceSelectorCallback())
        .by_counts(
            [-3, 4, -2, 3, -1, 4],
            cyclic=True,
            overhang=True,
            fuse_overhang=True,
            rotate=True,
            ),
    )
示例#22
0
import ersilia
from abjad.tools import patterntools
from abjad.tools import pitchtools
from abjad.tools import rhythmmakertools
from abjad.tools import selectortools
from abjad.tools import indicatortools
from abjad.tools import spannertools
from ersilia.materials import abbreviations


percussion_temple_block_fanfare_music_specifier = consort.MusicSpecifier(
    attachment_handler=consort.AttachmentHandler(
        accent=consort.AttachmentExpression(
            attachments=indicatortools.Articulation('accent'),
            selector=selectortools.Selector()
                .by_logical_tie(pitched=True)
                .by_duration('>', (1, 16), preprolated=True)
                [0]
            ),
        chords=consort.AttachmentExpression(
            attachments=(
                consort.ChordExpression(
                    chord_expr=pitchtools.PitchSegment([
                        ersilia.Percussion.WOOD_BLOCK_5,
                        ersilia.Percussion.WOOD_BLOCK_4,
                        ]),
                    ),
                None,
                consort.ChordExpression(
                    chord_expr=pitchtools.PitchSegment([
                        ersilia.Percussion.WOOD_BLOCK_4,
                        ersilia.Percussion.WOOD_BLOCK_3,
# -*- 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

percussion_marimba_ostinato_music_specifier = consort.MusicSpecifier(
    attachment_handler=consort.AttachmentHandler(
        clef_spanner=consort.ClefSpannerExpression(),
        deadstroke=consort.AttachmentExpression(
            attachments=indicatortools.Articulation('stopped'),
            selector=selectortools.Selector().by_logical_tie(
                pitched=True).by_duration(
                    '==', (1, 16), preprolated=True).by_contiguity().by_length(
                        '==', 1).by_leaf()[0]),
        dynamic_expressions=consort.DynamicExpression(dynamic_tokens='p', ),
        slur=consort.AttachmentExpression(
            attachments=spannertools.Slur(),
            selector=selectortools.Selector().by_logical_tie(
                pitched=True).by_duration(
                    '==', (1, 16),
                    preprolated=True).by_contiguity().by_length('>',
                                                                1).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]),
# -*- encoding: utf-8 -*-
import consort
from abjad.tools import durationtools
from abjad.tools import rhythmmakertools
from abjad.tools import selectortools

left_hand_glissandi_music_specifier = consort.MusicSpecifier(
    attachment_handler=consort.AttachmentHandler(
        glissando=consort.AttachmentExpression(
            attachments=consort.Glissando(
                allow_repeat_pitches=False,
                allow_ties=False,
                parenthesize_repeated_pitches=True,
            ),
            selector=selectortools.Selector().by_leaf().append_callback(
                consort.AfterGraceSelectorCallback())), ),
    grace_handler=consort.GraceHandler(
        counts=(0, 1, 2, 0, 0, 0),
        only_if_preceded_by_nonsilence=True,
    ),
    pitch_handler=consort.AbsolutePitchHandler(
        deviations=(0, 0, 0, 0, 0.5, 0),
        forbid_repetitions=True,
        grace_expressions=(
            consort.HarmonicExpression('P4'),
            consort.HarmonicExpression('M3'),
            consort.HarmonicExpression('P5'),
        ),
        pitch_specifier=consort.PitchSpecifier(
            pitch_segments=(
                "a c' a a c'",
# -*- encoding: utf-8 -*-
import consort
from abjad.tools import indicatortools
from abjad.tools import markuptools
from abjad.tools import patterntools
from abjad.tools import rhythmmakertools
from abjad.tools import selectortools
from ersilia.materials import abbreviations

pitch_pipe_music_specifier = consort.MusicSpecifier(
    attachment_handler=consort.AttachmentHandler(
        accents=consort.AttachmentExpression(
            attachments=indicatortools.Articulation('accent'),
            selector=selectortools.Selector().by_logical_tie().get_slice(
                start=1, apply_to_each=False)[0]),
        dynamic_expressions=consort.DynamicExpression(
            division_period=2,
            dynamic_tokens='p ppp mf',
            start_dynamic_tokens='niente fp',
        ),
        inhale_exhale=consort.AttachmentExpression(
            attachments=[
                markuptools.Markup(
                    'exhale', Up).italic().smaller().pad_around(0.5).box(),
                markuptools.Markup(
                    'inhale', Up).italic().smaller().pad_around(0.5).box(),
                markuptools.Markup(
                    'inhale', Up).italic().smaller().pad_around(0.5).box(),
            ],
            selector=selectortools.select_pitched_runs()[0],
        ),
# -*- encoding: utf-8 -*-
import consort
from abjad.tools import indicatortools
from abjad.tools import rhythmmakertools
from abjad.tools import selectortools
from ersilia.materials import abbreviations


string_pointillist_music_specifier = consort.MusicSpecifier(
    attachment_handler=consort.AttachmentHandler(
        mordents=consort.AttachmentExpression(
            attachments=indicatortools.Articulation('mordent'),
            selector=selectortools.Selector()
                .by_logical_tie(pitched=True)
                [0]
            ),
        dynamic_expressions=consort.DynamicExpression(
            start_dynamic_tokens='ppp',
            only_first=True,
            ),
        text_spanner=consort.AttachmentExpression(
            attachments=consort.AttachmentExpression(
                attachments=abbreviations.make_text_spanner('pizz.'),
                selector=selectortools.Selector().by_leaf(),
                ),
            selector=selectortools.Selector().by_leaf(),
            ),
        ),
    color='darkyellow',
    labels=[],
    pitch_handler=consort.PitchClassPitchHandler(
# -*- encoding: utf-8 -*-
import consort
from abjad.tools import selectortools
from abjad.tools import spannertools

intermittent_tremoli = consort.AttachmentExpression(
    attachments=spannertools.StemTremoloSpanner(),
    selector=selectortools.Selector().by_leaf()[:-1].by_counts(
        [-7, 2, -3, 1], ),
)