2014-02-26 9:57 GMT+01:00 bart deruyter <bart.deruy...@gmail.com>:

> Hi all,
>

Hi Bart,


> How can I achieve it with lilypond?
>
>
See  http://comments.gmane.org/gmane.comp.gnu.lilypond.general/67470
Herewith is a possible solution.

Cheers,
Pierre

<<attachment: BartGliss.png>>

\version "2.18.0"

#(define (define-grob-custom-property symbol type? description)
  (if (not (equal? (object-property symbol 'backend-doc) #f))
      (ly:error (_ "symbol ~S redefined") symbol))

    (set-object-property! symbol 'backend-type? type?)
    (set-object-property! symbol 'backend-doc description)
    symbol)

#(define all-user-grob-custom-properties
   (map
     (lambda (x)
       (apply define-grob-custom-property x))

     `(
       (to-fingerings ,boolean? "boolean for moving glissandi to fingerings")
     )))

fingeringSlideEngraver =
#(lambda (context)
   (let ((glissandi '())
         (fingerings '()))

     `((acknowledgers
         (glissando-interface
           . ,(lambda (engraver grob source-engraver)
                (if (eq? #t (ly:grob-property grob 'to-fingerings))
                    (set! glissandi (append glissandi (list grob))))))

         (finger-interface
           . ,(lambda (engraver grob source-engraver)
                (set! fingerings (append fingerings (list grob))))))

       (stop-translation-timestep
         . ,(lambda (trans)
              (map (lambda (gliss)
                     (map (lambda (finger)
                            (if (eq? (ly:spanner-bound gliss LEFT)
                                     (ly:grob-parent finger X))
                                (ly:spanner-set-bound! gliss LEFT finger))
                            (if (eq? (ly:spanner-bound gliss RIGHT)
                                     (ly:grob-parent finger X))
                                (begin
                                  (ly:spanner-set-bound! gliss RIGHT finger)
                                  (set! glissandi (remove (lambda (x) (eq? x gliss)) glissandi)))))
                          fingerings))
                   glissandi)

              (set! fingerings '()))))))

\layout {
  \context {
    \Staff
    \consists \fingeringSlideEngraver
    \omit Clef
    \omit TimeSignature
  }
}

\new Staff 
\transpose c c'
{
  \set stringNumberOrientations = #'(left)
  \set fingeringOrientations = #'(down)
  \override Fingering.add-stem-support = ##t
  \time 3/4
  s2.
  \override Glissando.to-fingerings = ##t
  <b-2\3>4 
  \glissando
  \override NoteColumn.glissando-skip = ##t 
  d' d 
  \revert NoteColumn.glissando-skip
  <a-2> c' d 
  s4
}

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

Reply via email to