2

私は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 を呼び出すことです。そして、声の部分に基づいて各歌手に異なるバージョンを配ります。

特定の音符が声ごとに異なる色である場合、これを行うコーディング方法はありますか?

4

1 に答える 1