ATTA: exGTTM に基づく自動タイムスパン木獲得システム
浜中雅俊†1

平田圭二†2東条敏†3†1

科学技術振興機構 さきがけ研究員†2

NTT コミュニケーション科学基礎研究所†3

北陸先端科学技術大学院大学
m.hamanaka@aist.go.jp

本研究報告では，音楽理論 Generative Theory of Tonal Music (GTTM)に基づき，タイムスパン木を自動で獲得するシステム ATTA (Automatic Time-span Tree Analyzer)について述べる．GTTM は複数のルールから構成されているが，ルールの適用に関して厳密な定義がなされていないため，タイムスパン木を獲得をするためには手作業によるルールの適用が必要であった．この問題を解決するため，本研究では，計算機実装用にルールを再形式化した GTTM の計算機モデル exGTTM を提案する．exGTTM の特長は，ルールの優先順位を決めるためのパラメータを導入したことである．exGTTM を実装したシステム ATTA を用いて実験した結果，パラメータの調節により，正解率が向上することが確認できた．

ATTA: Automatic Time-span Tree Analyzer based on exGTTM
1

2

3

Masatoshi Hamanaka† Keiji Hirata† Satoshi Tojo††1

PRESTO, Japan Science and Technology Agency,†2†3

NTT Communication Science Laboratories,

Japan Advanced Institute of Science and Technology

A.I.S.T. Mbox 0604. 1-1-1Umezono, Tsukuba, Ibaraki 305-8568 Japan
This report describes a music analyzing system called the automatic time-span tree analyzer (ATTA) based on thegenerative theory of tonal music (GTTM). Previous systems based on GTTM cannot acquire a time-span tree without manualapplication of most of the rules, because GTTM does not resolve much of the ambiguity that exists with the application of therules. To solve this problem, we propose a novel computational model of the GTTM called exGTTM that re-formalizes therules with computer implementation. The main advantage of our approach is that we can introduce adjustable parameters,
which enables us to assign priority to the rules. Experimental results showed that after these parameters were tuned, ourmethod outperformed a baseline performance.

1.はじめに
本研究では，音楽理論 Generative Theory ofTonal Music (GTTM) [1]を計算機上に実装する手法について提案する．従来の市販のシーケンス
ソフトウェアは，音符や休符，コードなど表層的な構造しか操作することができないため，音楽初
心者が自分の思い通りに楽曲を操作することは困難である．本研究の最終的な目標は，音楽家の知識を計算機上に実装することにより，音楽という多義的で主観的なメディアを，音楽初心者でも思い通りに扱うことのできるシステムを実現することである．そのための第一歩として，ここでは音楽理論 GTTM を計算機上へ実装する．

音楽理論は，音楽の知識や経験，技能を分析し解釈する方法論を我々に与えてくれるが，その際問題となるのは，分析する上で必要な概念が十分客観的に説明されているかどうかである．これまで 様 々 な 音 楽 理 論 [2-4] が 提 案 されてきたが，GTTM は他の音楽理論と比べて比較的厳密なルールで記述されており，音楽知識を形式化する上で最も有望であると我々は考えている．
GTTM の分析の結果得られるタイムスパン木は，曲中の各音の構造的な重要度を階層的に表示したもので，その自動生成は音楽の深層構造の分析[5][6]を可能とするだけでなく，演奏の表情づけ[7-9]や，音楽情報検索システムの出力結果を提示する際などに有用な，音楽要約[10][11]を実現

