[英]How do I limit the Staff.NoteHead overrides?
我經常會產生一連串諧波,因此決定使用音樂功能(該功能是切線;如果直接將覆蓋放置在音符上,則會遇到相同的問題。問題是覆蓋本身):
harmonics =
#(define-music-function
(parser location notes)
(ly:music?)
#{
%\harmonicsOn
\override Staff.NoteHead #'style = #'harmonic-mixed
$notes
\revert Staff.NoteHead #'style
%\harmonicsOff
#}
)
\\harmonicsOn
和\\harmonicsOff
可以使用,但是它們始終是空心音符,因此我不想使用它們。 覆蓋記事本使我在四分音符上有扎實的頭腦。
我的問題是,在持續時間內,所有注釋都將覆蓋注釋頭,而不僅僅是提供給該功能的注釋(請參見以下代碼下方圖像中的m.2、3):
melody = \relative c' { \stemUp
\repeat unfold 4 { r8 b g b e' b, | }
\bar "|."
}
harmony = \relative c' { \stemDown
e,2. |
\harmonics { e } |
\harmonics { e4 e } s |
e2. |
}
\score {
\new Staff {
\time 3/4 \clef "treble_8"
\key g \major
<<
\new Voice { \melody} \new Voice { \harmony}
>>
}
}
我正在尋找一種僅修改我想要的音符的方法(在這種情況下,在\\harmony
),而在此持續時間內保持其他音符不變。
編輯 :我嘗試使用新的\\temporary
命令與lilypond 2.17,但得到相同的結果。
您的問題是您的函數使用\\override
命令,該命令會影響給定上下文中的所有同時發生的雜音,因此它將更改Staff上下文中的所有音符(包含旋律和和聲音樂)。 如果僅在“語音”上下文中更改記事頭,則可以解決您的問題:
harmonics =
#(define-music-function
(parser location notes)
(ly:music?)
#{
%\harmonicsOn
\override Voice.NoteHead #'style = #'harmonic-mixed
$notes
\revert Voice.NoteHead #'style
%\harmonicsOff
#}
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.