【问题标题】:How to reliably display a delayed turn?如何可靠地显示延迟转弯?
【发布时间】:2016-05-21 08:54:22
【问题描述】:

我正在尝试排版 John Field 的短钢琴曲“Nocturne n°5”。我的主要问题出现在第 14、17 和 38 小节,其中 gruppetto 被渲染为带有自然符号的延迟转弯。

这是您可以在 Internet 上找到的版本之一:

这是我自己能做到的:

这是我尝试过的代码:

\版本“2.8.12”

upper = \relative c'' {
  \key bes \major
  \time 12/8

%bar 14

    d4.-> c2. 
    <<
    {
      c4.( f4. ees4 c8 bes4. c4.
      des2.~\sf des4.)
    }
    \\
    {
      % we create the following sequence: { r8 d16 c16 b16 c16 }

      s8
      \single \hideNotes d16
      \single \hideNotes c16
      \single \hideNotes \once \set suggestAccidentals = ##t
      \single \hideNotes \once \override AccidentalSuggestion #'outside-staff-priority = ##f
      \single \hideNotes \once \override AccidentalSuggestion #'avoid-slur = #'inside
      \single \hideNotes \once \override AccidentalSuggestion #'font-size = #-3
      \single \hideNotes \once \override AccidentalSuggestion #'script-priority = #-1
      \single \hideNotes b16-\turn

      \single \hideNotes c16

      % those spaces are to align with the second voice
      % kept in the for the duration of the phrasing slur

      s2. s2.
      s2. s4.
    }
    >>  
}

lower = \relative c {
  \key bes \major
  \time 12/8

%bar14

  e8[( \sustainOn c'8 bes8 g'8 c,8 bes8]
  e,8[ g'8 bes,8]
  ees,8[ \sustainOn f'8 a,8])

  d,8[( \sustainOn f'8 bes,8]
  ees,8[ \sustainOff c'8 g8] 
  f8[ d'8 bes8]
  f8[ ees'8 a,8])

}

\score {
  \new PianoStaff
  <<
    \new Staff = "upper" { \clef treble \upper }
    \new Staff = "lower" { \clef bass \lower }
  >>
  \layout { }
}

您会注意到,我选择创建一个临时复调乐段,并且可以选择隐藏高声部或低声部。我已经对这两种方法都进行了试验,但将渲染的声音保持在上侧并保持较低的声音隐藏似乎更合乎逻辑。但是,这会使转弯出现在五线谱的下部。

编辑

我已经用 sn-p 更新了问题,现在应该编译供其他人尝试。我的主要问题是延迟转弯发生在必须跨越分句连线的段落中。由于我找不到跨单声部和多声部乐段的连线跨度的方法,因此我需要将复调乐段保留更长的时间,而不仅仅是延迟的转折部分。

如何改进转弯和意外的位置。

【问题讨论】:

    标签: lilypond


    【解决方案1】:

    在您更新的示例中,问题有所不同,因此我添加了一个新答案。 您在临时复调乐段中使用了双反斜杠结构,并且五线谱下方显示转折。发生这种情况是因为您从未明确定义声音。在符号参考 1.5.2 中:

    > 构造,其中两个(或更多)表达式 由双反斜杠分隔,行为与 没有双反斜杠的类似结构:所有表达式 在这个结构中被分配给新的语音上下文。这些新 语音上下文是隐式创建的..

    所以 LilyPond 会将 \voiceOne 分配给第一个声音,将 \voiceTwo 分配给第二个声音。在 \voiceTwo 中,\turn 和其他类似对象显示在乐谱下方。我推荐阅读Explicitly instantiating voices

    解决方案:在临时复调段落的第二声部中删除\\ 或添加\voiceThree(\voiceOne 隐含在段落的第一声部中,如果您使用它在第二个你将与连线发生碰撞;这就是你需要 \voiceThree) 的原因。

    【讨论】:

      【解决方案2】:

      您不应该在 \markup 块中使用 \turn;而是立即将其附加到注释中:

      \once \hideNotes b16-\turn
      

      顺便说一下,这里是the example in the lilypond documentation

      我无法编译你的 sn-p,所以我从头开始重新创建它(免责声明:我不会弹钢琴,我的音乐知识有限)但对我来说看起来不错:

      \version "2.19.40"
      
      global = {
        \key bes \major
        \numericTimeSignature
        \time 12/8
      }
      
      right = \relative c'' {
        \global
        % bar 14
        <<
          { d4.-> c2. c4.-2( | }
          {
            s1 s4
            \once \set suggestAccidentals = ##t
            \once \override AccidentalSuggestion.outside-staff-priority = ##f
            \once \override AccidentalSuggestion.avoid-slur = #'inside
            \once \override AccidentalSuggestion.font-size = -3
            \once \override AccidentalSuggestion.script-priority = -1
            \single \hideNotes
            b4-\turn
          }
        >>
        f'4.-5) ees4-3
      }
      
      left = \relative c {
        \global
        % bar 14
        e8\sustainOn([ c' bes g' c, bes] e, g' bes, ees,\sustainOn f' a,) |
        ees8\sustainOn f' bes,-2 f-5\sustainOff
      }
      
      \score {
        \new PianoStaff
        <<
          \new Staff = "right" \right
          \new Staff = "left" { \clef bass \left }
        >>
        \layout { }
      }
      

      【讨论】:

      • 感谢您的反馈。虽然您的示例有效,但我已经更新了原始问题中的 sn-p,因为我仍然无法使其工作。我的问题来自于在段落中显示延迟转弯而不是跨越一个短语连线。请您看一下更新后的 sn-p 吗?
      猜你喜欢
      • 1970-01-01
      • 2014-06-30
      • 2021-10-05
      • 2014-10-02
      • 2018-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-14
      相关资源
      最近更新 更多