Dimension des signes de répétition

Bonjour,

Dans une partition pour 2 instruments dont le 1er est écrit sur une portée
plus petite au moyen des instructions

fontSize = #-5
\override StaffSymbol.staff-space = #(magstep -5)
\override StaffSymbol.thickness = #(magstep -5)

les signes de reprise imprimés par \repeat percent ne sont pas
redimensionnés.

https://i60.servimg.com/u/f60/11/23/54/99/br_law10.jpg

Comment faire pour qu'ils soient proportionnés au reste de la portée ?

Merci.

···

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

Bonjour,

Personnellement je considère le comportement actuel de LilyPond comme un bug, je vous suggère de le signaler.
http://lilypond.org/bug-reports.fr.html

En attendant, sur base d'une réponse que j'avais faite il y a des années je vous propose
https://lists.gnu.org/archive/html/lilypond-user/2012-01/msg00534.html

scaledDoublePercentRepeat = #(lambda (grob) (ly:stencil-scale
(ly:percent-repeat-item-interface::double-percent grob) (magstep -5) (magstep -5)))

\override DoublePercentRepeat #'stencil = #scaledDoublePercentRepeat

Il est possible/probable qu'il faille le faire également pour RepeatSlash, DoubleRepeatSlash et PercentRepeat si vous les utilisez (je n'ai pas vérifié).

Cordialement,
Xavier

···

On Thu, 11 Feb 2021 at 12:59, Monteverdi via LilyPond French-speaking list <lilypond-user-fr@gnu.org> wrote:

Bonjour,

Dans une partition pour 2 instruments dont le 1er est écrit sur une portée
plus petite au moyen des instructions

fontSize = #-5
\override StaffSymbol.staff-space = #(magstep -5)
\override StaffSymbol.thickness = #(magstep -5)

les signes de reprise imprimés par \repeat percent ne sont pas
redimensionnés.

https://i60.servimg.com/u/f60/11/23/54/99/br_law10.jpg

Comment faire pour qu'ils soient proportionnés au reste de la portée ?

--

Xavier Scheuer <****@****>

Merci pour votre réponse.

Je n'arrive pas à faire fonctionner cette solution.

Dans l'ex. ci-dessous j'arrive bien à modifier la taille du symbole quand
celui-ci sert à répéter des notes à l'intérieur d'une mesure mais pas quand
celui-ci sert à répéter 2 mesures :

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\version "2.18.2"

varTest = #(lambda (grob) (ly:stencil-scale
(ly:percent-repeat-item-interface::beat-slash grob) 5 5))

\relative c'' {
  \override DoubleRepeatSlash #'stencil = #varTest
  c4 c \repeat percent 2 { c8. c16 }
  \bar "||"
  \repeat percent 2 { c1 c }
}

···

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

Bonjour Xavier, bonjour Monteverdi,

Ça marche très bien, c'est très malin ça. Je le range dans ma boîte à outils.
En revanche pour une petite portée -- personnellement -- je corrigerai la pente du 'slash et la taille des points de pourcentage qui sont peu lisibles.
E.g.:

\version "2.22.0"
\new Staff \with {
fontSize = #-5
\override StaffSymbol.staff-space = #(magstep -5)
\override StaffSymbol.thickness = #(magstep -5) }
{
\override DoublePercentRepeat.stencil = #(lambda (grob) (ly:stencil-scale
(ly:percent-repeat-item-interface::double-percent grob) (magstep -7) (magstep -5)))
\override DoublePercentRepeat.font-size = 7
\repeat percent 2 { \repeat unfold 8 c' }
}

Cordialement,

Pierre

P.S. Cette solution automagique mériterai de figurer au LSR.

···

Le jeu. 11 févr. 2021 à 13:56, Xavier Scheuer <****@****> a écrit :

On Thu, 11 Feb 2021 at 12:59, Monteverdi via LilyPond French-speaking list <lilypond-user-fr@gnu.org> wrote:

Bonjour,

Dans une partition pour 2 instruments dont le 1er est écrit sur une portée
plus petite au moyen des instructions

fontSize = #-5
\override StaffSymbol.staff-space = #(magstep -5)
\override StaffSymbol.thickness = #(magstep -5)

les signes de reprise imprimés par \repeat percent ne sont pas
redimensionnés.

https://i60.servimg.com/u/f60/11/23/54/99/br_law10.jpg

Comment faire pour qu'ils soient proportionnés au reste de la portée ?

Bonjour,

Personnellement je considère le comportement actuel de LilyPond comme un bug, je vous suggère de le signaler.
http://lilypond.org/bug-reports.fr.html

En attendant, sur base d'une réponse que j'avais faite il y a des années je vous propose
https://lists.gnu.org/archive/html/lilypond-user/2012-01/msg00534.html

scaledDoublePercentRepeat = #(lambda (grob) (ly:stencil-scale
(ly:percent-repeat-item-interface::double-percent grob) (magstep -5) (magstep -5)))

