LilyPond教程(8)——流行乐曲 II

流行乐曲自然少不了歌词,本篇我们把目光放在如何添加歌词上。下面给出示例(代码放在这里):
在这里插入图片描述

本篇的学习要点有:

  • 如何构建完整的声音-歌词代码框架
  • \lyricmode {...}的运作方式
  • 如何在设定跟踪旋律(\lyricsto)后编写歌词

1 声音-歌词代码框架

尽管LilyPond提供了\addlyrics {...}这种简单的歌词添加方式,但我建议在实际应用中尽量使用完整的代码框架(就像第五篇教程——钢琴独奏片段II中那样),以方便后续编辑和管理。
下面是我示例代码的简化版本:

\version "2.20.0"
\language english

\header {
	...		%抬头信息
}

melody = \relative c' {...}	%旋律部分
lyric = \lyricmode {...}	%歌词部分

\score {
	\layout {...}	%版面设定(后续介绍)
	
	<<
    \new Staff {
      \new Voice = "melody" {
      \melody
    }
    \new Lyrics \lyricsto "melody" {
      \lyric
    }
	>>
	
	\midi {}
}

读者只需要在melody部分编辑好旋律,lyric部分编辑好歌词即可。

2 歌词输入模式

LilyPond使用\lyricmode {...}代表歌词,大括号中填入的内容会被识别为歌词。

2.1 音节

LilyPond的歌词是按音节输入的,跟音符相似,完整的歌词输入包含音节和时值两个部分。它们分别有如下要求:

  • 音节为一个由**英文字母或标点符号(不含双引号)**组成的字符串
  • 时值与音符要求一致,可以附点。

LilyPond会按照时值安排相应的音节,一般来讲,它会将音节居中安排在乐谱对应音符位置。关于音节有下面一些部分要注意:

  • 音节如果要包含数字请在字符串外加上双引号,否则会跟时值混淆引起歧义。比如开头1.Dash在歌词模式下需要写成“1.Dash”,编译完成后双引号不会显示到乐谱中。
  • 音节如果要包含双引号或下划线,请在字符串外加上双引号的基础上,将音节中的双引号或下划线前面加一个反斜杠。比如,想在乐谱中显示音节"I'm,该音节需要在代码中写成"\"I'm"
  • 音节如果要包含空格,请在字符串外加上双引号,否则LilyPond会将空格后面的部分识别为下一个音节。当然,关于添加空格还有别的方法,在下一小节中将会介绍。
  • 相同的时值同样可以省略,其原则可以参照音符输入的方式。
  • 音节同样支持其他语言,比如中文字符、特殊拉丁字符、日语假名等,只需在保存时注意保存为相应编码即可(在LilyPond编辑器和Frescobaldi下编辑则直接保存即可)。
  • 如果你不确定某些特殊标点符号会不会对编译造成影响,请一律给字符串加上双引号。

2.2 设定跟踪旋律

音节+时值固然是精确的,但在实际应用中不是很方便,LilyPond提供了一些方便的指令,帮助我们更好地安排歌词。在此之前我们先了解如何设定跟踪旋律。
首先我们要命名旋律。参考前面的声音-歌词代码框架,找到你要添加歌词的旋律,在开头\new Voice后面加上= “名字”。名字可以由你自己决定(虽然我没有尝试过,但建议最好还是使用英文字母和数字来命名)这样一来,后面大括号包含的旋律就被命名了。
设定相关旋律有两种方式:

  • 使用\lyricsto "旋律名" { ... },大括号中的内容直接按歌词模式输入即可。如果你没有打算在一开头存到别处,可以不多套一层\lyricmode {...}
  • 在歌词输入过程中,可以随时加入\set associatedVoice = "旋律名"。它能在歌词进行到的位置开始跟踪新设定的旋律(这在多声部的时候很有用)

2.3 跟踪旋律后添加歌词

当你设定好跟踪旋律,所有时值都可以省略。LilyPond会自动根据旋律走向添加音节。LilyPond会根据旋律,在每个音符下面自动添加一个音节,但是一旦遇到圆滑线或连音线,LilyPond会自动跳到线性记号结束后的下一个音符添加音节。总的来说,可以粗略理解为LilyPond会在每一个连续的音上添加音节
当然,仅仅这样还是不够,LilyPond提供了一些特殊标识,以帮助我们更好地完成歌词添加的任务:

  • 在音节中间插入下划线_表示在加入空格,加入的空格会显示到乐谱上,但不影响后面音节对齐旋律。
  • 使用\skip 时值表示跳过某个时值的音符。(注意如果当前大括号用\lyricsto来设定跟踪旋律,时值会被忽略,而只会跳过一个音符,此时常常会用\skip 1
  • 单独一个音节__表示将前一个音节拉长,它会在前一个音节后面加上一条长下划线。它不占据音符,不影响后面音节对齐旋律
  • 单独一个音节--表示在前后两个音节之间加上短横线。它不占据音符,不影响后面音节对齐旋律。LilyPond会自动根据位置决定是否添加短横线
  • 当然,如果要加入数字或引号等,请参照上文的方法添加双引号或反斜杠。

下面是示例:

<<
  \new Voice = "melody" \relative {
    \time 3/4
    f''4 g8( f e f) | e8( d e2)
  }
  \new Lyrics \lyricsto "melody" {
    Ky -- ri -- e __
  }
>>

得到的乐谱:
在这里插入图片描述
需要注意,在用\lyricsto设定跟踪旋律之后,时值不起作用。有些问题可能需要别的方式来处理。比如,圆滑线下要唱多个音节的情形,需要别的指令或者通过添加隐藏声部来解决。(指令参见官方手册,而隐藏声部将在后面的教程中介绍)
另外,对于变奏结尾,LilyPond会自动往后跟踪,或者也可以使用\repeat volta 次数{...} \alternative{ {...} }来解决,使用方式和音符输入一样。

2.4 多段歌词

如果只是单纯给旋律配多段歌词,可以采用下列方式

<<
  \new Staff {
    \new Voice = "melody" {
      ...
    }
    \new Lyrics \lyricsto "melody" {
      ...
    }
    \new Lyrics \lyricsto "melody" {
      ...
    }
    ...	%如果还有第三段歌词以此类推
>>

如果是在歌词中间分成多段,后面还会合并,可以采用下列方式

<<
  \new Staff {
    \new Voice = "melody" {
      ...
    }
    \new Lyrics \lyricsto "melody" {
      ...	%分段之前的歌词
      <<
      {...}
      \new Lyrics { \set associatedVoice = "melody" ... }
      \new Lyrics \lyricsto "melody" { ... }	%上下两种方式都可以
      ...	%如果还有第四段,以此类推
      >>
      ...	%分段之后的歌词
    }
>>

需要注意的是上面这种方式中,请不要省略\new Lyrics。避免出现错误。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值