Ejemplo n.º 1
0
 def _populate_pitches(self, voice, pitch_range):
     assert isinstance(pitch_range, pitchtools.PitchRange)
     pitch_numbers = [x for x in self._test_pitch_numbers if x in pitch_range]
     pitch_numbers = sequencetools.remove_repeated_elements(pitch_numbers)
     pitch_numbers = datastructuretools.CyclicTuple(pitch_numbers)
     logical_ties = iterate(voice).by_logical_tie(pitched=True)
     for i, logical_tie in enumerate(logical_ties):
         pitch_number = pitch_numbers[i]
         for note in logical_tie:
             note.written_pitch = pitch_number
Ejemplo n.º 2
0
 def _populate_pitches(self, voice, pitch_range):
     assert isinstance(pitch_range, pitchtools.PitchRange)
     pitch_numbers = [
         x for x in self._test_pitch_numbers if x in pitch_range
     ]
     pitch_numbers = sequencetools.remove_repeated_elements(pitch_numbers)
     pitch_numbers = datastructuretools.CyclicTuple(pitch_numbers)
     logical_ties = iterate(voice).by_logical_tie(pitched=True)
     for i, logical_tie in enumerate(logical_ties):
         pitch_number = pitch_numbers[i]
         for note in logical_tie:
             note.written_pitch = pitch_number
Ejemplo n.º 3
0
    def check_duplicate_ids(expr=None):
        r'''Checks to make sure there are no components with duplicated IDs.

        Returns violators and total.
        '''
        from abjad.tools import sequencetools
        from abjad.tools.topleveltools import iterate
        violators = []
        components = iterate(expr).by_class()
        total_ids = [id(x) for x in components]
        unique_ids = sequencetools.remove_repeated_elements(total_ids)
        if len(unique_ids) < len(total_ids):
            for current_id in unique_ids:
                if 1 < total_ids.count(current_id):
                    violators.extend(
                        [x for x in components if id(x) == current_id])
        return violators, len(total_ids)
Ejemplo n.º 4
0
    def check_duplicate_ids(self):
        r'''Checks to make sure there are no components with duplicated IDs.

        Returns violators and total.
        '''
        from abjad.tools import sequencetools
        from abjad.tools.topleveltools import iterate
        violators = []
        components = iterate(self.expr).by_class()
        total_ids = [id(x) for x in components]
        unique_ids = sequencetools.remove_repeated_elements(total_ids)
        if len(unique_ids) < len(total_ids):
            for current_id in unique_ids:
                if 1 < total_ids.count(current_id):
                    violators.extend([x for x in components
                        if id(x) == current_id])
        return violators, len(total_ids)
Ejemplo n.º 5
0
 def _get_likely_multiplier_of_components(components):
     pass
     from abjad.tools import scoretools
     from abjad.tools import selectiontools
     from abjad.tools import sequencetools
     assert all(isinstance(x, scoretools.Component) for x in components)
     logical_tie_duration_numerators = []
     for expr in \
         iterate(components).by_topmost_logical_ties_and_components():
         if isinstance(expr, selectiontools.LogicalTie):
             logical_tie_duration = expr._preprolated_duration
             logical_tie_duration_numerators.append(
                 logical_tie_duration.numerator)
     if len(sequencetools.remove_repeated_elements(
         logical_tie_duration_numerators)) == 1:
         numerator = logical_tie_duration_numerators[0]
         denominator = mathtools.greatest_power_of_two_less_equal(numerator)
         likely_multiplier = durationtools.Multiplier(
             numerator, denominator)
         return likely_multiplier
Ejemplo n.º 6
0
 def _get_likely_multiplier_of_components(components):
     pass
     from abjad.tools import scoretools
     from abjad.tools import selectiontools
     from abjad.tools import sequencetools
     assert all(isinstance(x, scoretools.Component) for x in components)
     logical_tie_duration_numerators = []
     for expr in \
         iterate(components).by_topmost_logical_ties_and_components():
         if isinstance(expr, selectiontools.LogicalTie):
             logical_tie_duration = expr._preprolated_duration
             logical_tie_duration_numerators.append(
                 logical_tie_duration.numerator)
     if len(sequencetools.remove_repeated_elements(
         logical_tie_duration_numerators)) == 1:
         numerator = logical_tie_duration_numerators[0]
         denominator = mathtools.greatest_power_of_two_less_equal(numerator)
         likely_multiplier = durationtools.Multiplier(
             numerator, denominator)
         return likely_multiplier