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

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

Re: guidons pour le plaisir


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,
Je suis en train de graver une partition assez chargée, et à un endroit il y a des guidons (custodes) en même temps que des notes. J’ai pas encore élucidé ce que ça voulait dire (ça va venir quand j’aurai vu les autres parties, car c’est en parties séparées). Mais j’aimerais les mettre. Il doit y avoir un moyen ?
Exemple en pièce jointe.
Merci d’avance !
L.C.

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 :

http://lilypond.org/doc/v2.16/Documentation/snippets/contexts-and-engravers

Bien cordialement,
~Mike


reply via email to

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