BEATWIZ機能解説物語 – 第1話:手拍子の秘密 –


こんにちは。事業開発室室長の増野です。

『自分の好きな音楽で、音ゲーを楽しみたい』
私のそんな想いから生まれたBEATWIZ。
今年で開発開始から15年目を迎えました。
 
BEATWIZは、既存の楽曲を解析し、楽曲の早さ、拍子数、拍頭時刻などを、高速高精度に推定する、
楽曲解析に特化したエンジンです。
この15年間の楽曲解析技術の進歩により、曲の盛り上がり度の提示、特定の打楽器の追跡、フレーズ推定、歌唱音声の抽出、主旋律の楽譜の生成、和音解析など、さまざまな機能が追加されました。
 
これから3話に分けて、BEATWIZが持つ、他にはない豊富な楽曲解析機能の概要を、
できるだけ分かりやすく解説していきます。
 
音ゲーに興味のある方もない方も、サウンド屋さんもプログラマー・デザイナー・企画職の方も、
ちょっと覗いてみてください。
ひょっとしたら、新しいゲームのヒントが隠されているかもしれませんよ。

▲BEATWIZの楽曲解析機能により、一般の楽曲を読み込むだけで、ダンスパターンとボタン譜面情報が自動的に生成されるデモです。

 

手拍子の秘密

人はなぜ、音楽を聴くと、自然に体が動いたり、手拍子をしたりするのでしょうか?
それは、音楽と同期した行動をすることで、『楽しさ』を感じるからです。

『音楽』の『楽』は『楽しい』の『楽』ですが、このような『音楽に同期した行動』が、
『音楽』を『能動的に楽しむ人間の本能的な行動』そのものだからです。

では、人は音楽の何に反応して手拍子をするのでしょうか?
それは、『音楽の早さ(テンポ)』に反応しているのです。
音楽が流れてくると、その早さに同期して自然と拍手をするという行動は、
まさに『音楽の早さを人間が認識しそれに反応している』証拠です。

自分の好きな音楽にあわせて、ボタンを押したり、踊ったりするゲーム、
すなわち『任意の音楽で楽しめる音ゲー』の設計には、
『任意の音楽の早さを自動的にかつ高精度に推定する仕組み』の開発が不可欠でした。

BEATWIZがたどってきた15年間の開発の歩みは、
まさにこの『手拍子の秘密』を解き明かすための冒険の物語なのです。
 

音の早さ(テンポ)(BPM)とは

皆さん誰でも、小学校・中学校の音楽の授業で一度は『楽譜』を見たことがあると思います。
楽譜と聞いただけで、寒気がする方々、ちょっとだけご辛抱を。

楽譜の先頭部分に『Andante』と書いてあったかもしれません。

あるいは『♩=120』と書いてあったかもしれません。

これを速度記号と呼びます。
ちなみに『Andante』は♩=72程度の早さです。

BEATWIZでは、音楽の早さを示す単位を『BPM』で表します。
BPMとは、『Beats Per Minute』の略で、そもそもは『心臓の拍動の早さを示す』医学用語でした。

BEATWIZでは、『1分間に4分音符が何回演奏されるのか』でBPM値を定義します。
すなわち上記の『♩=120』は、『120BPM』と同じ意味になります。
 

音楽の早さ(BPM値)を推定する魔法

BEATWIZの開発に着手した15年前の当時、
一般の楽曲からBPM値を推定する研究はほとんど行われておらず、文献も極めて乏しいものでした。
まさに『一般の楽曲からBPM値を推定する魔術書をゼロから作り上げる状態だった』といっても
過言ではありません。

当時のBPM値の推定方法は、楽曲を実際に聴きながら、
それにあわせてボタンを押すという『タップ法』という手法が一般的でした。
これでは解析の自動化はできません。

数々の文献をあさり、色々な方法を試し、無数の失敗を繰り返したのち、
最終的に以下の仮定のもとにBPM値を推定する手法を使えば、
最も高精度な結果を得ることがわかりました。

    1. 打楽器が鳴る音(リズム)が、BPM値推定に支配的である。
    2. そのリズムを、非常に周波数の低い超低周波と考える。

      ※たとえば60BPMなら1Hz, 120BPMなら2Hz, 240BPMなら4Hzの超低周波。
    3. 超低周波の観測を行うため、10秒分の波形が入る広大な窓(VLW(Very Large Window))を
      準備し、そこに音楽波形を流し込んで解析する。

さらに幸運なことに、上記の方法を用いてBPM値を推定すると、BPM値と同時に・・・

    1. 拍頭時刻(『1小節目の1拍目がいつなのか』という情報)
    2. 拍子数(3拍子(ワルツ)なのか、4拍子なのかという情報)

・・・も極めて高精度に推定できることがわかりました。
この方法を初めて試した頃は、処理は重く、原曲の長さ以上の解析時間がかかりました。

▲今となっては大変貴重な10年以上前のBPM解析画面。
高速化も不十分で、原曲の長さだけ解析時間がかかるものでした。
また偽のBPM値が検出されることも多く、それゆえ『タップ法』を併用していました。

 
その後の高速化と最適化の結果、いまでは当初の2,000倍以上の高速化を達成し、
1分の楽曲あたり0.1秒未満で解析できるようになりました。
これは、一般的な音楽ならすべて1秒以内に解析できる速度です。

▲最新のBEATWIZの楽曲ファイル単位での解析結果です。
最初のトラック(ID:1)は、約7分半ある長い曲ですが、約0.43秒で解析が終了します。
BPM値は122.00、1小節目の1拍目は0.1453秒目に存在し、4拍子の曲であることがわかります。

 

▲さらに解析結果の詳細も報告されるようになっています。BPMの候補は上位7番目まで表示されます。
また、それぞれのBPM候補が『どの程度確からしいか(Reliability%)』という確度情報も表示されています。

 
高速化の結果、楽曲ファイル単位の解析だけでなく、ストリーム楽曲解析も可能となりました。
今聴いている音楽をマイクで取り込むだけで、その曲のBPM値と拍頭時刻が即座に取得できるという、
魔法のようなこともできるようになりました。

▲132BPMの曲をマイクから取り込んでストリーミングしながら解析している画面です。BPM値と拍頭がきれいに検出できています。

 
BEATWIZは、その精度の高さと動作の軽さから、ゲーム機のみならず、スマホ、組み込み機器などの幅広いハードウェアに、またゲーム分野だけではなく、遊技機、照明機器、玩具、楽器などの幅広い分野に採用いただき、導入されています。
 

次回予告

手拍子の秘密を解き明かしたBEATWIZ。
いったんその秘密がわかると、楽曲に含まれる様々な情報を取り出せることがわかりました。
次回は、曲の盛り上がり度とフレーズ解析、さらにそれを応用した音ゲーの完全自動生成の概要に関して解説します。
お楽しみに。

BPM解析方法の詳細は、CEDiL (CEDEC Digital Library)(メールアドレス要登録・無料)の、https://cedil.cesa.or.jp/cedil_sessions/view/731をご覧ください。

 



BEATWIZの製品ページはこちら

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です