Attached are the source code and PNG output of a small example Lilypond
file illustrating several problems.  This is for version 2.4.6; if some of
the problems have already been addressed in 2.5 please let me know.

The source is based pretty closely on the "Piano centered dynamics"  
template from the Lilypond documentation.  Here's a list of the things 
that come out wrong:

     1. In the first measure the dynamics "sfz" and "pp" for the first
        two notes overlap.

     2. The "sfz" and "pp" strings aren't aligned vertically.  That is,
        the baseline for the "sfz" is lower than the baseline for the 
        "pp".  Is this a problem in the original font definition?

     3. In the second measure the word "crescendo" overlaps with the
        hairpin crescendo marking.

     4. At the key change in the third measure a B-natural symbol is 
        printed followed immediately by a B-flat symbol.  Printing
        redundant symbols like that looks silly; there's no reason
        to cancel the B-flat from the old key signature when the new
        signature includes a B-flat.

     5. At the start of the second line, the multimeasure rests look
        strange.  Why is the 21-bar rest so much shorter than the 20-bar
        rest?  I would expect it to be the same length.

     6. In the second measure after the change to 2/2 time, the word
        "Andante" spills out both before and after the measure.  The
        measure should expand so that the word can fit.

If there are simple solutions to any of these problems, I'd like to hear 
about them.

Alan Stern
\version "2.4.6"

\include "english.ly"

\paper {
        #(set-paper-size "letter")
        leftmargin = 0.5\in
        linewidth = 3.9\in
}

\layout {
        \context {
                \Score
                skipBars = ##t
        }
}

upper = \relative c'' {
        \set Voice.restNumberThreshold = #10000
        \clef treble
        \key f \major
        \time 4/4

        c4\sfz c\pp r2 |
        c2 d4. e8 |

        \key ef \major
        R1 |

        R1*20 |
        R1*21 \bar "||" |

        \time 2/2
        R1 |
        \fatText R1^\markup { \bold "Andante" } |
        R1^\markup { \musicglyph #"scripts-ufermata" }
        c1 ~ |
        c1 ~ |
        c1 ~ |
        \unset Voice.restNumberThreshold
}

lower = \relative c' {
        \override Voice.MultiMeasureRestNumber #'staff-padding = #2
        \clef bass
        \key f \major
        \time 4/4

        R1*2 |

        \key ef \major
        a4 a r2 |

        R1*20 |
        R1*21 \bar "||" |

        \time 2/2
        R1 |
        R1 |
        R1^\markup { \musicglyph #"scripts-ufermata" }
        c1 ~ |
        c1 ~ |
        c1 |

        \revert Voice.MultiMeasureRestNumber #'staff-padding
}

dynamics = {
        s1 |
        \fatText s2^"crescendo" s4.\< s8 |
        s4\! s2. |

        s1*54 |
}

\score {
        \context PianoStaff <<
                \context Staff=upper \upper
                \context Dynamics=dynamics \dynamics
                \context Staff=lower \lower
        >>
        \layout {
                \context {
                        \type "Engraver_group_engraver"
                        \name Dynamics
                        \alias Voice % So that \cresc works, for example.
                        \consists "Output_property_engraver"

                        minimumVerticalExtent = #'(-1 . 1)

                        \consists "Script_engraver"
                        \consists "Dynamic_engraver"

                        \consists "Text_engraver"
                        \override TextScript #'font-size = #1
                        \override TextScript #'font-shape = #'italic
                        \override DynamicText #'extra-offset = #'(0 . 2.5)
                        \override Hairpin #'extra-offset = #'(0 . 2.5)

                        \consists "Text_spanner_engraver"
                        \override TextSpanner #'font-size = #1

                        \consists "Skip_event_swallow_translator"
                        \consists "Axis_group_engraver"
                }
                \context {
                        \PianoStaff
                        \accepts Dynamics
                        \override VerticalAlignment #'forced-distance = #5
                }
        }
}
_______________________________________________
bug-lilypond mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-lilypond

Reply via email to