|
From: | Éditions IN NOMINE |
Subject: | Re: BarNumber et mesure à cheval sur 2 lignes |
Date: | Mon, 20 Sep 2010 10:09:51 +0200 |
User-agent: | Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.8) Gecko/20100802 Lightning/1.0b2 Thunderbird/3.1.2 |
Bon, c'est lundi
matin, il fait beau sur Lyon, donc ça devrait le faire... Merci Cécile pour ta gentille contribution qui m'a bien éclairé. Je remets donc le couvert : 1. j'isole le code \displayMusic} (make-music 'ContextSpeccedMusic 'context-type 'Score 'element (make-music 'PropertySet 'value 50 'symbol 'currentBarNumber)) 2. je construit ma fonction en coppiant/collant un exemple de la doc ce qui donne : mesureD = #(define-music-function (parser location event-chord)(ly:music?) "force la numérotation 50 en tête de portée après un break" (let ((result-event-chord (ly:music-deep-copy event-chord))) (set! (ly:music-property result-event-chord 'elements) (cons (make-music 'ContextSpeccedMusic 'context-type 'Score 'element (make-music 'PropertySet 'value 50 'symbol 'currentBarNumber)) (ly:music-property result-event-chord 'elements))) result-event-chord) ) 3. je consulte les messages d'erreur de Lily : Interprétation en cours de la musique... erreur de programmation : Envoi d'un non-événement au contexte poursuite ; croisons les doigts. erreur de programmation : Not a music type poursuite ; croisons les doigts. Avertissement : Classe d'événement inconnue : « context-specced-music » 4. j'ouvre la fenêtre pour me jeter dans le vide... Bon, je crois avoir trouvé d'où vient l'erreur : Le fait est que le code (make-music 'ContextSpeccedMusic 'context-type 'Score (...) que j'utilise dans ma fonction n'est pas rattaché au même "noeud" que celui utilisé dans la fonction Bravo! Dans cette dernière, le code utilisé faisait partie d'une liste de propriétés de EventChord : (make-music 'EventChord 'elements (list (make-music (mon code)... Ma variable d'entrée était un élément EventChord... Or dans la fonction mesureD, le code que je récupère est en-dehors de EventChord, et se rattache au "noeud" supérieur : (make-music 'SequentialMusic 'elements (list (make-music ...) ...plusieurs : (make-music 'EventChord ...) (make-music 'ContextSpeccedMusic 'context-type 'Score (...) Donc ce n'est pas la même chose, donc normal que ça plante : je referme la fenêtre pour l'instant ! D'où ma question : comment modifier ma fonction d'origine pour que ça fonctionne ? J'ai l'impression de faire du parachute sans parachute, marrant... Merci d'avance ! JMarc Ci-dessous une réponse à Cécile pour sa proposition : J'imagine la tête des Lego que tu fais ! Bravo pour cette solution : je vais m'en "contenter" le temps de percer les mystères des #(define...) ! A bientôt JMarc _______________________________________________ liste de diffusion lilypond-user-fr address@hidden http://lists.gnu.org/mailman/listinfo/lilypond-user-fr |
[Prev in Thread] | Current Thread | [Next in Thread] |