2009-12-14 17 views
6

lilypond pueden colorear las notas de una manera arbitraria usingnotas para colorear en Lilypond por el lanzamiento

\override NoteHead #'color = #red c 

con el color por defecto es negro. Pero me gusta colorear todas las notas por tono, para que mis hijos aprendan más fácilmente a reconocer las notas, ya que las letras c, d, e, f, ... están asociadas con su propio color. Lo anterior me permite hacer esto, pero es bastante detallado.

¿Existe un acceso directo, las macros de algún tipo, que me permite hacer algo en la línea de:

redc greend bluee 

o incluso sobrescribir los colores por defecto para cada nota por el lanzamiento de modo que pueda incluso simplemente hacer :

c d e 

y cada uno de ellos tiene un color diferente?

+0

+1 I love lilypond! –

+0

Comparado con Sibelius, es bastante doloroso, en mi experiencia, sin embargo. He hecho música componiendo con ambas hasta ahora, pero me gustó más gráficamente :) – Joey

+0

Soy más o menos un aficionado a la música ... Lilypond hace lo que necesito, corre en Linux y es gratis. –

Respuesta

9

Hay un ejemplo de esto en el snippets:

%Association list of pitches to colors. 
#(define color-mapping 
    (list 
    (cons (ly:make-pitch 0 0 0) (x11-color 'red)) 
    (cons (ly:make-pitch 0 0 1/2) (x11-color 'green)) 
    (cons (ly:make-pitch 0 1 -1/2) (x11-color 'green)) 
    (cons (ly:make-pitch 0 2 0) (x11-color 'red)) 
    (cons (ly:make-pitch 0 2 1/2) (x11-color 'green)) 
    (cons (ly:make-pitch 0 3 -1/2) (x11-color 'red)) 
    (cons (ly:make-pitch 0 3 0) (x11-color 'green)) 
    (cons (ly:make-pitch 0 4 1/2) (x11-color 'red)) 
    (cons (ly:make-pitch 0 5 0) (x11-color 'green)) 
    (cons (ly:make-pitch 0 5 -1/2) (x11-color 'red)) 
    (cons (ly:make-pitch 0 6 1/2) (x11-color 'red)) 
    (cons (ly:make-pitch 0 1 0) (x11-color 'blue)) 
    (cons (ly:make-pitch 0 3 1/2) (x11-color 'blue)) 
    (cons (ly:make-pitch 0 4 -1/2) (x11-color 'blue)) 
    (cons (ly:make-pitch 0 5 1/2) (x11-color 'blue)) 
    (cons (ly:make-pitch 0 6 -1/2) (x11-color 'blue)) 
    )) 

%Compare pitch and alteration (not octave). 
#(define (pitch-equals? p1 p2) 
    (and 
    (= (ly:pitch-alteration p1) (ly:pitch-alteration p2)) 
    (= (ly:pitch-notename p1) (ly:pitch-notename p2)))) 

#(define (pitch-to-color pitch) 
    (let ((color (assoc pitch color-mapping pitch-equals?))) 
    (if color 
     (cdr color)))) 

#(define (color-notehead grob) 
    (pitch-to-color 
    (ly:event-property (ly:grob-property grob 'cause) 'pitch))) 

\score { 
    \new Staff \relative c' { 
    \override NoteHead #'color = #color-notehead 
    c8 b d dis ees f g aes 
    } 
} 

Sample image

1

bien, para el libro Kid's Keyboard Course - Book #1 compré a principios de este año en Cambridge, ahora tengo este código de colores:

#(define color-mapping 
    (list 
    (cons (ly:make-pitch 0 0 0) (x11-color 'magenta)) 
    (cons (ly:make-pitch 0 1 -1/2) (x11-color 'grey)) 
    (cons (ly:make-pitch 0 1 0) (x11-color 'grey)) 
    (cons (ly:make-pitch 0 1 1/2) (x11-color 'grey)) 
    (cons (ly:make-pitch 0 2 0) (x11-color 'red)) 
    (cons (ly:make-pitch 0 2 1/2) (x11-color 'red)) 
    (cons (ly:make-pitch 0 3 -1/2) (x11-color 'green)) 
    (cons (ly:make-pitch 0 3 0) (x11-color 'green)) 
    (cons (ly:make-pitch 0 4 -1/2) (x11-color 'blue)) 
    (cons (ly:make-pitch 0 4 0) (x11-color 'blue)) 
    (cons (ly:make-pitch 0 4 1/2) (x11-color 'blue)) 
    (cons (ly:make-pitch 0 5 0) (x11-color 'yellow)) 
    (cons (ly:make-pitch 0 5 -1/2) (x11-color 'yellow)) 
    (cons (ly:make-pitch 0 5 1/2) (x11-color 'yellow)) 
    (cons (ly:make-pitch 0 6 1/2) (x11-color 'purple)) 
    (cons (ly:make-pitch 0 6 0) (x11-color 'purple)) 
    (cons (ly:make-pitch 0 6 -1/2) (x11-color 'purple)))) 
Cuestiones relacionadas