pcs = list(turquoise_pcs.iterate_payload()) leaves = leaftools.make_leaves(pcs, [Duration(1, 8)]) voice = Voice(leaves) staff = Staff([voice]) score = Score([staff]) lilypond_file = lilypondfiletools.make_basic_lilypond_file(score) voice.consists_commands.add('Horizontal_bracket_engraver') for level in (1, 2): level_sizes = [] for x in turquoise_pcs.iterate_at_level(level): size = len(list(x.iterate_payload())) level_sizes.append(size) for part in sequencetools.partition_sequence_once_by_counts_without_overhang( voice.leaves, level_sizes): spannertools.HorizontalBracketSpanner(part) cur_group = 0 for leaf in voice.leaves: brackets = list(spannertools.get_spanners_attached_to_component( leaf, klass = spannertools.HorizontalBracketSpanner)) if brackets[0][0] is leaf: if brackets[1][0] is leaf: markuptools.Markup(r'\bold { %s }' % cur_group, 'up')(leaf) cur_group += 1 bar_line = score.add_double_bar() spanner = spannertools.Spanner(voice.leaves) spanner.override.staff.bar_line.stencil = False
# -*- coding: utf-8 -*- from abjad.tools import sequencetools from archipel.etc.implementation.data import archipel_numerators_larger from archipel.etc.implementation.utilities import keep_data # divide 19 ice measures into six sections meter_tokens = archipel_numerators_larger[1] meter_tokens = sequencetools.partition_sequence_by_ratio_of_weights(meter_tokens, 6 * [1]) # swap first two sections meter_tokens[:2] = reversed(meter_tokens[:2]) # make tokens measures_per_section = [len(x) for x in meter_tokens] meter_tokens = sequencetools.flatten_sequence(meter_tokens) meter_tokens = [(x, 8) for x in meter_tokens] meter_tokens = sequencetools.partition_sequence_once_by_counts_without_overhang( meter_tokens, measures_per_section) # keep tokens #keep_data(meter_tokens, 'ice_meter_tokens_by_section')