2

我有一个与 acciaccaturas 和 slashed stems 相关的问题。所以第一个问题是:为什么当多个音符输入为 acciaccaturas 或斜线装饰音符时,它们不会自动发送?为什么当我向他们发送信号时,我失去了斜线?

\version "2.17.26"
{
  \relative c''{
    \time 3/4 {
      \acciaccatura e8 c4 \acciaccatura { e8 d } c4 \acciaccatura { e8[ d] } c4 |
      \slashedGrace e8 c4 \slashedGrace { e8 d } c4 \slashedGrace { e8[ d] } c4
    }
  }
}

在我看来,每个小节的最后一个音符应该是:

在此处输入图像描述


类似的东西(与斜线有关),但现在在常规音符上。当我编译下面的代码时,我得到了我想要的:4 个无光束音符,第一个在它的词干上有一个斜线。

\version "2.17.26"
{
\autoBeamOff
\relative c''{
    \once \override Flag #'stroke-style = #"grace" c8
    c c c r4 r2 |
  }
}

现在,如果我删除 line \autoBeamOff,注释将被传送,但第一个没有斜线!

如果有人可以帮助我解决这些问题,我将不胜感激。

4

1 回答 1

0

从 2.17.26 版开始,不幸的是我的问题没有简单的答案。

关于自动光束,此功能尚未实现,因此用户必须手动设置所有优雅音符的光束(使用[])。在 LilyPond 项目网站上的参考问题 3566 下请求了增强功能。可以在此链接上关注可能的发展:https ://code.google.com/p/lilypond/issues/detail?id=3566


关于斜线,这是官方 LilyPond 的文档所说的(在1.2.6 特殊节奏问题下):

多音符横梁 acciaccatura 打印时没有斜线,看起来与多音符横梁 appoggiatura 完全相同。

显然,同样的行为也适用于使用命令生成的常规横梁笔记\override Flag #'stroke-style = #"grace"

此错误也已报告(作为问题 1333),任何开发都可以在以下链接中进行:https ://code.google.com/p/lilypond/issues/detail?id=1333

作为一种解决方案,还可以在文件开头添加以下代码段,然后使用该命令\slash在优雅音符或常规音符上生成斜线:

\version "2.17.26"
% Slash snippet:
slash = {
  #(remove-grace-property 'Voice 'Stem 'direction)
  \once \override Stem #'stencil =
  #(lambda (grob)
    (let* ((x-parent (ly:grob-parent grob X))
           (is-rest? (ly:grob? (ly:grob-object x-parent 'rest))))
     (if is-rest?
      empty-stencil
      (let* ((dir (ly:grob-property grob 'direction))
             (stem (ly:stem::print grob))
             (stem-y (ly:grob-extent grob grob Y))
             (stem-length (- (cdr stem-y) (car stem-y))))
       (ly:stencil-add
        stem
        (grob-interpret-markup grob
         (markup #:translate (cons -1 (* dir (1- (/ stem-length 2)))) 
          #:draw-line (cons 2 (* dir 2)))) 
      )))))
}

% some music as example:
{ 
  \relative c'' {
    \grace{\slash g8[a g] } a1 |
    \slash g8 a g a r2
  }
}

这个片段的问题是:

  • 斜线经常会被错误定位并且需要手动调整

  • 普通笔记需要稍大一点的斜线,因此解决方案是创建两个几乎相同slash的片段,一个命名另一个slash_regular(或类似名称),然后扩大slash_regular命令的大小。

于 2013-09-20T20:04:08.433 回答