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

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

Re: Variables numériques dans les markups


From: Philippe Neyrat
Subject: Re: Variables numériques dans les markups
Date: Sun, 11 May 2014 14:48:17 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.16) Gecko/20121216 Icedove/3.0.11

Le 11/05/2014 14:27, Pierre Perol-Schneider a écrit :

Quelle doc  ?


Je suis en version 2.16.2
http://lilypond.org/doc/v2.16/Documentation/extending/lilypond-variables


Je n'ai pas vraiment compris ce que tu recherches.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\version "2.18.2"

#(define-markup-command (dieseText layout props texte espace hauteur)

    (markup? number? number?)

"règle la position d'un dièse après un texte."

      (interpret-markup layout props

        #{\markup\concat { { #texte } \hspace #(/ espace 10) \raise #(/
hauteur 10) \small \sharp } #}))

{

    cis'^\markup\dieseText Do #7 #7

}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


Là, c'est moi qui ne comprends pas,
Je n'ai pas encore le mode de pensée "scheme"...
Et ce type d'écriture me demanderait de modifier chaque occurrence dès que je veux passer de 7 à 6 par exemple.

Je veux juste créer une "constante" et rappeler cette constante dans une expression. Si pour une raison ou une autre (changement de police par exemple), je dois changer toutes les références de cette constante, je voudrais n'avoir à le faire que dans la déclaration de la "constante" (qui est en fait une variable).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#(define raise_diese 7 )
#(define raise_bemol 4 )
#(define hspace_diese 1 )
#(define hspace_bemol 2 )

do_bemol_text = \markup { "do" \hspace #(/ hspace_bemol 10) \raise #(/ raise_bemol 10) \small \flat } Do_bemol_text = \markup { "Do" \hspace #(/ hspace_bemol 10) \raise #(/ raise_bemol 10) \small \flat } do_diese_text = \markup { "do" \hspace #(/ hspace_diese 10) \raise #(/ raise_diese 10) \small \sharp } Do_diese_text = \markup { "Do" \hspace #(/ hspace_diese 10) \raise #(/ raise_diese 10) \small \sharp } re_bemol_text = \markup { "ré" \hspace #(/ hspace_bemol 10) \raise #(/ raise_bemol 10) \small \flat } Re_bemol_text = \markup { "Ré" \hspace #(/ hspace_bemol 10) \raise #(/ raise_bemol 10) \small \flat } re_diese_text = \markup { "ré" \hspace #(/ hspace_diese 10) \raise #(/ raise_diese 10) \small \sharp } Re_diese_text = \markup { "Ré" \hspace #(/ hspace_diese 10) \raise #(/ raise_diese 10) \small \sharp } mi_bemol_text = \markup { "mi" \hspace #(/ hspace_bemol 10) \raise #(/ raise_bemol 10) \small \flat } Mi_bemol_text = \markup { "Mi" \hspace #(/ hspace_bemol 10) \raise #(/ raise_bemol 10) \small \flat } fa_diese_text = \markup { "fa" \hspace #(/ hspace_diese 10) \raise #(/ raise_diese 10) \small \sharp }
.... ETC....
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Par exemple.

Mais ce genre de structure pourrait me servir ailleurs.

Je trouve juste étrange qu'il y ait une solution en faisant le "calcul" dans le markup, mais pas en dehors.

Je voudrais pouvoir écrire un truc du genre :

#(define hspace_diese (/ 1 10) )

Re_diese_text = \markup { "Ré" \hspace ??hspace_diese \raise ??raise_diese \small \sharp }

Mais je n'ai pas trouvé la syntaxe simple qui remplacerait les ?? dans l'expression du markup.

Mais quand je fais le calcul (/ hspace 10) dans le markup, et que ça fonctionne, je me dis que ça doit être possible.

Devrais-je écrire hspace_diese, \hspace_diese, #hspace_diese, #'hspace_diese, etc., ou mettre des parenthèses ?

J'espère que c'est pas trop confus...

Merci en tous cas.

Philippe

--
Propulsé par l'Association Sud-Ouest.org
Plateforme Libre d'hébergement mail à prix libre
    https://www.sud-ouest.org




reply via email to

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