자주 하모닉스 문자열이있어서 음악 기능을 사용하기로 결정했습니다 (이 기능은 접선입니다. 동일한 문제가있는 노트로 직접 재정의하면 문제가 재정의됩니다) :Staff.NoteHead 재정의를 어떻게 제한합니까?
harmonics =
#(define-music-function
(parser location notes)
(ly:music?)
#{
%\harmonicsOn
\override Staff.NoteHead #'style = #'harmonic-mixed
$notes
\revert Staff.NoteHead #'style
%\harmonicsOff
#}
)
\harmonicsOn
및 \harmonicsOff
작동하지만, 항상 빈 노트이므로 사용하고 싶지 않습니다. 노트 헤드를 무시하면 4 분 음표에 단색 헤드가 표시됩니다.
내 문제는 노트 헤드가 함수에 공급뿐만 아니라 노트 (. 참조 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을 시도했지만 동일한 결과가 나타납니다.
Full code | NoteHead Internals Documentation
그것은 언급 할 가치 당신은 같은 맥락에서 다른 동시 grobs을 가지고 하나의 GROB에 대한 속성을 (변경해야 할 때 코드로), \ tweak 명령이 도움이 될 수 있습니다. 다음을보십시오 :'{ 1}'은 화음 내부에 단지 하나의 노트 헤드를 변경하는 반면'{e'1 - \ tweak # 'color #red \ pp ->}'는 역 동성의 색만 변경합니다. 또한 마지막 명령에서 명령에'-'이 필요하므로'- \ tweak'가됩니다. –