ので，長いメロディを歌うときにどこで息継ぎすする．これらのシステム[5-11]では，楽曲の表層
べきかを見つけるような分析である．拍節構造分的な構造を直接操作できないユーザでも，タイム
析は，4 分音符/2 分音符/1 小節/2 小節/4 小節など
スパン木を用いて楽曲を操作することを可能としていた．しかしそこで用いたタイムスパン木は， 各拍節レベルにおける強拍と弱拍を同定するもので，聴取者が曲に合わせて手拍子を打つタイミ
音楽家が手作業で作成したもので，その自動獲得
ングや指揮者がタクトを振るタイミングを求めは実現されていなかった．
るような分析である．タイムスパン簡約は，メロ
GTTM を計算機上に実装する際の問題点は，楽曲の解釈自体が暗黙で主観的なものであるため， ディの重要な部分と装飾的な部分を分離するもので，構造的に重要な音が幹になるような 2 分木
GTTM を含めた音楽理論も必然的に曖昧さを持（タイムスパン木）を求める分析である．図 2 のっていることである．それに加え，多くの音楽理
左図は，メロディとそのタイムスパン木を描いた論は人間に説明することを目的にしており，計算ものであるが，そのタイムスパン（＜－－＞で表
機上への実装が考慮されていない点も問題であされた部分）は，右図のようにヘッドと呼ばれる
る．従来，GTTM の計算機上への実装が試みられ一つの音で代表させることができる（ここではたが[12][13]，それらの手法ではルールの競合のC4C4 の音）． C4問題が解消できていなかった．一方，文献[14]でヘッドはタイムスパン木の獲得を可能としていたが，手作業によるルールの適用が必須であった．したがって，これらの手法[12-14]では分析を自動化する
具体化
抽象化
ことはできなかった．
図 2：メロディの包摂関係
そこで本研究では，GTTMのルールの持つ曖昧GTTM の各サブ理論は，構成ルールと選好ルール
性の問題を解消し，分析の自動化を実現するため，の2 種類からなる．構成ルールは，構造が成立する
計算機上で実行可能となるよう理論を拡張した
1
ために必要な条件や制約で，選好ルールは，複数のexGTTM を提案する．その際，楽曲解釈の暗黙構造が構成ルールを満たす場合どれが好ましいかを性，曖昧性，主観性をコントロールするための調示すルールである．本節では，GTTM のルールを計
節可能なパラメータを導入する．そして，算機上に実装する上での問題点について述べる．
exGTTMに基づきタイムスパン木を自動で分析するシステムATTA (Automatic Time-span Tree
2.1 選好ルールの定義の曖昧さ
Analyzer)をPerl上に実装した．実験の結果，ユGTTM は，ルールの定義に未定義の用語を用いーザがパラメータを適切に設定することによりており，それが分析に曖昧さをもたらしている．
性能が向上することが確認できた．
たとえば，GTTM には類似したメロディをひとまとまりの構造として選択しようとするルールが
2. GTTM の導入とその問題点あるが，メロディの類似度については未定義である．
この問題の解決法として，本研究では各ルール
GTTM は，音楽に関して専門知識のある聴取者が成立するかどうかを決める基準を形式化する．
の直観を形式的に記述するための理論で，グルーピング構造分析，拍節構造分析，タイムスパン簡
約，プロロンゲーション簡約という 4 つのサブ理論から構成されている．このうち本研究ではタイム
スパン木の獲得に必要な，グルーピング構造分析，
拍節構造分析，タイムスパン簡約を扱う．
（図 1）．
グルーピング構造分析は，連続したメロディをフレーズやモチーフなどに階層的に分割するもタイムスパン木…
・ ・ ・・ ・ ・・ ・ ・・ ・ ・・ ・ ・・ ・ ・・ ・ ・・ ・
・
・
・
・・
・・・

拍節構造
グルーピング構造

図１: グルーピング構造，拍節構造，タイムスパン木
1 exGTTMは，extended-GTTM (拡張したGTTM)とexecutable-GTTM (実行可能なGTTM)の両方の意味を併せ持つ．

2.2 選好ルールの競合
選好ルールを適用する際，ルールの適用順序が決まっていないため，ルールの競合がしばしば起きる．図 3 は，グルーピング選好ルール（GPRs:
Grouping Preference Rules）が競合している例
である．図 3 では，GPR3a が第 3 音-4 音間に適用され，GPR6 が第 5 音-6 音間に適用されている
が，GPR1 は第 4 音が単音のグループになることを嫌うため，両者を境界とすることはできない．
そこでルールの競合が生じる．
本研究では，ルールの優先順位を制御するためのパラメータを導入することで，この問題を解決する．
1 2 3 4 5 6 7 8 9 10 11 12 13 14

＾ 6＾
3a

＾ 6＾
3a

＾
3a,6

図 3：ルールの競合の例…

2.3 有効なアルゴリズムが定義されていない⎧1
DiGPR2b = ⎨⎩0

ioi i −1 < ioi i and ioi i > ioi i +1

(1)
else
GTTM の選好ルールは，複数の構造のうちどれ
ただし，が好ましいかを示しているだけで，階層的な構造: i 番目の遷移（i 音目と i+1 音目の間）
iioii: 発音時刻間隔を獲得するために必要な手順が定義されていない．
GTTMで述べられているように，構成ルールを一方，成立するかどうかが曖昧なルールの場合，満たすすべての構造を用意した後に，選好ルール
D i rule は 1 から 0 までの値を出力する．
たとえば，を用いてその中から最適な構造を選択するとい
TSRPR3 (Attack-points)は，メロディ中の音高のう手法は，現実的ではない．たとえば，たった 10
高い音をタイムスパンのヘッドとして選択する
音の音符列から 185794560（＝9２×9!）種類ものことを好むルールで，D i TSRPR3 は以下のように音
タイムスパン木が得られるため，その中から最適高が高いほど大きな値を示す．
な構造を選択することは容易でない．
(2)
DiTSRPR3 = pitch i max pitch j
この問題を解決するため，本研究では GTTMj
ただし，の本[1]にある数少ない適用例を参考に，階層的なpitch i : i音目のヘッドの音の音高構造を獲得するためのアルゴリズムを構築した．

3.2 未定義の概念の詳細化

2.4 フィードバックリンクに関する説明の不足
GTTM では，高次の構造から低次の構造へのフィードバックリンクがある．たとえば，GPR7 では，「タイムスパン簡約やプロロンゲーション簡
約が安定するグルーピング構造を選択する」と定義されている．しかし，それらのルールに関する詳細な説明がなく，またルールの適用例も少ない
ため実装が困難である．

