基本练习通常是一个两个简单动作在不同位置上反复操练,所以打谱的时候用模进必不可少。

所谓模进,就是把一个片段平行地转移到其他音高上进行。比如

do re mi fa

可以把从do开始改成从so开始,那么就变成了

so la si do

lilypond的模进命令很管用,能节省大量时间。它的命令是:

%先声明片段
pianduan = \relative c'{
c d e f
} \score{
  %把片段从c模进到d
\transpose c d { \pianduan}
}

下面给出我做的例子

%声明好片段basicOne
basicOne = \relative c''{
d8-2~ c-1~ <d c>4
e8-3~ c-1~ <e c>4
f8-4~ c-1~ <f c>4
g8-5~ c,-1~ <g' c,>4
} %正式打谱
\score {
\relative c''{
\clef treble
\basicOne
\break
%模进到d
\transpose c d { \basicOne }
\break
%模进到e,下面类似
\transpose c e { \basicOne }
\break
\transpose c f { \basicOne }
\break
\transpose c g { \basicOne }
\break
\transpose c a { \basicOne }
\break

打完谱子基本上就长下面这样

\transpose是严格模进,也就是说,模进后的每个音符之间的音程关系和之前相同。

所以像这样

do re mi

从c模进到d之后,就会变成

re mi #fa

因为re mi是全音,所以这两个音模进后也必须保持全音,也就是mi #fa,而不会是mi fa

如果要让模进始终在原来的调性音阶上进行,这种模进一般被称作首调模进。

命令是\modalTranspose,与其配套的还要再声明一个模进用的音阶,示例如下:

%声明要模进的片段
pianduan = \relative c''{
c d e f
} %声明模进的音阶,就是片段只会在这些音上模进
scaleC = \relative c'{ c d e f g a b } \score{
\relative c'{
%将片段在指定音阶上从c模进到d
\modalTranspose c d \scaleC \pianduan
}
}

上面的练习就改成这样

scaleC = \relative c''{ c d e f g a b }

basicone = \relative c''{
d8-2~ c-1~ <d c>4
  e8-3~ c-1~ <e c>4
  f8-4~ c-1~ <f c>4
  g8-5~ c,-1~ <g' c,>4
} \score {
\relative c''{
\clef treble
\basicone
\break
\modalTranspose c d \scaleC \basicone
\break
\modalTranspose c e \scaleC \basicone
\break
\modalTranspose c f \scaleC \basicone
\break
\modalTranspose c g \scaleC \basicone
\break
\modalTranspose c a \scaleC \basicone
\break
\modalTranspose c b \scaleC \basicone
\break
\modalTranspose c c' \scaleC \basicone
}
}

效果如下

用lilypond实现模进的更多相关文章

  1. Open Yale course:Listening to Music

    一.Introductionhttps://app.yinxiang.com /Home.action?offer=www_menu#n=4b034a29-986d-4914-8220-eb99c2e ...

  2. AIR lame参数配置

    -Duser.name=Z.yu 固定码率的例子:=======================================================================固定码率 ...

  3. [转]linux下lame的使用

    找到這篇好文章,不得不说開源的Lame功能很強大 linux下lame的使用 % lame [参数] <输入文件名> [<输出文件名>] 如需查询更多参数,可输入下列命令: % ...

  4. 机器学习第7周-炼数成金-支持向量机SVM

    支持向量机SVM 原创性(非组合)的具有明显直观几何意义的分类算法,具有较高的准确率源于Vapnik和Chervonenkis关于统计学习的早期工作(1971年),第一篇有关论文由Boser.Guyo ...

  5. zt 李鸿章听过《彩云追月》?

    ZT 李鸿章听过<彩云追月>? 2013-05-11 09:35:52 编辑 删除 归档在 观世上之音 | 浏览 1041 次 | 评论 1 条 尝试在网上找一点有关<彩云追月> ...

  6. PHP hex文件及bin文件读取

    背景:做物联网时经常会有软件上传这种操作,上传的软件包文件常见的是hex和bin这两种. 一 hex文件读取 1 首先我们需要了解hex文件内容格式 (图及下面说明来自网络,侵权必删) :(冒号)每个 ...

  7. poj2305-Basic remains(进制转换 + 大整数取模)

    进制转换 + 大整数取模一,题意: 在b进制下,求p%m,再装换成b进制输出. 其中p为b进制大数1000位以内,m为b进制数9位以内二,思路: 1,以字符串的形式输入p,m; 2,转换:字符串-&g ...

  8. poj2635(千进制取模+同余模定理)

    题目链接:https://www.cnblogs.com/kuangbin/archive/2012/04/01/2429463.html 题意:给出大数s (s<=10100) ,L (< ...

  9. poj 2305(指定进制,大数取模)

    题意:输入一个进制b,在输入两个基于b进制的大整数 x,y ,求x%y的b进制结果. http://162.105.81.212/JudgeOnline/problem?id=2305 函数: Str ...

随机推荐

  1. 并发编程-concurrent指南-ReadWriteLock

    ReadWriteLock也是一个接口,在它里面只定义了两个方法: public interface ReadWriteLock { /** * Returns the lock used for r ...

  2. 華氏溫度轉化為攝氏溫度的簡單JavaScript代碼

    今天,跟著W3School學到了"JavaScript函數",代碼都挺簡單的,在運算符調用函數的地方寫了一個小程序.原碼程序是這樣的: <!DOCTYPE html> ...

  3. springcloud入门系列

    关于springcloud 1.写在前面 写着写这,不知不觉springcloud写了7,8篇了,今天把文章分下类,写下感受及后面的计划吧. (1)springcloud中最最重要的是eureka注册 ...

  4. ASP.NET Core MVC 之模型(Model)

    1.模型绑定 ASP.NET Core MVC 中的模型绑定将数据从HTTP请求映射到操作方法参数.参数既可以是简单类型,也可以是复杂类型.MVC 通过抽象绑定解决了这个问题. 2.使用模型绑定 当 ...

  5. R018---RPA是什么东东?

    1.缘起 这个问题,很多文章回答过,一直想站在客户角度写个答案,今天正好. 2.RPA的名字  RPA是英文Robotic Process Automation的缩写,中文爱翻译为“流程自动化机器人” ...

  6. Java 8 终于支持 Docker!

    Java 8曾经与Docker无法很好地兼容性,现在问题已消失. 请注意:我在本文中使用采用GNU GPL v2许可证的OpenJDK官方docker映像.在Oracle Java SE中,这里描述的 ...

  7. HashMap源码之resize

    final Node<K,V>[] resize() { //创建一个Node数组用于存放table中的元素, Node<K,V>[] oldTab = table; //获取 ...

  8. websocket的加密和解密过程

    加密: import struct msg_bytes = "the emperor has not been half-baked in the early days of the col ...

  9. JavaSE总结(二)

    一.Java Number .65f;byte c =0x4a; 然而,在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情形.为了解决这个问题,Java 语言为每一个内置数据类型提供 ...

  10. 基于tess4j的图片文字提取

    1.文件结构目录 2.具体实现 ①添加maven依赖 <dependency> <groupId>net.sourceforge.tess4j</groupId> ...