情報処理学会 音楽情報科学研究会

1996/07/28

平田 圭二

１．はじめに２．演繹オブジェクト指向に基づく
ジャズピアノ知識ベースシステム
３．ハービー君

後藤 真孝

４．分散環境での実装
５．実験結果１．はじめに

No.2

６．おわりに

No.1

早稲田大学 理工学部

ＮＴＴ 基礎研究所

コードにリハーモナイズするシステム

演繹オブジェクト指向に基づいてジャズらしい

ハービー君：

内容

ジャズピアノ知識ベースシステム（ＫＢＳ）

音楽知識の表現・操作

ジャズピアノ知識ベースとは？
・ジャズピアノに関する様々な音楽知識のデータベース

手法・枠組

・ 外部からの問合せに柔軟に回答

演繹オブジェクト指向： ＤＯＯ
実証システム

音楽応用システムの構築

ジャズピアノ知識ベースシステム： ＫＢＳ・メロディーに対するコード付け
・ ジャズらしいコード進行への変換（リハーモナイズ）

研究目的

・コードネームから実際のボイシングへの変換

ＤＯＯの枠組と音楽知識処理との・ ソロピアノ譜への編曲

親和性が高いことを実証
ジャズピアノＫＢＳの将来構想

Cm7

F7

Bbmaj7

Ebmaj7Bb

Cm7 11

ＤＯＯの枠組

音楽知識処理・ＧＵＩによる対話的な問合せ

start stopAm7(b5) D7
G
start
stop

F7b9#11

Bb7 b9b13

Ebmaj7 13

Gmin

Gmin

A7 #9 13Gm7 9G7stop
stop

D7b9b13

start
start

#11 13・ ＧＵＩによる知識ベースの容易な更新管理・ネットワークを介した複数の知識ベースの協調問題解決

ＤＯＯに基づく音楽応用システム構築法を確立

・ 並列処理による高速化
ジャズピアノＫＢＳ

ジャズピアノＫＢＳ

ジャズピアノ
ＫＢＳ

No.4

No.3

音楽応用システム
ＤＯＯの枠組

ジャズピアノＫＢＳ

・ 実時間処理の達成

２．演繹オブジェクト指向に基づく
ジャズピアノ知識ベースシステム

オブジェクトによる柔軟な知識表現
音楽的な概念や実体：オブジェクト
音符の表現

ＤＯＯの枠組

抽象的なＣ
具体的なＣ

note(pitch = C)

様々な音楽的な概念や実体

note(pitch = C, octave = 5)・ 合理的かつ自然に表現

・ 固有属性：オブジェクトを識別する際に用いる・ 見通し良く操作

属性名： pitch
属性値： CジャズピアノＫＢＳを核にした音楽応用システム

自由に増減できるため制約が少なく表現力が高い

・ 問合せなどのインタフェースのみを新たに付加

コードネームの表現

