lilypond-user-fr
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


From: Jean Abou Samra
Subject: Re: Règler les propriétés de «whiteout»
Date: Thu, 18 Mar 2021 22:30:46 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1


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 :

https://lilypond.org/doc/v2.22/Documentation/notation/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.

[...]


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
}




reply via email to

[Prev in Thread] Current Thread [Next in Thread]