\override DoublePercentRepeat #'stencil = #scaledDoublePercentRepeat

Il est possible/probable qu'il faille le faire également pour RepeatSlash, DoubleRepeatSlash et PercentRepeat si vous les utilisez (je n'ai pas vérifié).

Cordialement,
Xavier

--

Xavier Scheuer <****@****>

Il faut remplacer DoubleRepeatSlash par DoublePercentRepeat

\version "2.18.2"

varTest = #(lambda (grob) (ly:stencil-scale
(ly:percent-repeat-item-interface::beat-slash grob) 5 5))

\relative c'' {
\override DoublePercentRepeat #'stencil = #varTest
c4 c \repeat percent 2 { c8. c16 }
\bar "||"
\repeat percent 2 { c1 c }

}

Cdt,
Pierre

···

Le jeu. 11 févr. 2021 à 16:44, Monteverdi via LilyPond French-speaking list <lilypond-user-fr@gnu.org> a écrit :

Merci pour votre réponse.

Je n'arrive pas à faire fonctionner cette solution.

Dans l'ex. ci-dessous j'arrive bien à modifier la taille du symbole quand
celui-ci sert à répéter des notes à l'intérieur d'une mesure mais pas quand
celui-ci sert à répéter 2 mesures :

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\version "2.18.2"

varTest = #(lambda (grob) (ly:stencil-scale
(ly:percent-repeat-item-interface::beat-slash grob) 5 5))

\relative c'' {
\override DoubleRepeatSlash #'stencil = #varTest
c4 c \repeat percent 2 { c8. c16 }
\bar "||"
\repeat percent 2 { c1 c }
}

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

En mettant la bonne variable, c'est bon.

Toute la difficulté à comprendre ce qui se passe vient du fait que le *même
symbole* est imprimé soit par DoubleRepeatSlash soit par DoublePercentRepeat
selon le contexte.

Pas évident à deviner !

\version "2.18"

varTest = #(lambda (grob) (ly:stencil-scale
(ly:percent-repeat-item-interface::beat-slash grob) 4 4))

\relative c'' {
  \override DoubleRepeatSlash #'stencil = #varTest
  c4 c \repeat percent 2 { c8. c16 }
}

varTest = #(lambda (grob) (ly:stencil-scale
(ly:percent-repeat-item-interface::double-percent grob) 4 4))

\relative c'' {
  \override DoublePercentRepeat #'stencil = #varTest
  \repeat percent 2 { g1 g }
}

Encore merci.

···

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

Tout à fait, merci Xavier ! Peut-être sous cette forme
qui s'applique génériquement à n'importe quel grob :

\version "2.23.1"

rescale =
#(define-music-function
(grob-name a b)
(symbol-list-or-symbol? number? number?)
#{
\override #grob-name . stencil =
#(grob-transformer 'stencil
(lambda (grob original)
(ly:stencil-scale original a b)))
#})

\new Staff \with {
fontSize = -5
\override StaffSymbol.staff-space = #(magstep -5)
\rescale DoublePercentRepeat #(magstep -7) #(magstep -5)
\rescale DoubleRepeatSlash #(magstep -7) #(magstep -5)
\override DoublePercentRepeat.font-size = 7
\override DoubleRepeatSlash.font-size = 7
}
\relative c'' {
c4 c \repeat percent 2 { c8. c16 }
\bar "||"
\repeat percent 2 { c1 c }
}

Mais bon, la vraie solution réside dans la correction du bug…
J'ai l'impression qu'il manque une multiplication par le
staff-space dans lily/percent-repeat-item-interface.cc, mais
je n'en mettrais pas ma main au feu car je n'ai pas totalement
compris le jeu des différentes unités.

Cordialement,
Jean

···

Le 11/02/2021 à 16:38, Pierre Perol-Schneider a écrit :

Bonjour Xavier, bonjour Monteverdi,

Ça marche très bien, c'est très malin ça. Je le range dans ma boîte à outils.
En revanche pour une petite portée -- personnellement -- je corrigerai la pente du '/slash/ et la taille des points de pourcentage qui sont peu lisibles.
E.g.:

\version "2.22.0"
\new Staff \with {
fontSize = #-5
\override StaffSymbol.staff-space = #(magstep -5)
\override StaffSymbol.thickness = #(magstep -5) }
{
\override DoublePercentRepeat.stencil = #(lambda (grob) (ly:stencil-scale
(ly:percent-repeat-item-interface::double-percent grob) (magstep -7) (magstep -5)))
\override DoublePercentRepeat.font-size = 7
\repeat percent 2 { \repeat unfold 8 c' }
}

Cordialement,
Pierre

P.S. Cette solution automagique mériterai de figurer au LSR.

@Schneidy : nos posts se sont croisés.

Pour la variable, je l'avais vue en regardant votre exemple.

Encore merci à tous pour votre aide !

···

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