多楽器音のベースギターパート自動採譜
2010SE232 竹内 雅浩 2010SE255 鵜飼 立樹
指導教員 : 後藤 邦夫

1

はじめに

近年は，以前よりもギターやベースギターなどの楽器が一般に普及しており，演奏者はそれぞれがバンドを組んでライブやセッションを行い，コミュニケーションを図っている．しかし，音楽に関する知識や音感が乏しい演奏者は，楽譜なしで原曲通りに演奏をする事が困難だ
が，人間が音楽を聴いてメロディ・リズム・楽器の音色などを把握するという一連の動作を情報処理によって実現する事ができれば，楽曲の採譜や演奏者同士のセッションはより快適なものになるだろう．ポピュラー音楽では，ベースギターが和音の基音となることが多いので，ベースギター音の把握は他の楽器の演奏者にとっても重要である．また，ベースギター音は他の楽器と比べて音高が低く，音符情報の把握は比較的容易である．よって，本
図 1 本システムの処理の流れ
研究では多楽器で演奏された楽曲からベースギターパートのみの楽譜を作成するシステムを開発する．
先行研究 [6] ではベースギター音だけの音源が対象で 2.1 BPM の検出あり，複数の楽器で演奏された通常の楽曲からベースギ譜面には演奏時の指針となる演奏のテンポが必要であターパートの譜面を作成する事はできなかった．この問 り，これは BPM(Beats Per Minute) という数値で表記題点を解決するために，当研究ではフーリエ変換や自己 されることが多い．BPM は楽曲の 1 分間がある音符の相関関数の計算による周波数の特定，バンドパスフィル 何個分に相当するのかを示す数値であり，1 分間に 4 分タなどを用いて多楽器音中のベースギターパートを解析 音符が何拍あるかを示すのが最も一般的である．各音符し，取得した音符情報を譜面化する．この手法は，多楽器 の発音時間情報を譜面化するためには，楽曲で用いられで演奏された楽曲からベースギターパートのみの楽譜を ている BPM が必要である．
どれだけ正確に作成できるかどうかで評価される．評価
参考文献 [3] に記述されている BPM の自動検出方法に実験で用いる楽曲は，多楽器音で演奏されたものでなけ は，音楽信号の所定の周波数成分の振幅のピーク間隔をればならない．音符情報の認識率を確認するために，楽 計測してテンポを検出する方法や，所定の間隔で信号の曲・譜面が存在する楽曲か自身で演奏した楽曲を用いる． レベル変化の相関を求め，相関関数が最大になる時間間また，ステレオフォニック形式の音源を対象とする．全 隔を探索してテンポを検出する方法などがある．前者は，てのシステムは共同で設計した．鵜飼立樹は譜面化シス ビートの弱い楽曲や不規則な信号が含まれている楽曲のテムの構築を担当し，竹内雅浩が周波数解析システムの テンポを正確に検出できない．後者はテンポを正確に検構築を担当した．
出できるが，非常に大きな演算量が必要となる．

2

提案するシステム

上記の課題を解決するために，当システムでは利用者が原曲から聴き取り体感した基準拍を利用者に入力させる．4 分音符 1 つ分の発音時間を 1 回とし，原曲に合わせて任意の時間だけキーボード入力を行わせ，その回数を記録するプログラムを実装した．これにより読み取った BPM を楽譜に表示する．また，楽譜の作成に必要な楽曲の拍子も当システムで利用者に入力させる．

本システムの処理の流れを図 1 に示す．ステレオ音源を入力として BPM と調を検出し，高速フーリエ変換と逆高速フーリエ変換を用いてベースギター音のみを抽出する．多楽器音の音源では，自己相関関数を用いて楽曲の基準ピッチを検出すると数値に誤差が生じてしまう．これを避けるためにベースギター音のみの音源に変換し，複数の音階から楽曲の基準ピッチを検出する．その後，楽 2.2 調の推定曲の基準ピッチを基に各音符の音高を同定する．さらに， 調とは，楽曲が中心としている音階のことである．調各音符の発音開始時刻と発音終了時刻を検出して発音時 は楽曲の基となっているので，調が判明すると演奏者を間を決定する．最後に，これらの情報を使用してベース 支援でき，採譜時に調を定めると楽譜上の♯や♭の数を減らす事ができる．調の推定には KeyFinder[2] を用いた．
ギターパートの楽譜を作成する．
KeyFinder の処理手順の概要を以下に示す．

