对于手风琴音乐表格,通常指定 括号中的音高,例如(以下摘录中的括号中的E)。这是我的目标:
http://iwant.sourceforge.net/ext-libs-in-wsdef.html
括号(1)中的音高不会播放,不应占用额外的逻辑时间(在阅读音乐表时,它们用于玩家的方便),(2)它们应该保持在附近弦。
我的LilyPond代码现在如下:
\version "2.18.2"
\include "deutsch.ly"
#(set-global-staff-size 20.0)
\relative c {
\clef bass
e8 <gis d' e>^7 h, q
\override Stem.details.beamed-lengths = #'(0)
\grace \parenthesize e
\revert Stem.details
e <gis d' e> gis, q
\override Stem.details.beamed-lengths = #'(0)
\grace \parenthesize e'
\revert Stem.details
}
使用lilypond --pdf sample.ly
我得到以下结果:
我在LilyPond中获得的结果有几个问题:(i)词干长度对恩典音符没有影响,(ii)恩典音符被移动到下一个音符,理想情况下它应该保持在和弦附近,(iii)括号太小了(尽管这是一个小问题)。
如何使用LilyPond达到预期的效果(例如在第一张图片中)?
P.S。编辑:
我能够创建一个解决方法(见下文),这不是很优雅,但可以完成工作:
\version "2.18.2"
\include "deutsch.ly"
#(set-global-staff-size 20.0)
\relative c {
\clef bass
e8 <gis d' e>^7 h, \afterGrace q
{
\override Stem.thickness = #-1.0
\parenthesize e4
\revert Stem.thickness
}
e8 <gis d' e> gis,_B \afterGrace q
{
\override Stem.thickness = #-1.0
\parenthesize e'4
\revert Stem.thickness
}
}
上述代码段的输出如下:
有没有更好的方法来实现它?
答案 0 :(得分:2)
更优雅的解决方案是使用\override Stem.thickness = #-1.0
属性,而不是使用stencil
。此属性可用于省略词干,标志,音符头等。此外,如果您只想覆盖单个音符/和弦并在其后自动恢复,则可以使用语句\once \override <something>
。最后,您还可以定义音乐功能以自动处理所有这些,特别是如果您经常使用此构造。在下面的这个例子中,参数是宽限音符和宽限音符本身之前的音符/和弦,参见:
\version "2.18.2"
\include "deutsch.ly"
#(set-global-staff-size 20.0)
accordionGrace = #(define-music-function
(parser location firstNote secondNote)
(ly:music? ly:music?)
#{
\afterGrace
$firstNote
{
\once \override Stem.stencil = ##f
\once \override Flag.stencil = ##f
\parenthesize $secondNote
}
#}
)
\relative c {
\clef bass
e8 <gis d' e>^7 h,
\accordionGrace q e8
e8 <gis d' e> gis,_B
\accordionGrace q e'8
}