3. exGTTM： 計算機上で実行可能な GTTM
計算機上で実行可能となるよう理論を拡張した exGTTM を提案する．exGTTM は，タイムス
パン木を獲得するための 36 個のルールのうち現在 26 個を扱っている．残る 10 個のルールのうち4 つはフィードバックリンクに関するもので，6つは和音に関するものである．本研究では，シス
テムの性能を正しく評価するため，分析の対象を和音を含まない単旋律に限定する．
本節では，計算機上に実装するために GTTMに加えた拡張について説明する．拡張の方針については，グルーピング構造分析，拍節構造分析，
タイムスパン簡約の 3 つの分析において共通している．

3.1 ルールの再形式化
各選好ルールを数式化することによって，複数のルールの適用結果の統合が容易に行えるようにする．D i rule はルールが成立する度合いを表す
変数で，ルールが成立する場合１，成立しない場
合０を表す関数である．
成立するかどうかが明らかなルールの場合，
D i rule は 1 か 0 の 2 値を出力する．たとえば，
GPR2b は，発音時刻間隔が前後の発音時刻間隔と比べて長い場合に成立するルールで，D i GPR2bの値は，成立する場合１，成立しない場合０を示す．

2.1 節で述べたように，GTTM では，未定義の用語をルールの定義に用いており，それが分析の曖昧さを招いている．
GTTM 本の著者 Lerdhal と Jackendoff が未定
義な用語に詳細な定義を加えることを避けた理由は，その用語の概念自体が曖昧で，唯一の定義がないためであると思われる．たとえば，メロデ
ィの類似度については，妥当と思われる多くの定義[15]があるが，最も適切なものを選ぶことは困難である．
そこで本研究では，我々が重要だと考える以下の 2 つの方針に基づき，未定義の概念に詳細な定義を与えることを試みた．
1）直観的でわかりやすい定義であること
2）調節可能なパラメータを導入し，曖昧さをできる限り排除すること
3.2.1 シンメトリーの定義
GPR5 は，シンメトリーに関するグルーピング
選好ルールで，グループの分割が長さの等しい２つの部分からなるようグルーピングすることを優先する．しかし，どのような場合がシンメトリ
ーであるかについては定義されていない．
そこで本研究では，分割されたグループの長さが等しいほど高い値を示す関数DiGPR5を定義し，その関数によってシンメトリーである度合いを表現することにする．ここでは，そのような関数
として平均をグループの中心，分散をσとする正規分布を用いる．ここで，正規分布を採用した理由は，σを調節可能なパラメータとすることで，シンメトリーな度合いDiGPR5の形状を自由に調節
2できるからである． ⎛ i
end
⎞
2σ 2
− ⎜ ∑ ioi j − ∑ ioi j 2 ⎟
⎜
⎟
1
GPR5
j = start⎝ j = start
⎠
Di
e
=
(3)
2π σ
ただし，
start
: グループの始まりの遷移
end: グループの終わりの遷移図 4aは，グルーピングレベルaに対応したシン
メトリーな度合いDi GPR5である．すべてのグルー
ピング選好ルールが適用された後，次のレベルのグルーピング構造がグルーピングレベルbのようになった場合，シンメトリーな度合いD iGPR5は図4bのようになる．

…
グルーピングレベルb start

end

end
end

start

グルーピングレベルa start

start
start

DiGPR5

3.4 階層構造獲得のためのアルゴリズム

a[time]

0

DiGPR5b[time]

0

図 4：シンメトリーな度合いD i

拍点/ヘッド，の強さを求めることができようになる．たとえば，局所的なグルーピングルールを適用した結果求まるD i GPRと調節可能なパラメータS
ruleの重み付け和を求めることによって次式のよ
i
うに局所的なグルーピング境界の強さが求まる．
∑ DiGPR j × S GPR jj = ( 2 a , 2b , 3 a , 3d , 6 )
(4)
Bi =
⎛
⎞
j
max ⎜⎜DiGPR× S GPR j ⎟⎟′∑i′
⎝ j =( 2a,2b,3a,3b,3c,3d ,6)
⎠

z

GPR5

3.2.1 パラレリズムの定義
GPR6 とMPR1，TSRPR4 はパラレリズムに関するルールで並列性のある部分は，並列的な構造を優先する．それぞれ対象とする構造が異なるため，3 つのルールそれぞれに対して，パラレルな
度合い D i (GPR6 / MPR1 / TSRPR4)を定義する．ここでは紙面の都合上GPR6 についてのみ説明する．
D i GPR6は，パラレルな部分の開始部と終端部で値が大きくなるような関数である（図 5）．GPR6
では，調整可能な 3 つのパラメータ Ws, Wr, Wlを導入する．Ws は，リズム方向のずれと音高のずれのどちらを重視するか決めるパラメータ，
Wr は，パラレルな区間の始まりと終わりでどちらを重視するかを決めるパラメータ，Wl は，パラレル区間の長さをどのくらい重視するかを決めるパラメータである．これらのパラメータを調節することによって，ユーザは簡単にパラレルなセグメントを見つけ，パラレル区間を設定することができる．

