コード例 #1
0
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
コード例 #2
0
ファイル: SegmentMaker.py プロジェクト: adammccartney/arctic
 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
コード例 #3
0
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
コード例 #4
0
            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.")),
])
コード例 #5
0
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
コード例 #6
0

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(),
コード例 #7
0
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
コード例 #8
0
    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)