BEATWIZ 功能解说故事 第二话:大家一起热闹

作者:CRIWARE游戏音频视频中间件
2020-11-11
2 2 0

上一回带给大家第一期的 BEATWIZ 里打节拍的秘密,节奏是音乐的灵魂。BEATWIZ 的高精度计算节奏功能可以应用到各种不同的环境当中,他强大的功能中包含着自动识别乐曲的乐句。在音乐游戏中这功能就可以带给开发者无限大的便利啦!《BEATWIZ 音游谱面自动生成!》 大家一起来探究这个秘密吧!

第二话:大家一起热闹

大家好,我是 CRIWARE 的增野。


之前的第一话“打节拍的秘密”里,我简单的介绍了,

BEATWIZ 的诞生,以及功能解说故事。

通过“打节拍的秘密”我们可以对乐曲进行解析,将以往只能用感觉去解释的“乐曲的热闹程度”以及“乐句的构成”到底是怎么一回事。

最终,“只需要输入任意的音乐,就可以自动生成音游”的魔法就完成了。


这次,我们对这个魔法的其中一个元素“乐曲的热闹程度的判定技术”进行说明。

▲ 上一话介绍的,读取已有的音乐然后生成音游的 DEMO。在乐曲的最热闹的部分,也就是“高潮”部分,背景的演出将会自动变得非常的豪华。


符合作曲家意图的时间标记(MBT 单位)

演奏过乐曲的人都知道,在乐曲的特定的地方做标记的话,比如就会使用“第 12 小节第十三拍”这样的说法,而不会去使用类似“1 分 23 秒”这样的描述。

 在第一话里,我们知道了音乐的“打节拍的秘密”,也就是说

  1. BPM 值(音乐的速度)
  2. 拍子开头的时刻(第一小节第一拍是什么时候?)
  3. 拍子数(3 拍子还是 4 拍子)

对于知道了以上信息的乐曲来说,就可以不使用“时分秒”的单位,而是可以使用“小节,拍”的单位来表示,这两者可以互换。

在 BEATWIZ 里,小节,拍”单位的时刻信息称之为“MBT”。

MBT 分别表示以下意思。

小节(Measure 的 M,从 1 开始)

拍子(Beat 的 B,从 1 开始,3 拍子的曲目则值为 123,4 拍子则是 1234

Tick(从 0 开始,我们定义一拍(B)等于 960T


比如说 (M,B,T)=(1,1,0),就是指“第一小节的第一拍的开头”,也就是曲目的最开始的地方。

在上述图中,表示了 BPM95.50,第一节第一拍在 0.0756 秒,然后 4 拍子的曲子。

比如说这个曲子的“1 分 23 秒”,省略掉计算,就是 (M,B,T)=(33,4,948),差不多就是第 34 小节的第一拍。

同样的,乐谱内使用的音符也可以哟播放 MBT 来表示。

游戏程序在处理音乐的时候,一般会采取时分秒或者“采样数”来表示时刻单位。

通过 BEATWIZ,就可以避免这样的无机的单位,从而使用作曲者更好理解的小节,拍为基础的 MBT 单位。

使用 MBT 单位来解析音乐的话,就可以注意到很多以前的解析方法注意不到的细节。

这次我们要解说的“乐曲的激烈程度”的解析就是其中一个。


激烈程度推测的秘密

乐曲里的“激烈度”到底指的是什么呢?

在音乐变得更激烈后,人们会自然而然的拍手拍的更响,跳舞的人的动作也会更加剧烈,这个到底是对音乐的什么地方起了反应呢?

其实人们大致会根据以下 3 个要素,来感知乐曲的激烈度。

  1. 一个小节相对于全体的音量。
  2. 以大鼓为代表的低频音域(50Hz 以下)的音量。
  3. 不到 16 分音符的短时间的音量变化的大小。

特别是第三个要素“不到 16 分音符的短时间的音量变化的大小”,比起其他两个要素来说更为重要。

乐曲的激烈度在英文中被叫做“Music Excitation”的情形比较多,不过根据上述的解析结果来看,比起 Excitation,“Dynamics”这个单词可能更加适合。

BEATWIZ 通过解析上述的信息然后收集,从而量化了以前只能用感觉来描述的乐曲的“激烈度”。


通过激烈程度来推定乐句的魔法

就算对音乐不太了解的人来说,也应该听说过“副歌”这样的单词,还有“A 旋律”,“B 旋律”等等说法(日文中的说法)。

“副歌”是在整个曲子中最能够给人留下印象的,也就是说最“激烈”的部分。

BEATWIZ 是如何检测出来“副歌”部分的呢?

以上是将乐曲的激烈度以一个小节作为最小测定单位,然后将曲子全体图表化的例子。

我们可以看出来这个曲子从比较安静开始,在一次“热闹”之后,稍微老实下来一点,然后再次“热闹”,然后突然的冷静下来,最后再来一次大的“热闹”。

 因此我们可以认为,这个曲子的“最激烈的部分”=“副歌”,也就说最激烈的那三个部分。然后每个“副歌”的大概的小节位置也可以推定。

 

“A 旋律”“B 旋律”指的是“乐句”。

一般来说,一个曲子的曲调会在 416 个小节为单位变换一次,这个单位就叫做“乐句”。

那么 BEATWIZ 是如何检测出“乐句”的呢?

这个是将激烈度的检测精度设置为 16 分音符,详细测定之后的图表。

从第 46 小节的后半,到第 51 小节,激烈度的过渡的形式明显和前后是有区别的。我们可以判定第 46 小节里存在乐句的“区分点”。

BEATWIZ 会像上图一样,在“激烈程度的过渡形式”不一样的地方,会标记为各个乐句的“区分点“的候补,从而检测出不同的乐句。


包含了副歌的乐句自动解析和音游的基本要素

在前面的章节,我们使用”两种不同的精度的乐曲的激烈度解析“,可以如同以下,来解析”乐句构成“,以及“副歌”的位置。

▲ 乐句的解析结果的例子。这个曲子的“B 旋律”就是副歌。

Chorus1Chorus2Chorus3 表示了副歌在这个曲子中一共出现了 3 次。

我们通过事先准备了几种不同的舞蹈动作,然后根据动作的激烈程度来排序,然后根据乐曲的激烈度信息和乐句信息,来自动选择舞蹈动作。

这个完全就是当初我所想象的,“用自己喜欢的音乐来玩音游”的愿望实现的这一瞬间。

本文为用户投稿,不代表 indienova 观点。

近期点赞的会员

 分享这篇文章

CRIWARE游戏音频视频中间件 

CRIWARE的Indienova专栏,介绍CRIWARE的使用及项目案例 

您可能还会对这些文章感兴趣

参与此文章的讨论

暂无关于此文章的评论。

您需要登录或者注册后才能发表评论

登录/注册