【问题标题】:How to use single notes in music functions?如何在音乐功能中使用单音符?
【发布时间】:2013-12-02 13:34:50
【问题描述】:

我想在 Lilypond 中创建一个函数,它接受一个注释作为输入并返回应用了一些标记的注释。具体来说,我想简化如下内容:

\relative c' { d^\markup{\hspace #2 \smaller +1}-\bendAfter #+1 }

类似于

\relative c' { \bend{d} }

目前我有以下sn-p:

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? 的数据类型不是正确的,或者无法直接附加标记,我最终会遇到描述性不强的解释器错误。

实现这种效果的最佳方法是什么?

【问题讨论】:

  • 您好,您是否考虑加入 LilyPond 邮件列表,以便与其他 LilyPond 用户和开发人员取得联系?这通常是解决问题或获得答案的最佳(也是最快)方法。登录地址为:lilypond.org/contact.html
  • @gilberto.agostinho.f 谢谢,那可能会更好,但我目前正在研究我的“风滚草”徽章:-) 如果没有 Lilypond 问题可以回答的人他们也没有理由在这里四处张望......

标签: lilypond


【解决方案1】:

这可能不是您正在寻找的解决方案,但您可以通过使用不带参数的事件函数而不是音乐函数来解决您的问题(从而解决 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 }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-25
    • 2019-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多