1. ステレオ音源をモノラル化する．
2. ローパスフィルタでサンプリングレートを減らす．

3. Constant Q Transform を用いて，1 オクターブの各音符の音量と発音時間を示すクロマグラムを作成する．
4. 楽曲の和音進行や倍音から調が途中で変化するかどうかを判定する．
5. 各フレームで発音された音を音階の基音とし，特に基音と基音から数えて三度離れた音高と五度離れた音高に着目して調と比較する．

自己相関関数の計算は，入力信号とそれを m サンプルずらした信号を N-m 個の区間に区切ってかけ合わせたものである．信号に周期性がある場合，m を 1 周期の整数倍とすると，かけ合わされる信号が互いにほぼ等しくなるため，自己相関関数の値は大きくなる．
しかし，それ以外の場合では，自己相関関数の値は小さくなる．

2.5

音高の同定

KeyFinder を実行して出力される調名は，1 から 12 までの数字 1 種類と A か B の文字 1 種類の組み合わせで表され，Disc Jockey が用いる Camelot Wheel という表に対応している．

音高の同定には，1 オクターブの音程を均等な周波数で分割する音律である十ニ平均律を用いた．十ニ平均律では，隣り合う音の周波数比が等しく 21/12 : 1 となるため，楽曲の基準ピッチに 21/12 を音階の差分だけ掛けることで，各音高の基本周波数を求めることができる．抽出し2.3 高速フーリエ変換（FFT）たベース音から推定した基準ピッチを 12 平均律の基準音解析法として先行研究 [6] では，ウェーブレット変換にA4，求めたい音程の基本周波数を Xn，基準音と求めたよる解析が行われていたが，本研究では対象となる楽曲
い音高の音階の差を n とおいて，以下の式で音高毎の基は多楽器音であり，処理に大幅な時間が掛かる．そこで，本周波数を導出する．
本研究では高速フーリエ変換 (FFT) による解析を行う．
nFFT 実行前には，サウンドデータ切り出し時の波形の不Xn = A4 × 2 12(2)連続性を最小限に抑えられ，周波数特性が明確になるハ十ニ平均律を用いて音高 E0 から E3 全ての基本周波数ニング窓処理を適用した．処理は窓長の半分ずつ時間軸を求め，各音高の基本周波数の 100 分の 1 を誤差として方向にずらしながら行った．
本研究で対象とするステレオフォニック方式の音源 認めてバンドパスフィルタ [7] を 3 オクターブ分の 36 種には，ステレオスピーカの出力音を左右に振り分ける 類作成する．
本研究で作成するバンドパスフィルタは，各音高の基PAN(Panoramic Potentiometer) が各楽器音に設定され本周波数に対して通過域を設定した36 種類のバンドパスている．ベースギター音は通常左右均等に出力され，左フィルタを複合した櫛形のものである．楽曲から抽出し右の位相と音量がほぼ等しくなる．よって，ベースギターで演奏できる基本周波数の範囲内で，左右均等に出力さ たベース音源にこれを適用する．
れている音を抽出すれば良い．これは，ベースギターで演奏できる基本周波数の範囲外の音・左右の位相差の絶対値が閾値を上回る・PAN の差が振幅を上回る・左右の絶対値が近くないもののフーリエ係数を 0 にすることで実現する．適用後の音源も左右均等の情報なので，抽出後は左右どちらかの音のみを使用する．

2.4

基準ピッチの検出

