LilyPond教程(10)——钢琴独奏片段进阶 II

"本文详细介绍了如何使用LilyPond处理钢琴曲谱中的隐藏音符和隐藏式休止符,包括它们的使用区别和效果。此外,还讲解了调整符干朝向的xxxUp和xxxDown指令,并提供了多声部乐段的调整方法,如符头合并和音符偏移。通过实例解析,帮助读者掌握在复杂乐谱中的输入技巧。"
摘要由CSDN通过智能技术生成

本篇会着重解决钢琴曲谱中音符输入的常见问题。示例片段均来自肖邦的降E大调华丽大圆舞曲。(Valse Brilliante, op.18)

本篇的学习要点有:

  • 如何使用隐藏音符和隐藏式休止符
  • 如何调整符干朝向,进一步了解_^的使用方法以及其他记号的方向调整
  • 解决多声部乐段的一些常见问题

不知道看到这两个小节乐谱,你会不会感到头疼:
在这里插入图片描述
上述片段选自示例乐谱的第16、17小节。这个片段即使是常见的打谱软件也需要挺多调整。本篇教程结束,你就能用LilyPond解决这两个小节乐谱的输入了,你会发现它解决这个问题的逻辑是多么自然。

1 隐藏音符和隐藏式休止符

隐藏音符和隐藏式休止符提供了一种非常便利的方式来调整乐谱的音符。它们虽然都是把音符“藏”起来,但是使用起来还是有细微的区别。

1.1 隐藏式休止符

添加隐藏式休止符有两种方式:\skips。它们有如下不同点:

  • \skip本质上是命令(command),s本质上是音符(note)
  • \skip后面必须跟一个时值有无空格隔开都可以。而s跟音符一样,可以省略时值,如果添加时值,则必须连在一起。比如c4 \skip 2 c8c4 s 2 c8的显示完全不一样,但是和c4 s2 c8以及c4 \skip2 c8一样
  • \skip不会影响LilyPond记录的时值,而s与其他音符一样,会影响时值。比如c4 \skip2 c中后面的c时值为4,但c4 s2 c中后面的c时值为2
  • s可以添加力度记号,演奏记号等多种记号,但是\skip不可以

1.2 隐藏音符

隐藏音符将使用指令\hideNotes完成,如果要还原则使用指令\unHideNotes。它跟隐藏式休止符有两点不同:

  • 隐藏式休止符在midi中不会播放,但隐藏音符即便不在乐谱中显示,也同样会播放。
  • 隐藏式休止符无法添加圆滑线和连音线,但隐藏音符可以添加。而且得到的圆滑线和连音线,跟音符未隐藏时添加的记号位置一样。

PS:隐藏音符很多时候是用来调整圆滑线的权宜之计,但由于它有时会严重影响乐谱的显示,这里仅作介绍

2 \xxxUp\xxxDown指令

2.1 全局指令

LilyPond可以用\xxxUp\xxxDown指令临时调整符干朝向或其他记号的上下位置。下面是几种常用的:

  • \stemUp\stemDown用来调整符干的朝向\stemUp表示符干朝上;\stemDown表示符干朝下。
  • \dynamicUp\dynamicDown用来调整力度记号\dynamicUp表示放在上面;\dynamicDown表示放在下面。
  • \slurUp\slurDown调整圆滑线(即()的上下位置。
  • \tieUp\tieDown调整连音线(即~)的上下位置。
  • \tupletUp\tupletDown调整连音符数字的上下位置。
  • \phrasingSlurUp\phrasingSlurDown调整外层圆滑线(即\()的上下位置

指令的作用范围是它之后的所有记号。如果要还原到默认状态,使用指令\xxxNeutral

2.2 临时指令

使用下划线_和上三角^可以对记号作临时调整。跟前面教程提到的一样,_表示放在下面,^表示放在上面。(这个记法和LaTex的逻辑是一样的)
很多记号都可以使用临时指令调整位置。比如\relative c'{ c_. d^( e) f_[ g] a^\p b_\> c\! }得到的乐谱如下:
在这里插入图片描述

3 多声部乐段的一些调整

3.1 符头合并

在多声部乐段中,LilyPond会自动合并音高和时值一样的符头。如下例所示:

\score {
  \relative c'{
    << {c4 d e f} \\ {c4 b a g} >>
  }
}

在这里插入图片描述
但对于音高一样但时值不一样的音符,LilyPond和大多数打谱软件一样默认错开显示。下面有两个指令来控制符头合并:

  • \mergeDifferentlyHeadedOn指令会使音高一样但时值不一样的音符符头合并。但四分音符和附点四分音符不会合并,因为一旦合并会比较难分清两个声部的旋律,但有的乐曲仍然要求它们合并,于是可以采用下一个指令。
  • \mergeDifferentlyDottedOn指令会针对附点音符对符头进一步合并,详细可看下面的示例:
\score {
  \relative c'{
    <<	%第一小节
    \relative {
      c''8 d e d c d c4
    } \\
    \relative {
      c''2 c8. b16 c4
    } 
    >>
    <<	%第二小节
    \relative {
      \mergeDifferentlyHeadedOn
      c''8 d e d c d c4
    } \\
    \relative {
      c''2 c8. b16 c4
    } 
    >>
    <<	%第三小节
    \relative {
      % \mergeDifferentlyHeadedOn 在示例中这行可以不加,因为上一段的指令仍在起作用
      \mergeDifferentlyDottedOn
      c''8 d e d c d c4
    } \\
    \relative {
      c''2 c8. b16 c4
    } 
    >>
  }
}

在这里插入图片描述

3.2 控制音符偏移

为了避免音符打架,LilyPond会自动将音符左右偏移。指令\shiftOn\shiftOff可以控制这一操作。默认情况下第一声部和第二声部不会偏移(即默认\shiftOff开启),但第三声部开始就会发生偏移。(即默认\shiftOn开启)
下面是示例:

\score {
  \relative c'{
    <<
      {f'2 g | f g}
      \\
      {g,2 a | g a}
      \\
      {d2 d | \shiftOff d d}
    >>
  }
}

在这里插入图片描述
需要注意的是,有时候这个指令会不起作用(比如三个声部“打架”的时候),如果还要强制调整,需要更复杂的方式。

4 总结

最后,我们采用下列示例代码来还原文章开头乐谱的右手部分:

\version "2.20.0"
\language english

\score {
  \relative c'{
    \key ef \major
    \time 3/4
    <df' g bf>4. 
    <<
      \mergeDifferentlyHeadedOn
      \relative c' { 
        \slurUp s8 df'4 | df2 s4 | 
      }
      \\
      \relative c' { 
        \slurUp <g'' bf>8[( df8 <g bf>8]) | 
        df8  bf' c bf <c, af'>4 |
      }
      \\
      \relative c'{
        \hideNotes \shiftOff
        s4. | af''2^( \stemUp af4)
      }
    >>
  }
}

得到的乐谱如图所示:
在这里插入图片描述
需要提醒,上述代码会给midi文件多加一个额外的音符(虽然乐谱显示正常)。另外由于\shiftOff的局限,有些圆滑线还是不能通过隐藏音符完美实现。还可以有其他更合适的方式来调整圆滑线,只能留待后面来介绍了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值