事先声明:本人英语残废,纯靠一边看文档一边试出来的,估计有错漏之处。

我常用其中的三个控制语句,更加复杂的用法请参照手册。

三个控制语句

关于连杆有3个控制语句,分别是:

  • \set Timing.beamExceptions = #'()
  • \set Timing.baseMoment = #(ly:make-moment 1/4)
  • \set Timing.beatStructure = 1

第一个并不是太明白什么意思,总之我都给它加上,否则有的情况下下面两条命令就不会起作用。

第二个主要是确定接下来要调整的单位,主要是改变ly:make-moment后面的数值,比如我现在填写的是1/4。

第三个则是小节内的节奏划分,会受到第二个命令的影响,也是改变等号后面的数值。

调整实例

首先我们先弄懂第三个命令,下面是随意书写的几条节奏型。

很明显能看出,五拍子默认是一个3+2的组合方式,而且遇到大的音符不会自己拆分连线。而七拍子则完全没有组合规律,就是八分音符为一拍的形式。二拍子也是正常表现,不会自己拆分连线。

那么接下来我添加第3条命令\set Timing.beatStructure = 1,1,1,1,1,1,1,1,这时我们的谱例有了变化


其实只有第一条五拍子的前两小节按八分音符为一拍的方式分隔开来了。

所以第三条命令的意思就是这样,以单位拍为基础按照写的数字来划分,如果我们填写 \set Timing.beatStructure = 2,3那么效果如下

  • 首先第一条是比较好理解的,第1第2小节都呈现了2+3的形式,当然了第4小节还是不会自己拆分音符加上连线,我怀疑lilypond根本就没有这个功能~
  • 第二条的话通过第一小节可以发现形成了一个2+3+2的形式,虽然我们填写的是2,3但剩下的还是自动连接了符尾。
  • 第三条的话可能需要注意一下,我们的单位拍现在是四分音符,所以2,3等于就是首先需要两个四分音符组成一组。第二小节才会有这样奇特的现象,即所有的音符的尾巴都连起来。

所以最后总结一下,第三条命令就是控制单位拍按怎样的方式进行组合,即使我们填入的数值超过整个小节,或者不足整个小节,它也会自动的进行调整。

ps:这里我发现这个命令在\time之后会失效,需要重新写一次。


那么接下来第二条命令就非常的好理解了,就是无视本来的拍号,自定义单位拍。我们输入命令\set Timing.baseMoment = #(ly:make-moment 1/8)等于就是定义单位拍为一个八分音符,然后再输入第三条命令\set Timing.beatStructure = 1,4接下来放到一条二拍子中。

从上图前两小节可以看出,确实是按照八分音符为一拍来组合的,并形成一个1+3的形式。第二条命名前面的数值也可以调整,比如\set Timing.baseMoment = #(ly:make-moment 2/8)就是下图效果。

应用实例

我本来是想生成一些音值组合的题目的,但是因为这个不能自己调整连线,事情变得复杂起来。所以暂时只能应用到生成不规则拍子的场景,比如定义一下五拍子是2+3的形式还是3+2的形式。

最后修改:2022 年 02 月 07 日 11 : 29 PM