我想在Lilypond中创建一个函数,它接受一个音符作为输入并返回应用了一些标记的音符。具体来说,我想简化以下内容:
\relative c' { d^\markup{\hspace #2 \smaller +1}-\bendAfter #+1 }
以及
的内容\relative c' { \bend{d} }
目前我有以下代码段:
mF = \markup{\hspace #2 \smaller +1}
bF = \bendAfter #+1
bendF = #(define-music-function (parser location note) (ly:music?)
#{ $note^\mF-\bF #}
)
\relative c' { d^\mF-\bF }
\relative c' { \bendF{d} }
\version "2.16.2"
似乎数据类型ly:music?
不是正确的,或者不可能直接附加标记,并且我最终没有非常具有描述性的解释器错误。
实现这种效果的最佳方法是什么?
答案 0 :(得分:2)
这可能不是您正在寻找的解决方案,但您可以通过使用没有参数而不是音乐功能的事件函数来解决您的问题(因此解决了ly:music?问题)。尝试:
\version "2.17.95"
mF = \markup{\hspace #2 \smaller +1}
bF = \bendAfter #+1
bendF = #(define-event-function
(parser location )
( )
#{
^\mF-\bF
#}
)
\relative c' { d^\mF-\bF }
\relative c' { d\bendF }