|
From: | address@hidden |
Subject: | Re: colorer l'armure suite |
Date: | Wed, 5 Oct 2011 10:04:53 +0200 |
On Oct 4, 2011, at 11:25 PM, Schermann Colette wrote:
Bertrand et moi sommes très enthousiasmés par toutes les réponses positives par rapport aux journées de travail à Paris et je me sens un peu con de ne pas avoir anticipé l'intérêt que l'appel à participation continue à générer. Il y aura certainement plus de journées comme ça, et avec une fréquence plus régulière j'espère, pour que tout le monde puisse s'entraider en direct. La meilleure adresse Internet est toujours www.lilypond.org. Si tu parcours la doc sur les tweaks avancés, tu verras plusieurs choses qui pourraient t'être utiles. Sinon, pour tout ce qui est Scheme, la doc de guile (http://www.gnu.org/s/guile/) est très bien faite. Pour avoir plus de contrôle sur la gestion des couleurs, il suffit d'emballer la première fonction dans une deuxième qui ne prend qu'une liste de couleurs. Tu appelles cette fonction lors de l'override, et elle crée la fonction intérieure qui utilisera ta liste. Par exemple, pour colorer le la bémol dans re bémol majeur, il suffit de passer une liste avec le troisième élément (et donc la troisième altération) en ta couleur préférée et les autres en noir (voir ci-dessous). Cordialement, ~Mike \version "2.14.0" #(define (colorator clist) (lambda (grob) (define (helper stencil colors alts cpos is-cancel padding-pairs gna fm inter padding lastpos lgname) (if (null? alts) stencil (let* ((pos (key-signature-interface::alteration-position (caar alts) (cdar alts) cpos)) (gname (assoc-get (if is-cancel 0 (cdar alts)) gna)) (handle (assoc-get (cons gname lgname) padding-pairs #f))) (helper (ly:stencil-combine-at-edge stencil X LEFT (stencil-with-color (ly:stencil-translate-axis (ly:font-get-glyph fm gname) (* inter pos) Y) (car colors)) (cond (handle (cdr handle)) ((and (equal? gname "accidentals.natural") (< lastpos (+ pos 2)) (> lastpos (- pos 6))) (+ padding 0.3)) (else padding))) (cdr colors) (cdr alts) cpos is-cancel padding-pairs gna fm inter padding pos gname)))) (let* ((cpos (ly:grob-property grob 'c0-position)) (is-cancel (grob::has-interface grob 'key-cancellation-interface)) (padding-pairs (ly:grob-property grob 'padding-pairs)) (gna (ly:grob-property grob 'glyph-name-alist)) (alts (ly:grob-property grob 'alteration-alist)) (fm (ly:grob-default-font grob)) (inter (* 0.5 (ly:staff-symbol-staff-space grob))) (padding (ly:grob-property grob 'padding 0))) (helper empty-stencil clist alts cpos is-cancel padding-pairs gna fm inter padding -1000 "")))) \relative c' { \key f \major fis1 \once \override Staff . KeySignature #'stencil = #(colorator (list black black red black black)) \key des \major des1 } |
[Prev in Thread] | Current Thread | [Next in Thread] |