…
DiGPR6i0

階層構造を獲得するためのトップダウンなア
ルゴリズムを構築する．階層的な構造は，ボトムアップによる局所的な，グルーピング境界/拍点/
ヘッド，の強さの算出とトップダウンによる次の構造の選択を繰り返すことによって獲得できる．

図 5：パラレルな度合いD i GPR6

3.3 優先順位の付与による競合の解消
GTTMの各選好ルールの強さを調節するためのパラメータS rule を導入する．このパラメータを導入することによって，局所的な，グルーピング境界/

グルーピング構造の獲得(1)楽曲全体を一つのグループとする．
(2)局所的な境界の強さを算出し，局所的境界を検出する．
(3)最も強い境界でグループを 2 つに分割する．
(4)グループ中に局所的境界がある限り(3)を繰り返す．

z

拍節構造の獲得(1)すべての拍点を最も低次の拍節構造とする．
(2)局所的な拍点の強さを算出する．
(3)可能な拍節構造の中から，次の階層の拍節構造を選択する．
(4)現在の拍節構造に 2 つ以上の拍点がある限り(2)，(3)を繰り返す．

z

タイムスパン木の獲得(1)すべての音符をヘッドとする．
(2)局所的なヘッドの強さを算出する．
(3)各タイムスパンから次の階層のヘッドを選択する．
(4)タイムスパンに 2 つ以上のヘッドがある限り(2)，(3)を繰り返す．

4. ATTA：タイムスパン木分析システム
本節では，以上述べてきたような exGTTM を計算以上に実装したシステム ATTM について述べる．ATTA は，グルーピング構造分析器，拍節
構造分析器，タイムスパン木分析器の 3 つからなる（図 6）．それぞれの詳細については，付録に記述する．ここでは，ATTA が持つ 3 つの特長について述べる．

4.1 XML に基づくデータ構造
ATTA の入出力データには XML を採用した．
ATTA の各分析器は独立に動作するが，XML に基づくデータ構造によりお互いに結びついてい
る．システムの入力形式には，楽譜作成や分析，検索ツールが普及しており，フォーマットの相互変換が容易な MusicXML[16] を採用した．そして，システムの出力形式として，GroupingXML，

MetricalXML， Time-SpanXML を提案する．
XML に基づくデータ構造は，階層的なグルーピ
ング構造，拍節構造，タイムスパン木を表現する上で極めて適している．また，GroupingXML，
MetricalXML，Time-SpanXML 上のノートエレ
メントは Xpointer[17]と Xlink[18]によってお互いに結合している．
我々は，MusicXML と共にグルーピング構造，
拍節構造，タイムスパン木を同時に配布することによって，検索や編曲など様々な音楽タスクに利用されることを期待している．

現在，http://staff.aist.go.jp/m.hamanaka/atta/にて ATTA を公開している．ATTA はタイムスパン
木の自動獲得を実現した始めてのシステムであり，今後開発されるシステムとベンチマークされることを期待している．
図 7 は，グルーピング構造分析器，拍節構造分
析器，タイムスパン木分析器のスクリーンショッ
トである．それぞれの左側がパラメータを調節するためのスクロールバーで，右側が分析結果を表示するための画面である．
タイムスパン木分析器
拍節構造分析器

MusicXML

グルーピング構造
分析器

グルーピング構造
分析器
局所的境界

Bi

局所的境界の検出 (境界の深さ) GPR1, 2, 3, 6 の適用[time]

トップダウンによる分割

高次の境界の検出
GPR1, 2, 3, 4, 5, 6 の適用
グループ中に局所的境界がある
No

YesGroupingXML

図７：ATTA のスクリーンショット

拍節構造分析器
現在の構造

局所的な拍点の強さの算出

Dilow-level(拍点の強さ)mˆ = 1mˆ = 2mˆ = 3mˆ = 4mˆ = 5
MPR10の適用、構造の選択

次の階層
の候補

次の階層の
拍節構造の選択

4.3 Java ベースの GUI
MPR1,2,3,4,5の適用 [time]

拍点が2つ以上
No

Yes

MetricalXML

タイムスパン木
分析器

現在の構造

ヘッドの強さの算出

Ditime-span(ヘッドの強さ)

次の階層のヘッドの選択

Perl 上に実装した分析器もシンプルなユーザ
インタフェイスを備えているが，さらに Java ベースのグラフィックインタフェイス（GUI）を構築した．Java ベースの GUI は，自動分析モードと手作業編集モードの 2 つのモードを備えている．
自動分析モードでは，ATTA による自動分析を行いその結果を表示する．手作業編集モードでは，グルーピング構造，拍節構造，タイムスパン木の編集を補助する．自動分析モードの結果を手作業
編集モードで編集することもできる．

TSRPR1,3,4,8,9の適用

