def make_mixed_segmented_fields_score(): score = Score([]) staff = Staff([]) staff.accidental.style = 'forget' score.append(staff) duration = Fraction(1, 16) for field in manifolds.etc.pitch.mixed_segmented_fields: for segment in field: measure = AnonymousMeasure([]) measure.denominator = 16 tuplet = FixedDurationTuplet((3, 8), []) measure.append(tuplet) if min(segment) <= -1: measure.clef.forced = Clef('bass') else: measure.clef.forced = Clef('treble') notes = [Note(x, duration) for x in segment] tuplet.extend(notes) if 31 < max(segment): spanner = Octavation(tuplet) spanner.start = 1 measure.insert(0, Rest((1, 16))) measure.append(Rest((1, 16))) staff.append(measure) measure.formatter.number.self = 'comment' measure.barline.kind = '||' measure.breaks.line = True measure.barline.kind = '|.' score.rest.transparent = True score.meter.break_visibility = Function('end-of-line-invisible') score.clef.break_visibility = Function('end-of-line-invisible') pitchtools.make_sharp(score) score.tupletnumber.stencil = False score.tupletbracket.stencil = False #indicator = FixedSystemsIndicator( # (0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200), 1) #layout.apply_fixed_systems_indicator(staff, indicator) staves = StaffAlignmentOffsets(0) systems = SystemYOffsets(20, 10, 1) positioning = FixedStaffPositioning(systems, staves) layout.apply_fixed_staff_positioning(staff, positioning) return score
def make_two_staff_unordered_cells_score(): cells = manifolds.etc.pitch.unordered_cells_sequence directions = manifolds.etc.pitch.segmentation_series harmonic_walk = sequencetools.flatten_sequence(manifolds.etc.pitch.harmonic_walk) score = Score([]) piano_staff = PianoStaff([]) score.append(piano_staff) treble = Staff([]) treble.accidental.style = "forget" treble.clef.forced = Clef("treble") bass = Staff([]) bass.accidental.style = "forget" bass.clef.forced = Clef("bass") piano_staff.append(treble) piano_staff.append(bass) duration = Fraction(1, 16) for cell_number, cell in enumerate(cells): measure = AnonymousMeasure([]) notes = [Note(pitch, duration) for pitch in cell] measure.extend(notes) rest_measure = clone.unspan([measure])[0] for i, note in enumerate(rest_measure): rest_measure[i] = Rest(note.duration.written) pitches = [note.pitch for note in notes] clef = pitchtools.suggest_clef(pitches) if clef == Clef("treble"): treble.append(measure) bass.append(rest_measure) else: treble.append(rest_measure) bass.append(measure) if 26 < max(cell): octavation = Octavation(measure[:]) octavation.start = 1 if directions[cell_number % 16] == -1: direction = "L" else: direction = "R" field_number = (cell_number + 6) % 8 + 1 center_pitch = harmonic_walk[cell_number % len(harmonic_walk)] chord = Chord(measure[0]) notehead = NoteHead(None, center_pitch) notehead.style = "harmonic" notehead.color = "blue" chord.append(notehead) first_leaf = treble[-1].leaves[0] first_leaf.markup.up.append(str(cell_number)) label = r"\line { %s%s \with-color #blue (%s) }" % (direction, field_number, center_pitch) first_leaf.markup.up.append(label) front, back = Fraction(1, 16), Fraction(1, 32) layout.insert_measure_padding(score, front, back) lengths = manifolds.etc.pitch.harmonic_walk_lengths parts = sequencetools.partition_by_lengths(treble[:], lengths, cyclic=True) for part in parts: if 1 < len(part): bracket = Bracket(part) bracket.staff_padding = None parts = sequencetools.partition_by_lengths(bass[:], lengths, cyclic=True) for part_number, part in enumerate(parts): label = r"\with-color #blue \circle{ %s }" % (part_number + 1) part[0][1].markup.down.append(label) layout.line_break_every_prolated(treble, Fraction(58, 16)) layout.line_break_every_prolated(bass, Fraction(58, 16)) staves = StaffAlignmentOffsets(0, -10) systems = SystemYOffsets(45, 5) positioning = FixedStaffPositioning(systems, staves) layout.apply_fixed_staff_positioning(treble, positioning) score.rest.transparent = True return score