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)
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
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)
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
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)
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)