次の階層
ヘッドが2つ以上No

Yes

Time-spanXML

図 6：ATTA の処理の流れ

4.2 Perl 上への実装
CGI を用いてインターネット越しに ATTA を使用できるよう Perl 上に実装した．我々は，このようなリソースの配布は音楽研究者のコミュ
ニティにとって極めて重要であると考えている．

図７：Java ベースの GUI

5.実験結果

6. まとめ

本 節 で は ， ATTA の 性 能 の 評 価 を ， 適 合 率P(precision)と再現率 R(recall)を組み合わせた F 値で評価する．F 値は，適合率と再現率の値が高いほど高くなる．
F値 = 2 ×

P× R
P+R

(5)

ただし，
Ｐ: 適合率（正解データと同じグループ/拍点/ヘッドが，システムの出力に含まれている割合）
Ｒ: 再現率（システムの出力と同じグループ/拍点/ヘッドが，正解データに含まれている割合）

このような F 値による評価を行うためにはグルーピング構造分析，拍節構造分析，タイムスパン簡約の正解データを用意する必要がある．正解
データは，GTTM をよく理解している一人の音楽家が，クラッシック曲から切り出した 8 小節の長さの 100 個のメロディに対してグルーピング構
造分析，拍節構造分析，タイムスパン簡約を行ったものを，3 人の GTTM の専門家がクロスチェッ
クしたものである．
分析結果は，パラメータの調整によって変化する(表 1)．そこで，まずパラメータ調節前（ベースライン）の性能を求める．パラメータの初期値は，Srules =0.5, Trules =0.5,σ=0.05, Ws,=0.5 Wr =0.5,
Wl=0.5 である．そして，手作業で 1 曲につき 10分間でパラメータの調整を行った結果，F値がベー
スラインより向上していることが確認できた（表2）．

本研究では，GTTM に基づきタイムスパン木を自動で獲得するシステム ATTA を開発した．本研
究の主な意義は以下の 3 点である．
z exGTTM を提案した
計 算 機 上で実 行 可 能とな る よ う音楽 理 論
GTTM を拡張した exGTTM を提案した．
GTTM の実装の困難さについてはこれまでたびたび指摘されてきたが[19]，その根本的な解決法は提案されてこなかった．
本研究では，GTTM のルールを再形式化す
る際に，調節可能なパラメータを用いてルールを数式化することで，ルールの定義と分析の曖昧さとを分離することを可能にした．
z ATTA を計算機上に実装した
実際に計算機上で動作するシステム ATTAを実現し，階層的なグルーピング構造，拍節構造，タイムスパン木の自動獲得を可能にした．ATTA は現在 Web 上で CGI アプリケー
ションとして公開しており，今後開発されるシステムとベンチマークすることが可能である．
z 正解データを作成し実験したパラメータの調節の結果，分析器の性能が向上することが確認できた．実験用に作成した，100 曲の正解データは，GTTM の分析結果のデータベースとしては最も多くの曲数を収めている．今後順次公開していく予定である．

表 1. 調節可能なパラメータ
グルーピング
構造分析器

拍節構造分析
器
タイムスパン
木分析器

パラメータ
SGPR j

σ
Ws
Wr
Wl
TGPR4
Tlow-level
SMPR jWr
TMPR jSTSRPR j

説明
各グルーピング選好ルールの強さ. j= (2a, 2b, 3a, 3b, 3c, 3d, 4, 5, 6) 0≦SGPR j≦1
GPR5 で用いる正規分布の分散. 0≦σ≦0.1
GPR6 でパラレルな区間の始まりと終わりでどちらを重視するか決めるパラメータ. 0≦Ws≦1
GPR6 でリズム方向のずれと音高方向のずれのどちらを重視するか決めるパラメータ.0≦Wr≦1
GPR6 でパラレルな区間の長さをどのぐらい重視するか決めるパラメータ. 0≦Wl≦1
GPR4 でGPR2,3 の効果が明白であるかを決めるパラメータ. 0≦TGPR4≦1
局所的な境界であるかを決める閾値. 0≦Tlow-level≦1
各拍節選好ルールの強さ. j= (1,2,3,4,5a, 5b, 5c, 5d, 5e ,10)0≦SMPR j≦1
MPR1 でリズム方向のずれと音高方向のずれのどちらを重視するか決めるパラメータ.0≦Wr≦1
各ルールが成立するかを決める閾値. j =(4, 5a, 5b, 5c)
0≦≦1
各タイムスパン簡約選好ルールの強さ. j= (1, 3a, 3b, 4, 8, 9)0≦TMPR j≦1

表 2. パラメータ調節前と後の F 値
メロディ
1. 楽興の時
2. 子守歌
3. トロイメライ
4. よろこびの歌
5. 舟唄
平均(100 個のメロディ)

グルーピング構造分析
ベースライン
調節後
0.56
0.18
1.00
0.76
0.87
0.60
0.73
0.12
0.54
0.04
:
:
:
:
0.46

0.77

