lilypond-user-fr
[Top][All Lists]
Advanced

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

Re: ledger-extra plus courte que les autres


From: Jean Abou Samra
Subject: Re: ledger-extra plus courte que les autres
Date: Sat, 27 Feb 2021 22:08:31 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1


Le 27/02/2021 à 21:48, joel.gauvrit@free.fr a écrit :
Extraordinaire !
Je rêve de comprendre quelque chose à ce code ! Il faudrait proposer des 
formations !
Cependant je m'aperçois un peu tard que les normes de gravure de mon original 
de 1764 sont encore plus complexes :
ce n'est que lorsque les notes sont dans des interlignes hors portée qu'elles 
possèdent une ligne excédentaire, et les brèves n'en ont jamais !


Des formations... J'en rêve, mais il faudrait déjà que
cette pandémie se calme un peu !

Voici une version amendée.

Cordialement,
Jean

\version "2.22.0"

#(set-object-property! 'extra-ledger-shorten 'backend-type? number?)

#(define add-shorter-ledger
   (grob-transformer 'stencil
     (lambda (grob original)
       (let* ((staff-symbol (ly:grob-object grob 'staff-symbol))
              (line-count (ly:grob-property staff-symbol 'line-count))
              (staff-position (ly:grob-property grob 'staff-position))
              (x-extent (ly:stencil-extent original X))
              (shorten (ly:grob-property grob 'extra-ledger-shorten))
              (line-x-extent (interval-widen x-extent (- shorten)))
              (line-y-position (* 1/2
                                  (sign staff-position)))
              (cause (event-cause grob))
              (duration (ly:event-property cause 'duration))
              (duration-log (ly:duration-log duration)))
         (if (and (>= (abs staff-position)
                      line-count)
                  (equal? (modulo staff-position 2)
                          (modulo line-count 2))
                  (>= duration-log 0))
             (ly:stencil-add
               original
               (ly:line-interface::line
                 grob
                 (car line-x-extent)
                 line-y-position
                 (cdr line-x-extent)
                 line-y-position))
             original)))))


\layout {
  \override NoteHead.stencil = #add-shorter-ledger
  \override NoteHead.thickness = 2
  \override NoteHead.extra-ledger-shorten = 0.15
}


\relative {
  \autoBeamOff
  \override NoteHead.style = #'petrucci
  \omit Staff.Clef
  \omit Staff.TimeSignature
  \time 4/2
  c'''16 b a g f e d c b8 a g f e4 d c b |
  a2 g f1 |
  e\breve |
}




reply via email to

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