Source code for tsmakers.SilentTimespan

import abjad


[docs]class SilentTimespan(abjad.Timespan): r""" A silent timespan. """ ### CLASS VARIABLES ### __slots__ = ( "_layer", "_voice_name", "_handler", ) ### INITIALIZER ### def __init__( self, start_offset=abjad.NegativeInfinity(), stop_offset=abjad.Infinity(), layer=None, voice_name=None, handler=None, ): abjad.Timespan.__init__( self, start_offset=start_offset, stop_offset=stop_offset, ) if layer is not None: layer = int(layer) self._layer = layer self._voice_name = voice_name self._handler = handler
[docs] def __str__(self): return abjad.storage(self)
[docs] def __repr__(self): return abjad.storage(self)
### PRIVATE METHODS ### def _as_postscript( self, postscript_x_offset, postscript_y_offset, postscript_scale, ): start = float(self.start_offset) * postscript_scale start -= postscript_x_offset stop = float(self.stop_offset) * postscript_scale stop -= postscript_x_offset ps = abjad.Postscript() ps = ps.moveto(start, postscript_y_offset) ps = ps.setdash([0.5]) ps = ps.lineto(stop, postscript_y_offset) ps = ps.stroke() ps = ps.moveto(start, postscript_y_offset + 0.75) ps = ps.setdash() ps = ps.lineto(start, postscript_y_offset - 0.75) ps = ps.stroke() ps = ps.moveto(stop, postscript_y_offset + 0.75) ps = ps.lineto(stop, postscript_y_offset - 0.75) ps = ps.stroke() if self.layer is not None: ps = ps.moveto(start, postscript_y_offset) ps = ps.rmoveto(0.25, 0.5) # ps = ps.scale(0.8, 0.8) ps = ps.show(str(self.layer)) # ps = ps.scale(1.25, 1.25) return ps ### PUBLIC PROPERTIES ### @property def forbid_fusing(self): return False @property def forbid_splitting(self): return False @property def is_left_broken(self): return False @property def is_right_broken(self): return False @property def layer(self): return self._layer @property def minimum_duration(self): return 0 @property def voice_name(self): return self._voice_name @property def handler(self): return self._handler