2009/5/11 Marc Hohl <m...@hohlart.de>:

>    (if (and (= left-staff-position right-staff-position)
>             (< (ly:pitch-semitones right-pitch) (ly:pitch-semitones
> left-pitch)))
>                -1
>                 1 )))

This will apply an extra-dy of 1 for glissandos which aren't on the
same staff-position.

> Here I'm stuck, 'cause when I override the value for extra-dy manually, as
> in
>
> dytest = \relative c {
>  \set TabStaff.minimumFret = #2
>  \override Glissando #'extra-dy = #0
>  c4 \glissando cis \glissando c2
> }
>
> \score {
>   \new TabStaff { \clef "tab" \dytest } }
>           the glissando line doesn't look as expected, it is parallel to the
> staff lines and therefore
> invisible. So, strange as it seems, the value "1" must be right here.

The default value for 'extra-dy is set to 0.75 for all glissandos,
even if they're on different lines; see the context definition in
engraver-init.ly.

Though I suggested using cond/else, it's probably easier to use nested
if clauses: if the staff-positions are equal, compare the pitches,
otherwise return a default value of 0.

     (if (= left-staff-position right-staff-position)
         (if (< (ly:pitch-semitones right-pitch) (ly:pitch-semitones 
left-pitch))
             -1
             1)

         ;; not on same staff-position -> no extra-dy
         0))

> Just for the record: I think it would be reasonable to move the
> glissando::calc-tab-extra-dy
> call to tablature.ly, so all files are backwards compatible and tablature
> users can profit from
> the nicer glissando lines :-)

It would make an excellent addition to the file.

Regards,
Neil


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

Reply via email to