Example #1
0
 def _copy_with_marks_but_without_children_or_spanners(self):
     new = Leaf._copy_with_marks_but_without_children_or_spanners(self)
     new[:] = []
     for note_head in self.note_heads:
         new_note_head = copy.copy(note_head)
         new.append(new_note_head)
     return new
Example #2
0
    def __getnewargs__(self):
        '''Gets new arguments.

        Returns tuple.
        '''
        result = []
        result.append(self.written_pitches)
        result.extend(Leaf.__getnewargs__(self))
        return tuple(result)
Example #3
0
 def __init__(self, *args, **kwargs):
     from abjad.tools import lilypondparsertools
     from abjad.tools import notetools
     if len(args) == 1 and isinstance(args[0], str):
         string = '{{ {} }}'.format(args[0])
         parsed = lilypondparsertools.LilyPondParser()(string)
         assert len(parsed) == 1 and isinstance(parsed[0], Leaf)
         args = [parsed[0]]
     is_cautionary = False
     is_forced = False
     if len(args) == 1 and isinstance(args[0], Leaf):
         leaf = args[0]
         written_duration = leaf.written_duration
         lilypond_multiplier = leaf.lilypond_duration_multiplier
         if hasattr(leaf, 'written_pitch'):
             pitch = leaf.written_pitch
             is_cautionary = leaf.note_head.is_cautionary
             is_forced = leaf.note_head.is_forced
         elif hasattr(leaf, 'written_pitches') and \
             0 < len(leaf.written_pitches):
             pitch = leaf.written_pitches[0]
             is_cautionary = leaf.note_heads[0].is_cautionary
             is_forced = leaf.note_heads[0].is_forced
         else:
             pitch = None
         self._copy_override_and_set_from_leaf(leaf)
     elif len(args) == 2:
         pitch, written_duration = args
         lilypond_multiplier = None
     elif len(args) == 3:
         pitch, written_duration, lilypond_multiplier = args
     else:
         message = 'can not initialize note from {!r}.'
         raise ValueError(message.format(args))
     Leaf.__init__(self, written_duration, lilypond_multiplier)
     if pitch is not None:
         self.note_head = notetools.NoteHead(
             written_pitch=pitch,
             is_cautionary=is_cautionary,
             is_forced=is_forced
             )
     else:
         self.note_head = None
     self._initialize_keyword_values(**kwargs)
Example #4
0
 def __init__(self, *args, **kwargs):
     from abjad.tools import lilypondparsertools
     if len(args) == 1 and isinstance(args[0], str):
         input = '{{ {} }}'.format(args[0])
         parsed = lilypondparsertools.LilyPondParser()(input)
         assert len(parsed) == 1 and isinstance(parsed[0], Leaf)
         args = [parsed[0]]
     if len(args) == 1 and isinstance(args[0], Leaf):
         leaf = args[0]
         written_duration = leaf.written_duration
         lilypond_multiplier = leaf.lilypond_duration_multiplier
         self._copy_override_and_set_from_leaf(leaf)
     elif len(args) == 1 and not isinstance(args[0], str):
         written_duration = args[0]
         lilypond_multiplier = None
     elif len(args) == 2:
         written_duration, lilypond_multiplier = args
     else:
         raise ValueError('can not initialize rest from "%s".' % str(args))
     Leaf.__init__(self, written_duration, lilypond_multiplier)
     self._initialize_keyword_values(**kwargs)
Example #5
0
 def __init__(self, *args, **kwargs):
     from abjad.tools import lilypondparsertools
     if len(args) == 1 and isinstance(args[0], str):
         input = '{{ {} }}'.format(args[0])
         parsed = lilypondparsertools.LilyPondParser()(input)
         assert len(parsed) == 1 and isinstance(parsed[0], Leaf)
         args = [parsed[0]]
     is_cautionary = []
     is_forced = []
     if len(args) == 1 and isinstance(args[0], Leaf):
         leaf = args[0]
         written_duration = leaf.written_duration
         lilypond_multiplier = leaf.lilypond_duration_multiplier
         if hasattr(leaf, 'written_pitch'):
             written_pitches = [leaf.written_pitch]
             is_cautionary = [leaf.note_head.is_cautionary]
             is_forced = [leaf.note_head.is_forced]
         elif hasattr(leaf, 'written_pitches'):
             written_pitches = leaf.written_pitches
             is_cautionary = [x.is_cautionary for x in leaf.note_heads]
             is_forced = [x.is_forced for x in leaf.note_heads]
         else:
             written_pitches = []
         self._copy_override_and_set_from_leaf(leaf)
     elif len(args) == 2:
         written_pitches, written_duration = args
         lilypond_multiplier = None
     elif len(args) == 3:
         written_pitches, written_duration, lilypond_multiplier = args
     else:
         message = 'can not initialize chord from {!r}.'.format(args)
         raise ValueError(message)
     Leaf.__init__(self, written_duration, lilypond_multiplier)
     self.written_pitches = written_pitches
     for note_head, cautionary, forced in zip(
         self.note_heads, is_cautionary, is_forced):
         note_head.is_cautionary = cautionary
         note_head.is_forced = forced
     self._initialize_keyword_values(**kwargs)
Example #6
0
 def __getnewargs__(self):
     result = []
     result.append(self.written_pitch)
     result.extend(Leaf.__getnewargs__(self))
     return tuple(result)