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:07:13 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1


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.


\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




reply via email to

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