|
From: | address@hidden |
Subject: | Re: guidons pour le plaisir |
Date: | Mon, 13 May 2013 11:57:13 +0300 |
On 13 mai 2013, at 00:40, Loïc Chahine <address@hidden> wrote: Bonsoir à tous, C'est un peu compliqué. Admettons que le guidon est un Script, il faudrait que son objet side-support-elements ne contienne pas de hampe. Ceci est possible si tu crées un graveur (\Remove_stem_engraver, par exemple) qui supprime les hampes de la liste side-support-elements dans la méthode `finalize'. Un peu de pseudocode... #(define (do-filtering grob-array) "Fonction qui enlève les hampes de cette liste") #(define (is-guidon grob) "Fonction qui détermine si un script est un guidon") #(define (Remove_stem_engraver ctx) (let ((scripts '())) (make-engraver (acknowledgers ((script-interface trans grob source) ;; whenever a Script is acknowledged, ;; add it to `scripts' list (set! scripts (cons grob scripts)))) ((finalize trans) ;; if any Script grobs exist, ;; remove stem as side support (for-each (lambda (script) (if (is-guidon script) (ly:grob-set-object! script 'side-support-elements (do-filtering (ly:get-object script 'side-support-elements))))) scripts) ;; clear scripts ready for next timestep (set! scripts '()))))) Pour voir comment créer un Scheme engraver, il y a : Bien cordialement, ~Mike |
[Prev in Thread] | Current Thread | [Next in Thread] |