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

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

Re: doigté en couleur


From: Valentin Villenave
Subject: Re: doigté en couleur
Date: Mon, 25 Jul 2022 10:09:07 +0200

On 7/25/22, Gerard <survoje@free.fr> wrote:
> j'ose faire un petit pas en intégrant des variables

Très bonne idée ! Mais depuis quelques années (2.16 ?) on peut même
définir les variables Scheme avec la syntaxe LilyPond toute simple :

ColorFingerT = #darkblue

> J'oserai bien une petite question : comment ^ et _ sont détournés de
> leur fonction première et modifient dir ? que font ev, event-cause... ?

Reprenons la fonction pas par pas :

>      \override Fingering.stencil =
>      #(lambda (grob)

Ici lambda signifie : ce qui va suivre décrit une opération, qui va
s’appliquer à quelque chose que nous baptiserons "grob".

>         (let* ((ev (event-cause grob))
>                (txt (fingering::calc-text grob))
>                (dir (ly:event-property ev 'direction)))

Ici on définit trois petites variables temporaires :
- le "grob" lui-même n’est qu’un objet graphique, si nous voulons
obtenir la direction spécifiée il faut remonter à ce qui le cause
(l’événement) dans le code Lily.
- le texte du grob lui-même, qui est calculée par la fonction
fingering::calc-text.
- la direction, liée à l’événement en question (j’ai utilisé let*
plutôt que let parce que cela me permet d’utiliser une de mes
variables temporaires dans la définition d’une variable temporaire
subséquente.

>           (grob-interpret-markup
>            grob

On crée un markup à l’endroit du "grob" en question.

>            (case dir
>              ((1) (markup #:with-color ColorFingerP #:underline #:fontsize
> Taille txt))
>              ((-1) (markup #:with-color ColorFingerT #:fontsize Taille
> txt))
>              ((()) txt)))))

En fonction de la valeur de "dir" (la propriété qu’on a récupérée de
l’événement qui cause le "grob", on va traiter le texte différemment.

Je ne sais pas si cela aide !

Cordialement,
-- V.



reply via email to

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