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

[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



reply via email to

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