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: joel . gauvrit
Subject: Re: ledger-extra plus courte que les autres
Date: Sat, 27 Feb 2021 22:15:54 +0100 (CET)

J'en reste bouche-bée !
1000 mercis !

----- Mail original -----
De: "Jean Abou Samra" <jean@abou-samra.fr>
À: "joel gauvrit" <joel.gauvrit@free.fr>
Cc: "lilypond-user-fr" <lilypond-user-fr@gnu.org>
Envoyé: Samedi 27 Février 2021 22:08:31
Objet: Re: ledger-extra plus courte que les autres


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]