[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: doigté en couleur
From: |
Jean-Jacques Gerbaud |
Subject: |
Re: doigté en couleur |
Date: |
Mon, 25 Jul 2022 17:32:56 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 |
Le 25/07/2022 à 10:09, Valentin Villenave a écrit :
> 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 !
ça aide surtout à délimiter les différentes étapes de Scheme et on voit
que ce n'est pas aussi simple... ce que je savais déjà ! :-)
--
JJG
Drôme provençale