Lilypond:改变特定音高下方和上方音符的颜色
Lilypond: Change color of notes below and above a certain pitch
在为竖笛(长笛)写 Lilypond 乐谱时,我希望我可以通过改变颜色来自动标记音高超出乐器范围的音符。
这个想法是,例如,对于低音乐器,所有低于 f 的绝对音高和高于 g'' 的所有音高都标为红色。男高音、中音和女高音乐器也是如此。
我在 coloring notes 上找到了一个有用的问题,但还有一段代码我不会写:
#(define (ambitus-notehead-alt grob)
( **code_i_cannot_write** )
#(define (ambitus-notehead-tenor grob)
( **code_i_cannot_write** )
#(define (ambitus-notehead-bass grob)
( **code_i_cannot_write** )
\score {
\new Staff \relative c' {
\override NoteHead #'color = #ambitus-notehead-alt
\music_altrecorder
}
\new Staff \relative c' {
\override NoteHead #'color = #ambitus-notehead-tenor
\music_tenorrecorder
}
\new Staff \relative c' {
\override NoteHead #'color = #ambitus-notehead-bass
\music_bassrecorder
}
}
这是一个可以满足您需求的函数:
\version "2.19.82"
#(define (colour-out-of-range grob)
(let* ((pch (ly:event-property (event-cause grob) 'pitch))
(semitones (ly:pitch-semitones pch)))
(cond ((< semitones 0) red)
((> semitones 24) red)
(else black))))
\score {
\new Staff \relative c' {
\override NoteHead.color = #colour-out-of-range
g8 a b c d e f g a b c d e f g a b c d e f g
}
}
制作中:
要根据您的仪器范围对其进行自定义,请更改 (< semitones 0)
和 (> semitones 24)
的值。取值0
为中音C(C4),增量1等于一个半音。所以在上面的例子中,范围在 C4-C6 之间。对于低于中央 C 的音高,您需要使用负值(例如 -5 是 G3)。
在为竖笛(长笛)写 Lilypond 乐谱时,我希望我可以通过改变颜色来自动标记音高超出乐器范围的音符。
这个想法是,例如,对于低音乐器,所有低于 f 的绝对音高和高于 g'' 的所有音高都标为红色。男高音、中音和女高音乐器也是如此。
我在 coloring notes 上找到了一个有用的问题,但还有一段代码我不会写:
#(define (ambitus-notehead-alt grob)
( **code_i_cannot_write** )
#(define (ambitus-notehead-tenor grob)
( **code_i_cannot_write** )
#(define (ambitus-notehead-bass grob)
( **code_i_cannot_write** )
\score {
\new Staff \relative c' {
\override NoteHead #'color = #ambitus-notehead-alt
\music_altrecorder
}
\new Staff \relative c' {
\override NoteHead #'color = #ambitus-notehead-tenor
\music_tenorrecorder
}
\new Staff \relative c' {
\override NoteHead #'color = #ambitus-notehead-bass
\music_bassrecorder
}
}
这是一个可以满足您需求的函数:
\version "2.19.82"
#(define (colour-out-of-range grob)
(let* ((pch (ly:event-property (event-cause grob) 'pitch))
(semitones (ly:pitch-semitones pch)))
(cond ((< semitones 0) red)
((> semitones 24) red)
(else black))))
\score {
\new Staff \relative c' {
\override NoteHead.color = #colour-out-of-range
g8 a b c d e f g a b c d e f g a b c d e f g
}
}
制作中:
要根据您的仪器范围对其进行自定义,请更改 (< semitones 0)
和 (> semitones 24)
的值。取值0
为中音C(C4),增量1等于一个半音。所以在上面的例子中,范围在 C4-C6 之间。对于低于中央 C 的音高,您需要使用负值(例如 -5 是 G3)。