LilyPond教程(5)——钢琴独奏片段 III
本篇是钢琴独奏片段的结束篇,我们将解决旋律安排中剩下的两个重要问题。今天使用的示例是贝多芬的第十四号钢琴奏鸣曲的片段:
本次示例的代码放在这里。本篇教程的学习要点有:
- 如何在添加三连音等连音符
- 如何在乐谱的一行谱表中显示两个声部
1 三连音
LilyPond使用\tuplet
描述连音符。LilyPond对于连音符的设定比较复杂,格式是\tuplet 比例 时值 {...}
,使用时直接放在旋律对应音符位置即可。我整理了下面一些常用的比例,足以让你应付平常见到的大多数连音符。
三连音 | 五连音 | 七连音 |
---|---|---|
\tuplet 3/2
|
\tuplet 5/4
|
\tuplet 7/4
|
使用时注意如下几点:
- 如果你打算添加一组连音符,采用的命令就是
\tuplet 比值 {...}
。大括号中需要填写对应的音符样式。 - 如果你打算添加多组连音符,采用的命令就是
\tuplet 比值 时值 {...}
。多出来的时值一项用来描述分组情况,LilyPond会跟据你填入的时值将音符分组,并在每一组连音符写上对应的数字。比如\tuplet 3/2 4 {...}
表示将后面的音符按照每个四分音符的长度分组,标记为三连音。
或许有点儿绕,但参考下面的示例,你可能会更明白这个指令的意思
\score{\fixed c' {\time 4/4\tuplet 3/2 {c8 d e} c4 c \tuplet 3/2 {g4 d8} |\tuplet 3/2 4 {c8 d e c d e c d4} r4 | \tuplet 5/4 {c16 d c d c} \tuplet 5/4 {c8 d c d c} r4 \tuplet 5/4 4 {c16 d e d c c d e d c}}
}
得到的结果如下:
下面是一些补充:
- 连音符可以嵌套使用。
- 使用
\omit TupletNumber
指令可以将后面连音符上面的数字略去。具体可以参见示例的代码。
关于更复杂的连音符和这个指令的原理,可以参见本篇第三节。
2 多声部和谱表管理
2.1 多声部谱表
多声部谱表有两种实现方式:
<< {...} \\ {...} >>
是最简单的一种方式。使用时,把两个声部的旋律分别放在两个大括号中即可,其中第一个大括号中旋律的音符符干朝上,第二个大括号中旋律的音符符干朝下。- 另一种比较复杂,其实现方式如代码框所示。(同样,在两个大括号的中分别填入旋律,第一个大括号中旋律音符符干朝上,第二个大括号中旋律音符符干朝下。)
<<\new Voice { \voiceOne ... }\new Voice { \voiceTwo ...}
>>
需要注意的是,上面的较为复杂的这种方式需要保证<< ... >>
外面有\new Staff
指令。
2.2 给谱表左侧加上大括号
LilyPond给\new
指令设定了多种模式,它能针对不同的乐谱对谱表显示进行设定。
对于钢琴使用的谱子而言,我们可以使用\new PianoStaff
,它会给谱表左侧加上大括号。
至此,所有的完整钢琴谱就有了固定的格式:
\new PianoStaff <<\new Staff {...}\new Staff {...}
>>
2.3 让你的代码更易于管理
可能会问,多声部输入时,更为复杂的第二种方式有什么用处呢?
当声部越来越多,很多标记(比如大括号)会很难找到。我们可以先把旋律存起来,再进行操作。使用第二种方式能保持代码统一,便于阅读。
利用旋律名称 = 旋律设定
,可以将旋律存起来。比如X = \fixed c' {...}
,就把等号后面设定的旋律存到X
里面。需要注意的是旋律名称必须是英文,且不能带数字、下划线等其他符号。
在用到这段旋律的时候需要再去前面加\
,代表使用这段旋律。比如\X
表示引用刚被设定为X的旋律。
需要注意:将旋律存起来这个操作需要放到\score{...}
的外面。
比如示例中的代码可以修改成
RHOne = \fixed c' {\voiceOne...
}RHTwo = \fixed c' {\voiceTwo...
}RHStaff = \fixed c' {...<<\new Voice \RHOne\new Voice \RHTwo>>
}LHStaff = \fixed c' {...
}\score {\new Staff\RHStaff %右手部分\new Staff\LHStaff %左手部分
}
这个操作也有其他好处,比如你能通过名称迅速定位到对应的声部,便于进行修改;另外,利用它也可以处理某些大量重复的旋律。
一般情况下,我习惯对于短一些的多声部旋律采用<<{...} \\ {...}>>
这种较为简单的方式,比较长甚至涉及整个乐章的多声部旋律采用较复杂的上面示例中的第二种方式。
如果需要给你的ly文件添加注释,则用%
开头,每一行跟在%
后面的内容将不会显示到乐谱中。
3* 连音符\tuplet
的原理
本节需要一定的乐理知识才能理解,如果目前觉得比较难理解,可以跳过这个小节。
要搞清楚\tuplet
的使用原理,最重要的是确定跟在它后面的比例。
在谱子上使用连音符时,首先要确定用的音符是哪一种音符。一般来说,我们会使用大于且最接近目标长度的音符来标记相应的连音符。以七连音为例,如果我们打算将一个四分音符分割成七份,那么它的时值就是1/7个四分音符。大于1/7的四分音符且最接近它的,是表示1/4个四分音符的十六分音符。于是我们就使用十六分音符来代表七连音中的每一个细分音符。
音乐上对连音符有“几对几”的说法,要理解\tuplet
的使用原理,我们就要搞清楚这个说法。对于上面七连音的例子,我们确定用十六分音符代表每个细分音符。但本来一个四分音符的长度下应该演奏四个四分音符。所以说,原来一个四分音符下演奏四个四分音符,而七连音下要演奏七个四分音符。那么我们就称七连音是“七对四”的音符。
于是,\tuplet
中所谓的比例就是上面提到的“几对几”(实际上,这个比例是描述一种速度的比例,比如\tuplet 7/4 {...}
,表示LilyPond会按照原来速度的7/4倍安排音符,并且填上在该组音符上写数字7)
所幸的是,只要分割个数相同,连音符的比例是固定的。(也就是说,如果我们打算把两个四分音符分割成七连音,只需要把表示细分时值的音符换成八分音符即可,比例不变) 比如11连音就是“十一对八”的;13连音就是“十三对八”的。对应的指令就分别是\tuplet 11/8 {...}
以及\tuplet 13/8 {...}
事实上,一旦分割个数确定,只有分割的时值不能只用一个不带附点的音符表示时,才需要重新确定比例。 比如,如果要把三个四分音符划分为五连音,则需要使用指令\tuplet 5/3 {c4 c c c c}
。
经过一连三篇使用LilyPond制作钢琴独奏片段的介绍,相信你应该能胜任大部分钢琴独奏曲乐谱中旋律部分的制作了。在下一篇我们会介绍一种重要的“偷懒”方式,它能大大缩短LilyPond的代码长度哦。
LilyPond教程(5)——钢琴独奏片段 III相关推荐
- LilyPond教程(4)——钢琴独奏片段 II
在本篇教程,我们继续关注钢琴独奏曲的乐谱制作.今天的示例依然是莫扎特的第十六号钢琴奏鸣曲(K545)的片段: 本次示例比较长,我会将代码放在这里,大家可以去查看.为了方便阅读,在后续讲解中我会节选部分 ...
- LilyPond教程(0)——目录和索引
LilyPond系列教程目录 安装和运行 开始你的第一份乐谱 钢琴独奏片段 I 钢琴独奏片段 II 钢琴独奏片段 III 轻松使用LilyPond 流行乐曲 I 流行乐曲 II 钢琴独奏片段进阶 I ...
- LilyPond教程(7)——流行乐曲 I
流行乐曲一般结构短小.通俗易懂,许多读者一定对流行乐曲的制谱比较感兴趣.本篇我们回到教程一开始的Jingle Bells,将乐谱进一步完善.尽管本篇的要点在钢琴独奏片段也十分常用,但由于流行乐曲惯用的 ...
- LilyPond教程(12)——交响乐总谱(谱表及乐器管理)
本篇将从交响乐总谱出发,讲述LilyPond中的谱表和乐器管理问题.经过本篇之后,交响乐总谱.合唱谱.流行乐谱都不在话下,本篇用到的示例是贝多芬的命运交响曲(前两页),示例代码放在这里. 编译出的乐谱 ...
- Caleb Pike索尼A7 III视频指南DSLR视频拍摄教程 中文字幕 Sony A7 III Video Guide
Caleb Pike索尼A7 III视频指南DSLR视频拍摄教程 中文字幕 Sony A7 III Video Guide 原文地址:https://www.aeziyuan.com/t-20771. ...
- 绅士计算机乐谱之谦,绅士(简单钢琴独奏版)
好久没见了什么角色呢 细心装扮着 白色衬衫的袖扣是你送的 尽量表现着像不在意的 频繁暴露了自欺欺人者 越掩饰越深刻 你说我说听说 忍着言不由衷的段落 我反正决定自己难过 我想摸你的头发 只是简单的试探 ...
- 震惊全球的完美钢琴CD.。。强烈推荐
钢琴独奏CD,全称Daydreaming - Piano Solo Collection 这个专辑里诉说的是爱与别离,铺陈的梦境充满伤感与凄美的爱情. The Daydream 是作者的艺名,这张&l ...
- Quartz教程三:Job与JobDetail介绍
Quartz教程三:Job与JobDetail介绍 原文链接 | 译文链接 | 翻译:nkcoder | 校对: 本系列教程由quartz-2.2.x官方文档翻译.整理而来,希望给同样对quartz感 ...
- quartzjob传递传输_Quartz教程三:Job与JobDetail介绍
本系列教程由quartz-2.2.x官方文档翻译.整理而来,希望给同样对quartz感兴趣的朋友一些参考和帮助,有任何不当或错误之处,欢迎指正:有兴趣研究源码的同学,可以参考我对quartz-core ...
最新文章
- 中国血统关系称谓大全
- 2021“MINIEYE杯”中国大学生算法设计超级联赛(1)zoto(二维数颜色)
- 360私有云平台Elasticsearch服务初探
- Intel超线程技术 Hyper-Threading Technology (7) - 最早的一篇超线程论文介绍
- Javascript基础--对象
- BW报表igs服务配置解决中文显示问题
- 用scikit-learn和pandas实现线性回归
- c++ iterator(迭代器)分类及其使用
- Java实用教程-Java基本语法-Java程序的构成
- 2022年计算机二级考试 Web程序设计模拟题及答案
- 计算机设计大赛南京邮电大学,喜讯:我校信息学子在中国大学生计算机设计大赛中再创佳绩...
- maxon电机驱动简介
- 代做matlab程序价格,代做data collection、Matlab设计代写、Matlab代做、代做Matlab编程代写R语言程序|代做R语言编程...
- [RK3288]PMU配置(RK808)【转】
- 【NOIP2015】洛谷2668 斗地主
- 中央处理器——硬连线控制器
- 思科高级配置(配置标准ACL)
- ABS-WSK-HS WSK-HS温湿度控制器
- 滚动文字、滚动图片代码
- 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(下)