lilypond-user
[Top][All Lists]
Advanced

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

Re: can bendAfter be made to skip over notes?


From: Jean Abou Samra
Subject: Re: can bendAfter be made to skip over notes?
Date: Tue, 27 Oct 2020 17:32:04 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0


Le 27/10/2020 à 17:21, 98123981293 1293812397123 a écrit :
Hi Aaron,

I tried all three of your solutions and get the same error:

Unsupported SCM value for format: (rmoveto 2.777338 1/2 rcurveto 1.81180552352106 0 5.43541657056318 -1 5.43541657056318 -3/2)

Converting to `document.pdf'...

warning: `(gs -q -dNODISPLAY -dNOSAFER -dNOPAUSE -dBATCH -dAutoRotatePages=/None -dPrinted=false ./tmp--tmp-1982250)' failed (1)

I appreciate the attempt though. Will keep this in the back of my mind for future learning; for now will probably just use regular glissando.

-Kyle

Hello,

In recent versions of LilyPond (2.21.5 and higher), you have to remove inner quoting when constructing stencils:

%%%%
\version "2.20.0"

bend-glissando-print =
#(lambda (grob)
  (let* ((lnh (ly:spanner-bound grob LEFT))
         (rnh (ly:spanner-bound grob RIGHT))
         (lsp (ly:grob-staff-position lnh))
         (rsp (ly:grob-staff-position rnh))
         (dy (/ (- rsp lsp) 2))
         (dot (ly:grob-object lnh 'dot))
         (acc (ly:grob-object rnh 'accidental-grob))
         (th (* (ly:grob-property grob 'thickness 1)
                (ly:output-def-lookup (ly:grob-layout grob)
                                      'line-thickness)))
         (pad (ly:grob-property grob 'padding 0.5))
         (cmx (ly:grob-common-refpoint
                (ly:grob-common-refpoint grob lnh X) rnh X))
         (cmy (ly:grob-common-refpoint grob lnh Y))
         (lx (+ pad (max (interval-end (ly:generic-bound-extent lnh cmx))
                         (if dot
                             (interval-end
                              (ly:grob-robust-relative-extent dot cmx X))
                             (- INFINITY-INT)))))
         (rx (- (min (interval-start (ly:generic-bound-extent rnh cmx))
                     (if acc
                         (interval-start
                          (ly:grob-robust-relative-extent acc cmx X))
                         INFINITY-INT))
                pad))
         (dx (- rx lx))
         (sx (ly:grob-relative-coordinate grob cmx X)))
    (ly:make-stencil
      (list 'path th
        ` ; (quote
          (rmoveto ,(- lx sx) ,(/ lsp 2)
           rcurveto ,(/ dx 3) 0 ,dx ,(* dy 2/3) ,dx ,dy)) ; )
      (cons (- lx sx) (- rx sx))
      (cons (+ (/ lsp 2) (min 0 dy)) (+ (/ lsp 2) (max 0 dy))))))

bendGlissando =
  \tweak thickness #2
  \tweak stencil #bend-glissando-print
  \glissando

{ c''2. \bendGlissando
  \once \override NoteColumn.glissando-skip = ##t
  e'4 gis'1 }
%%%%

Best regards,
Jean


reply via email to

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