Lilypond:重复小节线中的括号

问题描述

我希望是否可以在 Lilypond 中重复小节线的“:”部分打印括号。 目的是为三首不同的歌词提供相同的分数,其中一首带有重复,而其余的不包括此重复。

解决方法

早上好! 我终于可以解决我自己的问题了。 在这里你可以阅读我的解决方案:

%%%%%%%%%%%%%%%%%%%%%

\version "2.19.0"


%parámetros del encabezamiento:
\header {
    title = "Parenthesize in repeat barline"
%   subtitle = "Antífonas para el Cántico Evangélico"
%   arranger = "Javier Ruiz"
%   tagline="www.cancionero-liturgico.org"
%   copyright="Editado con LilyPond para Linux"
    }


global =  {
    %clave de sol (G):
    \clef G
    %armadura:
    \key d \minor
    \tempo 4=69
    \set Score.tempoHideNote = ##f
    }


visperasuno = {
\relative c''{

\time 2/4
\partial8
g8
a8 a a a
a4 g8 g
a4. %s8

\once \set Staff.whichBar = ":|."
}
}


laudes = {
\relative c''{

\time 2/4
\partial8
g8
a4 a8 a
a4 g
a4. %s8

\bar "|."
}
}


visperasdos = {
\relative c''{

\time 2/4
\partial8
g8
a8 a a8 a
a4 g8 g
a4. %s8

\bar "|."
}
}


notaspianoarriba = {
\relative c''{

\time 2/4
\partial8
r8
<a f>4 \(<a e>
<a d,>4 <g e>
<a cis,>4.\) %s8

}
}


notaspianoabajo = {
\relative c'{

\clef F

\time 2/4
\partial8
r8
<a f>2~
<a f>4 <b e,>
<a a,>4. %s8

}
}


melodiapianoarriba = {
\notaspianoarriba
\bar "|."
}

melodiapianoabajo = {
\notaspianoabajo
\bar "|."
}


melodiapianoarribarep = {
\notaspianoarriba
\once \set Staff.whichBar = ":|."
}

melodiapianoabajorep = {
\notaspianoabajo
\once \set Staff.whichBar = ":|."
}


%%%%%%%%%%%%%%%%%%%%
%DEFINING NEW GLYPHS
%%%%%%%%%%%%%%%%%%%%

#(define (make-leftparen-sign-bar-line grob extent)
   (let ((stencil (ly:font-get-glyph (ly:grob-default-font grob)
                                     "accidentals.leftparen")))
        stencil))

#(add-bar-glyph-print-procedure "(" make-leftparen-sign-bar-line)

#(define (make-rightparen-sign-bar-line grob extent)
   (let ((stencil (ly:font-get-glyph (ly:grob-default-font grob)
                                     "accidentals.rightparen")))
        stencil))

#(add-bar-glyph-print-procedure ")" make-rightparen-sign-bar-line)


\defineBarLine "(:)|." #'("(:)|." "" "   |.")



melodiapianoarribasemirep = {
\notaspianoarriba
%\override Staff.BarLine.extra-offset = #'(0 . 0)
\set Staff.whichBar = "(:)|."
}

melodiapianoabajosemirep = {
\notaspianoabajo
%\override Staff.BarLine.extra-offset = #'(0 . 0)
\set Staff.whichBar = "(:)|."
}



textovisperasuno = \lyricmode {
su -- bió a la mon -- ta -- ña,Je -- sús,}
textovisperasunorep = \lyricmode {
ha -- bla -- ba y~en -- se -- ña -- ba,Je -- sús.
    }

textolaudes = \lyricmode {
por -- que~e -- llos ve -- rán a Dios.
    }

textovisperasdos = \lyricmode {
se -- rán lla -- ma -- dos hi -- jos de Dios.
    }


visperasunoStaff = \context Voice = visperasunoStaff
\with {\consists "Ambitus_engraver"}
<<
    \set Staff.instrumentName = "I Vísperas"
    \set Staff.midiInstrument = #"clarinet"
    \global
    \visperasuno
    >>

