Subject: markup en scheme

From: Daniel Cartron <[email-masked]>
Date: Thu, 26 Mar 2015 14:54:15 +0100

je lis sur la page
http://lilypond.org/doc/v2.16/Documentation/extending/markup-construction-in-scheme.fr.html

le texte suivant :
Problèmes connus et avertissements

L’argument markup-list des commandes #:line, #:center ou #:column ne saurait 
être une variable ni le résultat de l’appel à une fonction. 

J'utilise des variables tout le temps et ça marche, et je suis en 2.16.

Conclusion ?

Voir ma citation de signature :-D

-- 
Cordialement, Daniel Cartron
« Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne 
le savait pas et qui l'a fait. »
Marcel Pagnol

---

From: Daniel Cartron <[email-masked]>
Date: Sun, 29 Mar 2015 08:55:14 +0200

Bonjour,

Après bien des essais ratés et des recherches, voici où j'en suis.

Tout d'abord en image jointe ce que je veux faire. Rassurez-vous ce n'est 
qu'un exemple de tout ce que je veux avoir, sachant qu'il y aura plein de if 
et de cond pour n'en afficher que le tiers selon le contexte.

Le code qui m'a servi à le faire (j'ai tout super indenté histoire de bien 
voir les transformations successives.

  \markup {
    \with-color #red
      \box
        \line{
          \with-color #blue
            \center-column {
              \raise #-3 \teeny {\line { +3' -2°}}
              \raise #-2 \bold -
              \raise #-1 --
              \line {
                \italic 4'' 
              }
              \raise #+1 --
              \raise #+2 \bold -
              \raise #+3 \tiny {\line { +3' -2°}}
          }
        }
    }

la traduction en scheme

  markup 
    #:with-color (red) (
      #:box (
        #:line (
          #:with-color (blue) (
            #:center-column (
              #:raise -3 #:teeny ("c" "d")
              #:raise -2 #:bold ("-")
              #:raise -1 "--"
              #:line (
                #:italic 4''
              )
              #:raise 1 "--"
              #:raise 2 #:bold ("-")
              #:raise 3 #:teeny ("c" "d")
            )
          )
        )
      )
    )

Mais ce n'est pas ça que je veux puisque je veux rajouter des if...

Donc j'ai utiisé

#(format #t "~%~s~%" (macroexpand '(
	mon code scheme
)))

ce qui m'a renvoyé

 (make-line-markup 
    (list (
      make-with-color-markup (red) 
        (make-box-markup 
          (make-line-markup 
            (list 
              (make-with-color-markup (blue) 
                (make-center-column-markup 
                  (list 
                    (make-raise-markup -3 
                      (make-teeny-markup ("c" "d"))
                    ) 
                    (make-raise-markup -2 (make-bold-markup ("-")))
                    (make-raise-markup -1 "--") 
                    (make-line-markup 
                      (list (make-italic-markup 4''))
                    )
                    (make-raise-markup 1 "--") 
                    (make-raise-markup 2 (make-bold-markup ("-"))) 
                    (make-raise-markup 3 (make-teeny-markup ("c" "d")))
                  )
                )
              )
            )
          )
        )
      )
    )
  )

le make-with-color-markup celui-là j'aurais jamais pu l'inventer tout seul, 
heureusement que j'ai trouvé macroexpand !

Maintenant je pense que je vais pouvoir mettre mes if, mes variables, etc. Et 
trouver comment utiliser ça pour attacher le markup à ma note... Avec cons ça 
le ferait ?

Ce n'est qu'un début, continuons le combat...

-- 
Cordialement, Daniel Cartron
« Redouter l'ironie, c'est craindre la raison. »
Sacha Guitry - L'esprit

---

From: Daniel Cartron <[email-masked]>
Date: Sun, 29 Mar 2015 18:37:04 +0200

>                     (make-raise-markup 3 (make-teeny-markup ("c" "d")))

Alors là ça me dépasse !

Je fais un petit essai de define-markup-command qui m'affiche juste 
(markup 
      #:column (stringA stringB)
    )

et ça marche. Je remplace par ce que la commande macroexpand m'a renvoyé et 
déjà messages d'erreur sur les couleurs, il lui faut du rgb-color... Alors 
qu'à l'origine c'en est pas. Bon pas grave c'est ça que je veux...

Et ensuite : In expression ("c" "d"):.../...: Wrong type to apply: "c"

J'ai essayé de remplacer par des chiffres, des formules, des variables, 
imperturbablement  Wrong type to apply

Help please...

-- 
Cordialement, Daniel Cartron
« L'homme est aussi un microbe têtu. »
Jean Giono - Le hussard sur le toit