On Sun, Oct 30, 2011 at 7:08 PM, Thomas Morley
<address@hidden> wrote:
\once \override Stem #'stem-end-position = #-8
Works fine with "2.14.2" and \change Staff.
But there is no effect in the following example.
\version "2.14.2"
{ a'8 [
\once \override Score.Stem #'stem-end-position = #-80
a'] }
If you set 'stem-end-position in the course of an override of 'stencil, it works in both cases:
\version "2.14.2"
xyOut =
#(define-music-function (parser location y-length)(number?)
#{
\once \override Stem #'stencil =
#(lambda (grob)
(ly:grob-set-property! grob 'stem-end-position $y-length)
(ly:stem::print grob))
#})
{
a'8 [
\xyOut #-80
a']
}
top = \change Staff = "1"
bottom = \change Staff = "2"
music = \relative c {
\override Beam #'auto-knee-gap = #0
\once \override Beam #'positions = #'(4.5 . 5)
\bottom c32[ g' \top \xyOut #-19 eis']
}
\score {
\new PianoStaff <<
\new Staff = "1" {
s16.
}
\new Staff = "2" {
\clef bass
\music
}
>>
}
______________________
I've worked some more on the function which allows you to specify accel./rit. and vice versa, and I've attached a revision which I think is a lot clearer. (Basically, it creates a series of multipliers first and then feeds the list into music-map.) I've tried to make it consistent with the input to your function.
The number input to the function is the stem number of the peak, with the first stem-number of the group being 0. My understanding is that the peak is the shortest note in an accelerando, and the longest in a ritard. I've marked these points in the example. Does this agree with your understanding?
I notice that you allow for negative numbers in the input to grow-beam-var; the sign is simply reversed. I wonder: shouldn't you just reject them from the outset, maybe with a warning? (I mean, the concept of stem number -2 doesn't make a whole lot of sense :) )
Again, thanks a lot for all the work you've invested in my problems.
You're welcome! I'm learning a lot by working on them!
-David