转调、变拍与变速
转调、变拍与变速是音乐中较为高级的技巧,总而言之就是在中途改变音乐属性。这样可以为其增加许多色彩。
本节将介绍在 Sparks NMN 中这些记号的写法。
tl;dr
- 音乐属性可以通过添加小节线属性来修改。
- 前置属性(小节线前的花括号)会在乐谱中显示(显示在上一个小节的末尾),但解析器不会认为其改变了音乐属性。
- 后置属性(小节线后的花括号)会在乐谱中显示(显示在下一个小节的开头),解析器会认为其改变了音乐属性(例如变拍会改变之后节拍校验所要求的拍数)。
- 上方属性(小节线后的方括号)不会在乐谱中显示,但解析器会认为其改变了音乐属性。
- 在小节序列开头处添加属性,可使用隐藏小节线
/
。 - 对于此类属性,小节序列(碎片)开头的小节线不能使用前置属性,小节序列(碎片)末尾的小节线不能使用自身以及后置属性。
- 变拍属性的写法与音乐属性中的拍号相同,例如
0/4
4/4
6/8
。可以叠加三等分法则T
或摇摆节奏S
s
。 - 转调有绝对和相对两种形式。
- 绝对的转调与音乐属性写法相同,例如
1=C
会显示为转1=C
。 - 相对的转调适用于歌曲的绝对基调未知的情况。记号以
d1=
开头,后面跟一个带单位的数值(省略单位表示key
),单位key
thd
thm
th
tha
分别表示键、减度、小度、(大/完全)度、增度。数值的正负号表示升降。例如d1=-5th
显示为降5度
。
- 绝对的转调与音乐属性写法相同,例如
- 变速属性的写法与音乐属性中的拍速相同,例如
qpm=120
spm=233
。 - 双引号引起的字符串写在小节线属性中,将会直接显示出来。任何双引号字符串(其他地方的也可以)中都可以使用转义序列来表示一些无法直接表示的特殊字符。
变拍
变拍,指音乐在中途改变拍号。拍号的分子和分母均有可能改变,分子的改变控制的是每小节的拍数,分母的改变控制的是记谱的方式,同时隐含拍速的变化。
在 Sparks NMN 中,在小节线上添加小节线属性,即可实现拍号的改变。属性的写法与音乐属性中的拍号相同。例如:
如果你不熟悉这种反复标记,我可以告诉你它等价于下面的反复记号:
值得注意,第 3 小节末尾的拍号 并不能移动到第 4 小节开头。否则,读者第一遍奏唱到第 3 小节末尾时,拍号是 ,此时跳回开头位置,由于没有明确的信号表明回到了 拍号,读者可能会觉得困惑。尽管一般的读者很快能想明白,但这不符合记谱的规范,对可读性也是不利的。
不难发现,这里的示例代码中写了两个 4/4
拍号,分别作为前置属性和上方属性,但是只有前者被显示了。这里后者的作用是用来保证节拍校验能够理解我们的意思。如果去掉,节拍校验会认为第 4 小节仍然是 拍,从而给出警告。
接下来我们详细说一说节拍校验是如何处理变拍的。
节拍校验的行为
节拍校验处理变拍(以及其他音乐属性变化)的方式与正常识读乐谱时的规则不尽相同。这是因为目前解析器并不会按反复标记和反复记号来处理乐谱,而只是是忽略反复记号,将整个乐谱从前到后读一遍。
根据标记位置的不同,处理音乐属性变更的方式也不同:
- 作为前置属性(小节线前的花括号),音乐属性的变更会在上一个小节末尾显示,但在节拍校验中会被忽略。
- 作为后置属性(小节线后的花括号),音乐属性的变更会在下一个小节开头显示,且会被节拍校验处理。
- 作为上方属性(小节线后的方括号),音乐属性的变更不会显示,但是会被节拍校验处理。
利用这些规则,几乎可以处理所有的情况。这里给出一个更为复杂的例子:
注意到这里在曲谱行的开头添加字符 /
。这个符号表示没有任何显示效果的“隐藏小节线”,当你需要在曲谱行开头添加小节线属性时,就需要用到了。
对于音乐属性变更,前置属性不能用在小节序列开头,自身和后置属性不能用在小节序列末尾,否则会被忽略。
如果你对这一规则并不是很理解,不必担心——如果你犯了此类错误,编辑器会给出警告。
跳房子记号和反复记号的详细介绍在反复与区分章节中。
隐含的 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。
- 若基调不指定组号,音名
G
A
B
在第 3 组,C
D
E
F
在第 4 组。
音效试听所生成的声音会用到这两个假设。
相对转调
对于刚刚凭印象写出的乐谱,或者自己作曲的旋律,我们可能无从知道(或暂时不能确定)旋律一开始的具体基调是什么,这时候自然也无法以具体基调的形式来表示转调。诚然,我们可以强行认为 1=C,但这是不优雅且不严谨的。Sparks NMN 提供了一种基于音程的转调记号,只需要指定新的基调相比原来的升降了多少,而不需要指定具体的基调。
相对转调记号的写法是 d1=<数值><单位>
,其中数值可以带正负号,用来表示升或者降。单位可以是 key
thd
thm
th
tha
,分别表示 Key(钢琴键或半音)以及减/小/大(完全)/增x度。目前大x度和完全x度是不区分的,都会显示为“x度”。这有些不严谨,将来可能会添加单位 thM
和 thp
解决这个问题。
如果省略单位,将会默认为 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 1.14.24
变速
与转调类似,变速是在旋律中间某处改变拍速。
在 Sparks NMN 中,变速也通过小节线属性实现,写法与音乐属性中的拍速一致。下面例子是歌曲《秘境茶会》的开头。
也可以像音乐属性中那样用模糊的文本来代替精确的拍速数值。
添加渐快、渐慢的文本
目前 Sparks NMN 中没有渐快、渐慢的专用记号,不过可以在小节线属性中添加双引号引起的文本来提示渐快或渐慢。
为了音乐语言的准确性,渐快渐慢结束的位置应当再添加一个变速记号,表示结束时应当到达某个拍速。下面的例子来自电影《冰雪奇缘》的插曲《Frozen Heart》。
挑战
接下来...
接下来我们介绍多声部的写法,包括许多使用多声部时的注意事项。