楽器の調律や多楽器による演奏には基準となる音高が必要であり，エレキギターやエレキベースなどはこれらを基に調律されるため，各音高の基本周波数を同定するためには楽曲の基準ピッチの検出が必要である．多くの楽曲では，基準ピッチが音高 A4=440Hz となっている．周波数解析を行った音源を自己相関関数 (AutocorrelationFunction(ACF)) を用いて基準ピッチ検出を行う．波形を時間軸方向にずらして，元の波形との一致度が高いところが波形の基準ピッチとなる．
なお，最大値が 1 になるように正規化した自己相関関数の定義は次の通りである．
ここで，x(n) は入力信号，r(m) は自己相関関数，N は自己相関関数のサイズである．

PN −m−1r(m) =x(n) · x(n + m)
PN −1
n=0 x(n) · x(n)n=0(0 ≤ m ≤ N − 1)

2.6

作成した櫛形フィルタでは，二乗平均平方根 (Root MeanSquare) の値を算出して音高と発音時間を判定した．RMSは，発音された音声信号の音圧を各時間毎に自乗したものの平均値を算出し，その平均値の平方根を求めるものである．RMS の式は，下記のように表現できる．
ここで，xrms は二乗平均平方根，N は要素数，x1 ∼ xN
は時間毎の発音信号の音圧を表す．

vru
Nu1 X
x21 + x22 · · · x2N
xrms = tx2i =
N i=1
N(3)

バンドパスフィルタが適用された 36 種類の音声信号それぞれの RMS 値を算出し，閾値を越えているものを発音された音高とみなす．閾値を越えて音圧が極大値を示した時間が発音開始時間となり，閾値を下回った時刻が発音終了時間となる．発音時間はこれらの値から検出できる．
なお，フィルタが全く反応しない場合は，その時点で発音されていた音符がないと判断する．以上の手法で楽曲中の全音符の音高と発音時間を同定する．

2.7
(1)

発音時間の検出

譜面作成

検出した BPM・音高・発音時間・調の情報を反映し，ベースギターパートの譜面を作成する．検出した情報は，音楽記述言語の一つである ABC 記譜法 [5] に基づき，下記 ンポが遅い場合は，プログラムの実行時間を長くして測のプログラムにより ABC 譜を表記する．表記したものを 定の精度を向上させる必要がある．
数多くの譜面作成ソフトウェアで読み込める MusicXML
3.2 調の検出方式のファイルに変換する．MusicXML 方式に変換する
KeyFinder を実行し，楽曲の調を検出した．実験に使ソフトウェアを用いてファイルを出力し，MuseScore[1]用した楽曲の調とKeyFinder が検出した調を表 2 に示す．
により譜面を作成する．
ABC 記譜法では，X はファイルナンバー，M は拍子数，L は 1 文字の音符長，K は調を表す．音高を示す文字列
表 2 調の検出結果
は，当システム実行時に入力する調名に応じて変換させアーティスト名
楽曲名
検出した調 楽曲の調
ELLEGARDEN
スターフィッシュ
10B (D)D
る．1 オクターブ高い音は小文字で，さらにそれより高い
thebrilliant
green
Ash
LikeSnow
9A(Em)
G
音は右上に「’」を付け，1 オクターブ低い音は文字の直FLOWGO!!!
1B (B)
B
後に「，」を付けて表記する．休符は「z」，小節区切りは
B’z
it’s show time!!
9A (Em)Am「|」，曲終わりは「|]」で表記する．
L’Arc-en-Ciel
Driver’s High
12B (E)
C#m
音長は，基準とする任意の音符によって変化し，基準の音符の何倍となっているのかを出力する．当システムで1 曲目と 3 曲目は，楽曲で用いられている調と同じ調をは 8 分音符を基準とした．音高を表す文字列の直後に連検出する事ができた．2 曲目と 5 曲目は，長調と短調を誤続して，音長が基準の何倍となるかを示す数字を記述す認識したが，楽曲で用いられる調と音が全く同じ調を検ることで，ABC 記譜法における音符となる．
「C8」は全出した．4 曲目は調を正しく認識する事ができなかった．
音符，「C6」は符点 2 分音符，
「C4」は 2 分音符，
「C3」は符点 4 分音符，
「C2」は 4 分音符，
「C3/2」符点 8 分音符， 3.3 基準ピッチの検出「C1」は 8 分音符，
「C1/2」は 16 分音符を表す．
多楽器で演奏された楽曲を対象にプログラムを実行し譜面は五線譜形式で出力し，ト音記号・拍子数・五線・音 た結果を表 3 に示す．
符と休符・BPM・調を表示する．BPM と拍子は，BPM検出プログラムの実行結果を表示する．音符と休符は，表 3 多楽器音の基準ピッチ検出結果同定した音程・推定した音長・BPM を表示する．調は，KeyFinder の実行結果に対応する調名を表示する．また，
アーティスト名
楽曲名検出した基準ピッチ 楽曲の基準ピッチ
一般的にベースギターパートの譜面はヘ音記号で表記さ
ELLEGARDEN
スターフィッシュ
442 Hz440 Hzthe brilliant green
Ash Like Snow
441 Hz440 Hzれるが，本研究では演奏経験や知識が乏しい演奏者へのFLOWGO!!!
441 Hz440 Hz支援を目的としているので，ヘ音記号表記が読めない演
B’z
it’s show time437 Hz440 Hz
奏者のためにト音記号で各音符を表記する．
L’Arc-en-Ciel
Driver’s High441 Hz440 Hz

