HI,各位同学好久不见,这一次来分享一下、BEATWIZ 的神奇魔法。相信各位在开发音乐游戏的过程中肯定有很多次“游戏两分钟,制作两个月”这种难受的情况发生,因此也让很多开发者望之儿退却。
所以 BEATWIZ 也就这么的诞生啦!它可以高速且高精度的解析乐曲的速度,节拍数,节拍开始时间等等信息,是一款特化了乐曲解析的引擎。怎么样?让 CRIWARE 的增野老师带领我们一起以及 BEATWIZ 的世界吧!
第一话:打节拍的秘密
大家好,我是 CRIWARE 的增野。
“想听着己喜欢的音乐,来享受音游”
由我的这个想法而诞生的 BEATWIZ,到今年为止已经开发了 15 年了。
BEATWIZ 可以解析现存的乐曲,可以高速且高精度的解析乐曲的速度,节拍数,节拍开始时间等等信息,是一款特化了乐曲解析的引擎。
在这 15 年的乐曲解析技术的进步里,还添加了比如乐曲的激烈程度的指标,特定的打击乐器的追踪,乐句的推定,清唱声的抽出,主旋律的乐谱的生成,和音解析等等各式各样的功能。
我会分为 3 话,尽量的给大家讲解 BEATWIZ 所拥有的其他地方没有的丰富的功能。
不管你对音游制作有或者是没有兴趣,和声音素材制作,声音设计,程序,策划相关的大家都可以来看一看,或许能够对你们有所启发。
打节拍的秘密
为什么人在听音乐的时候,会自然的想要动一动身子,又或是想要打节拍呢?
那是因为人和音乐同步的进行动作的时候,能感受到“快乐”,主动的享受音乐是人类的一种本能的行为。
那么,人是对音乐的什么进行了反应呢?其实是对音乐的速度(节拍)做出了反应。音乐传过来了之后,根据音乐的速度同步,自然的想拍手这个行为正是“人类能够正确的认识到音乐的速度并对其做出反应”的证据。
根据自己喜欢的音乐的节奏,按下按键,或者跳舞的游戏,也就是说“可以用任意的音乐进行音游”的设计和开发,就必须要进行一个“可以自动且高精度的解析任意的音乐的节拍速度”的功能的开发。
BEATWIZ 的开发所经历的 15 年,则正是一个关于如何解开“打节拍的秘密”的冒险故事。
什么是音乐的速度(即节拍数,BPM
)
大家谁都在小学或者中学的音乐课里看到过“乐谱”。
在乐谱的一开始的地方有可能会写着“Andante”。
或者也有可能写着“♩=120
”。
这个就是表示乐谱速度的记号。
顺带一提“Andante”指的差不多是♩=72
。
在 BEATWIZ 里,使用“BPM
”来表示来表示音乐的速度。
BPM
是“Beat Per Minute”的缩写,最早是用来表示心脏跳动速率的医学用语。
BEATWIZ 使用“在 1 分钟里演奏了多少次 4 分音符”来定义 BPM
值。
也就是说上面的“♩=120
”和“120BPM
”是同一个意思。
推定音乐的速度(BPM 值)的魔法
刚开始打算开发 BEATWIZ 的 15 年前的那时候,从一般的乐曲中推测 BPM
的研究工作基本没有人做,论文也很少。基本上就是“从零开始制作从一般的乐曲中如何推测 BPM
值的魔法书”的状态这样说也不为过。
当时的 BPM
推定主要还是实际听着音乐,然后跟着节拍按按钮的“按键法”,但是这种方法不可能自动化。
找了无数的论文,试过了许多方法,在经历了无数次的失败之后,最终得出了通过使用以下暂定的方法来推定 BPM
,可以得到最高精度的结果。
- 打击乐器的声音(节奏),可以支配
BPM
的推定值 - 这个节奏是一个频率非常低的超低频音波
- 为了观测超低频音波,准备一个能够装入
10
秒长度的波形的巨大的窗口(VLW
(Very Large Window)),然后传入音乐波形进行解析。
幸运的是,通过上述方法推测 BPM
的话,还能得到以下
- 节拍开始时刻(第一小节的第一拍是什么时候)
- 节拍数(是
3
节拍还是4
节拍)
的信息也可以高精度的推测出来了。
刚开始用这个方法进行尝试的时候,处理非常的耗时,解析时间甚至超过了原乐曲的时间。
在这之后的高速化和优化的结果,可以实现当初的 2000 倍以上的高速化,1 分钟的乐曲可以在 0.1 秒以内解析完毕。也就是说,一般的音乐的话,都可以在 1 秒钟之内解析完毕。
第一个音轨(ID:1
)这个大约 7 分半的比较长的曲子,用了大约 0.43 秒解析完成。可以看到 BPM
值为 122.00
,第一小节的第一拍的时间为 0.1453
秒,且这是一个 4
节拍的曲子。
高速化的结果,不光是可以解析乐曲文件,还可以实现串流的解析了。比如你现在听的乐曲通过麦克风输入之后,马上就可以获取这个曲子的 BPM 和节拍开始时刻,就像魔法一样。
BEATWIZ 的高精度以及处理的轻量,使得可以接入不仅仅是游戏机,手机,电器等等硬件,甚至照明道具,玩具,乐器等等,实现广泛的应用。
下回预告
这次为大家解开了 BEATWIZ 打节拍的秘密。
一旦了解了这些秘密之后,就可以获取乐曲中富含的大量的信息了。
在下一回,我会介绍曲子的激烈程度以及乐句的解析,并且介绍应用了这些技术的音游谱面自动生成的概要。
尽请期待。
暂无关于此文章的评论。