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

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

Re: Colorier suivant l'intervalle ave c la note précédente


From: Gilles
Subject: Re: Colorier suivant l'intervalle ave c la note précédente
Date: Sat, 24 Mar 2012 20:45:12 +0100
User-agent: Opera Mail/11.61 (Win32)


J'ai toujours pas trouvé le moyen créer une liste avec les différents
intervalles d'un note avec la suivante...

Personne n'as d'idée ?

Voici une fonction qui colorie les têtes de notes en fonction de la
hauteur de la note précédente.
Pour autre chose que les têtes de notes (queues ou autre), je ne sais pas
faire.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\version "2.14.2"

colorizeNote = #(define-music-function (parser location music) (ly:music?)
"Colorize note in green if previous note is below, in black if pitch is
equal, in red if above"
(let ((prev-pitch (ly:make-pitch 0 0 0)))
    (music-map
      (lambda(x)
        (let ((p (ly:music-property x 'pitch)))
          (if (ly:pitch? p) (begin
             (ly:music-set-property! x 'tweaks
               (cons  ; on ajoute dans la liste de tweaks
                  (cons 'color ; un "tweak" de couleur
                     (cond
                        ((ly:pitch<? prev-pitch p) red)
                        ((equal? prev-pitch p) black)
                        (else green)))
                  (ly:music-property x 'tweaks)))
               (set! prev-pitch p)))
           x))
      music)))


music = \relative { c4 d e d e d c e e d  f e g f <e g c> <d f b> <c e
c'>1}
\colorizeNote \music
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



reply via email to

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