\include "english.ly" %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 1 0) (x11-color 'orange)) (cons (ly:make-pitch 0 2 0) (x11-color 'yellow)) (cons (ly:make-pitch 0 3 0) (x11-color 'green)) (cons (ly:make-pitch 0 4 0) (x11-color 'turquoise)) (cons (ly:make-pitch 0 5 0) (x11-color 'blue)) (cons (ly:make-pitch 0 6 0) (x11-color 'plum)) (cons (ly:make-pitch 0 6 -1/2) (x11-color 'blue)) (cons (ly:make-pitch 0 3 1/2) (x11-color 'green)))) % (cons (ly:make-pitch 0 0 1/2) (x11-color 'red)) % (cons (ly:make-pitch 0 1 -1/2) (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 4 1/2) (x11-color 'red)) % (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 3 1/2) (x11-color 'green)) % (cons (ly:make-pitch 0 4 -1/2) (x11-color 'blue)) % (cons (ly:make-pitch 0 5 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 (event-cause grob) 'pitch))) #(set-default-paper-size "a4" 'landscape) #(set-global-staff-size 52) \score { \new Staff \relative c' { \override NoteHead #'color = #color-notehead \easyHeadsOn \time 3/4 \key f \major \partial 8 c8 | f8. f16 f4. g8 | a8. a16 a4. a8 | g a bf4 e, | g f r8 c | \break f8. f16 f4. g8 | a8. a16 a4. a8 | g a bf4 e, | g f r8 c' | \break c a d4. c8 | c bf bf4. bf8 | bf g c4. bf8 | bf g c4. bf8 | bf a a4 c, | \break f8. f16 f4. g8 | a8. a16 a4. a8 | g a bf4 e, | g f4. \bar "||" } }