拍節構造分析
ベースライン
調節後
1.00
0.95
0.85
0.83
1.00
0.76
1.00
0.95
0.79
0.72
:
:
:
:
0.84

0.90

タイムスパン簡約
ベースライン
調節後
0.84
0.71
0.69
0.54
0.63
0.50
0.48
0.22
0.60
0.24
:
:
:
:
0.44

0.60

参考文献
[1] Lerdahl, F., and R. Jackendoff. A Generative Theory ofTonal Music. Cambridge, Massachusetts: MIT Press,
1983.
[2] G. Cooper, and L. B. Meyer. The Rhythmic Structure ofMusic. The University of Chicago Press, 1960.
[3] E. Narmour. The Analysis and Cognition of Basic Melodic
Structure. The University of Chicago Press, 1990.
[4] D. Temperley. The Congnition of Basic Musical
Structures. MIT press, Cambridge, 2001.
[5] 平田圭二, 青柳龍也, 音楽理論 GTTM に基づく多声音楽の表現手法と基本演算, 情報処理学会論文
誌 Vol.43, No.2, 2002.
[6] K. Hirata, and T. Aoyagi. “Computational Music
Representation on the Generative Theory of Tonal
Music and the Deductive Object-Oriented Database.”
Computer Music Journal 27(3), 73–89, 2003.
[7] N. Todd. A Model of Expressive Timing in Tonal Music.
Musical Perception, 3:1, 33-58, 1985.
[8] Widmer, G. ''Understanding and Learning MusicalExpression'', Proceedings of International Computer
Music Conference, pp. 268-275, 1993.
[9] Hirata, K., and Hiraga, R. ''Ha-Hi-Hun plays Chopin’s
Etude'', Working Notes of IJCAI-03 Workshop on
Methods for Automatic Music Performance and their
Applications in a Public Rendering Contest, pp. 72-73,
2003.
[10] 平田圭二, 松田周, パピプーーン: GTTM に基づく
音楽要約システム，情報処理学会研究報告2002-MUS-46, pp.29-36, 2002.
[11] K.Hirata, and S. Matsuda. “Interactive Music
Summarization based on Generative Theory of Tonal
Music.” Journal of New Music Research, 32:2,
165-177, 2003.
[12]井田健太郎, 平田圭二, 東条敏, GTTM に基づくグルーピング構造および拍節構造の自動分析の試み,
情報処理学会研究報告 2001-MUS-42, pp.49-54, 2001.
[13]東洋武士, 平田圭二, 東条敏, 佐藤健, グルーピン
グ規則適用を改良した GTTM の実装, 情報処理学
会研究報告 2002-MUS-47, pp.121-126, 2002.
[14] T. Nord. A. Toward Theoretical Verification:
Developing a Computer Model of Lerdahl andJackendoff’s Generative Theory of Tonal Music. Ph.D.
Thesis, The University of Wisconsin, Madison, 1992.
[15]Hewlett, W. B. ed. Melodic Similarity: Concepts,
Procedures, and Application. Computing in Musicology
11, The MIT press, Cambridge, 1998.
[16]Recordare LLC. “MusicXML 1.0 Tutorial.” http://www.
recordare.com/xml/musicxml-tutorial.pdf, 2004.
[17]W3C. “XML Pointer Language (XPointer).”
http://www.w3.org/TR/xptr/, 2002.
[18]W3C. “XML Linking Language (XLink) Version 1.0.”
http://www.w3.org/TR/xlink/, 2001.
[19]V. Heikki. “Lerdahl and Jackendoff Revisited.”
http://www.cc.jyu.fi/~heivalko/articles/lehr_jack.htm.

付録 1

グルーピング構造分析器• ステップ 1： 基本変数の算出.
MusicXMLから 6 つの基本変数を算出する．6 つの変数はそれぞれ，消音時刻から次の発音時刻までの間
隔resti，発音時刻間隔ioii，音高の差regii，ダイナミクスの差dyni，楽譜上の音符の長さと実際に演奏された音の長さの比の差artii，音価の差leniである．各基本変数についている添え字のiが何番目の遷移であるかを表している．ただし，第 1 音から第 2 音への変化を遷移 1，
第 2 音から第 3 音への変化を遷移 2 とする．

• ステップ 2： GPR の適用.
Bi-1 ≤ Bi and Bi ≥ Bi+1

⎧1
DiGPR1 = ⎨⎩0rest i −1 < rest i and rest i > rest i +1

⎧1
DiGPR2a = ⎨⎩0ioii −1 < ioii and ioii > ioii +1

regi i −1 < regi i and reg i i > regi i +1
else
dyni −1 = 0 and dyni ≠ 0 and dyni +1 = 0⎧1
DiGPR3b = ⎨⎩0⎧1
DiGPR3c = ⎨⎩0⎧1
DiGPR3d = ⎨⎩0else
artii −1 = 0 and artii ≠ 0 and artii +1 = 0
else
len i −1 = 0 and len i ≠ 0 and len i +1 = 0
else

