[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