我正在处理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个不同版本的音乐,并且每个版本只在一个语音中调用override NoteHead.color。并根据声音部分给每个歌手一个不同的版本。
有没有一种编码方法可以做到这一点,其中特定的音符是每个声音不同的颜色?
https://stackoverflow.com/questions/47740493
复制相似问题