Re: RehearsalMark breaks system's ref-point? (was: The ultimate slur shaping function)

2013-11-30 Thread Janek Warchoł
Hi Ralph,

2013/11/26 Ralph Palmer ralphbugl...@gmail.com:

 Hi, Janek - I went ahead and submitted this as Issue 3677 :
 https://code.google.com/p/lilypond/issues/detail?id=3677

 Hope I wasn't out of line!

Turns out this wasn't a bug, but thanks for help anyway!  It doesn't
hurt to have additinal issues in the tracker, as long as they are
labeled corectly :)

best,
Jaenk

___
bug-lilypond mailing list
bug-lilypond@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-lilypond


Re: RehearsalMark breaks system's ref-point? (was: The ultimate slur shaping function)

2013-11-26 Thread Ralph Palmer
On Mon, Nov 25, 2013 at 5:22 PM, Janek Warchoł janek.lilyp...@gmail.comwrote:

 Hi all,

 it seems that when there is a RehearsalMark, the reference point of a
 system changes and the relative extents are calculated in an
 unreasonable way.

 Here's the background - i got a bug report about \shapeII:

 2013/11/25 Ed Gordijn ed.klari...@gmail.com:
  Hi Janek,
 
  This [\shapeII] is a very nice function you have made. But I get
 unexpected results
  when I use a rehearsal mark.
 
  Please see the included snippet.

 I did some tests and here's what i got.  I have a function (it's very
 lame, i know) that does some bogus override of a slur's positions
 property, and in the meantime it prints the relative Y-extent of
 slur's left NoteColumn:

 \version 2.17.96

 foo =
 #(define-music-function (parser location item)
(symbol-list-or-music?)

(define (quux grob)
  (let* ((orig (ly:grob-original grob))
 (bound (ly:spanner-bound grob LEFT))
 (ref (ly:grob-system bound)))
;; print the extent of the left NoteColumn relative to the system:
(display (ly:grob-extent bound ref Y))
;; bogus value:
(cons 3 3)))

#{ \tweak positions #quux #item #})

 \relative c'' {
   \foo Slur
   d1( c')
 }

 In this case it outputs (0.449994 . 1.550006) - as expected: the
 extent of the d note, measured relative to middle staffline, is
 roughly (0.45 . 1.55) staffspaces.

 But when i add a rehearsal mark:

 \relative c'' {
   \foo Slur
   d1( c')
   \mark \default
 }

 the output is (-4.100012 . -3.0), as if the point against which the
 extent is measured was on top of the higher note (instead of middle
 staff line).  Indeed, if i change the higher note to e

 \relative c'' {
   \foo Slur
   d1( e')
   \mark \default
 }

 the extent is further lowered by 1 ss: (-5.100012 . -4.0)

 This behaviour seems extremely weird to me.  Do you know anything about
 this?

 best,
 Janek


Hi, Janek - I went ahead and submitted this as Issue 3677 :
https://code.google.com/p/lilypond/issues/detail?id=3677

Hope I wasn't out of line!

Ralph
___
bug-lilypond mailing list
bug-lilypond@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-lilypond


RehearsalMark breaks system's ref-point? (was: The ultimate slur shaping function)

2013-11-25 Thread Janek Warchoł
Hi all,

it seems that when there is a RehearsalMark, the reference point of a
system changes and the relative extents are calculated in an
unreasonable way.

Here's the background - i got a bug report about \shapeII:

2013/11/25 Ed Gordijn ed.klari...@gmail.com:
 Hi Janek,

 This [\shapeII] is a very nice function you have made. But I get unexpected 
 results
 when I use a rehearsal mark.

 Please see the included snippet.

I did some tests and here's what i got.  I have a function (it's very
lame, i know) that does some bogus override of a slur's positions
property, and in the meantime it prints the relative Y-extent of
slur's left NoteColumn:

\version 2.17.96

foo =
#(define-music-function (parser location item)
   (symbol-list-or-music?)

   (define (quux grob)
 (let* ((orig (ly:grob-original grob))
(bound (ly:spanner-bound grob LEFT))
(ref (ly:grob-system bound)))
   ;; print the extent of the left NoteColumn relative to the system:
   (display (ly:grob-extent bound ref Y))
   ;; bogus value:
   (cons 3 3)))

   #{ \tweak positions #quux #item #})

\relative c'' {
  \foo Slur
  d1( c')
}

In this case it outputs (0.449994 . 1.550006) - as expected: the
extent of the d note, measured relative to middle staffline, is
roughly (0.45 . 1.55) staffspaces.

But when i add a rehearsal mark:

\relative c'' {
  \foo Slur
  d1( c')
  \mark \default
}

the output is (-4.100012 . -3.0), as if the point against which the
extent is measured was on top of the higher note (instead of middle
staff line).  Indeed, if i change the higher note to e

\relative c'' {
  \foo Slur
  d1( e')
  \mark \default
}

the extent is further lowered by 1 ss: (-5.100012 . -4.0)

This behaviour seems extremely weird to me.  Do you know anything about this?

best,
Janek


ShapeSlur.pdf
Description: Adobe PDF document
\version 2.17.96

\include shapeII-definition.ily

\markup {
  Default output
}

{   \clef G
\key f \major
\time 3/4

\relative c'' {
r4 r4 c8( c'8
  | bes8 a g f e f)

  | r4 r4 c8( c'8
  \mark \default
  | bes8 a g f e f)
}
}

\markup  {
  With shapeII: the first slur is ok but the second goes up
}

{   \clef G
\key f \major
\time 3/4

\relative c'' {  
  | \shapeII #'((h)(p 80 0.4)(p 25 0.15)()) Slur
r4 r4 c8( c'8
  | bes8 a g f e f)
  
  | r4 r4 c8( c'8
  \mark \default
  | bes8 a g f e f)
}
}

\layout {
  indent = 0\mm
  ragged-right = ##t
}


___
bug-lilypond mailing list
bug-lilypond@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-lilypond