(

⎧⎪1
DiGPR4 = ⎨⎪⎩0)

max Pi rest , Piioi , Pi regist , Pi dyn , Piarti > T GPR 4
i

end

⎞
⎟

− ∑ ioi j − ∑ ioi j 2⎜⎟1⎠e ⎝ j = start j = start
2π σ

∑D

registi

P

× S GPR j

GPR jij =( 2a, 2b,3a,3d ,6)Pirest = rest ii +1∑ rest , P

ioi
i

j

j =i −1⎧⎪regii
=⎨
⎪
⎩ 0

2σ 2

i +1

∑ regij =i −1jmi j = b(13)

mi j = t⎞⎛jmax ⎜⎜DiGPR× S GPR j ⎟⎟′∑i′⎠
⎝ j =(2a,2b,3a,3b,3c,3d ,6)= ioiii +1∑ ioi ,Pdynijj = i −1= dyn i⎛ i +1⎞⎜ ∑ regi j > 0 ⎟⎜⎟ , P arti = arti
j
=
i
−
1
i
i
⎝
⎠
else

z qi q j r
y qi q j r

× Wr ′ × r Wl +z qi -r q j -r r
y qi -r q j -r r

× Wr ′ × r Wl +Wr ′ = 1 - Wr , Ws′ = 1 - Ws ,

⎧⎪1
= ∑⎨
j ⎪
⎩0
⎧
⎪1
⎪
y qi q j r = ∑ ∑ ⎨
k l ⎪
0
⎩⎪

x qi r(12)

mi j = s: グループの始まりの遷移: グループの終わりの遷移: 4 分音符の音価: パラレル部分の長さ（一拍の整数倍）⎡ i⎤⎢ ∑ ioi k ⎥ ⎛ [ ] はガウス記号． [n]はnを ⎞
k =1
⎟⎟
⎥ ⎜
qi = ⎢⎢ div ⎥ ⎜⎝ 越えない最大の整数を 表す。
⎠
⎣⎢
⎦⎥

Giend
jr =

(11)

(15)

mi j = e

start
end
div
r

Gistart
jr =

(10)

(14)

2

⎧G start × W ′s⎪ i jr⎪G end × W
⎪
i
j
r
s
DiGPR6 = ∑ ∑ ⎨j r ⎪G start × W ′ + G end × W
i jr
s
i jr
s
⎪
⎪⎩0
ただし，

Bi =

(9)

else
⎛
⎜

=

(8)

else

⎧1
DiGPR3a = ⎨
⎩0

D

(7)

else

⎧1
DiGPR2b = ⎨
⎩0

GPR5
i

(6)

else

y qi q j r
x qi r + x q j r

× Wr × r Wl

y qi -r q j -r r
xqi -r r + xq j -r r

× Wr × r Wl

Wl ′ = 1 + Wl

q i ≤ q j and q j ≤ qi + r
qi > q j or q j > q i + r(qi − q j )× div = ∑ ioi g − ∑ ioi g
k

l

g =1

g =1

(qi − q j )× div ≠ ∑ ioi g − ∑ ioi g
k

l

g =1

g =1

i +1

∑ dyn ,

j =i −1ji +1∑ artij =i −1

j

(

)

(

)

k
l
⎧
⎪1 qi − q j × div = ∑ ioi g − ∑ ioi g and regii = regi j
g =1
g =1
⎪
z qi q j r = ∑ ∑ ⎨
l
k
k l ⎪
0 qi − q j × div ≠ ∑ ioi g − ∑ ioi g or regii ≠ regi j
⎪⎩
g =1
g =1

⎧b qi ≠ qi-1 and q j ≠ q j -1 and qi = qi +1 and q j = q j +1⎪
⎪e qi = qi-1 and q j = q j -1 and qi ≠ qi +1 and q j ≠ q j +1
mi j = ⎨⎪t qi ≠ qi-1 and q j ≠ q j -1 and qi ≠ qi +1 and q j ≠ q j +1
⎪s else⎩• ステップ 3： 局所的境界の検出.
次式により遷移iがグループの境界となる(Dilow-level=1)
かそうでない(Dilow-level =0)か求まる．
⎧1
Dilow-level boundary= ⎨⎩0

Bi > T low−level and DiGPR 1 = 1
else

(16)

• ステップ 4： 階層的なグルーピング構造の獲得
グループがその内部に局所的境界を含んでいる場合，
次式によって次の階層の境界 iˆ が再帰的に求まる．
iˆ = argmax ( Dilow − level boundary × ∑ DiGPR j × S GPR j )

(17)

j

i

ただし，
j= (2a, 2b, 3a, 3d, 4, 5, 6)i はグループに含まれるすべての遷移

付録 2MusicXMLから 5 つの基本変数を算出する．5 つの変数はそれぞれ，拍点から始まる音のベロシティveloi，
音価valui，連続する音量の長さvoli，スラーの長さsluri，
音高numiである．各基本変数についている添え字のiは，
現在の拍節レベルで何番目の拍点であるかを表してい
る．5 つの基本変数の平均値をそれぞれμvelo，μvalu，
μvol，μslur，μnumとする．

