lilypond-user
[Top][All Lists]
Advanced

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

Forbid_line_break_engraver


From: Adam James Wilson
Subject: Forbid_line_break_engraver
Date: Sun, 19 Aug 2007 22:07:26 -0400

My apologies for so many postings on this issue -

It turns out you can get proportional notation for two staves in
different tempos WITHIN pages, but not ACROSS pages.

Lilypond seems to be fine with page breaking through a note duration,
but NOT fine with breaking through a note duration if the note has a
beam that connects it to the next note.

In order to get true proportional notation that continues across more
than one page, it would seem necessary to be able to slice a system
right through beams.

There are two examples attached that illustrate this (similar to Mats'
example in the bug report from August 17th titled
"Forbid_line_break_engraver again").   They are identical except that
the notes are beamed together in the second example.

In the first, without the beams, the music is broken into 4 pages as expected.

In the second, only two page breaks are allowed, and it seems that
beams are the culprits.  The console prints "warning: forced break was
overridden by some other event, should you be using bar checks?"
multiple times.

%%% EXAMPLE 1 (expected results) %%%

\version "2.11.29"

\layout {

\context { \Score
\remove "Timing_translator"
\remove "Default_bar_line_engraver"
\override SpacingSpanner #'uniform-stretching = ##t
\override SpacingSpanner #'strict-note-spacing = ##t
proportionalNotationDuration = #(ly:make-moment 1 128)
}

\context { \Staff

\consists "Timing_translator"
\consists "Default_bar_line_engraver"
}

\context { \Voice
\remove Forbid_line_break_engraver
}

}

global = { \repeat unfold 4 { \skip 4. \bar "" \pageBreak} }

\new StaffGroup <<

\new Staff <<

        \global

        {

        \time 12/8

        \set Staff.timeSignatureFraction = #'(3 . 8)
        \repeat unfold 4 { c8 c8 c8 \bar "|" }

}

>>

\new Staff <<

        \global

        {

        \time 12/8

        \compressMusic #'(12 . 17) {
                \set Staff.timeSignatureFraction = #'(3 . 8)
                \repeat unfold 5 { c8 c8 c8 \bar "|" }
                \set Staff.timeSignatureFraction = #'(2 . 8)
                c8 c8 \bar "|"
                
        }
}

>>

>>

%%% EXAMPLE 2 (beams prevent breaks) %%%


\version "2.11.29"

\layout {

\context { \Score
\remove "Timing_translator"
\remove "Default_bar_line_engraver"
\override SpacingSpanner #'uniform-stretching = ##t
\override SpacingSpanner #'strict-note-spacing = ##t
proportionalNotationDuration = #(ly:make-moment 1 128)
}

\context { \Staff

\consists "Timing_translator"
\consists "Default_bar_line_engraver"
}

\context { \Voice
\remove Forbid_line_break_engraver
}

}

global = { \repeat unfold 4 { \skip 4. \bar "" \pageBreak} }

\new StaffGroup <<

\new Staff <<

        \global

        {

        \time 12/8

        \set Staff.timeSignatureFraction = #'(3 . 8)
        \repeat unfold 4 { c8[ c8 c8] \bar "|" }

}

>>

\new Staff <<

        \global

        {

        \time 12/8

        \compressMusic #'(12 . 17) {
                \set Staff.timeSignatureFraction = #'(3 . 8)
                \repeat unfold 5 { c8[ c8 c8] \bar "|" }
                \set Staff.timeSignatureFraction = #'(2 . 8)
                c8[ c8] \bar "|"
                
        }
}

>>

>>




reply via email to

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