lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: missing glissando features (bugs?)


From: Marc Hohl
Subject: Re: missing glissando features (bugs?)
Date: Sat, 09 May 2009 11:35:46 +0200
User-agent: Thunderbird 2.0.0.21 (X11/20090318)

Neil Puttock schrieb:
2009/5/2 Marc Hohl <address@hidden>:
I have made some observations concerning \glissando:

1) accidentals are not recognised properly; I know this is in the bug list
and there are workarounds,
 see http://lists.gnu.org/archive/html/bug-lilypond/2005-08/msg00235.html

This isn't at all straightforward to fix (I had a stab at it a while
ago, and it's tricky to get the positioning correct on the right hand
side because the accidental changes the anchor point for the end of
the glissando.)

2) the glissando line between half steps should indicate the direction;
 e.g. a glissando line between c and c# should raise a bit and not be
parallel to the staff lines;

3) in tablature, the glissando is always indicated upwards, but it should be
drawn in respect to the fret number;
 e.g. 3/5\3, not 3/5/3;

Should (2) and (3) be considered as bugs? I have found a request from
9/2005:

Probably.

It should be quite easy to fix both problems with a callback for
'extra-dy (see below)
I tried this manually, and it works just fine, see attached file.
http://lists.gnu.org/archive/html/bug-lilypond/2005-09/msg00112.html

and it seems to me that this has been partly implemented
(the lines betweeen fret numbers are now sloped, so there _has_ been some
progress).

Are there any hints/workarounds to solve this problem?

>From the glissando you can get the left and right noteheads using
ly:spanner-bound, from which it's possible to retrieve the pitches. A
simple comparision of pitches should allow you to set the correct
return value for 'extra-dy.

I tried to receive the informations needed by overriding the Glissando #'stencil with a function which simply displays the values obtained by the ly:spanner-bound call before calling ly:line-spanner::print, but I get only #<Grob NoteHead > on the terminal.

What am I doing wrong here?

Thanks in advance.

Marc

For TabVoice.Glissando, you can get the staff-positions for the
bounding notes, so it's possible to apply extra-dy only for glissandos
between tab notes on the same line.

Regards,
Neil


\version "2.12.2"

\paper {
   ragged-right = ##f
}

#(define (glissando::test grob)
    (let* ((left-bound (ly:spanner-bound grob LEFT))
           (right-bound (ly:spanner-bound grob RIGHT)))
           (display "left-bound: ")(display left-bound)(newline)
           (display "right-bound: ")(display right-bound)(newline)
           ;; for now, we simply use the default printing routine
           (ly:line-spanner::print grob)))

noten = \relative c {
   \override Glissando #'stencil = #glissando::test
   c4 \glissando cis
   \once \override Glissando #'extra-dy = #0.5
   c4 \glissando cis
   c4 \glissando ces
   \once \override Glissando #'extra-dy = #-0.5
   c4 \glissando ces
}

tabs = \relative c {
   \set TabStaff.minimumFret = #2
   c4 \glissando 
   \once \override Glissando #'extra-dy = #-1.0
   d \glissando c2
   c4 \glissando d \glissando c2
   \bar "|."
}



\score {
   <<
      \new Staff { \clef "G_8" \noten }
   >>
}
\score {
   <<
      \new TabStaff { \clef "tab" \tabs }
   >>
}

reply via email to

[Prev in Thread] Current Thread [Next in Thread]