Règler les propriétés de «whiteout»

Bonjour à toute l'équipe!

J'ai activé l'option \override DynamicText #'whiteout = ##t pour les
indications de nuances dans une partition de piano. J'aimerai pouvoir gérer
la taille de ce «carré blanc» qui entoure la nuance, que ce soit en largeur
comme en hauteur, afin d'«aérer» quelque peu le «forte» ou «piano» qui sont
à l'intérieur. Avez-vous une solution?

···

-----
Cordialement

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

Bonjour,

sauf erreur

   \override DynamicText.Y-extent = #'(-y . y)
   \override DynamicText.X-extent = #'(-x . x)
%-------------
\relative {
   \override DynamicText.whiteout = ##t
   c'\f c
   \override DynamicText.Y-extent = #'(-10 . 10)
   \override DynamicText.X-extent = #'(-20 . 10)
   c c\f
}
%-------------

···

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

Bonjour,

Il suffit de mettre un nombre plutôt qu'un booléen.
\override DynamicText.whiteout = #10

Voir aussi whiteout-style pour la forme du whiteout.

Cf. la documentation de la propriété whiteout
IR 3.2.48 grob-interface > whiteout
https://lilypond.org/doc/v2.23/Documentation/internals/grob_002dinterface

Cordialement,
Xavier

···

On Thu, 18 Mar 2021 at 12:13, Bernard Meylan <****@****> wrote:

Bonjour à toute l'équipe!

J'ai activé l'option \override DynamicText #'whiteout = ##t pour les
indications de nuances dans une partition de piano. J'aimerai pouvoir gérer
la taille de ce «carré blanc» qui entoure la nuance, que ce soit en largeur
comme en hauteur, afin d'«aérer» quelque peu le «forte» ou «piano» qui sont
à l'intérieur. Avez-vous une solution?

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

Merci pour ta réponse… mais \override DynamicText.Y-extent = #'(-10 . 10)
fait bouger la nuance et n'a aucune influence sur le fait qu'elle puisse
«effacer» -c-à-d se positionner au dessus- une barre de mesure et la
«recouvrir». Mais j'ai trouvé un début de solution avec ceci:

\override DynamicText.whiteout = 5

qui marche très bien. Voulant donner à ce «recouvrement» une forme
spécifique, j'ai tenté un

\override DynamicText.whiteout = #'(5 . 7) pour lui donner une forme
rectangulaire. Et là, ça coince avec un message dont j'essaie de trouver la
signification:

Avertissement : la vérification du type de « whiteout » a échoué ;
  la valeur « (5 . 7) » doit être du type « boolean-or-number »

et là, je sèche… J'ai fait une erreur de syntaxe, ça me paraît clair, mais
laquelle?

···

-----
Cordialement

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

Xavier m'a précédé de qqs secondes…

Xavier Scheuer wrote

Il suffit de mettre un nombre plutôt qu'un booléen.
\override DynamicText.whiteout = #10
Voir aussi whiteout-style pour la forme du whiteout.

Cf. la documentation de la propriété whiteout
IR 3.2.48 grob-interface > whiteout
LilyPond Internals Reference: 3.2.59 grob-interface

J'ai bien vu la page que à laquelle tu te réfères, mais je n'y vois aucun
exemple pour mettre ce qui est écrit en pratique… Cela est sans doute clair
pour toi, mais en ce qui me concerne, je n'y comprend rien…

···

-----
Cordialement

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

Bon j'avais faux, Merci Xavier
voici la solution
%-------------
\relative {
   \override DynamicText.whiteout = #10
   c'\f c
   \override DynamicText.Y-offset = #-2
   c c\f
}
%-------------

···

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

Bonjour,

La propriété whiteout-style que signalait Xavier permet de contrôler
la méthode par laquelle l'objet est blanchi. Il existe trois possibilités
pour

\override DynamicText.whiteout-style = #'le-style

et elles sont décrites de manière sûrement plus compréhensible dans la
documentation des commandes pour \markup, à l'entrée \whiteout :

En revanche, il n'existe pas à l'heure actuelle d'option tout prête
pour régler les rembourrages vertical et horizontal séparément. Il
faut mettre la main à la pâte.

\version "2.23.1"

#(set-object-property! 'whiteout-extra 'backend-type? number-pair?)

