用lilypond实现模进
基本练习通常是一个两个简单动作在不同位置上反复操练,所以打谱的时候用模进必不可少。
所谓模进,就是把一个片段平行地转移到其他音高上进行。比如
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 } }
效果如下