実験結果

3

実験に使用する楽曲の種類は J-POP である．

3.1

3.4

BPM の検出

BPM 検出プログラムを 30 秒間実行し，楽曲の BPMを計測した．実験に使用した楽曲の BPM とプログラムの計測結果を表 1 に示す．
表 1 BPM の測定結果
アーティスト名Janne Da Arc
the brilliant green
RADWIMPSFLOWB’z

楽曲名
Shinning Ray
Ash Like Snow
トレモロGO!!!
it’s show time!!

多楽器で演奏された楽曲は 1〜3Hz の誤差が生じた．

計測した BPM
159.727273
163.404255
189.068966
134.4
142.222222

楽曲の BPM
161
166
196
135147検出した BPM と実際の BPM には約 2〜7 の誤差が生じた．表 1 の 1 曲目のように，BPM が 161 の場合は 4 分
音符 1 個分の発音時間は約 0．3726 秒である．検出結果のように，BPM が 159．727273 であれば 4 分音符 1 個分の発音時間が約 0．3756 秒となる．よって，上記の実験で使用した楽曲のようにテンポが早いでは，当実験で確認した程度の誤差は非常に小さいと言える．楽曲のテ自動採譜した譜面

多楽器で演奏された音源のエレキベース音のみを自動で採譜した．当システムで作成した譜面 (図 2) と本来の譜面 (図 3) を次に示す．
楽曲は，the brilliant green の「Ash Like Snow」を使用し，0 秒から 15 秒までの譜面を作成した．
 譜面作成プログラムで出力した ABC 譜面


X: 1
M: 4/4
L: 1/8
Q: bpm 1/4 = 166.000000
K: Gz8 | ^F,2 ^G,2 z2 ^g2 |^g2 f2 ^c2 z2 | z2 z2 z2 f2 |g2 c2 z2 e’2 | z2 z2 z2 ^f2 |z2 ^G2 z2 z2 | ^d2 z2 z2 f2 |z2 E,2 z2 E,2 | z2 z2 E,2 z2 |]
自動採譜で作成した譜面は本来の譜面とは大きく異なる内容であった．楽曲の第 1 小節と第 2 小節では，本来

4

おわりに