・ 各々の音楽応用システムが持つ知識を有機的に統合bchord_name(root = C, name = m)
/ (notes = {C, Eb, G}

ＤＯＯの特長・ 包摂関係などを用いたインスタンスに基づく検索

bCm

Cm7 11

ボイシングはコード自体を識別するのには影響を与えない付加的な情報

No.5

・ モジュラリティを持った知識の記述

オブジェクト間の包摂関係

No.6

・ 非固有属性：オブジェクト間の関連だけを表す

・ 知識や問い合わせの同一の枠組での記述

ジャズピアノＫＢＳの入出力
知識ベース構築時

⊆
複雑⊆単純

b

chord_name(root = C, name = m7, tension = {11})/ (notes = {C, Eb, G, Bb, F})・ オブジェクトによる柔軟な知識表現

・ 具体的⊆抽象的5

記述したい内容に応じて属性名−属性値のペアを・ 知識ベース部を共有

包摂関係

octave

特殊⊆一般

（入力）

・Herbie Hancock が弾いたソロピアノを採譜した譜面
・ その演奏に対するコメント

note(pitch = C, octave = 5)
⊆ note(pitch = C)・ 原曲のコード進行⊆

chord_name(root = C, name = m7, tension = {11})⊆ chord_name(root = C, name = m)

Cm7 11 ⊆ Cm

インスタンスに基づく検索
・ 知識をルールで表現する手法
不用意な抽象化や重要な情報の捨象により意図したような推論結果が得られないことがある

問合せ時

（入出力）

・ 包摂関係などから成る問合せ
・ 答え：・ インスタンスをそのまま知識ベースに格納

演繹した結果（入力）（出力）・ システムに与えられた情報を最大限に活用あるオブジェクトより具体的なオブジェクトは？

No.8

検索のための強力なオペレータ

No.7

・ 包摂関係：

３．ハービー君

インタフェースの問題点
インタフェースが並列論理型言語ＫＬ１のみ

ジャズピアノＫＢＳの応用システム

・ システムの内部構造の理解が必要

入力された原曲のコード進行を

・ 新たな問合せをするたびにＫＬ１でプログラミング

ジャズらしいコード進行にリハーモナイズ
リハーモナイズとは？
・ あるコード進行と似た機能を持つ別のコード進行を求める操作（一般にテンションを含んだより豊かな響きを持つコードに変える）

Cm7

F7

Bbmaj7

Ebmaj7Cm7 11

F7b9#11

Bb7 b9b13

Ebmaj7 9 13

問合せ用インタフェースのＧＵＩ化
・ 将来構想を実現する途中段階においても実用性のある効果的な応用システム

問合せのＧＵＩ化が必要

システム入出力拡張性が高く実装が容易なようにシステム設計

No.10

No.9

・ ハービー君をベースに将来構想を実現しやすく考慮

リハーモナイズの実現
小節番号，拍位置：コードネーム

・ 原曲のコードネームと調・ メロディーのＳＭＦ
演奏確認用（リハーモナイズでは全く考慮されない）

1, 0:
1, 0:
2, 0:
3, 0:
4, 0:
5, 0:
5, 0:
6, 0:
7, 0:
8, 0:

key(Bb)C m7
F7
Bb maj7
Eb maj7
key(G)A m7(b5)
D7
G min
G min

演繹規則による推論
・包摂関係

Cm7

F7

Bbmaj7Cm7 11

F7b9#11

Bb7 b9b13

Ebmaj7⊆

ユーザによる入力

Ebmaj7 9 13

リハーモナイズされたコード ⊆ 原曲のコード・ リハーモナイズは具体化に相当
原曲のコードに対しより具体化したコードをＫＢＳに問合せる操作

リハーモナイズ前後のコードネームを画面表示

ＫＢＳからコードネームとボイシングを取得

・ 結果を対比しやすいよう上下に並べる

・ 原曲のコードネームの具体化の問合せ

・ 処理途中でも結果の得られた部分から随時表示

Cm7

知識ベース中にある具体化したコードネーム
F7

Bbmaj7

Ebmaj7F7b9#11

Bb7 b9b13

Ebmaj7 13（同時に与えられた調も考慮）

Bb

Cm7 11Am7(b5)

D7

Gmin

Gmin

D7b9b13

Gm7 9

G7 #11 13

・ コードネームの非固有属性を検索

GA7 #9 13

対応するボイシング

リハーモナイズ前後のコードの響きをbb

複数の答えの候補からの選択

メロディーも合わせて演奏

・答えの得られる最長一致したコード進行を演繹結果

No.11

・ コードネームを理解できないユーザでも響きで確認可能
・ 処理途中でも結果の得られた部分から随時演奏可能

Cm7 11・候補が複数あるときには乱数により選択

No.12

Cm7

４．分散環境での実装

実装環境
・ ネットワーク：

ネットワーク上に分散実装

Ethernet・ ワークステーション： SGI Indigo2, Indy

・各処理やインタフェースの構成要素のモジュラリティを高める

・ 処理の構成要素：

・構成要素（プロセス）がお互いに通信して処理を進める

ＵＮＩＸのプロセス
サーバ・クライアント・モデル

高い拡張性
・ プロセス間の通信：

RMCP

・ 演奏の入出力：MIDI・ 必要に応じて複数の計算機を付加してシステム拡張
計算量の多い問題を解く大きな計算能力を得られる
・大規模分散データベースへ拡張する際の整合性が良い
Ｉｎｔｅｒｎｅｔ上の様々なＫＢＳを接続
・新たな機能の追加・拡張が容易
知識ベースの更新管理機能を追加する場合
無関係な既存プロセスの変更が不要

容易な実装
・ 個々のプロセスは小さな機能だけを実装すれば良い
実装や機能単位での再利用が容易実現すべき機能に適したプログラミング言語を使用

ＲＭＣＰ

No.14

通信部分の規約を定めプロセス間の独立性を高める

No.13

・円滑な共同開発

ハービー君システム構成

Remote Music Control Protocol

1

問合せの発行 （原曲のコードネームを送信）

2

リハーモナイズ（ジャズピアノＫＢＳ）

3

問合せ／答えのコードネームを画面表示

4

問合せ／答えのコードをメロディーを含めて試聴

ＲＭＣＰパケット

5

演奏の開始／停止の指示

・ コード情報

6

演奏情報の聴覚化／視覚化

・ ＭＩＤＩとＬＡＮを融合した分散協調システムにおけるサーバ・クライアント間の通信プロトコル・ シンボル化された音楽情報をネットワークを通じて伝送するために設計

ジャズピアノＫＢＳのコード入出力用
問合せの種類／答の種類，小節番号，拍位置，コードネーム，ボイシング

1

RMCP Chord Provider

Chord

2

「具体化の問合せ」 「具体化の答え」
・ 演奏情報Jazz Piano KBS

コード情報

ＭＩＤＩメッセージ

3 RMCP Chord Display Server

・ 演奏制御情報
演奏用プロセスに開始／停止を指示

4 RMCP Chord Player

Cm7

F7

Bbmaj7

Ebmaj7

MelodyCm7 11

F7b9#11

Bb7 b9b13

Ebmaj7 13

演奏情報
演奏制御情報5 RMCP SEQ Controller

・ コード情報などを様々なサーバが共有して同時に活用

No.15

・ クライアントがＲＭＣＰパケットをブロードキャスト

start
start

stop
stop

6 RMCP Sound Server
RMCP Display Server

No.16

ブロードキャストによる情報共有５．実験結果考察
二つの研究目的

実験条件

・ 単にシステムの出力するコード進行の音楽的善し悪しだけでは評価できない・ＫＬＩＣ上に実装されたジャズピアノＫＢＳを運用
・入力知識

Autumn Leaves （１コーラス３２小節）
ＤＯＯの枠組

音楽知識処理Herbie Hancock が弾いたソロピアノを採譜した譜面

ＤＯＯの枠組と音楽知識処理との親和性

その演奏に対するコメント
原曲のコード進行

・ リハーモナイズ前後のコード進行の関係をＤＯＯの包摂関係を用いて簡潔に表現

・リハーモナイズ対象曲

Autumn Leaves(Joseph Kosma)

Summertime(George Gershwin)・ 音楽的に意味のある計算をしていることを確認
・ ユーザの意図を合理的かつ自然に記述するのにＤＯＯの枠組が十分な表現力を提供できた

実験結果

音楽応用システム・合計約３８０個のオブジェクトを知識ベースに格納

ＤＯＯの枠組

ＤＯＯに基づく音楽応用システム構築法

・ Autumn Leaves

・ 各処理やＧＵＩの構成要素を異なるプロセスとして実装

一旦知識ベースに知識として格納されたものから演繹元の演奏とは異なるリハーモナイズもなされている

・ 負荷分散効果／高い拡張性と再利用性

・ Summertime６．おわりにまとめ原曲のコード進行をジャズらしいコード進行にリハーモナイズするシステム「ハービー君」
ＤＯＯに基づくジャズピアノＫＢＳにＧＵＩを付加する際の一応用例
具体化と非固有属性の問合せによってリハーモナイズ
高い拡張性を考慮しながら分散環境で実装

ＤＯＯが音楽知識処理に適していることを応用の観点からも一つ支持できた

今後の課題
ハービー君の改良
前後のボイシングの流れの考慮
知識の効率的な入力法の開発

ジャズピアノＫＢＳの将来構想へ向けた拡張
知識ベース更新管理のＧＵＩ化

No.19

ジャズピアノＫＢＳの問合せプロトコルの拡張

問合せと答えの通信プロトコルは汎用に設計

No.18

異なる曲に対してもリハーモナイズできることを確認

No.17

・今後のシステム拡張にも十分対応可能