[prev in list] [next in list] [prev in thread] [next in thread]
List: lilypond-user
Subject: Re: Repeating stanza numbers
From: "Matie Holtzhausen" <matieh () gmail ! com>
Date: 2012-01-27 19:09:19
Message-ID: 0E8F54588B3746C59F740C5E9C9885C4 () MatiePC
[Download RAW message or body]
Neil Puttock wrote:
> It might break things on 2.14 too. It's mostly untested. :)
It seems to be the ultimate solution, but it does break a few things. The
line breaking seems to stop working, and blank lines also gets verse
numbers. In the attached example I included both methods (the other being
Matthew's). I think what will work in the end is to use shortVocalName and
vocalName with the X-offset. They are not "anchored" to the lyrics, but at
least they are in a strait line. I suppose that is what Eluze meant.
Regards, Matie
["TestBook2.ly" (text/lilypond-source)]
\version "2.12.3"
BCAVerseA = \lyricmode { \set associatedVoice = #"BCAVoiceRH" \set stanza = #"1." \
\set shortVocalName = "1." Ne8 -- na8 kwa8 i4 -- ne8 Ye4. -- su.4
\skip 8 La8 -- nkhu8 -- la8 mo4 -- fe8 --wa.4.
\skip 4 \skip 8 No8 -- ng'o8 -- na8 ndi4 chi8 -- ko4. -- ndi:4
\skip 8 "Si8 -- mu8 -- li8 no4 -- kha8 'nu."4.
\skip 4 \skip 8 Tse8 -- gu8 -- la8 mti4 -- ma8 ndi4. -- mve4
\skip 8 Msa8 -- nga8 li8 -- wu4 la8 -- nu.4.
\skip 4 \skip 8 Mti8 -- ma8 wa8 -- nga4 u8 -- ta4. -- me.4
\skip 8 Ndi8 -- ko8 -- ndwe8 mwa4 I8 -- nu.4.
\set shortVocalName = "Chorus-"
\skip 4 \skip 8 Mu8 -- la8 -- nkhu8 -- le4 mo8 -- fe4. -- wa4
\skip 8 Chi8 -- ko8 -- ndi8 kwa4 i8 -- ne.4.
\skip 4 \skip 8 Mu8 -- dza8 -- go8 -- nje4 -- tsa8 ndi4. -- thu4
\skip 8 Mu8 -- dza8 -- ma8 -- su4 -- ka8 -- di.4.
}
BCAVerseB = \lyricmode { \set associatedVoice = #"BCAVoiceRH" \set stanza = #"2." \
\set shortVocalName = "2." Ne8 -- na8 kwa8 a4 -- na8 a4. -- nu.4
\skip 8 Tso8 -- go8 -- le8 -- ra4 i8 -- wo.4.
\skip 4 \skip 8 Mu8 -- wa8 -- dza8 -- ze4 chi8 -- mwe4. -- mwe4
\skip 8 A8 -- kha8 -- le8 o4 -- lo8 -- nda.4.
\skip 4 \skip 8 A8 -- pe8 -- re8 -- ke4 kwa8 I4. -- nu4
\skip 8 Mi8 -- ti8 -- ma8 ya4 -- thu8 -- nthu.4.
\skip 4 \skip 8 U8 -- fu8 -- mu8 u4 -- dze8 msa4. -- nga4
\skip 8 Ndi8 ku8 -- o8 -- na4 Ye8 -- su.4.
\set shortVocalName = ""
\skip 4 \skip 8 Ne8 -- na8 tsi8 -- ku4 ndi8 tsi4. -- ku.4
\skip 8 La8 -- nkhu8 -- la8 mo4 -- fe8 -- wa.4.
\skip 4 \skip 8 Ndi8 -- mve8 -- re8 ku4 -- no8 -- ng'o4. -- na4
\skip 8 "Si8 -- mu8 -- li8 no4 -- \skip 8 \skip 4. \skip 4kha8 'nu."2.
}
BCAVerseC = \lyricmode { \set associatedVoice = #"BCAVoiceRH" \set stanza = #"3." \
\set shortVocalName = "3." La8 -- nkhu8 -- la8 mo4 -- nga8 ka4. -- le4
\skip 8 Mu8 -- na8 -- vu8 -- mbu4 -- lu8 -- tsa.4.
\skip 4 \skip 8 Ndi8 -- dzi8 -- we8 cho4 -- fu8 -- ni4. -- ka4
\skip 8 Ndi8 -- chi8 -- te8 la4 -- mu8 -- lo.4.
\skip 4 \skip 8 Ndi8 -- le8 -- me8 -- ke4 -- ze8 I4. -- nu4
\skip 8 Ndi8 -- po8 ku8 -- ta4 -- ma8 -- nda.4.
\set shortVocalName = ""
}
BCAMusicGlobal = {
\set Staff.autoBeaming = ##f
\tempo "" 4 = 90
\key d \major
\time 6/8
}
BCAMusicRH = \relative c'{ \BCAMusicGlobal \clef "treble"
<fis a>8 <g b> <fis a> <d fis>4 <d a'>8 | <cis g'>4. <cis g'>4 r8 |
<e g> <fis a> <e g> <cis e>4 <e g>8 | <d fis>4.~<d fis>4 r8 |
<d fis>8 <d g> <d fis> d4 <d fis>8 | <d e>4. <d e>4 r8 |
<cis e> <d fis> <e g> <d fis>4 <cis e>8 | <d fis>4.~<d fis>4 r8 |
<fis a> <g b> <fis a> <d fis>4 <d a'>8 | <cis g'>4. <cis g'>4 r8 |
<e g> <fis a> <e g> <cis e>4 <e g>8 | <d fis>4.~<d fis>4 r8 |
<d fis> <d g> <d fis> d4 <d fis>8 | <d e>4. <d e>4 r8 |
<cis e> <d fis> <e g> <d fis>4 <cis e>8 | d4.~d4 r8 | \break
\repeat volta 2 {
<fis a> <fis b> <fis cis'> <fis d'>4 <fis d'>8 | <g cis>4. <cis, g'>4 r8 |
<e g> <fis a> <g b> <g cis>4 <g b>8 | <fis a>4.~<fis a>4 r8 |
<d fis> <e g> <d a'> <dis b'>4 <dis fis>8 | <fis a>4. <e g>4 r8 |
<cis e> <d fis> <e g> <d fis>4 }
\alternative {
{<cis e>8 |
\set Timing.measureLength = #(ly:make-moment 5 8) <d fis>4.~<d fis>4}
{\set Timing.measureLength = #(ly:make-moment 1 8) <cis e>8 |
\set Timing.measureLength = #(ly:make-moment 6 8) d2.}
}
}
BCAMusicLH = \relative c{ \BCAMusicGlobal \clef "bass"
<d d'>8 <d d'> <d d'> <d a'>4 <fis a>8 | <e a>4. <e a>4 r8 |
<a, a'> <a a'> <a a'> <a a'>4 <a a'>8 | <d a'>4.~<d a'>4 r8 |
<d a'>8 <d b'> <d a'> <d fis>4 <d a'>8 | <g, b'>4. <g b'>4 r8 |
<a a'> <a a'> <a a'> <a a'>4 <a a'>8 | <d a'>4.~<d a'>4 r8 |
<d d'> <d d'> <d d'> <d a'>4 <fis a>8 | <e a>4. <e a>4 r8 |
<a, a'> <a a'> <a a'> <a a'>4 <a a'>8 | <d a'>4.~<d a'>4 r8 |
<d a'> <d b'> <d a'> <d fis>4 <d a'>8 | <g, b'>4. <g b'>4 r8 |
<a a'> <a a'> <a a'> <a a'>4 <a g'>8 | <d fis>4.~<d fis>4 r8 |
\repeat volta 2 {
<d a'> <d a'> <d a'> <d a'>4 <d a'>8 | <e a>4. <e a>4 r8 |
<a, a'> <a a'> <a a'> a4 <a cis'>8 | <d d'>4.~<d d'>4 r8 |
<d a'> <d a'> <d fis> <b fis'>4 <b b'>8 | <e b'>4. <e b'>4 r8 |
<a, a'> <a a'> <a a'> <a a'>4 }
\alternative {
{<a a'>8 |
\set Timing.measureLength = #(ly:make-moment 5 8) <d a'>4.~<d a'>4}
{\set Timing.measureLength = #(ly:make-moment 1 8) <a g'>8 |
\set Timing.measureLength = #(ly:make-moment 6 8) <d fis>2.}
}
}
BCAMusicLyrics = \relative c''{ \BCAMusicGlobal \clef "treble"
\hideNotes \voiceFour fis8 fis8 fis8 fis4 fis8 fis4. fis4 s8 fis8 fis8 fis8 fis4 \
fis8 fis4. s4 s8 fis8 fis8 fis8 fis4 fis8 fis4. fis4 s8 fis8 fis8 fis8 fis4 fis8 \
fis4. s4 s8 fis8 fis8 fis8 fis4 fis8 fis4. fis4 s8 fis8 fis8 fis8 fis4 fis8 fis4. s4 \
s8 fis8 fis8 fis8 fis4 fis8 fis4. fis4 s8 fis8 fis8 fis8 fis4 fis8 fis4. s4 s8 fis8 \
fis8 fis8 fis4 fis8 fis4. fis4 s8 fis8 fis8 fis8 fis4 fis8 fis4. s4 s8 fis8 fis8 \
fis8 fis4 fis8 fis4. fis4 s8 fis8 fis8 fis8 fis4 fis8 fis4. s4 fis8 fis2. }
#(set-default-paper-size "a6" ) #(set-global-staff-size 12.4)
\paper {
indent = 0 \mm
ragged-bottom = ##f
ragged-last-bottom = ##f
ragged-last = ##f
ragged-right = ##f
oddFooterMarkup = \markup ""
evenFooterMarkup = \markup ""
print-all-headers = ##f
print-page-number = ##f
system-system-spacing = #'((padding . 2) (space . 2) (minimum-distance . 1))
markup-system-spacing = #'((padding . 1) (space . 2) (minimum-distance . 1))
top-system-spacing = #'((padding . 1) (space . 1) (minimum-distance . 1))
head-separation = #'((padding . 0.5 ) (space . 1) (minimum-distance . 0.1))
}
\layout {
\context {
\Score
\remove "Bar_number_engraver"
\override LyricText #'font-size = #-1
\override LyricSpace #'minimum-distance = #-1
}
}
\paper { system-count=6 }
\score { <<
\context StaffGroup = BCAStaffGroup <<
\context Staff = BCAStaffRH <<
\override Staff.BarLine #'allow-span-bar = ##f
\set Staff.printPartCombineTexts = ##f
\context Voice = BCAVoiceRH \BCAMusicRH
>>
\new Lyrics = BCALyricsA
\new Lyrics = BCALyricsB
\new Lyrics = BCALyricsC
\context Staff = BCAStaffLH <<
\set Staff.printPartCombineTexts = ##f
\context Voice = BCAVoiceLH \BCAMusicLH
>>
\context Lyrics = BCALyricsA \BCAVerseA
\context Lyrics = BCALyricsB \BCAVerseB
\context Lyrics = BCALyricsC \BCAVerseC
>>
\override Score.TimeSignature #'style = #'() %%makes timesigs always numerical
\override SpacingSpanner #'common-shortest-duration = #(ly:make-moment 1 1)
\override SpacingSpanner #'shortest-duration-space = #0
\override SpacingSpanner #'spacing-increment = #0
\override SpacingSpanner #'packed-spacing = ##t
\override Score.ChordName #'font-family = #'roman
> >
\layout {
\context {
\Lyrics
minimumVerticalExtent = #'(0 . 0)
\override VerticalAxisGroup #'minimum-Y-extent = #'(0 . 0)
\override InstrumentName #'X-offset = #3
\remove "Stanza_number_engraver"
\consists #(lambda (ctx)
(let ((text #f))
`((process-music .
,(lambda (trans)
(let ((stanza (ly:context-property ctx 'stanza)))
(and (markup? stanza)
(set! text (ly:engraver-make-grob trans 'StanzaNumber '()))
(set! (ly:grob-property text 'text) stanza)))))
(stop-translation-timestep .
,(lambda (trans)
(set! text #f))))))
\override StanzaNumber #'after-line-breaking =
#(lambda (grob)
(and (= (ly:item-break-dir (ly:grob-object (ly:grob-parent grob X) \
'left-neighbor)) CENTER)
(ly:grob-suicide! grob)))
}
}
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic