bug-lilypond
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

2.11.24 regression: last page sometimes missing


From: Arvid Grøtting
Subject: 2.11.24 regression: last page sometimes missing
Date: Sun, 20 May 2007 05:45:08 +0000 (UTC)
User-agent: Loom/3.14 (http://gmane.org/)

> I'm not top-posting.

I don't have a minimal example for this yet, but I've seen a
regression with 2.11.24-2 (over 2.11.23-1) on MacOS X 10.3.9 PPC:

A score that should take only three pages (or that did so with
2.11.23) with 9 systems, gets 7 widely- spaced systems over three
pages, with the final 9 bars of music missing!

With "system-count = #9", the music fits on 3 pages (and has no
vertical stretching).  With the exact same line breaks added
manually, the same 9 systems take up 4 pages.

This is (of course) with ragged-last-bottom = ##f.  It's also a
choir piece on two staves, with four stanzas of lyrics.

I'll try cooking up a minimal example.  The following example is
definitely not minimal (indeed it probably includes unused code,
as I had to include my include files inline), but shows the
regressing behaviour (at least here):

-- Arvid

cut here: --------->8
\version "2.11.23"

ismn = #"M-66118-027-2"

\header {
    title = "Brudefærden i Hardanger"
    composer = "H. Kjerulf"
    poet = "A. Munch"
    %meter = "Andante"
    %dedication = ""
    %copyright = ""
    %tagline = ""
}

%% Defaults for DnS
%% First, set ismn = #"M-66118-XXX-C"

%% Also, do #(set-global-staff-size NN) afterwards if NN != 18.

#(set-global-staff-size 18)



%#(load "../include/merge-rests.scm")

mmOneVoice = { \override MultiMeasureRest #'staff-position = 2 }

% doesn't work:
% mmRestVoice = { \revert MultiMeasureRest #'staff-position }

% replace these with music functions that care if we have a voice or not,
% e.g. by examining Rest 'direction:
mmVoiceOne = { \override MultiMeasureRest #'staff-position = #4 }
mmVoiceTwo = { \override MultiMeasureRest #'staff-position = #-4 }

% \layout {
%   \context {
%     \Staff
%     \override RestCollision #'positioning-done = #merge-rests-on-positioning
%   }
% }



%% #(use-modules (srfi srfi-19))
%% thisyear = #(number->string (date-year (current-date)))
forlagsinfo = #(ly:export 
                (format
                 "Den norske Studentersangforening, Oslo, ~a ~a ~a"
                 (strftime "%Y" (localtime (current-time)))
                 (ly:wide-char->utf-8 #x2014)
                 "www.studentersangforeningen.no"))

% \include "../include/ean-barcode.ly"

printismn = \markup\sans{"ISMN " \ismn} %% no bar code
% printismn = \markup{\bottom-ismn-barcode #ismn} %% virker ikke


dnscopyright = \markup {
  \with-url #"http://www.studentersangforeningen.no/";
  \fill-line {
    \smaller \forlagsinfo
    \smaller \printismn
  }
}

dnslogo = \markup{\epsfile #0 #10 #"../include/dns-logo.eps"}

\header {
  copyright = \dnscopyright
}


\paper {
  %% tagline = \markup\fill-line{\smaller \smaller \tagline 
        %%                    \smaller \printismn}
  tagline = \markup \smaller {
        #(ly:export
          (format
           "Satt med LilyPond ~a (www.lilypond.org) av Arvid Grøtting ~a"
           (lilypond-version)
           (strftime "%Y%m%d" (localtime (current-time)))))
      }
}

\paper {
  left-margin = 2\cm
  line-width = 17\cm
  top-margin = 1\cm
  bottom-margin = 1\cm
  ragged-last-bottom = ##f
  between-system-padding = 1\mm
  %%first-page-number = 2
  print-page-number = ##f
}

songVoice = {
  \dynamicUp
  \phrasingSlurUp
  \slurUp
  \override TextScript #'direction = #1
}

songVoiceOne = {
  \songVoice
  \override RepeatTie #'direction = #1
  \voiceOne
}

songVoiceTwo = {
  \dynamicDown
  \phrasingSlurDown
  \override TextScript #'direction = #-1
  \override RepeatTie #'direction = #-1
  \voiceTwo
}

ffz = #(make-dynamic-script "ffz") 
ffp = #(make-dynamic-script "ffp") 

dFermataMarkup =  \markup { \musicglyph #"scripts.dfermata" } 

baksidetekst = \markup { "" }


\paper {
  % system-count = #9
}

brk =  { \break }
% brk =  { \mark "/" }
pagebrk = { \pageBreak }
%pagebrk = { \mark "//" }

br = { \break }

br = {}
brk = {}
pagebrk = {}

% fz = \markup{\dynamic{"fz"}}

global =  {
    \key a \major
    \time 3/8
}

tempi = {
  \override TextScript #'padding = #2
  s8-\markup{\large{Andante}} s4.*24
  \newSpacingSection
  s2.-\markup{\large{Allegro}} s2.*5
  \newSpacingSection
  s16-\markup{\large{Andantino con moto}} s8. s2 s2.*8
  s4. s4. \noBreak s2. s4.
  s4.
}

markups =  {
    s8\mf s8 s8.-> s16 s4.*3
    s8\< s8 s8\! s4. s4\> s8\! s4 s8\mf s8 s8.-> s16
    s4.*3 s8\< s8 s8\! s4.
    
    s4. s8\> s8\! s16-\fermata s16\f s4.*3
    s4 s8\mf s4.*2 s8.\< s16 s8\! s4\fermata s8\mf
    s2.*2 s4. s4\fermata s8\f s2.*2 s4. s4.\fermata
    s2.*3

    s8 s s s16\< s16 s8 s8\p s2.*2
    s2.*2 s4. s4 s8->\f
    s4.->-\markup{\italic{stringendo e decresc.}} s4. |
    s s s s-" "-" "-\markup{\italic{ritenuto}} s2. 
    s4. s8\fermata s8 s8 s4. s4.-\< |
    s4\> s8\! s4.\fermata
}


tiMusic =   \relative c' {
  \phrasingSlurUp
  \partial 8
  \once \override TextScript #'X-offset = #-4 % for første tempomarkering
  cis8 % *1/2 \grace cis16 s16
  | e8 e8. d16 | d16[ cis] cis8 a | b8.[ a16] b8 | cis4 a8 |\brk
  a b cis |\br d e fis | e4( a8) | e4 cis8 | e e8. d16 |\brk
  d16[ cis] cis8 a | b8.[ a16] b8 |\br cis4 b8 | a cis dis |
  e4 gis16[ fis] |\brk\pagebrk
  
  dis4. | e4~ e16 e | e8 e a | gis4 fis8 |\br fis8. gis16 fis8 |\brk
  e4 e8 | d8. e16 d8 | cis4 cis8 | cis8. cis16 fis8 |
  eis4 cis8 |\br \bar "||" \time 6/8 \brk
  gis2.( | gis8) a b a gis fis | gis4. cis,4 e'8 | b2.( | 
  b8) cis d cis[ b] a | b4. e,4. |\brk\br
  r16 cis'\f\( a'4\)-\fz r16 b,\( gis'4\)-\fz |
  d8\p e d cis16 b cis d e8 |
  r16 cis\f\( a'4-\fz\) r16 e\( gis4-\fz\) |\brk\pagebrk\br

  d8\p fis-> e cis16 d e8 e | b8. cis16 d8 cis b a | e'4. e4 e8\mf |\br\brk
  b16[\< a] b[ cis] d8\> cis16[ d cis b]\! a8 | e'4.~ e~ | e e4 a8\( |\br\brk
  gis4. fis | e e | e e | e e |
  e~ e8\) r \hideNotes e8\( \unHideNotes | e4.\) e\( | e ~ e\)
}

tiiMusic =   \relative c' {
 \phrasingSlurDown
 \partial 8
 \repeat volta 4 {
  a8 % *1/2 \grace {\stemDown a16} s16 
  | b8 b8. a16 | a8 a e | gis8.[ fis16] gis8 | a4 a8 |
  a a a | a cis d | cis4. | cis4 a16[ gis] | fis8 fis8. gis16 |
  gis[ a] a8 a | a[ gis16 fis] gis8 | a4 gis8 | a a b | b4 a8 |
  
  fis4. | gis4( gis16) d' | d8 d d | d4 d8 | d d d |
  cis4 cis8 | b b b | b4 b8 | a8. cis16 bis8 | cis4 cis8 |
  gis2.( | gis8) a b a gis fis | gis4. cis,4 e'8 | b2.( |
  b8) cis d cis[ b] a | gis4. e4. |\brk
  r16 e\( cis'4\) r16 e,\( b'4\) | b8 cis b a16 gis a b cis8 |
  r16 a\( cis4\) r16 b\( e4\) |
  
  b8 d cis a16 b cis8 cis | gis8. a16 b8 a e cis | e4. e4 e8 |\brk
  gis16[ fis] gis[ a] b8 a16[ b a e] cis8 | e4.~ e~ | e e4 e8\( |\brk
  e'4. \melisma e | e d | cis b | a \melismaEnd cis | 
 }
 \alternative { { b~ b8\) r } 
   { \hideNotes b8\( \unHideNotes \bar "" b4.\) b4.\( |
    cis4.~ cis\) \bar "|."} }
}

tiiWords =\lyricmode {
  \set stanza = "1. "
  Der aan -- der en tin -- dren -- de Som -- mer -- luft
  varmt o -- ver Har -- dan -- ger -- fjords Van -- de,
  hvor højt op mod Him -- len i blaa -- lig Duft
  de mæg -- ti -- ge Fjel -- de stan -- de.
  Det skin -- ner fra Bræ, det grøn -- nes fra Li, 
  sit Hel -- lig -- dags -- skrud staar Eg -- nen klædt i;
  ti, se! o -- ver grøn -- kla -- re Bøl -- ge
  hjem gli -- der et Bru -- de -- føl -- ge.

  Aa -- haa! Aa -- hej! La la la la la la la la!
  Aa -- haa! Aa -- hej! La la la la la la!

  Ti, se! o -- ver grøn -- kla -- re Bøl -- ge
  hjem gli -- der et Bru -- de -- føl -- ge.

  Aa -- haa! __ Aa -- haa!  
  _ haa! Aa -- haa! __

}

igm = \lyricmode { \set ignoreMelismata = ##t }
uigm = \lyricmode { \set ignoreMelismata = ##f }

tiiverseii = \lyricmode {
  \set stanza = "2. "
  \igm
  Som~en Old -- ti -- dens Kon -- ge -- dat -- ter dej -- lig og prud,
  med Guld -- kro -- ne paa og \uigm Skar -- la -- gen,
  i Stav -- nen hun sid -- der \igm den præg -- ti -- ge Brud,
  saa fa -- ger som Fjor -- den og \uigm Da -- gen.
  Lyk -- sa -- lig den Brud -- gom svin -- ger sin Hat,
  nu fø -- rer han hjem sin dy -- re -- ste Skat,
  og ser i de Øj -- _ ne mil -- de
  sit Liv som et Bryl -- lups -- gil -- de.
  \repeat unfold 22 \skip8
  Han ser i de Øj -- _ ne mil -- de
  sit Liv som et Bryl -- lups -- gil -- de.
}

tiiverseiii = \lyricmode {
  \set stanza = "3. "
  Alt ris -- ler det lok -- ken -- de To -- ne -- fald
  af Gan -- ger og Slaat o -- ver Vo -- ven;
  fra Fjeld og til Fjeld rul -- ler Bøs -- sens Knald,
  og Glæ -- des -- raab \igm sva --  re fra \uigm Sko -- ven.
  Med Bru -- dens smaa Ter -- ner dri -- ves der Skjemt
  og Kjø -- _ ge -- me -- stren har ik -- ke glemt
  at fyl -- de u -- stand -- se -- lig Kru -- set
  til Æ -- re for Bru -- de -- hu -- set.
  \repeat unfold 22 \skip8
  Han fyl -- der u -- stand -- se -- lig Kru -- set
  til Æ -- re for Bru -- de -- hu -- set.
}

tiiverseiv = \lyricmode {
  \set stanza = "4. "
  Saa dra -- ge de frem -- ad 
  \set ignoreMelismata = ##t
  med ly -- ste  -- ligt Spil
  \unset ignoreMelismata 
  hen -- o -- ver den blin -- ken -- de Fla -- de,
  og Baad ef -- ter Baad sig slut -- ter der -- til
  med Bryl -- \skip 8 lups -- gjæ -- ster_saa gla -- de.
  Det blaa -- ner fra Kløft, det skin -- ner fra Bræ,
  det duf -- ter fra blom -- stren -- de A -- bild -- træ.
  Ær -- vær -- dig staar Kir -- ken paa Tan -- gen
  og sig -- ner med Klok -- ke -- klan -- gen.
  \skip8 \skip4 \skip8 \skip4 \skip8 \skip8 \skip8 
  \skip8 \skip16 \skip16 \skip16
  \skip8 \skip4 \skip8 \skip4 \skip8 \skip8 \skip8
  \skip8 \skip16 \skip16 \skip16
  Ær -- vær -- dig staar Kir -- ken paa Tan -- gen
  og sig -- ner med Klok -- ke -- klan -- gen.
}

biMusic =  \relative c {
  \phrasingSlurUp
  e8 % *1/2 \grace e16 s16
  | gis8 gis8. fis16 | fis[ e] e8 e | e4 e8 | e4 a8 |
  a a a | a a a | a4( e8) | a4 e8 | d d8. e16 |
  e8 e e | e4 e8 | e4 e8 | a a a | gis4 cis8 |
  
  b4. | b4( b16) b | b8 b b | b4 b8 | b b b |
  cis[ b] a | a gis fis | eis[ fis] gis | a8. gis16 gis8 | gis4 cis8 |
  gis2.( | gis8) a b a gis fis | gis4. cis,4 cis'8 |
     gis2.~ | gis8 a b a[ e] cis | e4. e4. |
  e4 e8 e4 e8 | e4 e8 e4 e8 | e4 e8 e4 e8 |

  e4 e8 e4 e8 | e4. e4 e8 | b'8. cis16 d8 cis b a |
  e4. e4 e8 | b'16[ a] b[ cis] d8 cis16[ d cis b] a8 | gis4. b4 cis8\( |
  b4. a | gis fis | e d | cis a' | 
    gis4.~ gis8\) r 
    \hideNotes a8\( \unHideNotes a4.\) gis\( | a~ a\) 
}

biiMusic =  \relative c {
  \phrasingSlurDown
  \partial 8
  a8 % *1/2 \grace {\stemDown a16} s16
  | a8 a8. a16 | a8 a cis | e4 e8 | a,4 a'8 |
  a gis g | fis e d | a4. | a4 a8 | a a8. a16 |
  a8 a cis | e4 e8 | a,4 e'8 | fis fis fis | gis[ gis,] a |
 
  b4. | e4~ e16 gis | gis8 gis fis | e4 gis,8 | gis gis gis |
  a4 a8 | b b b | cis[ dis] eis! | fis8. e!16 d!8 | cis4 cis'8 |
  gis2.( | gis8) a b a gis fis | gis4. cis,4 cis'8 | gis2.~ |
     gis8 a b a[ e] cis | e4. e4. |
  a,4 a8 a4 a8 | a4 a8 a4 a8 | a4 a8 a4 a8 |

  a4 a8 a4 a8 | e'4. e4 e8 | gis8. a16 b8 a e cis |
  e4. e4 e8 | gis16[ fis] gis[ a] b8 a16[ b a gis] fis8 | e4. e4 e8\( |
  e4. e | e e | e e | e e |
     <e e,>~ <e e,>8\) r \hideNotes e\( \unHideNotes e4.\) e\( | a,~ a\)
}

biiWords = \lyricmode {
  \repeat unfold 74 {  \skip 8 }
  Dum dum dum dum
  dum dum dum dum
  dum dum dum dum
  dum dum dum dum
  dum. dum!
  % herfra mangler noe tempo
  Ti, | se!. o -- ver grøn -- kla -- re Bøl. -- ge
  hjem gli -- der et Bru -- de -- føl. -- ge. \skip 8
%  \skip 4.*7
%  Aa4. --  haa!2 \skip8
%  haa4. Aa -- haa!2.
}

biiverseii = \lyricmode {
  \repeat unfold 92 {  \skip 8 }
  Han ser i de Øj -- _ ne mil -- de
  sit Liv som et Bryl -- lups -- gil -- de.
}

biiverseiii = \lyricmode {
  \repeat unfold 92 {  \skip 8 }
  Han fyl -- der u -- stand -- se -- lig Kru -- set
  til Æ -- re for Bru -- de -- hu -- set.
}

biiverseiv = \lyricmode {
  \repeat unfold 92 {  \skip 8 }
  Ær -- vær. -- dig staar Kir -- ken paa Tan. -- gen
  og sig -- ner med Klok -- ke -- klan. -- gen.
}


\score { 
  \context Score \with {
    \override DynamicText #'self-alignment-X = #1
    \override DynamicText #'X-offset =
    #(lambda (grob)
      (- (ly:self-alignment-interface::x-aligned-on-self grob)
       0.25))
    %% Uncomment for final processing:
    % \override Score.PaperColumn #'keep-inside-line = ##t
  } <<
    \override Score.BarNumber   #'padding = #3
    \set Score.autoBeaming = ##f
    \override Score.VerticalAxisGroup #'remove-first = ##t      
    \context ChoirStaff <<
      \new Staff = "tenors" \with {
        \override VerticalAxisGroup #'keep-fixed-while-stretching = ##f
      } <<
        \clef "treble_8"
        \set Staff.instrumentName = 
          \markup{\vcenter "Tenor "
                  \column {\hcenter "I" \hcenter "II"}}
        %% \set Staff.shortInstrumentName = \markup{\vcenter "T"
                %%                       \column {\hcenter "I" \hcenter "II"}}
        \context Voice = "tenori" { \songVoiceOne
                                    << \tempi \markups  \global \tiMusic >> }
        \context Voice = "tenorii" { \songVoiceTwo \tiiMusic }
      >>
      \new Staff = "basses" \with {
        \override VerticalAxisGroup #'keep-fixed-while-stretching = ##f
      } <<
        \clef bass
        \set Staff.instrumentName = 
          \markup{\vcenter "Bass "
                  \column {\hcenter "I" \hcenter "II"}}
        %% \set Staff.shortInstrumentName = \markup{\vcenter "B"
        %                        \column {\hcenter "I" \hcenter "II"}}
        \context Voice = "bassi" { \songVoiceOne << \global \biMusic >> }
        \context Voice = "bassii" { \songVoiceTwo \dynamicDown
                                    << \markups \global \biiMusic >> }
      >>

      \new Lyrics = "tiilyrs1" \with {
        \override VerticalAxisGroup #'keep-fixed-while-stretching = ##f
        alignBelowContext=tenors
      } \lyricsto tenorii \tiiWords
      \new Lyrics = "tiilyrs2" \with {
        \override VerticalAxisGroup #'keep-fixed-while-stretching = ##f
        alignBelowContext="tiilyrs1"
      } \lyricsto tenori \tiiverseii
      \new Lyrics = "tiilyrs3" \with {
        \override VerticalAxisGroup #'keep-fixed-while-stretching = ##f
        alignBelowContext="tiilyrs2"
      } \lyricsto tenori \tiiverseiii
      \new Lyrics = "tiilyrs4" \with {
        \override VerticalAxisGroup #'keep-fixed-while-stretching = ##f
        alignBelowContext="tiilyrs3"
      } \lyricsto tenorii \tiiverseiv
      \new Lyrics = "biilyrs1" \with {
        \override VerticalAxisGroup #'keep-fixed-while-stretching = ##f
        alignBelowContext=basses
      } \lyricsto bassii \biiWords    
      \new Lyrics = "biilyrs2" \with {
        \override VerticalAxisGroup #'keep-fixed-while-stretching = ##f
        alignBelowContext="biilyrs1"
      } \lyricsto bassii \biiverseii 
      \new Lyrics = "biilyrs3" \with {
        \override VerticalAxisGroup #'keep-fixed-while-stretching = ##f
        alignBelowContext="biilyrs2"
      } \lyricsto bassii \biiverseiii  
      \new Lyrics = "biilyrs4" \with {
        \override VerticalAxisGroup #'keep-fixed-while-stretching = ##f
        alignBelowContext="biilyrs3"
      } \lyricsto bassii \biiverseiv  
    >>
  >>
  \layout {
    \context {
      \Score
      \override DynamicTextSpanner #'dash-period = #-1.0
    }
    \context {
      \Score
      \remove Metronome_mark_engraver
    }
    %\context {
    %  \Lyrics 
    %  \override LyricSpace #'minimum-distance = #.8 
    %}
    % \context { \RemoveEmptyStaffContext }
%     \context {
%       \Staff
%       \override RestCollision
%         #'positioning-done = #merge-rests-on-positioning
%     }
  }
  \midi {
    \context {
      \Voice
      \remove "Dynamic_performer"
      % \remove "Span_dynamic_performer"
    }
  }

}






reply via email to

[Prev in Thread] Current Thread [Next in Thread]