Ejemplo n.º 1
0
    def lilypond_duration_string(self):
        """
        Gets LilyPond duration string.

        ..  container:: example

            Gets LilyPond duration string:

                >>> abjad.Duration(3, 16).lilypond_duration_string
                '8.'

        Raises assignability error when duration is not assignable.

        Returns string.
        """
        if not self.is_assignable:
            raise exceptions.AssignabilityError(self)
        undotted_rational = self.equal_or_lesser_power_of_two
        if undotted_rational <= 1:
            undotted_duration_string = str(undotted_rational.denominator)
        elif undotted_rational == type(self)(2, 1):
            undotted_duration_string = r'\breve'
        elif undotted_rational == type(self)(4, 1):
            undotted_duration_string = r'\longa'
        elif undotted_rational == type(self)(8, 1):
            undotted_duration_string = r'\maxima'
        else:
            message = 'can not process undotted rational: {}'
            message = message.format(undotted_rational)
            raise ValueError(message)
        dot_count = self.dot_count
        dot_string = '.' * dot_count
        dotted_duration_string = undotted_duration_string + dot_string
        return dotted_duration_string
Ejemplo n.º 2
0
 def written_duration(self, argument):
     rational = Duration(argument)
     if not rational.is_assignable:
         message = 'not assignable duration: {!r}.'
         message = message.format(rational)
         raise exceptions.AssignabilityError(message)
     self._written_duration = rational
Ejemplo n.º 3
0
 def written_duration(self, argument):
     duration = Duration(argument)
     if not duration.is_assignable:
         message = f'not assignable duration: {duration!r}.'
         raise exceptions.AssignabilityError(message)
     self._written_duration = duration