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
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
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)
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)
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
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