Esempio n. 1
0
 def _make_bow_contact_point_overrides(
     self,
     bow_contact_point=None,
     bundle=None,
 ):
     import abjad
     if bow_contact_point is None:
         return
     override_ = abjad.LilyPondGrobOverride(
         grob_name='NoteHead',
         once=True,
         property_path='stencil',
         value=abjad.Scheme('ly:text-interface::print'),
     )
     string = override_.override_string
     bundle.grob_overrides.append(string)
     override_ = abjad.LilyPondGrobOverride(
         grob_name='NoteHead',
         once=True,
         property_path='text',
         value=bow_contact_point.markup,
     )
     string = override_.override_string
     bundle.grob_overrides.append(string)
     y_offset = float((4 * bow_contact_point.contact_point) - 2)
     override_ = abjad.LilyPondGrobOverride(
         grob_name='NoteHead',
         once=True,
         property_path='Y-offset',
         value=y_offset,
     )
     string = override_.override_string
     bundle.grob_overrides.append(string)
Esempio n. 2
0
 def _get_lilypond_format_bundle(self, leaf):
     import abjad
     bundle = self._get_basic_lilypond_format_bundle(leaf)
     if leaf is self[-1] and not self.forbid_restarting:
         bundle.after.commands.append(r'\stopStaff')
         bundle.after.commands.append(r'\startStaff')
     if leaf is self[0]:
         bundle.before.commands.append(r'\stopStaff')
         if isinstance(self.lines, int):
             override = abjad.LilyPondGrobOverride(
                 lilypond_type='Staff',
                 grob_name='StaffSymbol',
                 once=True,
                 property_path='line-count',
                 value=self.lines,
             )
             string = override.override_string
             bundle.before.commands.append(string)
         else:
             override = abjad.LilyPondGrobOverride(
                 lilypond_type='Staff',
                 grob_name='StaffSymbol',
                 once=True,
                 property_path='line-positions',
                 value=abjad.SchemeVector(self.lines),
             )
             string = override.override_string
             bundle.before.commands.append(string)
         bundle.before.commands.append(r'\startStaff')
     return bundle
Esempio n. 3
0
def staff_group_space_after(element, padding):
    """Adds overrides to set spacing between a staff group and the next staff."""
    basic_distance_override = abjad.LilyPondGrobOverride(
        is_once=True,
        grob_name='StaffGrouper',
        property_path=(
            'staffgroup-staff-spacing',
            'basic-distance',
        ),
        value=padding,
    )

    abjad.attach(basic_distance_override, element)

    minimum_distance_override = abjad.LilyPondGrobOverride(
        is_once=True,
        grob_name='StaffGrouper',
        property_path=(
            'staffgroup-staff-spacing',
            'minimum-distance',
        ),
        value=padding,
    )

    abjad.attach(minimum_distance_override, element)

    padding_override = abjad.LilyPondGrobOverride(
        is_once=True,
        grob_name='StaffGrouper',
        property_path=(
            'staffgroup-staff-spacing',
            'padding',
        ),
        value=padding,
    )

    abjad.attach(padding_override, element)

    stretchability_override = abjad.LilyPondGrobOverride(
        is_once=True,
        grob_name='StaffGrouper',
        property_path=(
            'staffgroup-staff-spacing',
            'stretchability',
        ),
        value=0,
    )

    abjad.attach(stretchability_override, element)
Esempio n. 4
0
 def _get_lilypond_format_bundle(self, leaf):
     import abjad
     bundle = self._get_basic_lilypond_format_bundle(leaf)
     prototype = (
         abjad.Rest,
         abjad.MultimeasureRest,
         abjad.Skip,
         )
     if isinstance(leaf, prototype):
         return bundle
     logical_tie = abjad.inspect(leaf).get_logical_tie()
     if leaf is logical_tie.head:
         previous_leaf = leaf._get_leaf(-1)
         if (previous_leaf is not None and
             not isinstance(previous_leaf, prototype) and
             abjad.inspect(previous_leaf).get_spanners(type(self))):
             grob_override = abjad.LilyPondGrobOverride(
                 grob_name='TrillSpanner',
                 once=True,
                 property_path=(
                     'bound-details',
                     'left',
                     'text',
                     ),
                 value=abjad.Markup(r'\null'),
                 )
             string = grob_override.override_string
             bundle.grob_overrides.append(string)
         if self.interval is not None:
             string = r'\pitchedTrill'
             bundle.opening.spanners.append(string)
             if isinstance(leaf, abjad.Note):
                 written_pitch = leaf.written_pitch
             elif isinstance(leaf, abjad.Chord):
                 if 0 < self.interval.semitones:
                     written_pitch = max(leaf.written_pitches)
                 elif self.interval.semitones < 0:
                     written_pitch = min(leaf.written_pitches)
             trill_pitch = written_pitch.transpose(self.interval)
             string = r'\startTrillSpan {!s}'.format(trill_pitch)
         else:
             string = r'\startTrillSpan'
         bundle.right.trill_pitches.append(string)
     if leaf is logical_tie.tail:
         next_leaf = leaf._get_leaf(1)
         if next_leaf is not None:
             string = r'<> \stopTrillSpan'
             bundle.after.commands.append(string)
         else:
             string = r'\stopTrillSpan'
             bundle.right.spanner_stops.append(string)
     return bundle
Esempio n. 5
0
 def _make_pizzicato_overrides(
     self,
     bundle=None,
 ):
     import abjad
     style = abjad.SchemeSymbol('cross')
     override_ = abjad.LilyPondGrobOverride(
         grob_name='NoteHead',
         once=True,
         property_path='style',
         value=style,
     )
     string = override_.override_string
     bundle.grob_overrides.append(string)
Esempio n. 6
0
 def _make_glissando_overrides(
     self,
     bow_motion_technique=None,
     bundle=None,
 ):
     import abjad
     if bow_motion_technique is not None:
         style = abjad.SchemeSymbol(bow_motion_technique.glissando_style)
         override_ = abjad.LilyPondGrobOverride(
             grob_name='Glissando',
             once=True,
             property_path='style',
             value=style,
         )
         string = override_.override_string
         bundle.grob_overrides.append(string)