LilyPond教程(12)——交响乐总谱(谱表及乐器管理)

本篇将从交响乐总谱出发,讲述LilyPond中的谱表和乐器管理问题。经过本篇之后,交响乐总谱、合唱谱、流行乐谱都不在话下,本篇用到的示例是贝多芬的命运交响曲(前两页),示例代码放在这里
编译出的乐谱中第一页的效果如下:
在这里插入图片描述
本篇的学习要点有:

  • 如何添加创建新谱表,创建属于自己的乐谱模板
  • 如何显示谱表前面的乐器名,并控制midi播放不同谱表的乐器或音色
  • 如何处理移调乐器

1 谱表创建与编排

1.1 指令\new与谱表的种类

使用\new 谱表种类创建一个新的谱表,LilyPond提供的谱表种类有很多,大致分三个类别,下面一一进行介绍。
首先是谱表组,它用来描述乐谱如何分组,并在左侧添上大括号:

  • StaffGroupChoirStaff会在谱表组左边添上粗的直线大括号,StaffGroup会将各个谱表小节线连在一起,而ChoirStaff不会。
  • GrandStaffPianoStaff会在谱表组左边添上花括号。
    下面是几种谱表组的效果:
    在这里插入图片描述

然后是谱表,LilyPond提供了许多样式的谱表以供选择,常用的有:

  • Staff是最常见的五线谱,大部分乐器都可以使用
  • RhythmicStaff节奏谱,只有一条黑线,在黑线上用对应音符表示节奏
  • TabStaff六线谱,是吉他等乐器常用的乐谱,也许会在后面的教程中介绍。
  • DrumStaff鼓谱,用来描述鼓组,详细的内容也许会在后面的教程介绍。

最后是声部,当然这里的声部是广义的,LilyPond在这一含义下给出了一些好用的“声部”来更好地完成乐谱:

  • Voice就是最常用的声部,之前已经介绍过,不再赘述
  • Lyrics表示歌词,需要配套使用\lyricmode {...},关于它的使用之前也已经介绍过。
  • Dynamics表示力度记号,实际上我认为称乐谱标记会比较合适。它可以用来添加乐谱标记,稍后会介绍其用途。
  • DrumVoice表示打击乐声部FiguredBass表示指法谱ChordNames表示和弦代号,这些部分也许会在后面的教程中进行介绍。

1.2 \new Dynamics的使用

力度记号或文字标记等内容的代码嵌入音符中有时会略显冗长,这些部分我们可以将它独立出来放在Dynamics上进行调整。
一般推荐Dynamics中一律使用隐藏式休止符s,主要为了标示节奏,然后在对应音符加上力度记号等标记就可以了,LilyPond会自动在对应位置加上乐谱标记。在处理标记与音符错开的情况时,这种方法也不失为一种好方法。
需要注意,跟音符相关的跳音、重音等记号还是需要和音符放在一起,否则无法正常显示。
从整个乐谱来看,Dynamics的位置与Lyrics的位置差不多。下面是示例:

\score{
    \new GrandStaff  <<
      \new Staff 
        \relative c'{
          <c e g>4 q r q | c2 4 4
        }
      \new Dynamics
        {
          s4 s2\p s4 | s4 s4_"dolce" s2 |
        }
      \new Staff 
        \relative c'{
          <c e g>4 4 r <c e g>4 | g2 4 4 |
        }
    >>
}

得到的效果如下:
在这里插入图片描述

1.3 乐谱模板

相信经过之前的介绍,\new<<...>>的指令使用方法应该不需要重新介绍。跟LaTex一样,很多时候LilyPond也需要模板。自己建立乐谱不难,但构建一套常用的模板其实也是必要的,每次使用只需要填上音符即可,能大大节省时间。官方手册给出了许多种模板,可供参考。

2 \with指令的简单使用

\with指令用来对谱表进行设置,到目前为止,完整的谱表设定应该具有如下结构:

...
\new 谱表种类 \with{
	...	% 乐谱设定
	}
	{...}%音符输入
...

LilyPond的所有设定几乎可以统一使用语句参数 = 值(可以参照系列教程第二篇中\header{..}的设定),其中关键在于知道参数名称是什么用在什么地方,以及它们能取哪些值。本篇将首先介绍\with{...}中的三种参数。

  • instrumentName用来设定乐谱开头的乐器名称,后面接上字符串即可。这个乐器名称可以随意设定。比如instrumentName = "Violin"表示乐谱开头会加上乐器名Violin
  • shortInstrumentName用来设定乐器的缩略名称,从乐谱的第二行开始在每一行前面都会添上该乐器的缩略名。这个部分也可以随意设定,接上字符串即可。比如shortIntrumentName = "V I."
  • midiInstrument用来设定这行乐谱在midi中应使用何种乐器或音色播放,可取的值也是字符串。但LilyPond对词给出了限定,它仅支持这些音色。大家必须从中选择。比如midiInstrument = "flute"表示用长笛演奏该行乐谱。需要注意,默认情况下LilyPond会使用钢琴来演奏乐谱
    比如本篇给出的示例代码中,一个完整的乐谱设定长这样:
...
\new Staff \with {
      instrumentName = "Flauti."
      midiInstrument = "flute" 
      %不写shortInstrumentName则不会出现缩略名
    } \Flute %音符部分事先存在了Flute中
 ...

3 移调乐器

很多时候,乐器的实际音高与谱面上出现的音高不一致。比如低音提琴会移高八度记谱,许多管乐器也需要移调记谱。能看到这里的读者应该不用解释为什么会出现这样的情况,乐理的部分就不多作解释了。
当然,LilyPond中,不同行乐谱的调子不一样也是完全合法的,如果不作调整也没什么问题。但是midi会按照谱面音高播放,如果要制作midi,此时就需要作出调整了。
如何让midi不按照谱面音高来播放呢?使用\transposition就可以了。
在音符输入过程中,使用\transposition 音高就能将指令后面音符移调播放。移调指令后面的音高使用绝对音高模式,后面的音高是指c’移调后播放的音高。
比如\transposition g是指将中央C移到下面一个八度的G,也就是说移低了一个大四度,或者也可以说,此时谱面音高比实际音高高一个大四度。

通过以上指令的学习,相信你已经基本可以完成交响乐总谱等涉及多个谱表的乐谱制作了,在下一篇我们将讲一讲页面设置问题,以做出更精美的乐谱。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值