Subject: Dimension des signes de répétition

From: Monteverdi <[email-masked]>
Date: Thu, 11 Feb 2021 04:59:14 -0700 (MST)

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/

---

From: Xavier Scheuer <[email-masked]>
Date: Thu, 11 Feb 2021 13:55:44 +0100

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 <[email-masked]>

---

From: Monteverdi <[email-masked]>
Date: Thu, 11 Feb 2021 08:38:07 -0700 (MST)

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

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Thu, 11 Feb 2021 16:38:39 +0100

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 <[email-masked]> a
écrit :

> On Thu, 11 Feb 2021 at 12:59, Monteverdi via LilyPond French-speaking list
> <[email-masked]> wrote:
> >
> > Bonjour,
> >
> En attendant, sur base d'une réponse que j'avais faite il y a des années
> je vous propose

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Thu, 11 Feb 2021 16:50:52 +0100

Il faut remplacer DoubleRepeatSlash par DoublePercentRepeat

\version "2.18.2"

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

}

Cdt,
Pierre

---

From: Monteverdi <[email-masked]>
Date: Thu, 11 Feb 2021 09:04:38 -0700 (MST)

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'' {

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.

---

From: Jean Abou Samra <[email-masked]>
Date: Thu, 11 Feb 2021 17:12:35 +0100

Le 11/02/2021 à 16:38, Pierre Perol-Schneider a écrit :
> 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
>         (ly:percent-repeat-item-interface::double-percent grob) 
> (magstep -7) (magstep -5)))

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

---

From: Monteverdi <[email-masked]>
Date: Thu, 11 Feb 2021 09:45:51 -0700 (MST)

@Schneidy : nos posts se sont croisés.

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

Encore merci à tous pour votre aide !