私は4部構成の声楽を扱っています。キーノートは声部ごとに違う色にするようにしています。以前の回答とlilypondのスニペットに基づいて、次のコードがあります:
%Association list of pitches to colors.
#(define color-mapping
(list
(cons (ly:make-pitch 0 6 FLAT) (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)))
そして、各声で次のように呼び出します。
\override NoteHead.color = #color-notehead
これにより、スコア内のすべての Bb が青色になり、これは素晴らしいスタートです。しかし、Bb を voiceOne の青、voiceTwo の緑などに設定して、歌手がトニック ノートを持っているときに一目でわかるようにしたいと考えています。
不格好な解決策は、音楽の 4 つの異なるバージョンを作成し、バージョンごとに 1 つのボイスでのみオーバーライド NoteHead.color を呼び出すことです。そして、声の部分に基づいて各歌手に異なるバージョンを配ります。
特定の音符が声ごとに異なる色である場合、これを行うコーディング方法はありますか?