Menu

#650 Broken hairpin placed too far to the left (=> sometimes too high after a line break to prevent collisions)

Accepted
nobody
None
Defect
2015-09-27
2008-07-25
Anonymous
No

Originally created by: *anonymous

Originally created by: v.villenave
Originally owned by: v.villenave

In this example, the hairpin (broken by a line break) is placed too high in the second and third staff, because apparently the clef and the key signature get in its way...

\version "2.11.53"

#(ly:set-option 'debug-skylines #t)

\relative b' {
  \dynamicUp
  \time 2/4
  \key a \major
  b\> b\! | b\> b  | \break

  % Key signature makes the second part of the hairpin move up
  b b\! | \key c \major b\> b | \break

  % clef also causes the problem:
  b b\! | \clef "bass" d,,\> d | \break

  % bass clef works, because its extents do not go beyond the staff lines
  d d\! |
}

This issue seems related to Issue 651 (with volta brackets).

1 Attachments

Related

Issues: #650
Issues: #651

Discussion

  • Google Importer

    Google Importer - 2011-07-22

    Originally posted by: reinhold...@gmail.com

    Neil's response on lilypond-devel (http://lists.gnu.org/archive/html/lilypond-devel/2010-11/msg00594.html):

    On 26 November 2010 20:22, Reinhold Kainhofer <reinhold@kainhofer.com> wrote:
    > BTW, the same problem also happens with ottava brackets, volta brackets, etc.
    > but NOT with text cresc spanners, trill spanners, normal text spanners or
    > tuplet brackets.

    DynamicTextSpanner uses the line-spanner-interface, so it's possible
    to set the left-bound accurately (via attach-dir and padding).  The
    same applies to TextSpanner/TrillSpanner, though these also support
    end-on-note (which means they're usually anchored on the first note
    after the break).

    > As Hairpin and DynamicTextSpanner grobs are treated completely equal in the
    > New_dynamic_engraver, I assume it must be some problem with grob settings of
    > the Hairpin grob. Any idea?

    (hairpin.cc)

    111 x_points[d] = b->extent (common, X_AXIS)[RIGHT];

    Cheers,
    Neil

     
  • Google Importer

    Google Importer - 2012-02-05

    Originally posted by: mts...@gmail.com

    Gets vertical skylines from grob stencils

    http://codereview.appspot.com/5626052

    Labels: Patch-new

     
  • Google Importer

    Google Importer - 2012-02-05

    Originally posted by: dak@gnu.org

    Patchy the autobot says: LGTM.  Patch is identical to that for issue 1097.  Please mark as duplicate if you are addressing both issues with the same method to avoid duplicate reviews and tests.

    Labels: Patch-review

     

    Related

    Issues: #1097

  • Google Importer

    Google Importer - 2012-02-05

    Originally posted by: mts...@gmail.com

    Gets vertical skylines from grob stencils

    http://codereview.appspot.com/5626052

    Labels: Patch-new

     
  • Google Importer

    Google Importer - 2012-02-05

    Originally posted by: mts...@gmail.com

    Issue 1097 has been merged into this issue.

     

    Related

    Issues: #1097

  • Google Importer

    Google Importer - 2012-02-05

    Originally posted by: mts...@gmail.com

    (No comment was entered for this change.)

    Mergedinto: 2148
    Status: Duplicate

     
  • Google Importer

    Google Importer - 2012-02-06

    Originally posted by: reinhold...@gmail.com

    This is NOT a duplicate of 2148. The problem is not that the hairpin has a rectangle as bounding box, but rather that the hairpin starts a little too far to the left, so it overlaps with the clef or key signature.

    The fix for 2148 might appear to fix the exact example given in the bug report, but if you change the \< to \> then the second line will have the hairpin still too far up, because the time sig overlaps with the hairpin and will thus move the hairpin up.

    Labels: -Patch-new
    Mergedinto:
    Status: Accepted

     

    Last edit: Simon Albrecht 2015-09-27
  • Google Importer

    Google Importer - 2012-02-06

    Originally posted by: m...@mikesolomon.org

    I don't see a time signature in the second line...do you mean key signature?

     
  • Google Importer

    Google Importer - 2012-02-06

    Originally posted by: reinhold...@gmail.com

    Yes, of course, I meant the key signature. Attached is the output with your patch (which is some awesome work!) applied. Notice that the hairpin in the second line is still way too high up.

     
  • Google Importer

    Google Importer - 2012-02-06

    Originally posted by: m...@mikesolomon.org

    Gotchya.
    In this case, I'd open up a new issue, as the problem is not that the hairpin is too high (as issue 650 stated) but too far to the left.  If it were lowered in this example, it'd be too close to the key signature for comfort.

    It seems like the fix would be ridiculously easy - change
    x_points[d] = e[-d];
    to
    x_points[d] = e[-d] + padding;

    Unless I'm missing something.
    You could add a left-bound-padding property if this doesn't float your boat.

     

    Related

    Issues: #650

  • Google Importer

    Google Importer - 2012-02-06

    Originally posted by: reinhold...@gmail.com

    No need for a new issue. This issue I about the hairpin being placed too high because it overlaps with the key signature. See the comment in my original report:

    % .. is placed
    % too high in the second and third staff, because apparently the clef
    % and the key signature get in its way...

    The fix for 2148 works around the problem in many cases, but the real cause of the hairpin being placed too high is that it starts too early.
    I'm changing the summary to make the cause of the problem more explicit.

    Summary: Broken hairpin placed too far to the left (=> sometimes too high after a line break to prevent collisions)

     
  • Simon Albrecht

    Simon Albrecht - 2015-09-27
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -3,27 +3,30 @@
     *Originally created by:* [v.villenave](http://code.google.com/u/v.villenave/)
     *Originally owned by:* [v.villenave](http://code.google.com/u/v.villenave/)
    
    +In this example, the hairpin (broken by a line break) is placed too high in the second and third staff, because apparently the clef and the key signature get in its way...
    +
    +~~~~
    +:::TeX
     \version "2.11.53"
    
    -\#\(ly:set-option 'debug-skylines \#t\)
    +#(ly:set-option 'debug-skylines #t)
    
    -% In this example, the hairpin \(broken by a line break\) is placed 
    -% too high in the second and third staff, because apparently the clef 
    -% and the key signature get in its way... 
    
    -\relative b' \{ 
    -&nbsp; \dynamicUp \time 2/4 
    -&nbsp; \key a \major
    -&nbsp; b\&lt; b\\\! | b\&lt; b&nbsp; | \break 
    +\relative b' {
    +  \dynamicUp
    +  \time 2/4
    +  \key a \major
    +  b\> b\! | b\> b  | \break
    
    -&nbsp; % Key signature makes the second part of the hairpin move up
    -&nbsp; b b\\\! | \key c \major b\&lt; b | \break
    +  % Key signature makes the second part of the hairpin move up
    +  b b\! | \key c \major b\> b | \break
    
    -&nbsp; % clef also causes the problem:
    -&nbsp; b b\\\! | \clef "bass" d,,\&lt; d | \break
    +  % clef also causes the problem:
    +  b b\! | \clef "bass" d,,\> d | \break
    
    -&nbsp; % bass clef works, because its extents do not go beyond the staff lines
    -&nbsp; d d\\\! | 
    -\}
    +  % bass clef works, because its extents do not go beyond the staff lines
    +  d d\! |
    +}
    +~~~~
    
    -% This issue seems related to [Issue 651](#651) \(with volta brackets\).
    +This issue seems related to [Issue 651](#651) \(with volta brackets\).
    
    • Needs: -->
    • Patch: -->
     
  • Simon Albrecht

    Simon Albrecht - 2015-09-27
     
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.