|
View:
New views
7 Messages
—
Rating Filter:
Alert me
|
|
|
Phrasing slur bug?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 |
|
|
|
|
|
|
|
|
Re: Phrasing slur bug?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?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?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?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 |
| Free embeddable forum powered by Nabble | Forum Help |