[Top][All Lists]
[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"
}
}
}
- 2.11.24 regression: last page sometimes missing,
Arvid Grøtting <=