Phrasing slur bug?

View: New views
7 Messages — Rating Filter:   Alert me  

Phrasing slur bug?

by STHolmes :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

Try the following example:

%%% code begins

#(define (pagebreakone grob)
            (let* (
                   ; have we been split?
                   (orig (ly:grob-original grob))
         
                   ; if yes, get the split pieces (our siblings)
                   (siblings (if (ly:grob? orig)
                               (ly:spanner-broken-into orig) '() )))
         
             (if (and (>= (length siblings) 2)
                       (eq? (car (last-pair siblings)) grob))
               (ly:grob-set-property! grob 'control-points '((0 . 0) (5 . 5)
(10 . 15) (15 . 0))))))

\relative
{
        \override PhrasingSlur #'after-line-breaking = #pagebreakone
        c \( d e f | \break
        c d e f \) | \break

        c  d \( e f | \break
        c d e f \) | \break

        c  d e \( f | \break
        c d e f \) | \break

        c  d e f \( | \break
        c d e f \) |
}

%%% code ends

Notice how the scheme code only 'works' in the first instance, and that the
only thing changed in the four examples is where the phrasing slur starts.
Unless there's some peculiarity I'm unaware of, this seems like a bug.

Thanks,
Stewart



_______________________________________________
bug-lilypond mailing list
bug-lilypond@...
http://lists.gnu.org/mailman/listinfo/bug-lilypond

Parent Message unknown Re: Phrasing slur bug?

by STHolmes :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Has anyone got any ideas on this? I'm kind of stuck with engraving this piece
until I can resolve this issue.

Thanks,
Stewart



_______________________________________________
bug-lilypond mailing list
bug-lilypond@...
http://lists.gnu.org/mailman/listinfo/bug-lilypond

Parent Message unknown Re: Phrasing slur bug?

by Han-Wen Nienhuys-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Stewart Holmes escreveu:
> Has anyone got any ideas on this? I'm kind of stuck with engraving this piece
> until I can resolve this issue.
>
> Thanks,
> Stewart

can't duplicate this on 2.10 ; please include version number in future
reports.


--

Han-Wen Nienhuys - hanwen@... - http://www.xs4all.nl/~hanwen

LilyPond Software Design
  -- Code for Music Notation
http://www.lilypond-design.com



_______________________________________________
bug-lilypond mailing list
bug-lilypond@...
http://lists.gnu.org/mailman/listinfo/bug-lilypond

Re: Phrasing slur bug?

by STHolmes :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I was on 2.8.6. I just upgraded to the latest stable, but I still get the same
thing happening. There's definitely something up here. Try the following:

%%%%%%%%%%%%%%%%%%%%%%%%

\version "2.10.0"

#(define (pagebreakone grob)
            (let* (
                   ; have we been split?
                   (orig (ly:grob-original grob))
         
                   ; if yes, get the split pieces (our siblings)
                   (siblings (if (ly:grob? orig)
                               (ly:spanner-broken-into orig) '() )))
         
             (if (and (>= (length siblings) 2)
                       (eq? (car (last-pair siblings)) grob))
               (ly:grob-set-property! grob 'control-points '((0 . 0) (5 . 5)
(10 . 15) (15 . 0))))))

\relative
{
        \override PhrasingSlur #'after-line-breaking = #pagebreakone
        c4  d \( e f | \break
        c d e f \) | \break
}

%%%%%%%%%%%%%%%%%%%%%%%%

The slur on the second line should have its control points set, but it clearly
doesn't. Now try:

%%%%%%%%%%%%%%%%%%%%%%%%

\version "2.10.0"

#(define (pagebreakone grob)
            (let* (
                   ; have we been split?
                   (orig (ly:grob-original grob))
         
                   ; if yes, get the split pieces (our siblings)
                   (siblings (if (ly:grob? orig)
                               (ly:spanner-broken-into orig) '() )))
         
             (if (and (>= (length siblings) 2)
                       (eq? (car (last-pair siblings)) grob))
               (ly:grob-set-property! grob 'control-points '((0 . 0) (5 . 5)
(10 . 15) (15 . 0))))))

\relative
{
        \override PhrasingSlur #'after-line-breaking = #pagebreakone
        c4 \( d e f | \break
        c d e f \) | \break
}

%%%%%%%%%%%%%%%%%%%%%%%%

Notice that the slur on the second line is now correctly reshaped. The only
difference between these 2 examples is the placement of '\(', the start of the
phrasing slur.

Cheers,
Stewart



_______________________________________________
bug-lilypond mailing list
bug-lilypond@...
http://lists.gnu.org/mailman/listinfo/bug-lilypond

Re: Phrasing slur bug?

by Han-Wen Nienhuys-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Stewart Holmes escreveu:
> I was on 2.8.6. I just upgraded to the latest stable, but I still get the same
> thing happening. There's definitely something up here. Try the following:
>


> Notice that the slur on the second line is now correctly reshaped. The only
> difference between these 2 examples is the placement of '\(', the start of the
> phrasing slur.

I agree that this is strange, but this is not guaranteed to work like
you expect, since the ordering is not well defined. If you want to
change control-points, set a callback on control-points

  \override #'control-points = #(lambda (grob)
    ..stuff.. )


--

Han-Wen Nienhuys - hanwen@... - http://www.xs4all.nl/~hanwen

LilyPond Software Design
  -- Code for Music Notation
http://www.lilypond-design.com



_______________________________________________
bug-lilypond mailing list
bug-lilypond@...
http://lists.gnu.org/mailman/listinfo/bug-lilypond

Re: Phrasing slur bug?

by STHolmes :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Han-Wen Nienhuys <hanwen <at> lilypond.org> writes:

>
> Stewart Holmes escreveu:
> > I was on 2.8.6. I just upgraded to the latest stable, but I still get the
same
> > thing happening. There's definitely something up here. Try the following:
> >
>
> > Notice that the slur on the second line is now correctly reshaped. The
only
> > difference between these 2 examples is the placement of '\(', the start of
the
> > phrasing slur.
>
> I agree that this is strange, but this is not guaranteed to work like
> you expect, since the ordering is not well defined. If you want to
> change control-points, set a callback on control-points
>
>   \override #'control-points = #(lambda (grob)
>     ..stuff.. )
>

Thanks for your reply Han-Wen. Is there any chance you could modify my example
to make it work? My scheme knowledge isn't advanced enough to understand how
to do the next step.

Thanks,
Stewart



_______________________________________________
bug-lilypond mailing list
bug-lilypond@...
http://lists.gnu.org/mailman/listinfo/bug-lilypond

Re: Phrasing slur bug?

by Han-Wen Nienhuys-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Stewart Holmes escreveu:

>> I agree that this is strange, but this is not guaranteed to work like
>> you expect, since the ordering is not well defined. If you want to
>> change control-points, set a callback on control-points
>>
>>   \override #'control-points = #(lambda (grob)
>>     ..stuff.. )
>>
>
> Thanks for your reply Han-Wen. Is there any chance you could modify my example
> to make it work? My scheme knowledge isn't advanced enough to understand how
> to do the next step.




#(define (pagebreakone grob)
             (let* (
                    ; have we been split?
                    (orig (ly:grob-original grob))

                    ; if yes, get the split pieces (our siblings)
                    (siblings (if (ly:grob? orig)
                                (ly:spanner-broken-into orig) '() )))

              (if (and (>= (length siblings) 2)
                        (eq? (car (last-pair siblings)) grob))
              '((0 . 0) (5 . 5)
                (10 . 15) (15 . 0))
              (ly:slur::calc-control-points grob))))
\relative
{
        \override PhrasingSlur #'control-points = #pagebreakone


--

Han-Wen Nienhuys - hanwen@... - http://www.xs4all.nl/~hanwen

LilyPond Software Design
  -- Code for Music Notation
http://www.lilypond-design.com



_______________________________________________
bug-lilypond mailing list
bug-lilypond@...
http://lists.gnu.org/mailman/listinfo/bug-lilypond