在上一篇学习了如何制作简单的单旋律乐谱之后,接下来我们来看看如何使用LilyPond制作钢琴独奏曲的谱子。本次使用的示例是莫扎特第十六号钢琴奏鸣曲(K545)的第一个乐句:
本篇的学习要点有:
- 如何在乐谱抬头添加作品号
- 如何制作联合谱表,或者说怎么同时显示乐谱的两个声部
- 如何添加小节休止符
- 如何添加节拍器速度记号和强度记号
- 如何添加连音线和圆滑线
首先,给出示例的代码如下:
\version "2.20.0"
\language english
\header {
title = "SONATA I."
composer = "W. A. Mozart"
opus = "K 545"
tagline = ##f
}
\score{
\layout { %控制乐谱的显示
\context {
\Score
proportionalNotationDuration = #(ly:make-moment 1/4)
}
}
<<
\new Staff
\fixed c' {
\tempo "Allegro"
\clef treble
\key c \major
\time 4/4
c'2(\p e'4) g'4 | b4. ( c'16 d'16 c'4 ) r4 |
a'2( g'4) c''4 | g'4( f'8 e'16 f'16 e'4) r4 |
R1 |
}
\new Staff
\fixed c' {
\clef treble
\key c \major
\time 4/4
c8( g e g c g e g | d g f g c g e g |
c a f a c g e g | b, g d g c g e g |
f4) r r r |
}
>>
}
本篇教程不涉及\layout{...}
部分的代码内容,大家可以把这段复制到自己的ly文件中,以使乐谱有较好的显示效果。具体的内容也许会在后面的教程中提及。
1 抬头部分的补充
本篇教程补充一个用来添加作品号的语句,只需要在\header{...}
里面加上opus = 作品号
即可,注意作品号要用英文下的双引号括起来才能编译通过。
2 联合谱表
2.1 创建声部与合并声部
- 使用
\new Staff
创建一行新的五线谱作为一个新的声部,后面接上对应的旋律设定和输入即可 - 使用
<<...>>
将你要放在一起的声部合并,中间框起来声部个数不限。注意LilyPond根据代码的合并顺序是从上到下。
总的来说,要创建一个多声部的谱表,代码会像下面这样:
<<
\new Staff
%第一声部的旋律
\new Staff
%第二声部的旋律
... %如果有更多声部,依此类推
>>
3 旋律部分
3.1 小节休止符
LilyPond使用大写字母R
作为小节休止符,你可以完全当它是“音名”,但需要注意,你还是需要为它加上相应的时值。比如,当你要4/4拍的一个小节休止的时候,需要写上R1
;当你要6/8拍的一个小节休止的时候,需要写上R2.
另外,如果希望休止n个小节,可以加上*n
。比如,当你要在4/4拍休止2个小节时,可以写上R1*2
;当你要在6/8拍休止4个小节时,需要写上R2.*4
。
注意上面的写法将会显示n个小节(每个小节一个休止符)。至于管弦乐队分谱中常见的多小节休止符,需要在后面的教程中介绍。
下面的代码示例给出两种休止符的使用区别:
\time 3/4
r2. | R2. |
c2. | R2.*2
得到的结果如下:
注意:在其他音符后面加*n
,语法也能通过,但结果会与你想象的不同。
3.2 节拍器速度记号和强度记号
- 强度记号的指令加在对应音符后面,常见的强度记号LilyPond都支持,只需要前面加上反斜杠就可以了。比如
\p
、\mf
、\rfz
、\spp
。上述指令会默认把强度记号加到它前面的音符的下方。
如果你希望指定它的位置,可以在前面加上下划线_
或者^
,_
表示强制放在音符下方;^
表示强制放在音符上方。比如c4 ^\p
表示给谱上这个中央c的四分音符的上方加上强度记号p。 - 节拍器速度记号的指令加在对应音符前面,使用的指令是
\tempo
。常见方式有两种:
第一种是文字型的速度描述,使用方式是\tempo 速度
,注意速度必须用英文下的双引号括起来,比如\tempo "Allegretto"
、\tempo "Allegro"
等等;
第二种是数字型的速度描述,使用方式是\tempo 时值 = 每分钟拍数(bpm)
,比如\tempo 4 = 120
表示每分钟120拍,每拍为一个四分音符。
下面是一些注意事项:
- 上述记号既可以和音符黏在一起,也可以被空格或者换行符隔开。一般情况下,为了方便阅读,我推荐节拍器速度单独占一行,而强度记号跟音符粘连在一起。(复习:旋律不会因为换行或多余的空格而中断,这么做是没有问题的)
- LilyPond默认将节拍器速度记号放在对应音符的上方。它的调整不是那么简单,将会留到后面教程再叙述。
- 节拍器速度的数字型记号中,数字和等号之间可以没有空格。另外,你可以用
\tempo 4 = 60 - 80
来描述一定范围内的速度,同样,数字和横线(减号)之间可以没有空格。 - 关于节拍器速度记号,文字型和数字型的描述可以混合使用。比如
\tempo "Allegro" 4 = 160
是可以通过编译的。在这个做法中,文字型的描述必须写在数字型的前面。
3.3 连音线和圆滑线
- 连音线的添加方式非常简单,只需在连音线左侧的音符后面添加
~
即可。如果你需要多个连音线,需要在每一个在右侧被连接的音符后面添加~
。当然,连音线不受小节线影响。下面给出示例:
\score{
\fixed c' {
c2~ c4~ c8 c8 | c4 c c c~ | c r r r |
}
}
得到的结果如下
- 圆滑线用
(
和)
表示,左括号(
加在圆滑线左边连接的音符后面,右括号)
加在圆滑线右边连接的音符后面。注意括号要配套,且要在英文输入法下输入。同样地,圆滑线不受小节线影响。
括号既可以跟音符粘连,也可以和音符用空格甚至换行隔开。一般情况下我推荐与音符粘连。
下面是注意事项:
- 圆滑线和连音线可以直接嵌套。而如果圆滑线要与圆滑线嵌套,需要将外层的圆滑线标记改为
\(
和\)
。 - 如果一个音符同时需要添加圆滑线(或连音线)以及强度记号,两个标记的顺序没有要求。一般情况下,我推荐圆滑线记号与音符紧密粘连,然后是连音线,而强度记号等缀在后面。
下面是一些相关示例:
\score{
\fixed c' {
c4\( d( e) f\) | c(~\ff c f g) |
}
}
当然,要完成钢琴独奏曲的乐谱,这些还远远不够。在下一篇我们会更详细说说旋律部分的操作。