Subject: ledger-extra plus courte que les autres

From: JoëlG <[email-masked]>
Date: Sat, 27 Feb 2021 02:19:27 -0700 (MST)

Bonjour à tous !

J'essaie d'imiter la notation d'un imprimé de 1764 qui ajoute
systématiquement aux notes en dehors de la portée une ligne supplémentaire
plus courte que les lignes supplémentaires habituellement longues à cette
époque.
Pour ajouter cette ligne supplémentaire j'inscris
\override StaffSymbol.ledger-extra = #1
Pour allonger les lignes supplémentaires j'inscris
\override LedgerLineSpanner.length-fraction = #1

Existe-t-il un moyen de déterminer une longueur différente à la ligne
excédentaire ?
Joël G
<http://lilypond-french-users.1298960.n2.nabble.com/file/t395715/lignes_suppl%C3%A9mentaires_Bertalotti.jpg> 

--
Sent from: http://lilypond-french-users.1298960.n2.nabble.com/

---

From: gerardk <[email-masked]>
Date: Sat, 27 Feb 2021 02:41:47 -0700 (MST)

Bonjour,

Il suffit de changer la valeur des lignes supplémentaires, par exemple : 
\override LedgerLineSpanner.length-fraction = #0.2

---

From: JoëlG <[email-masked]>
Date: Sat, 27 Feb 2021 02:48:48 -0700 (MST)

Bonjour Gérard,
Je n'ai pas été assez clair, désolé...
Si je fais cela, les paramètres de la ligne supplémentaire mais également de
la ligne excédentaire sont concernés. Je souhaite que la ligne excédentaire
soit plus courte que la ligne supplémentaire usuelle (comme sur l'image
jointe dans mon message initial)

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Sat, 27 Feb 2021 13:03:53 +0100

Bonjour Joël,
En trichant :

\version "2.22.0"

exB = {
  \once\override NoteHead.stencil = #(lambda (grob) (grob-interpret-markup
grob
                                         #{
                                           \markup {
                                             \combine
                                             \musicglyph
#"noteheads.s1petrucci"
                                             \with-dimensions-from \null
                                             \translate #'(0 . .6)
                                             \override #'(thickness . 2)
                                             \draw-line #'(1.1 . 0)
                                           }
                                         #}))
}

exN = {
  \once\override NoteHead.stencil = #(lambda (grob) (grob-interpret-markup
grob
                                         #{
                                           \markup {
                                             \combine
                                             \musicglyph
#"noteheads.s2petrucci"
                                             \with-dimensions-from \null
                                             \translate #'(0 . .6)
                                             \override #'(thickness . 2)
                                             \draw-line #'(1.1 . 0)
                                           }
                                         #}))
}

{
  \autoBeamOff
  \override NoteHead.style = #'petrucci
  \override Stem.neutral-direction = #up
  %\override Staff.StaffSymbol.ledger-extra = #2
  \omit Staff.Clef
  \omit Staff.TimeSignature
  s2 \exB b''2~ 2 \exN g''4 4
}

Cordialement,
Pierre

PS. => https://lilypond.org/tiny-examples.fr.html

---

From: [email-masked]
Date: Sat, 27 Feb 2021 18:25:18 +0100 (CET)

Merci beaucoup Pierre,

J’espérais pouvoir automatiser cela mais cela fonctionne bien et de toute manière le cas reste rare.
Adopté !
Joël 

----- Mail original -----
De: "Pierre Perol-Schneider" <[email-masked]>
À: "JoëlG" <[email-masked]>
Cc: "lilypond-user-fr" <[email-masked]>
Envoyé: Samedi 27 Février 2021 13:03:53
Objet: Re: ledger-extra plus courte que les autres

Bonjour Joël, 
En trichant : 

\version "2.22.0" 