laudesStaff = \context Voice = laudesStaff
\with {\consists "Ambitus_engraver"}
<<
    \set Staff.instrumentName = "Laudes"
    \set Staff.midiInstrument = #"clarinet"
    \global
    \laudes
    >>

visperasdosStaff = \context Voice = visperasdosStaff
\with {\consists "Ambitus_engraver"}
<<
    \set Staff.instrumentName = "II Vísperas"
    \set Staff.midiInstrument = #"clarinet"
    \global
    \visperasdos
    >>

vozpianoarribaStaff = \context Voice = vozpianoarribaStaff
<<
    \override Staff.StaffSymbol #'staff-space = #(magstep -0.35)
    \set Staff.midiInstrument = #"violin"
    \global
    \relative c' \melodiapianoarriba
    >>

vozpianoabajoStaff = \context Voice = vozpianoabajoStaff
<<
    \override Staff.StaffSymbol #'staff-space = #(magstep -0.35)
    \set Staff.midiInstrument = #"violin"
    \global
    \set Score.tempoHideNote = ##f
    \relative c' \melodiapianoabajo
    >>

vozpianoarribarepStaff = \context Voice = vozpianoarribarepStaff
<<
    \override Staff.StaffSymbol #'staff-space = #(magstep -0.35)
    \set Staff.midiInstrument = #"violin"
    \global
    \relative c' \melodiapianoarribarep
    >>

vozpianoabajorepStaff = \context Voice = vozpianoabajorepStaff
<<
    \override Staff.StaffSymbol #'staff-space = #(magstep -0.35)
    \set Staff.midiInstrument = #"violin"
    \global
    \set Score.tempoHideNote = ##f
    \relative c' \melodiapianoabajorep
    >>

vozpianoarribasemirepStaff = \context Voice = vozpianoarribasemirepStaff
<<
    \override Staff.StaffSymbol #'staff-space = #(magstep -0.35)
    \set Staff.midiInstrument = #"violin"
    \global
    \relative c' \melodiapianoarribasemirep
    >>

vozpianoabajosemirepStaff = \context Voice = vozpianoabajosemirepStaff
<<
    \override Staff.StaffSymbol #'staff-space = #(magstep -0.35)
    \set Staff.midiInstrument = #"violin"
    \global
    \set Score.tempoHideNote = ##f
    \relative c' \melodiapianoabajosemirep
    >>

textovisperasunoStaff = \context Lyrics = textovisperasunoStaff <<
    \lyricsto visperasunoStaff \textovisperasuno
    >>

textovisperasunorepStaff = \context Lyrics = textovisperasunorepStaff <<
    \lyricsto visperasunoStaff \textovisperasunorep
    >>

textolaudesStaff = \context Lyrics = textolaudesStaff <<
    \lyricsto laudesStaff \textolaudes
    >>

textovisperasdosStaff = \context Lyrics = textovisperasdosStaff <<
    \lyricsto visperasdosStaff \textovisperasdos
    >>


\book {
    \score {
        <<
        \context ChoirStaff {
            <<
            \visperasunoStaff
            \textovisperasunoStaff
            \textovisperasunorepStaff
            \laudesStaff
            \textolaudesStaff
            \visperasdosStaff
            \textovisperasdosStaff
            >>
            }
        \context PianoStaff {
            <<
            \set PianoStaff.instrumentName = #"Órgano"
            \vozpianoarribasemirepStaff
            \vozpianoabajosemirepStaff
            >>
            }
        >>
        \layout {
                \context {
                \Lyrics
                \override LyricText #'font-size = #2
                }
             \context {
                \Score
                \override StaffSymbol #'staff-space = #(magstep +2)
                \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/32)
                }
            }
        }
    \score {
        \unfoldRepeats
        <<
        \context ChoirStaff {
            <<
            \visperasunoStaff
            >>
            }
        \context PianoStaff {
            <<
            \vozpianoarribaStaff
            \vozpianoabajoStaff
            >>
            }
        >>
        \midi {
            \context {
                \Score
                tempoWholesPerMinute = #(ly:make-moment 70 4)
                }
            }
        }
    }