def post_process_voice_one(voice_one, score): # rehearsal mark markI = abjad.RehearsalMark(number=2) abjad.attach(markI, voice_one[0]) # metronome mark I abjad.attach( abjad.MetronomeMark(None, None, "Quasi Statico"), voice_one[0]) # metronome mark II abjad.attach( abjad.MetronomeMark(None, None, "Lento"), voice_one[6][0]) # metronome mark III abjad.attach( abjad.MetronomeMark(None, None, "Quasi Statico"), voice_one[13]) # metronome mark IV abjad.attach( abjad.MetronomeMark(None, None, "Lento"), voice_one[21]) # REGISTER TRANSPOSITION abjad.mutate(voice_one).transpose(-12) voice_one.append(abjad.Skip((3, 4))) voice_one.append(abjad.Skip((3, 4))) # text script (timbres) priority priority = abjad.LilyPondLiteral( r" \once \override Staff.TextScript.outside-staff-priority = #1100" + " " + r"\once \override Staff.TextScript.padding = #4") abjad.attach(priority, voice_one[-2]) # registers register_two = abjad.Markup( r"""\scale #'(0.5 . 0.5) \column{ \line{ \draw-circle #1.1 #0.3 ##t \draw-circle #1.1 #0.3 ##f } \line{ \draw-circle #1.1 #0.3 ##t \draw-circle #1.1 #0.3 ##t } \line{ \draw-circle #1.1 #0.3 ##f \draw-circle #1.1 #0.3 ##f } \line{ \draw-circle #1.1 #0.3 ##f \draw-circle #1.1 #0.3 ##f } }""", direction=abjad.Up) abjad.attach(register_two, voice_one[-2]) abjad.attach(abjad.Clef("bass"), voice_one[-8]) return voice_one
def _configure_rehearsal_mark(self): mark_num = self.rehearsal_mark voices = self._music_voices for voice in voices: leaf = abjad.inspect(voice).leaf(0) abjad.attach(abjad.RehearsalMark(number=mark_num), leaf) scheme = abjad.Scheme('format-mark-box-alphabet') score = self._score abjad.setting(score).markFormatter = scheme
def post_process_voice_one(voice_one, score): print("post processing voice one") voice_one[-2] = abjad.Skip((3, 4)) voice_one[-1] = abjad.Skip((3, 4)) # change staff voice_one = score['RH_Voice_One'] rh_staff = score['Piano_Staff'][0] lh_staff = score['Piano_Staff'][1] staff_change1 = abjad.StaffChange(lh_staff) staff_change2 = abjad.StaffChange(rh_staff) abjad.attach(staff_change1, voice_one[6][0]) # change clef clef1 = abjad.Clef("bass") abjad.attach(clef1, voice_one[8]) # tempos lento = abjad.MetronomeMark(None, None, "Lento") quasi_statico = abjad.MetronomeMark(None, None, "Quasi Statico") # metronome mark I abjad.attach(lento, voice_one[0]) # metronome mark II abjad.attach(quasi_statico, voice_one[8]) # metronome mark III abjad.attach(lento, voice_one[15][0]) # metronome mark IV abjad.attach(abjad.MetronomeMark(None, None, "subito Quasi Statico"), voice_one[18]) # metronome mark V abjad.attach(lento, voice_one[22]) # metronome mark VI abjad.attach(abjad.MetronomeMark(None, None, "più mosso"), voice_one[25]) # rehearsal mark markI = abjad.RehearsalMark(number=3) abjad.attach(markI, voice_one[0]) scheme = abjad.Scheme("format-mark-box-alphabet") abjad.setting(score).markFormatter = scheme return voice_one
abjad.attach(abjad.StopHairpin(), rest) elif isinstance(previous_leaf, abjad.Rest): pass # attach instruments and clefs print("Adding attachments ...") bar_line = abjad.BarLine("||") metro = abjad.MetronomeMark((1, 4), 60) markup1 = abjad.Markup(r"\bold { A }") markup2 = abjad.Markup(r"\bold { B }") markup3 = abjad.Markup(r"\bold { C }") markup4 = abjad.Markup(r"\bold { D }") markup5 = abjad.Markup(r"\bold { E }") markup6 = abjad.Markup(r"\bold { F }") mark1 = abjad.RehearsalMark(markup=markup1) mark2 = abjad.RehearsalMark(markup=markup2) mark3 = abjad.RehearsalMark(markup=markup3) mark4 = abjad.RehearsalMark(markup=markup4) mark5 = abjad.RehearsalMark(markup=markup5) mark6 = abjad.RehearsalMark(markup=markup6) instruments1 = cyc([abjad.Flute(), abjad.AltoSaxophone(), abjad.Cello()]) clefs1 = cyc([abjad.Clef("treble"), abjad.Clef("treble"), abjad.Clef("bass")]) abbreviations1 = cyc([ abjad.MarginMarkup(markup=abjad.Markup("fl.")), abjad.MarginMarkup(markup=abjad.Markup("sx.")), abjad.MarginMarkup(markup=abjad.Markup("vc.")), ])
def post_process_voice_two(voice_two, score): # REGISTER TRANSPOSITION abjad.mutate(voice_two).transpose(-12) # registers abjad.attach(abjad.LilyPondLiteral(r"\override TextScript.outside-staff-priority = #'1100"), voice_two[0]) register_one = abjad.Markup( r"""\scale #'(0.5 . 0.5) \column{ \line{ \draw-circle #1.1 #0.3 ##t \draw-circle #1.1 #0.3 ##f } \line{ \draw-circle #1.1 #0.3 ##t \draw-circle #1.1 #0.3 ##t } \line{ \draw-circle #1.1 #0.3 ##f \draw-circle #1.1 #0.3 ##t } \line{ \draw-circle #1.1 #0.3 ##f \draw-circle #1.1 #0.3 ##f } }""", direction=abjad.Up) abjad.attach(register_one, voice_two[0]) # metronome mark I abjad.attach( abjad.MetronomeMark((1, 8), (64, 72), "Lento"), voice_two[0]) # rehearsal mark markI = abjad.RehearsalMark(number=4) abjad.attach(markI, voice_two[0]) scheme = abjad.Scheme("format-mark-box-alphabet") abjad.setting(score).markFormatter = scheme # numbered leaves selection = abjad.select(voice_two).leaves() for i, leaf in enumerate(selection): # abjad.attach(abjad.Markup(i), leaf) pass # slurs start_slur = abjad.StartSlur() start_slur_down = abjad.StartSlur(direction=abjad.Down) stop_slur = abjad.StopSlur() abjad.attach(start_slur, voice_two[6]) abjad.attach(stop_slur, voice_two[8]) abjad.attach(abjad.LilyPondLiteral( r""" \shape #'((0 . 0) (0 . 0) (-1.5 . -3) (0 . -8)) Slur """), voice_two[16]) abjad.attach(start_slur, voice_two[16]) abjad.attach(stop_slur, voice_two[17]) abjad.attach(start_slur, voice_two[23]) abjad.attach(stop_slur, voice_two[25]) abjad.attach(start_slur, voice_two[26]) abjad.attach(stop_slur, voice_two[27]) abjad.attach(start_slur, voice_two[34]) abjad.attach(stop_slur, voice_two[37]) abjad.attach(start_slur, voice_two[39]) abjad.attach(stop_slur, voice_two[40]) abjad.attach(start_slur, voice_two[43]) abjad.attach(stop_slur, voice_two[45]) abjad.attach(abjad.Clef("treble"), voice_two[0]) # accelerando mark accel_text_span = abjad.LilyPondLiteral( r'\once \override TextSpanner.bound-details.left.text = "accelerando poco a poco"' + " " + r"\once \override TextSpanner.style = #'dashed-line" ) start_accel = abjad.LilyPondLiteral(r"\startTextSpan") abjad.attach(accel_text_span, voice_two[-20]) abjad.attach(start_accel, voice_two[-20]) stop_accel_text_span = abjad.StopTextSpan(command=r"\stopTextSpan") abjad.attach(stop_accel_text_span, voice_two[-1]) # voice_two.append(abjad.Container( # r"""cs'''2 # ( # g''8 # ) # r8 # r8 # fs'''4 # ~ # ( # fs'''4 # g'''8 # ) # """ # )) voice_two[-1].written_pitch = "af''" abjad.attach(abjad.Tie(), voice_two[-1]) return voice_two
def cyc(lst): count = 0 while True: yield lst[count % len(lst)] count += 1 #attach instruments and clefs print('Adding attachments ...') bar_line = abjad.BarLine('||') metro = abjad.MetronomeMark((1, 4), 90) markup = abjad.Markup(r'\bold { Invocation }') mark = abjad.RehearsalMark(markup=markup) instruments = cyc([ abjad.SopraninoSaxophone(), abjad.SopranoSaxophone(), abjad.SopranoSaxophone(), abjad.SopranoSaxophone(), abjad.AltoSaxophone(), abjad.AltoSaxophone(), abjad.AltoSaxophone(), abjad.TenorSaxophone(), abjad.TenorSaxophone(), abjad.TenorSaxophone(), abjad.BaritoneSaxophone(), abjad.BaritoneSaxophone(), abjad.BaritoneSaxophone(),
def post_process_voice_one(voice_one, score): print("post processing voice one") custom_ties(voice_one) respell(voice_one) # metronome mark I abjad.attach( abjad.MetronomeMark((1, 8), (128, 144), "Andante, molto liberamente"), voice_one[0]) # rehearsal mark markI = abjad.RehearsalMark(number=5) abjad.attach(markI, voice_one[0]) scheme = abjad.Scheme("format-mark-box-alphabet") abjad.setting(score).markFormatter = scheme change_clef(voice_one) # numbered leaves selection = abjad.select(voice_one).leaves() for i, leaf in enumerate(selection): # abjad.attach(abjad.Markup(i, direction=abjad.Up), leaf) ###################################### numerate leaves pass abjad.Accidental.respell_with_sharps(selection[22:28]) abjad.Accidental.respell_with_flats(selection[28:32]) del selection[70].note_heads[0] selection[70].note_heads.extend([0]) abjad.mutate(selection[71]).transpose(+12) del selection[73].note_heads[-1] # ritardando mark rit_text_span = abjad.LilyPondLiteral( r'\once \override TextSpanner.bound-details.left.text = "ritardando"' + " " + r"\once \override TextSpanner.style = #'dashed-line") start_rit = abjad.LilyPondLiteral(r"\startTextSpan") stop_accel_text_span = abjad.StopTextSpan(command=r"\stopTextSpan") abjad.attach(rit_text_span, selection[40]) abjad.attach(start_rit, selection[40]) abjad.attach(stop_accel_text_span, selection[44]) abjad.attach(rit_text_span, selection[72]) abjad.attach(start_rit, selection[72]) abjad.attach(stop_accel_text_span, selection[75]) abjad.override(voice_one).tuplet_bracket.direction = abjad.Up # tempos lento = abjad.MetronomeMark((1, 8), (64, 72), "Lento") quasi_statico = abjad.MetronomeMark((1, 8), (32, 36), "Quasi Statico") # metronome mark I # abjad.attach(lento, voice_one[0]) # metronome mark II abjad.attach(abjad.MetronomeMark(None, None, "più mosso"), selection[13]) # metronome mark III abjad.attach(lento, selection[45]) abjad.attach(quasi_statico, selection[76]) del voice_one[-4:] abjad.attach(abjad.Tie(), selection[89]) voice_one.append('<gs, a, b,>2.') voice_one.append('r2.') abjad.attach(abjad.Fermata(), voice_one[-1]) return voice_one
def _add_attachments(self): print("Adding attachments ...") if self.colophon is not None: last_voice = abjad.select(self.score_template).components( abjad.Voice)[-1] # colophon_leaf = abjad.select(last_voice).leaves()[-2] # abjad.attach(self.colophon, colophon_leaf) if self.abbreviations is not None: abbreviations = [] abb = self.abbreviations mark_abbreviations = [ abjad.Markup(fr"\markup {{ \hcenter-in #12 {_} }}", literal=True) for _ in abb ] for x in mark_abbreviations: abbreviations.append(abjad.MarginMarkup(markup=x)) else: abbreviations = [_ for _ in range(len(self.instruments))] if self.names is not None: names = [] nm = self.names mark_names = [ abjad.Markup(fr"\markup {{ \hcenter-in #14 {_} }}", literal=True) for _ in nm ] for x in mark_names: names.append(abjad.StartMarkup(markup=x)) else: names = [_ for _ in range(len(self.instruments))] metro = abjad.MetronomeMark(self.tempo[0], self.tempo[1]) # metro = abjad.MetronomeMark(custom_markup=metro.make_tempo_equation_markup())#remove if broken if self.tempo is not None: for staff in abjad.iterate( self.score_template["Global Context"]).components( abjad.Staff): leaf1 = abjad.select(staff).leaves()[0] abjad.attach(metro, leaf1) markup2 = abjad.RehearsalMark(markup=abjad.Markup( fr"\markup \bold {{ {self.rehearsal_mark} }}", literal=True)) if self.rehearsal_mark is not None: for staff in abjad.iterate( self.score_template["Global Context"]).components( abjad.Staff): leaf1 = abjad.select(staff).leaves()[0] abjad.attach(markup2, leaf1) bar_line = abjad.BarLine(self.barline) if self.barline is not None: for voice in abjad.iterate( self.score_template["Staff Group"]).components( abjad.Staff # was Voice ): if self.barline == "|.": last_leaf = abjad.select(voice).leaves()[-1] abjad.attach(bar_line, last_leaf) else: last_leaf = abjad.select(voice).leaves()[-3] abjad.attach(bar_line, last_leaf) if self.clef_handlers is None: self.clef_handlers = [ None for _ in abjad.select( self.score_template["Staff Group"]).components(abjad.Staff) ] for abbrev, name, inst, handler, voice in zip( abbreviations, names, self.instruments, self.clef_handlers, abjad.select(self.score_template["Staff Group"]).components( abjad.Staff), # was Voice ): first_leaf = abjad.select(voice).leaves()[0] if self.name_staves is True: if not isinstance(abbrev, int): abjad.attach( abbrev, first_leaf, tag=abjad.Tag("applying staff names and clefs"), ) if not isinstance(name, int): abjad.attach( name, first_leaf, tag=abjad.Tag("applying staff names and clefs"), ) abjad.attach(inst, first_leaf, tag=abjad.Tag("applying staff names and clefs")) # abjad.iterpitches.transpose_from_sounding_pitch(voice) if handler is not None: handler(voice)