exB = { 
\once\override NoteHead.stencil = #(lambda (grob) (grob-interpret-markup grob 
#{ 
\markup { 
\combine 
\musicglyph #"noteheads.s1petrucci" 
\with-dimensions-from \null 
\translate #'(0 . .6) 
\override #'(thickness . 2) 
\draw-line #'(1.1 . 0) 
} 
#})) 
} 

exN = { 
\once\override NoteHead.stencil = #(lambda (grob) (grob-interpret-markup grob 
#{ 
\markup { 
\combine 
\musicglyph #"noteheads.s2petrucci" 
\with-dimensions-from \null 
\translate #'(0 . .6) 
\override #'(thickness . 2) 
\draw-line #'(1.1 . 0) 
} 
#})) 
} 

{ 
\autoBeamOff 

Cordialement, 
Pierre 

Le sam. 27 févr. 2021 à 10:48, JoëlG < [email-masked] > a écrit : 

Bonjour Gérard,

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Sat, 27 Feb 2021 18:46:27 +0100

Cool ! Juste un truc : le 'dimensions-from\null n'a aucun intérêt. Il faut
le supprimer :

\version "2.22.0"

exB = {

exN = {

{

Cordialement,
Pierre

---

From: Bernard Meylan <[email-masked]>
Date: Sat, 27 Feb 2021 11:28:06 -0700 (MST)

JoëlG wrote
> […]

Juste pour ton info (je ne veux surtout pas t'éloigner de ton but premier),
la période dans laquelle tu te trouves avec ta partoche est celle des
caractères mobiles; on «fortifiait» les lignes additionnelles avec ce genre
de lignes plus longues que nécessaire. Mais cela n'était absolument pas une
règle: sitôt qu'on pouvait se passer de ces lignes «trop» longues, on le
faisait sans problème. Donc il ne faut pas prendre cette manière d'imprimer
la musique de ce temps comme immuable.

-----
Cordialement

Bernard

---

From: Jean Abou Samra <[email-masked]>
Date: Sat, 27 Feb 2021 19:55:59 +0100

Bonjour,

Éventuellement, on peut automatiser un peu plus :

\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-abs-y-position (if (equal? (modulo staff-position 2)
                                                (modulo line-count 2))
                                        1/2
                                        1))
               (line-y-position (* line-abs-y-position
                                   (sign staff-position))))
          (if (< (abs staff-position)
                  line-count)
              original
              (ly:stencil-add
                original
                (ly:line-interface::line
                  grob
                  (car line-x-extent)
                  line-y-position
                  (cdr line-x-extent)
                  line-y-position)))))))

\layout {
   \override NoteHead.stencil = #add-shorter-ledger
   \override NoteHead.thickness = 2
   \override NoteHead.extra-ledger-shorten = 0.25 % à ajuster
}

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

Cordialement,
Jean

---

From: [email-masked]
Date: Sat, 27 Feb 2021 21:48:22 +0100 (CET)

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 !

----- Mail original -----
De: "Jean Abou Samra" <[email-masked]>
À: "joel gauvrit" <[email-masked]>, "Pierre Perol-Schneider" <[email-masked]>
Cc: "lilypond-user-fr" <[email-masked]>
Envoyé: Samedi 27 Février 2021 19:55:59
Objet: Re: ledger-extra plus courte que les autres

Bonjour,

\version "2.22.0"

\layout {

\relative {
   \autoBeamOff

Cordialement,
Jean

---

From: Jean Abou Samra <[email-masked]>
Date: Sat, 27 Feb 2021 22:08:31 +0100

> 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"

#(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 |
}

---

From: [email-masked]
Date: Sat, 27 Feb 2021 22:15:54 +0100 (CET)

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

----- Mail original -----
De: "Jean Abou Samra" <[email-masked]>
À: "joel gauvrit" <[email-masked]>
Cc: "lilypond-user-fr" <[email-masked]>
Envoyé: Samedi 27 Février 2021 22:08:31
Objet: Re: ledger-extra plus courte que les autres

Cordialement,
Jean

\version "2.22.0"

\layout {

\relative {
   \autoBeamOff