def _iterate_vertical_moments_forward_in_expr(expr): #if not isinstance(expr, scoretools.Component): # raise TypeError governors = (expr, ) current_offset, stop_offsets, buffer = \ durationtools.Offset(0), [], [] _buffer_components_starting_with(expr, buffer, stop_offsets) while buffer: vertical_moment = selectiontools.VerticalMoment() offset = durationtools.Offset(current_offset) components = list(buffer) components.sort(key=lambda x: x._get_parentage().score_index) vertical_moment._offset = offset vertical_moment._governors = governors vertical_moment._components = components yield vertical_moment current_offset, stop_offsets = min(stop_offsets), [] _update_buffer(current_offset, buffer, stop_offsets)
def _get_vertical_moment_at(self, offset): return selectiontools.VerticalMoment(self, offset)
def _get_vertical_moment(self, governor=None): offset = self._get_timespan().start_offset if governor is None: governor = self._get_parentage().root return selectiontools.VerticalMoment(governor, offset)
def get_vertical_moment_at(self, offset): r'''Select vertical moment at `offset`. ''' from abjad.tools import selectiontools return selectiontools.VerticalMoment(self, offset)