本研究では，多楽器で演奏された楽曲からエレキベース音のみを抽出し，ベースギターパートの楽譜を自動作成するシステムの認識率を向上させるため，今後は，主に音高の同定と発音時間の検出システムを改良していきたい．今後の課題としては，基準ピッチ検出・音高の同定・発音時間の検出プログラムの改良である．
基準ピッチ検出システムは，多楽器音から抽出した連続的なベース音を対象としていたが，未だ精度が低い．実際の音源では，ベース音が連続して発音されていない場
図 2 Ash Like Snow の ABC 譜面を Musescore で読み込合が多い．また，多楽器音が完全に抽出しきれていない
んだ五線譜音源でベースギター音の基準ピッチを検出した事が原因だと考えられるので，多楽器音の抽出と発音時間の判定はエレキギターのみしか発音されていないが，作成したが課題である．
ベースギターの譜面では第 2 小節が発音されていたため，音高の同定システムは，本研究では櫛形フィルタを用エレキギターの音を誤検出したと考えられる．また，発いて音高の同定を行ったが，精度が低いので，それぞれ音時間が 16 分音符より短い場合や，発音開始時間が前のの音高の通過域に対する精度の向上が課題である．
発音終了時間よりも早い場合は，発音していないと考え発音時間の検出システムは，RMS の計算精度が低いたているため，本来発音されている箇所を消音と判定した
め，計算精度を向上させ発音開始・終了時間をより正確と考えられる．作成したベースギターの譜面の第 5 小節に検出する必要がある．複数の音の発音が同時刻に開始の 2 つ目の音符はオクターブ違いの音高を検出したが，4された場合の判定なども課題である．
つめの音符は正しく認識できている．第 10 小節の音符は今後は，上記を中心にシステムを改良して音符情報のオクターブ違いの音高を検出した．音符情報の誤認識の認識率を向上を目指していきたい．
原因は，エレキベース以外の音を排除しきれていない事とエレキベースの基本周波数ではなく倍音を検出した事 参考文献
だと考えられる．また，ベースギターは弦の状態やピッキ [1] MuseScoreBVBA: MuseScore, accessed Jan.2014,
ングの強さによって、時間と共に第 2 倍音（オクターブhttp://musescore.org/ja (2011).
上）の音圧が基音の音圧よりも高くなる場合がある．オ[2] Sha’ath, I.: Estimation of key in digital music recoクターブ違いの誤認識はこれが原因だと考えられる．
rdings, JISC Plagiarism Detection Service, accessed
3.5 自動採譜の評価Jan.2014,http://www.ibrahimshaath.co.uk/keyfinder/KeyFinder.pdf/ (2011).
システムの実行結果は，[4] の式で音符情報の認識率を算出して評価した．N nt を入力に含まれる総音符数，N nrを出力に含まれる正しく認識された音符の数，N nw を出力に含まれる音符の中で誤って認識されたか余分に出力された音符の数とする．

Rn = (

N nr − N n w 1 1· + ) × 100
N nt
2 2(4)

楽譜が存在する楽曲または自身で演奏した楽曲であれば，それらを参照にして認識率を確認する．3 曲の音源のそれぞれ 1 分間分だけを対象に，システムを実行して得られた譜面の音符情報の認識率を表 3 に示す．
表 4 音符情報の認識率
アーティストFLOW
the brilliant green
the brilliant green

楽曲名GO!!!
Ash Like SnowENEMY

音高の認識率8.33 ％
13.63 ％
10.04 ％

音長の認識率10.41 ％
21.81 ％
16.26 ％

[3] Sugai, I.: Tempo detection device and tempo detection program, Pioneer Corporation, 特開 US 2011/0067555 A1，accessed Jan.2014,http://www.google.
com/patents/US20110067555/ (2011).
[4] 中 臺 一 博 ，柏 野 邦 夫 ，田 中 英 彦：音 楽 音 響 信号を対象とする音源分離システム 〜音モデル に 基 づ く ア プ ロ ー チ 〜 ，情 報 処 理 学 会 研 究報 告 音 楽 情 報 科 学 研 究 会,93-MUS-1，accessedJan.2014,http://lab.iisec.ac.jp/ tanaka lab/publicati
ons/kenkyukai.html#1993/ (1993).
[5] 大 黒学：ABC 実 習 マ ニュア ル ，accessed
Jan.2014,http://tutorial.jp/music/abc/abcman.pdf(2005).
[6] 菊池淑晃，後藤真孝，村岡洋一：ベースギターの自動採譜システム，情報処理学会全国大会講演論
文 集 第 52 回 平 成 8 年 前 期 (1),459-460，accessed
Jan.2014,http://ci.nii.ac.jp/naid/110002867064/(1996).
[7] 青木直史：C 言語ではじめる音のプログラミング-サウンドエフェクトの信号処理-，オーム社 (2008).