流行乐曲一般结构短小、通俗易懂,许多读者一定对流行乐曲的制谱比较感兴趣。本篇我们回到教程一开始的Jingle Bells,将乐谱进一步完善。尽管本篇的要点在钢琴独奏片段也十分常用,但由于流行乐曲惯用的曲式使得这部分内容显得更为重要。
示例代码放在这里,编译出的乐谱效果如下:
本篇的学习要点有:
- 使用重复(反复)指令
\repeat
- 在乐谱上添加变奏结尾(也就是常说的“一房子二房子”)
1 重复(反复)
LilyPond的重复指令形如\repeat 模式 {...}
,括号中是要操作的旋律。下面对各种模式分别进行介绍。
1.1 简单重复乐段
要简单地重复乐段,只需使用\repeat unfold 次数 {...}
。LilyPond会将大括号中的乐谱重复显示多次。
这似乎是一个很好的偷懒方法。比如钢琴独奏片段中如果碰到大量重复的琶音伴奏,可以照此操作,这样将会节省很多时间。
下面是示例:
\score {
\relative c'{
\time 4/4
\repeat unfold 4 {c8 g' e g}
}
}
得到的结果如下:
1.2 颤音重复
钢琴中常用的颤音重复须使用指令\repeat tremolo 次数 {...}
。该指令能表示两种情况的颤音重复:
- 双音颤音重复使用指令
\repeat tremolo 次数 {音符1 音符2}
。 - 单音颤音重复使用指令
\repeat tremolo 次数 音符
,或使用LilyPond设定好的简单指令音高时值:分拍时值
。例如c2:8
表示在二分音符时长下以八分音符时值重复单音C,作用相当于\repeat tremolo 8 c8
。
需要注意的有以下几点:
- 五线谱中颤音重复的标注是按该次重复持续的时长确定符头的。比如从听众角度来说
\repeat tremolo 4 {c16 d}
跟c16 d c d c d c d
是一样的。但是五线谱上会标注C和D的二分音符,使用两条粗横杠连接,表示按十六分音符时值重复两个音符。LilyPond会自动计算出所需时值来确定符头,但需要注意的是计算出来的时值必须能用单个音符表示,否则语法不能通过。比如\repeat tremolo 5 {c8 d}
是不合法的,因为无法使用单个音符表示10个八分音符的时长。 - 颤音重复指令中的音符可以替换为和弦,意义不变
- 颤音重复中,若其时长超出了小节线范围,会影响该小节和下一个小节的显示。使用中请注意不要超出小节线。
- 在相对模式中,双音颤音重复后面的一个音符按指令中的第二个音符确定八度。
下面是示例:
\score {
\relative c'{
\time 4/4
\repeat tremolo 4 {c16 g'}
\repeat tremolo 4 {<a c e>16}
b4:8
}
}
得到的结果如下:
1.3 段落反复与变奏结尾
要进行段落反复,使用指令\repeat volta 次数 {...}
。尽管前面的教程已经提到了采用\bar
方式设定其他小节线以完成段落重复,但如果要添加变奏结尾(也就是一房子二房子),则必须要使用\repeat
指令才可以。
该指令用法非常简单,把次数补充,大括号中填入需要重复的旋律即可。下面主要介绍变奏结尾指令,它使用起来像是下面这样:
\repeat volta 次数 {
... %要重复的旋律
}
\alternative {
{...} %第一变奏结尾(一房子)
{...} %第二变奏结尾(二房子)
...
{...}
}
需要注意的有:
- 变奏结尾个数不要超出你在
\repeat
中设定的反复次数。 - 在相对模式下,如果不作设定,后一个变奏结尾开头的音符按前一个变奏结尾的音符确定八度。所以建议每一段变奏结尾的大括号前都使用
\relative c'
重新设定初始音高,避免出现不必要的错误。 - LilyPond采用从后到前的方式确定变奏结尾编号。也就是说如果你设定了反复三次,而写了两个变奏结尾,则LilyPond会将第一个认为是一、二房子,而第二个认为是三房子。
- 在
\repeat
模式下LilyPond会自动添加合适的小节线,但如果你希望重新设定,只需在大括号中的旋律最后用\bar
设定小节样式即可。
当然,关于变奏结尾,LilyPond可以手动设置(比如在反复三次的情形下,你希望把二房子和三房子放在一起)。又或者,你希望使用segno和coda符号来表示段落重复,这些部分就只能留待后面再介绍了。