#(define (add-whiteout-callback grob stencil)
(if (ly:stencil? stencil)
(let* ((x-extent (ly:stencil-extent stencil X))
(y-extent (ly:stencil-extent stencil Y))
(user-extra (ly:grob-property grob 'whiteout-extra))
(extra (if (pair? user-extra)
user-extra
'(0 . 0)))
(x-extra (car extra))
(y-extra (cdr extra)))
(ly:stencil-outline
(ly:stencil-add
(stencil-with-color
(ly:round-filled-box
(interval-widen x-extent x-extra)
(interval-widen y-extent y-extra)
0)
white)
stencil)
stencil))))

whiteoutGrob =
#(define-music-function (grob-path) (symbol-list-or-symbol?)
#{
\override #grob-path . after-line-breaking =
#(grob-transformer 'after-line-breaking
(lambda (grob dummy)
(ly:grob-chain-callback grob
add-whiteout-callback
'stencil)))
#})

% Exemple.

\layout {
\context {
\Voice
\whiteoutGrob DynamicText
\override DynamicText.whiteout-extra = #'(2 . 0)
}
}

{
s1*2\tweak extra-offset #'(4 . 4) \fffff
}

Cordialement,
Jean

···

Le 18/03/2021 à 12:11, Bernard Meylan a écrit :

Bonjour à toute l'équipe!

J'ai activé l'option \override DynamicText #'whiteout = ##t pour les
indications de nuances dans une partition de piano. J'aimerai pouvoir gérer
la taille de ce «carré blanc» qui entoure la nuance, que ce soit en largeur
comme en hauteur, afin d'«aérer» quelque peu le «forte» ou «piano» qui sont
à l'intérieur. Avez-vous une solution?

Pardon, je me suis mélangé les pinceaux entre deux versions de
mon code. Pourquoi faire simple quand on peut faire compliqué...

\version "2.22.0"

#(set-object-property! 'whiteout-extra 'backend-type? number-pair?)

whiteoutGrob =
#(define-music-function (grob-path) (symbol-list-or-symbol?)
#{
\override #grob-path . stencil =
#(grob-transformer 'stencil
(lambda (grob stencil)
(if (ly:stencil? stencil)
(let* ((x-extent (ly:stencil-extent stencil X))
(y-extent (ly:stencil-extent stencil Y))
(user-extra (ly:grob-property grob 'whiteout-extra))
(extra (if (pair? user-extra)
user-extra
'(0 . 0)))
(x-extra (car extra))
(y-extra (cdr extra)))
(ly:stencil-outline
(ly:stencil-add
(stencil-with-color
(ly:round-filled-box
(interval-widen x-extent x-extra)
(interval-widen y-extent y-extra)
0)
white)
stencil)
stencil)))))
#})

% Exemple.

\layout {
\context {
\Voice
\whiteoutGrob DynamicText
\override DynamicText.whiteout-extra = #'(2 . 0)
}
}

{
s1*2\tweak extra-offset #'(4 . 4) \fffff
}

···

Le 18/03/2021 à 22:07, Jean Abou Samra a écrit :

Le 18/03/2021 à 12:11, Bernard Meylan a écrit :

Bonjour à toute l'équipe!

J'ai activé l'option \override DynamicText #'whiteout = ##t pour les
indications de nuances dans une partition de piano. J'aimerai pouvoir gérer
la taille de ce «carré blanc» qui entoure la nuance, que ce soit en largeur
comme en hauteur, afin d'«aérer» quelque peu le «forte» ou «piano» qui sont
à l'intérieur. Avez-vous une solution?

Bonjour,

La propriété whiteout-style que signalait Xavier permet de contrôler
la méthode par laquelle l'objet est blanchi. Il existe trois possibilités
pour

\override DynamicText.whiteout-style = #'le-style

et elles sont décrites de manière sûrement plus compréhensible dans la
documentation des commandes pour \markup, à l'entrée \whiteout :

LilyPond Notation Reference: A.11.7 Other

En revanche, il n'existe pas à l'heure actuelle d'option tout prête
pour régler les rembourrages vertical et horizontal séparément. Il
faut mettre la main à la pâte.

[...]

Magnifique… merci, Jean Abou!

···

-----
Cordialement

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

Merci,
j'étais complètement bémolisé à l'ouest ...

···

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