[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Fisarmonica] - génération de markup en scheme
From: |
Daniel Cartron |
Subject: |
[Fisarmonica] - génération de markup en scheme |
Date: |
Thu, 06 Jun 2013 16:21:21 +0200 |
User-agent: |
KMail/4.10.2 (Linux/3.8.0-23-generic; KDE/4.10.2; x86_64; ; ) |
Bonjour,
Avec le code suivant :
#(define pos 1)
#(define btn "4")
#(define-music-function (parser location note-event)
(ly:music?)
"Ajoute un markup (TextScriptEvent) aux articulations de `note-event'."
(set! (ly:music-property note-event 'articulations)
(cons (make-music 'TextScriptEvent 'direction pos 'text
(markup btn)
(ly:music-property note-event 'articulations) )
)
note-event)
j'arrive à faire ce que je veux , à savoir générer un markup à partir de
deux variables, mais ça ne couvre pas la douzaine de cas que j'ai à traiter.
Je voudrais pouvoir dans (markup btn) avoir par exemple (en considérant que
btn = "4" :
(markup #:line (#:simple "4''")))
(markup #:line (#:column (#:line (#:underline "4") #:null)))))
etc.
En résumé avoir, selon la valeur de quelques vairables, au choix
#:simple
#:underline
#:column (#:line (#:simple
#:column (#:line (#:underline
avec le #:null qui va bien au bout, mais de plus :
soit "4" soit "4'" voire "4''"
Pas moyen de trouver de la doc sur ce sujet, et je me dis que ce serait
vraiment lourdingue de faire 12 cond au lieu de quelques if bien placés...
J'ai qd mm réussi à comprendre à force d'essais qu'un markup est une liste
composée de symboles et de valeurs, encore que je n'en suis mm pas certain,
mais rien sur comment générer une telle liste.
Précision : les briques de construction des markup dépendent uniquement de
deux valeurs, dir (valant 5 ou 6) et row (valant 1 2 ou 3) mais leur
interprétation (#:underline ou '' ajouté à la valeur de btn) dépend d'une
autre variable liée au contexte nommée syst. Plus la variable btn qui sera
affichée dans le markup ainsi créé (je pense que des string-append devraient
suffire à régler la transformation de "4" en "4''").
Question subsidiaire :
Je veux pouvoir afficher entre 1 et 3 markups sur la mm note, et la syntaxe
imbriquée de cons est très mal adaptée à ce genre de concept. J'ai essayé
list et autres constructeurs, rien à faire, erreurs permanentes...
Je suis preneur de toute suggestion, et vous remercie d'avance.
Si besoin je peux mettre en ligne un fichier expurgé.
--
Cordialement, Daniel Cartron
« Le public, c'est les autres. »
François Cavanna - 4 rue Choron
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Fisarmonica] - génération de markup en scheme,
Daniel Cartron <=