2009-12-14 3 views
6

lilypond может окрасить заметки в произвольно usingраскраска ноты в заверешене смолой

\override NoteHead #'color = #red c 

с цветом по умолчанию черный. Но мне нравится окрашивать все ноты с помощью тона, так что мои дети могут легче научиться распознавать заметки, поскольку c, d, e, f, ... связаны с собственным цветом. Вышесказанное позволяет мне это делать, но довольно многословно.

Есть ли ярлык, макросы какого-то, что позволяет мне сделать что-то вдоль линий:

redc greend bluee 

или даже перезаписи цвета по умолчанию для каждой ноты на поле так, что я могу даже просто сделать :

c d e 

и имеют ли каждый из них другой цвет?

+0

+1 Я люблю lilypond! –

+0

По сравнению с Сибелиусом, это, по моему опыту, довольно болезненно. Я делал набор музыки с обоими до сих пор, но мне понравилось это лучше графически :) – Joey

+0

Я довольно много музыкальный любитель ... Lilypond делает то, что мне нужно, работает на Linux и бесплатно. –

ответ

9

Существует пример для этого в 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

3

Возник вопрос It is possible to color note heads depending on their pitch? на LilyPond Snippet Repository ♪♫. Вы получаете the answer, нажав на кнопку.

+0

Я видел этот пример, но явно не музыкально грамотный, чтобы понять, что это не то же самое изменение тона, как на клавиатуре :) Это действительно делает работу! –

1

OK, для книги Kid's Keyboard Course - Book #1 я купил в начале этого года в Кембридже, я теперь это цветовое кодирование:

#(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)))) 

 Смежные вопросы

  • Нет связанных вопросов^_^