如何可靠地显示延迟转弯?

时间:2016-05-21 08:54:22

标签: lilypond

我正在尝试排列一首短钢琴曲,John Field的'Nocturne n°5'。我的主要问题发生在第14,17和38栏,其中gruppetto呈现为具有自然符号的延迟转弯。

这就是您可以在互联网上找到的其中一个版本的样子:

enter image description here

这就是我自己能做到的:

enter image description here

这是我尝试过的代码:

\ version“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 { }
}

你会注意到我选择创建一个临时的复音乐段,我可以选择隐藏上部或下部的声音。我已经对两者进行了实验,但将渲染的声音保持在上侧并保持较低的声音隐藏似乎更合乎逻辑。但是,这使得转弯出现在工作人员的下半部分。

修改

我已经用一个片段更新了这个问题,现在应该编译给其他人尝试。我的主要问题是延迟转弯发生在一段必须跨越措辞的通道中。由于我找不到跨越单声道和多声道通道的方法,我需要保持复音通道的时间长于延迟的转弯部分。

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

2 个答案:

答案 0 :(得分:3)

在您更新的示例中,问题不同,因此我添加了新的答案。 您在临时复音通道中使用双反斜杠构造,并且在工作人员下方显示转弯。发生这种情况是因为你从未明确地定义声音。在表示法参考1.5.2中:

  

&lt;&lt; {...} \ {...}&gt;&gt;构造,两个(或更多)表达式   由双反斜杠分隔,表现不同   没有双反斜杠的类似构造:所有表达式   在此构造中,将分配给新的语音上下文。这些新的   语音上下文是隐式创建的。

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

解决方案:移除\\或在临时复音段落的第二个声音中添加\voiceThree (\ voiceOne在段落的第一个声音中隐含使用如果你在第二次使用它时,你会发生与诽谤的冲突;这就是你需要\ voiceThree的原因。

答案 1 :(得分:0)

你不应该在\ markup块中使用\ turn;相反,请将其立即附加到注释中:

StreamReaders

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

我无法编译你的片段,所以我从头开始重新创建它(免责声明:我不会弹钢琴,而且我的音乐知识有限)但它对我来说很好看:

\once \hideNotes b16-\turn

enter image description here