ledger-extra plus courte que les autres

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émentaires_Bertalotti.jpg&gt;

···

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

Bonjour,

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

···

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

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)

···

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

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

···

Le sam. 27 févr. 2021 à 10:48, JoëlG <****@****> a écrit :

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)

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

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" <****@****>
À: "JoëlG" <****@****>
Cc: "lilypond-user-fr" <lilypond-user-fr@gnu.org>
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
\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

Le sam. 27 févr. 2021 à 10:48, JoëlG < ****@**** > a écrit :

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)

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

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

\version "2.22.0"

exB = {
\once\override NoteHead.stencil = #(lambda (grob) (grob-interpret-markup grob
#{
\markup {
\combine
\musicglyph #"noteheads.s1petrucci"
\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"
\translate #'(0 . .6)
\override #'(thickness . 2)
\draw-line #'(1.1 . 0)
}
#}))
}

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

Cordialement,
Pierre

···

Le sam. 27 févr. 2021 à 18:25, <****@****> a écrit :

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" <****@****>
À: "JoëlG" <****@****>
Cc: "lilypond-user-fr" <lilypond-user-fr@gnu.org>
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
\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

Le sam. 27 févr. 2021 à 10:48, JoëlG < ****@**** > a écrit :

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)

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

JoëlG wrote

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
[…]

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
--
Sent from: http://lilypond-french-users.1298960.n2.nabble.com/

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

···

Le 27/02/2021 à 18:25, ****@**** a écrit :

Merci beaucoup Pierre,

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

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" <****@****>
À: "joel gauvrit" <****@****>, "Pierre Perol-Schneider" <****@****>
Cc: "lilypond-user-fr" <lilypond-user-fr@gnu.org>
Envoyé: Samedi 27 Février 2021 19:55:59
Objet: Re: ledger-extra plus courte que les autres

Le 27/02/2021 à 18:25, ****@**** a écrit :

Merci beaucoup Pierre,

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

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

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

···

Le 27/02/2021 à 21:48, ****@**** 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 !

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

----- Mail original -----

···

De: "Jean Abou Samra" <****@****>
À: "joel gauvrit" <****@****>
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, ****@**** 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 |
}