转调、变拍、变速
转调、变拍与变速是音乐中较为高级的技巧,总而言之就是在中途改变乐理属性。这样可以为其增加许多色彩。
本节将介绍在 Sparks NMN 中这些记号的写法。
tl;dr
- 乐理属性可以通过添加小节线属性来修改。
- 若要在小节序列开头处添加属性,可使用隐藏小节线
/。 - 小节序列(碎片)开头的小节线不能使用前置属性,小节序列(碎片)末尾的小节线不能使用自身以及后置属性。
- 若要在小节序列开头处添加属性,可使用隐藏小节线
- 变拍属性的写法与乐理属性中的拍号相同,例如
0/44/46/8。可以叠加三等分法则T或摇摆节奏S/s。 - 变拍的写法既要保证人能看懂,又要保证时值校验正确。时值校验处理变拍时,无视反复记号,仅从头到尾扫描一次乐谱。
- 前置属性会显示在小节线前,但被时值校验无视。
- 上方属性不会显示,但是时值校验会在此处更新每小节的时值。
- 后置属性既会显示在小节线后,又会被时值校验处理。
- 转调有绝对和相对两种形式。
- 绝对的转调与乐理属性写法相同,例如
1=C1=#E4。 - 相对的转调主要适用于歌曲的绝对基调未知的情况。记号以
d1=开头,后面跟一个带单位的数值(省略单位表示key),单位keythdthmththa分别表示键、减度、小度、(大/完全)度、增度。数值的正负号表示升降。例如d1=-5th显示为降5度。
- 绝对的转调与乐理属性写法相同,例如
- 变速属性的写法与乐理属性中的拍速相同,例如
qpm=120spm=233。 - 与变拍不同,解析器在处理转调和变速记号时,会考虑反复记号,机制如下:
- 前置属性会显示在小节线前,在上一小节结束时被处理。
- 上方属性不会显示,但 是会在下一小节开始时被处理。
- 后置属性会显示在小节线后,在下一小节开始时被处理。
- 推荐将能代表全曲大部分内容的拍号、拍速和基调写在整个乐谱的标题处(即
P:开头的行中)。如果它们与乐谱开头处的乐理属性并不一致,可在乐谱开头处再添加变拍、变速和转调记号。 - 多声部乐谱中,不同声部在同一小节处的拍号和拍速必须一致,但基调则不必。
- 双引号引起的字符串写在小节线属性中,将会直接显示出来。任何双引号字符串(其他地方的也可以)中都可以使用转义序列来表示一些无法直接表示的特殊字符。
变拍
变拍,指音乐在中途改变拍号。拍号的分子和分母均有可能改变,分子的改变控制的是每小节的拍数,分母的改变控制的是记谱的方式,同时隐含拍速的变化。
在 Sparks NMN 中,在小节线上添加小节线属性,即可实现拍号的改变。属性的写法与乐理属性中的拍号相同。例如:
这个片段是能被人看懂的——第一遍中,第 1 小节拍号为 ,进入第 2 小节时变为 ,反复后又变为 直到结束。但是,时值校验机制却认为第 4 小节时值多了。为什么呢?
这是因为,由于程序逻辑的限制,时值校验机制处理乐谱时,会无视反复记号,仅仅从头到尾将乐谱扫描一遍。当遇到变拍记号时,处理逻辑是这样的:
- 前置属性会显示在小节线前,但被时值校验无视。
- 上方属性不会显示,但是时值校验会在此处更新每小节的时值。
- 后 置属性既会显示在小节线后,又会被时值校验处理。
因此,要让时值校验明白第 4 小节的拍号其实是 而非 ,可以在第 3 小节之后的小节线上添加上方属性。
这样的规则事实上是非常灵活的,几乎可以处理任何复杂的情况,例如:
注意到这里在曲谱行的开头添加字符 /。这个符号表示没有任何显示效果的「隐藏小节线」,当你需要在曲谱行开头添加小节线属性时,就需要用到了。
对于乐理属性变更,前置属性不能用在小节序列开头,自身和后置属性不能用在小节序列末尾,否则会被忽略。
如果你对这一规则并不是很理解,不必担心——如果你犯了此类错误,编辑器会给出警告。
反复记号的详细介绍在反复与区分章节中。
隐含的 BPM 变化
我们在节奏进阶一节中已经强调过,乐谱中所指定的拍速,指的是每分钟的二分/四分/八分音符数量,而不是每分钟的拍数。正因如此,变更拍号时,分母的改变会隐含每分钟拍数的变化。如果你没有理解,请回去再看看。
有的乐谱中可能会在拍号分母变化时加注形如「四分音符=四分音符」的记号以示对这一规则的强调。不过,这样的记号是没有必要的,因为即使不添加这个记号,拍号分母改变 BPM 的规则也是适用的。
反常拍号的解析式
在音乐课上,我们学过 2、3、4、6、8 拍子,知道它们的强弱规律(,,,),并且也清楚这些强弱规律是大家公认的。此外,12 拍子也并不是太罕见,其强弱规律也是公认的,是 。如果你有稍加注意,你会知道绝大部分流行歌都是 4 拍子。
然而,有的音乐(并不少 )会试图突破这样的限制,使用 5 拍子,7 拍子等等。这类拍子没有公认的强弱规律,因而称为「反常拍号」。尽管读者可以从曲谱中大致推断强弱规律,但是,直接用加法的形式(例如 )将强弱规律告诉读者,则是更为清晰的方式 。这样的加法等式称为解析式。常见的例子如下:
- ,表示四拍子分为 2 + 2 两组,故强拍和次强拍在第一拍和第三拍。
- ,表示常规的六拍子,分为 3 + 3 两组,强拍和次强拍在第一拍和第四拍。
- ,表示不太常规的六拍子(合法但有病),分为 2 + 2 + 2 三组,强拍和两个次强拍分别在第一拍、第三拍和第五拍。
- ,表示五拍子分为 2 + 2 两组,强拍和次强拍在第一拍和第四拍。
- ,表示七拍子其实并非什么七拍子,而更像是多了半拍的三拍子。这时打拍子时一般只打 这部分。
尽管不太准确,但是你可以将解析式理解成「一个小节拆成多个小节」。例如,若干个 的小节,可以理解为一串 和 拍号交替出现的小节。
Sparks NMN 目前不支持准确的拍号解析式语法。但是,为了读者方便,变拍的同时,可以在前/后置属性中添加一个双引号引起的算式,这样它就会显示在小节的末尾或开头,方便读者阅读。
转调
转调,指音乐在中途更换调性。不过,在简谱的相对音高体系下,转调一般特指中途改变记谱的基调。
在 Sparks NMN 中,转调同样以小节线属性的形式进行标注,写法与乐理属性中的基调相同。
这个例子从旋律上等价于,
与变拍类似,使用前置属性,即可将转调标记在一个小节的末尾。
与变拍的不同之处在于,转调在处理时会考虑反复记号,因此不必额外添加上方属性来告诉解析器如何转调。当然,如果必要,你仍然可以利用上方属性添加隐藏的转调记号。变速记号也是同样的道理。
如何发现自己记谱时在应该转调的地方没有转调?
在不同的反复次数下,一个小节可能会有不同的基调和拍速,因此乐谱数据中的 musicalProps 字段并不能准确反映该小节的基调和拍速。如果需要开发音乐生成、音乐分析相关功能,应该使用解析结果中的 result.sequenced.sequence 字段。
明确地指定组号
我们之前说过,要确定简谱中每个数字代表的具体音高,需要给定一个基准音高。然而,目前所用的形如 1=C 1=G 的记号,都只是给出了音调(或音名),而没有指出具 体在哪个八度。在没有转调的情况下,具体在哪个八度往往是无关紧要的,但是在有转调的情况下,这可能会引发歧义。
看刚刚提到的例子——我们从 1=C 转到了 1=G。这种情况可能是 1=C4 到 1=G4,基准音高升了五度;也可能是 1=C4 到 1=G3,基准音高降了四度;甚至可以说是 1=C3 到 1=G4,等等。为什么几乎所有人视唱或弹奏这个片段的时候,都会不谋而合的将其理解成基准音高升高五度呢?这是因为,如果不这么理解,转调前的最后一个音和转调后的第一个音将会至少相差一个八度,这是非常怪异的。
比如,如果将其理解成基准音高降低四度,将会等价于下面的旋律,
绝大多数人都会看出这是不合常理的,因此排除这种可能。
然而,有的旋律中的转调可能并不容易以这种依据来判断,还有的旋律可能要的就是这种不合常理的效果。这种情况下,将基准音高的组号标出来就非常有必要了。
在 Sparks NMN 中默认了两个假设:
- A4 表示 440Hz。
- 若基调不指定组号,音名
GAB在第 3 组,CDEF在第 4 组。
音效试听所生成的声音会用到这两个假设。
相 对转调
对于刚刚凭印象写出的乐谱,或者自己作曲的旋律,我们可能无从知道(或暂时不能确定)旋律一开始的具体基调是什么,这时候自然也无法以具体基调的形式来表示转调。诚然,我们可以强行认为 1=C,但这是不优雅且不严谨的。Sparks NMN 提供了一种基于音程的转调记号,只需要指定新的基调相比原来的升降了多少,而不需要指定具体的基调。
相对转调记号的写法是 d1=<数值><单位>,其中数值可以带正负号,用来表示升或者降。单位可以是 key thd thm th tha,分别表示 Key(钢琴键或半音)以及减/小/大(完全)/增x度。目前大x度和完全x度是不区分的,都会显示为「x度」。这有些不严谨,将来可能会添加单位 thM 和 thp 解决这个问题。
如果省略单位,将会默认为 key。
上面的例子使用相对转调,可以这么写:
为了保证形式的统一性,key 单位是小写的。为了避免在这上面犯错,建议在单位是 Key 的情况下直接省略单位。
相对转调还有一个用处,就是用在会反复多次的段落中 ,可以做到每反复一次都升高/降低一点。下面的例子来自歌曲《童话》。
度数音程速查表
如果你不了解度数音程,可以快速通过这张表知道其与 Key 音程之间的关系。如果你学得很明白,那就没有必要看了。
| 音程 (Key) ↘ | 减- | 小- | 完全- | 大- | 增- |
|---|---|---|---|---|---|
| 1度 | 0 | 1 | |||
| 2度 | 1 | 2 | 3 | ||
| 3度 | 2 | 3 | 4 | 5 | |
| 4度 | 4 | 5 | 6 | ||
| 5度 | 6 | 7 | 8 | ||
| 6度 | 7 | 8 | 9 | 10 | |
| 7度 | 9 | 10 | 11 | 12 | |
| 8度 | 11 | 12 | 13 |
完全 8 度的差距就是一个八度(废话),大于 8 的度数以此类推。
总结一下,无非
- (以及 )度不分「大」「小」,称为「完全音程」。
- (以及 )度分「大」「小」,它们之间相差 。
- 度至 度的大/完全音程依次表示 ,这是自然大调的音调列,或者说相邻两者的差满足「全-全-半-全-全-全-半」。
变速
与转调类似,变速是在旋律中间某 处改变拍速。
在 Sparks NMN 中,变速也通过小节线属性实现,写法与乐理属性中的拍速一致。下面例子是歌曲《秘境茶会》的开头。
也可以像乐理属性中那样用模糊的文本来代替精确的拍速数值。
添加渐快、渐慢的文本
目前 Sparks NMN 中没有渐快、渐慢的专用记号,不过可以在小节线属性中添加双引号引起的文本来提示渐快或渐慢。
为了音乐语言的准确性,渐快渐慢结束的位置应当再添加一个变速记号,表示结束时应当到达某个拍速。下面的例子来自电影《冰雪奇缘》的插曲《Frozen Heart》。
主乐理属性
对于包含变拍、变速和转调的乐谱,推荐将能代表全曲大部分内容的拍号、拍速和基调写在整个乐谱的标题处(即 P: 开头的行中)。这些乐理属性称为主乐理属性。
如果它们与乐谱开头处的乐理属性并不一致,可在乐谱第一个小节处再添加单独的变拍、变速和转调记号。还是以《秘境茶会》的开头作为例子。
极端情况下,如果全曲的变拍、变速或转调非常频繁多变,无法找出对应的主乐理属性,可以在书写标题处 的乐理属性时略去这些内容。如果连主拍号都无法确定,建议直接隐藏标题处的所有乐理属性,方法是将 P: 改成 Pi:,然后将必要的乐理属性移到乐谱的第一个小节处。下面的例子并非这种情况,只是作为演示。
若多片段乐谱的某个章节属于这种情况,直接删去 Sp: 行,不在标题处写乐理属性即可。
声部间的对齐要求
Sparks NMN 对声部(包括鼓点行)间的对齐有以下重要的假设(正常的乐谱也应当如此),如果不满足,编辑器可能显示警告,音效试听可能会给出意外的结果。
- 多个声部同一小节的拍号一致(相同位置处需要有相同的变拍记号)。
- 多个声部同一小节的拍速一致(但是变速时,相同位置处只需要有一个声部带有变速记号 新增于 1.15.5 )。
- 多个声部同一小节的基调不需要一致,这也就意味着,如果多个声部要同时转调,每个声部都必须有转调记号。
- 多个声部相同位置的小节线一致。
- 多个声部同一小节若为不完整小节,时值必须相等。
要具体理解上述的这些要求,可以查看示例乐谱《The Music Theory I》对变拍、变速和转调的处理。
另外还有两个假设,属于规范方面的问题。
- 多个声部相同位置的反复符号(例如 等)应当标记且仅标记在最上面的声部上。
- 多个声部相同位置的分段标签应当标记且仅标记在最上面的声部上。
挑战
接下来...
恭喜!现在你已经学完了最基本的部分。接下来的几个章节没有严格的先后关系,你可以根据自己的需要阅读。
- 关于设置字体、控制分行、调整布局,请看布局与字体章节。尽管不强制要求,但是仍然建议先阅读这一章节。
- 关于反复记号、跳房子、多行歌词、替代旋律以及复杂的反复结构,请看反复与区分。
- 关于力度、和弦与自定义文本标记,请看标记符号。
最后,记号速查表只是一个速查表,你现在不需要阅读。不过,如果你未来忘了某个记号的写法,这个速查表可能就有用了。