• ステップ 2： MPR の適用.

(

DiMPR2 = i end − i

) (i

end

−i

start

)

(18)
(19)
(20)

veloi > 0veloi = 0⎧⎪1
DiMPR4 = ⎨⎪⎩0veloi > 2 × µ velo × T MPR 4

(21)

⎧⎪1
DiMPR5a = ⎨⎪⎩0⎪⎧1
DiMPR5b = ⎨⎪⎩0valui > 2 × µvalu × T MPR5avalui ≤ 2 × µvalu × T MPR5a(22)

voli > 2 × µ vol × T MPR5b

（23)

⎧⎪1
DiMPR5c = ⎨⎪⎩0sluri > 2 × µ slur × T MPR5c
sluri ≤ 2 × µ slur × T MPR5c

(24)

⎧⎪ 1
DiMPR5d = ⎨DiMPR5a = 1 and DiMPR5a
=1
+1

(25)

numi = numi + 1
numi ≠ numi + 1

(26)

ただし，
i starti endveloi ≤ 2 × µ velo × T MPR 4

DiMPR5a≠1+1: グループの先頭の拍点のi: グループの終わりの拍点のi

zi k

=

i end

⎧1 veloi > 0 and velok +i′+i > 0
0 else∑ ⎨i′=i start ⎩iend⎧ 1 veloi > 0 and numi′-1 = numi′ and numk +i′−i-1 = numk +i′−i
else

∑ ⎨

0
i′=i start ⎩ステップ 3： 局所的な拍点の強さの算出.
次式により局所的な拍点の強さを算出する．
low-level⎧⎪ B × S MPR1
Di metrical = Bi + ∑ ⎨ kk ⎪⎩0

DiMPR1=1k

DiMPR1
=0
k

(27)

ただし，

Bi =

MPR j
× S MPR j∑ Di
j =(2,3,4,5a,5b,5c,5d ,5e)

• ステップ 4： 階層的な拍節構造の獲得
現在の拍節レベルに拍点が 2 つ以上ある場合，次式によって次の階層の拍節構造 mˆ が求まる．
⎧ D ilow -level metrical⎪mˆ = argmax ∑ ⎨ D ilow -level metrical × S MPR10m ( =1, 2 ,3, 4 , 5 ) i ⎪0⎩(i - m ) mod 2 = 0(i - m ) mod 3 = 1
else

タイムスパン木分析器(28)MusicXML，GroupingXML，Tims-SpanXMLから 4
つの基本変数を算出する．4 つの変数はそれぞれ，現在のヘッドiの音と次のヘッドi+1 の音の，消音時刻か
ら発音時刻までの間隔resti，発音時刻間隔ioii，音高の差pitchi，現在のヘッドiの拍点の数dotiである．

• ステップ 2： TSRPR の適用.
DiTSRPR1 = doti max dot j(29)

DiTSRPR3 = pitchi max pitch j

(30)

j

(31)

DiTSRPR3 = 1 − pitchi max pitchjj⎧1=⎨
DiTSRPR4
k⎩0⎧⎪1
DiTSRPR8 = ⎨⎪⎩0⎪⎧1
DiTSRPR9 = ⎨⎪⎩0ioii -1 = ioi k −1 , ioii = ioi k , ioii +1 = ioi k +1

(32)

else
i = i start

(33)

else
i = i end

(34)

else

• ステップ 3： 局所的なヘッドの強さの算出.
次式により局所的なヘッドの強さを算出する．

voli ≤ 2 × µ vol × T MPR5b

DiMPR5a ≠ 1i or=

k end ⎧1 velo ′ > 0⎧1 veloi′ > 0k+ ∑ ⎨0 veloi′ = 0 k ′=k start ⎩0 velok ′ = 0
i′=i start ⎩

∑ ⎨

j

⎧1
DiMPR3 = ⎨
⎩0

⎪⎩0
1
⎧
DiMPR5e = ⎨
⎩0

yi k

i end

• ステップ 1： 基本変数の算出.

• ステップ 1： 基本変数の算出.

yi kz× Wr + i k × (1 − Wr ) > T MPR1
xi k
yi k
else

=

付録 3

拍節構造分析器

⎧⎪1
DiMPR1
=⎨
k
⎪⎩0

xi k

⎧⎪ B × S TSRPR4
Ditime-span = Bi + ∑ ⎨ k
k ⎪
⎩ 0

=1
DiTSRPR4
k=0
DiTSRPR4
k

(35)

ただし，
Bi =

TSRPR j× S TSRPR j∑ Di
j = (1,3,8,9 )• ステップ 4： 次の階層のヘッドの選択
現在のタイムスパンにヘッドが 2 つ以上ある場合，
次式によって次の階層のヘッド hˆ が求まる．
⎧⎪ihˆ = ⎨⎪⎩ j- spanDitime- span ≥ D time
j

else

(36)