音 楽 情 報 科 学 14{４
（１９９６． ２． ２４）

すべてのプレーヤーが対等な
ジャズセッションシステム
I. システムの全体構想と分散環境での実装
後藤 真孝

日高 伊佐夫

松本 英明

黒田 洋介

村岡 洋一

早稲田大学 理工学部

fgoto, hidaka, matumoto, ykuroda, muraokag@muraoka.info.waseda.ac.jp
あらまし
本稿では，すべてのプレーヤーが対等な立場でインタラクションし，即興演奏するジャズ
セッションシステムについて述べる．従来の多くのシステムでは，人間のソロ演奏に対して計算機が他のプレーヤー全員の演奏を伴奏としてまとめて生成していたため，ソロに追従する域を出なかった．我々は，計算機内のプレーヤー同士も人間同様にお互いの演奏を聞き合い反応することができ，さらにジェスチャー
も視覚的に交換することができるシステムを提案する．対象はジャズのピアノトリオとし，人間がピアニ
スト，計算機がベーシストとドラマーを担当する．両計算機プレーヤーは独立したプロセスとして複数の計算機上に実装され，実際にプレーヤーが対等な立場で演奏できた．

A Jazz Session System
for Interplay among All Players
I. System Overview and Implementation
on Distributed Computing Environment

Masataka Goto Isao Hidaka Hideaki Matsumoto Yosuke Kuroda Yoichi Muraoka
School of Science and Engineering, Waseda University
3-4-1 Ohkubo Shinjuku-ku, Tokyo 169, JAPAN.

Abstract

This paper presents a jazz session system where each player is independent and caninterplay with other players. Most previous systems reacted to only human player's performance withthe xed master-and-servant relationship. Our system enables computer players to listen to other computer players' performance as well as human performance, and to interact each other. Moreover, allplayers can communicate not only by listening others' performance, but by looking at others' bodies andgestures. In our current implementation, the system deals with jazz piano trio consisting of a humanpianist, a computer bassist and a computer drummer. These computer players have been implemented
as independent processes on several distributed workstations.

1

はじめに

ジャズセッションにおいて重要なのは，すべてのプレーヤーが対等な立場で，お互いの演奏を聞き合いながら即興演奏をすることである．これはインタープレイ (interplay) とも呼ばれ，プレーヤーが主従関係を持たずに，相互に相手の音に耳を傾けて音で反応する．本研究は，このようなインター

プレイを人間と計算機上の複数のプレーヤー間で実現することを通じて，人間と計算機が共に演奏する際のインタラクションの本質を探求することを目的とする．

従来のジャズセッションシステム [1]0[3] や自動伴奏システム [4]0[9] の多くでは，人間のソロ演奏に対して，計算機が他のすべてのプレーヤーの演奏を伴奏としてまとめて生成していた．そこでは，

0210

人間の演奏に追従して適切に伴奏することに重点が置かれていたため，あくまで人間が主であり計算機が従であった．また，計算機が担当するプレー
ヤーは人間の演奏しか聞けなかったため，計算機のプレーヤー同士はインタラクションできなかった．
一方文献 [10] では，マルチエージェントモデルによる計算機のプレーヤー同士のインタラクションに言及しているが，音楽聴取過程の実現が中心であり，実際の演奏の生成はおこなっていなかった．
本稿では，すべてのプレーヤーが対等な関係にあり，計算機が担当するプレーヤー同士もインタ
ラクションできるジャズセッションシステムについて述べる．本システムでは，計算機のプレーヤー
は人間の演奏に反応するだけでなく，ソロを弾くなどの自己主張もおこなう．さらに，実際の人間同士のセッションにおいて各プレーヤーが自分以外のすべてのプレーヤーの演奏を聞くように，計算機内のプレーヤー同士も人間の演奏と同様にお互いの演奏に耳を傾け，影響を与え合って演奏することができる．
本稿ではさらに発展形として，各プレーヤーがお互いの姿を見ることができるジャズセッションシ
ステム VirJa Session (Virtual Jazz Session System)を提案する．計算機のプレーヤーが演奏する姿は，
コンピュータグラフィックス (CG) により表示される．これにより，人間は音を聞くだけでなく相手の動きも見ることができ，より臨場感のあるセッショ
ンをおこなえる．同時に，計算機の各プレーヤーはカメラを通じて人間が演奏する姿を見ながら，通信によって仮想的に，他の計算機プレーヤーの姿やジェスチャー (身体的な合図) も見る．こうして，すべてのプレーヤーは演奏の終りなどを指示する
ジェスチャーを交換することができ，聴覚と視覚の両方を通じたインタラクションを実現できる．
現在の実装では，本システムはジャズのピアノ
トリオの演奏を対象とし，人間がピアニスト，計算機がベーシストとドラマーを担当する．そして，テンポが一定で演奏される 4 ビートのジャズスタン
ダード曲を扱う．計算負荷の分散のために，本シス
テムをネットワークに接続された複数の計算機上に実装した．その際，実装を容易にし拡張性を高くするために，ベーシストとド ラマーを独立したプロセスとして実現し，さらにこれらの演奏理解・生成部と CG 表示部も別々のプロセスとした．実
験の結果，実際にプレーヤーが聴覚と視覚を通じてインタラクションしながら即興演奏するセッショ
ンをおこなうことができた．

2

すべてのプレーヤーが対等な
ジャズセッションシステム

ジャズセッションでは，すべてのプレーヤーがお互いの即興演奏を聞き合い，固定した主従関係を持たずに対等な立場でインタラクションすることが重要である．そこで以下では，まずこのようなジャズセッションのモデルを提示した後，そのモデルをジャズのピアノトリオへと適用する．

2.1 ジャズセッションのモデル
すべてのプレーヤーが対等なジャズセッション
システムは，図 1 のようなモデルに基づいている．
ここではカルテット (4 人) の場合を例示したが，一般に n 人 (n は 2 以上の整数) の場合に適用できる．
プレーヤーは自分以外のすべてのプレーヤーの演奏を聞き，状況に応じて音で反応したりソロを演奏したりする．
各プレーヤーを人間が担当するか計算機が担当
するかはモデルとしては自由である．例えば二人の人間がプレーヤー 1 とプレーヤー 2 を担当する
ときには，計算機はプレーヤー 3 とプレーヤー 4を担当する．さらに，すべてのプレーヤーを人間が担当してもよいし，すべてのプレーヤーを計算機が担当してもよい．すべてを人間が担当する前者の場合は，複数箇所にいるプレーヤー間でのセッションなどに有効である．これは， で後述するようにコンピュータネットワークを介して演奏情報をやりとりすることで実現できる．すべてを計算機が担当する後者の場合は，様々な個性を持たせたプレーヤーや異なる人が設計したプレーヤー同士を一緒に演奏させるセッションなどに有効である．
そこでは，計算機上のプレーヤーがいわば設計者

6

Player 1

Player 2

Human

Human

ComputerComputerInteraction
Player 3

Player 4

Human

Human

ComputerComputer

図 1: すべてのプレーヤーが対等なジャズセッショ
ンのモデル

0220

の分身となり，それらの分身同士のインタラクションがおこなわれる．

2.2 ジャズのピアノトリオへの適用
本研究では，以上のモデルをジャズのピアノト
リオへ適用したシステムを実現する (図 2) ．プレー
ヤー 1 のピアニストを人間が担当し，プレーヤー
2 のベーシスト，プレーヤー 3 のドラマーを計算機が担当する．

は演奏音以外にも視覚情報を交換することができ，
より人間同士のジャズセッションに近付いた，聴覚と視覚の両方による臨場感のあるインタラクションを実現できる．また，VirJa Session の演奏を観客として楽しむ立場からは，すべてのプレーヤーの姿が見えることで，ライブ演奏を見ているときのようにプレーヤーの存在を感じることができる．
Player 1: Pianist
Human
ComputerPlayer 1: Pianist
Human

Real-time CG
ComputerComputer

Virtual Camera

Real-time CG

HumanInteraction

Virtual Jazz Session

Computer

図 3: 姿の見えるピアノトリオのセッションのモデル

図 2: ピアノトリオのセッションのモデル
ここで重要なのは，計算機がプレーヤー 2 とプ
レーヤー 3 を共に担当する場合にも，それらは独立したプレーヤーとして処理されることである．プ
レーヤー 2 は，プレーヤー 1 の人間の演奏だけでなく，プレーヤー 3 の計算機の演奏にも反応して演奏する．つまり，プレーヤー 1 の演奏だけを解釈して，プレーヤー 2 ，3 の演奏を従属的に決定するのではない．ここでは，プレーヤー 2 (ベーシスト) とプレーヤー 3 (ドラマー) が演奏によって影響を与え合うことができる．

3

Human

Virtual Camera

Player 3: Drummer

Human

Player 3: DrummerraComputer

Virtual Jazz Trio
Player 2: Bassist

Ca

me
ra

Human

al

Player 2: Bassist

Interaction

ReInteraction

me
Ca
al
Re

Virtual Jazz Trio

Computer

3.1 CG によるプレーヤーの可視化

姿の見えるジャズセッションシステム | VirJa Session

図 2 のモデルを発展させた，各プレーヤーがお互いの姿を見ることができるジャズセッションシス
テム VirJa Session のモデルを図 3 に示す． で述
べたプレーヤーは，頭脳以外には演奏を聞くための耳と演奏するための手足だけしか持っていなかった．ここで提案する VirJa Session のプレーヤーは，さらに他のプレーヤーを見るための目と自分の状態を表す体全体を持つ．これにより各プレーヤー

2

計算機が担当するベーシストとド ラマーの演奏する姿・ジェスチャーは，三次元 CG アニメーショ
ンによってリアルタイムに表示され，人間は演奏中にこれらを見ることができる．一方，計算機の両プレーヤーは，図 3 のように実際のカメラにより人間が演奏する姿をとらえ，ジェスチャーを認識する．同時に，通信で実現される仮想的なカメラにより他方の計算機プレーヤーの姿を見る1 ．こうして，各プレーヤーはお互いにジェスチャーを交換することができ，演奏音だけでは伝えにくい情報を介した協調が可能になる．

CG の画面上にはプレーヤーとその演奏する楽器(ベースまたはド ラムス) が表示され，プレーヤー
は演奏音に合わせた演奏動作をおこなう．さらに両計算機プレーヤーは，他のプレーヤーとのコミュ
ニケーションをとるために，次節で述べる二種類のジェスチャーの動作やうなずく動作をしたり，他のプレーヤーに視線を向けたりする．また曲のビートに合わせて体を揺らし足踏みなどもおこなう．
1 カメラによるジェスチャー認識の結果に相当する情報を通
信する．

0230

なお，CG によってミュージシャンの姿を可視化する試みとしては，文献 [11] や文献 [12] があげられるが，ギタリストの手の動きの生成が中心となっていた．また，文献 [13] では提案だけに留まっていた．

3.2 カメラによる視覚を通じたインタラ
クション

VirJa Session では，テーマ演奏部・各プレーヤー

きには，視線が自分を向いている間におこなわなければならない．ジェスチャーを受けとって了解した計算機プレーヤーは，相手に対して確認の意味
でうなずく動作を返す．

4

提案したシステムを実現するには，大別して以下の六種類の処理が必要となる．
1. 計算機プレーヤーが演奏を理解・生成する処
理 (計算機プレーヤーの頭脳)のソロ演奏部・フォーバース (4 verse) 部を組み合わせた演奏進行表を事前にシナリオとして与えることができる2 ．そして，シナリオ中の各部の繰り返し回数 (何コーラス演奏するか) は，最大回数を制限するだけで固定とはせず，ジェスチャー等を用いた演奏中のインタラクションによって動的に決定できるようにする．一般に人間同士のセッションにおいても，シナリオは事前に打合せして決めておくが，このシナリオ中の各部の繰り返し回数は演奏時に決定されることが多い．
本システムではそのための合図として，次のプ
レーヤーのソロ演奏部に移るように指示するジェス
チャーと，テーマ演奏部に移る (戻る) ことを指示するジェスチャーの二種類を用いる．前者は体を左右に傾けるジェスチャーで，傾けた側にいるプレー
ヤーにソロを指示する3 ．後者は手で頭を指すジェスチャーにより指示する．
計算機プレーヤーは，人間のこのようなジェス
チャーをカメラ画像から認識して判断する．また計算機プレーヤー同士は，通信によりジェスチャーを交換して判断する．一方，人間は CG によって可視化された計算機プレーヤーのジェスチャーを見て判断する．現在の実装では，計算機プレーヤーは，
シナリオ中のソロ演奏部やフォーバース部で最大繰り返し回数に達したときに，次へ移ることを人間に知らせるためにジェスチャー動作をおこなう4 ．
計算機の担当するベーシストとド ラマーは視線を持っており，シナリオ中の各部において終りに近付くと，再び繰り返すか次に移るかを判断するために頻繁に他のプレーヤーへ視線を向ける3 ．人間がジェスチャーを計算機プレーヤーに伝えたいと
2 例えば次のようなシナリオに沿って演奏できる: テーマ演

)

)

)

)

奏部
ピアノソロ演奏部
ベースソロ演奏部
フォーバー
ス部 (ピアニストとドラマーが交互に 4 小節間ソロを演奏)
テーマ演奏部．
3 三人のプレーヤーはお互いに向き合うように三角形の各頂点に配置され，この配置はあらかじめ与えておく．
4 まだ実現はされていないが，例えば人間のピアノソロを計算機プレーヤーが低調だと判断したときには，計算機の方から
次のベースソロ演奏部へ移るジェスチャー動作をするように設計してもよい．

分散環境での実装

2. 演奏全体のテンポを管理する処理
3. 計算機プレーヤーの演奏を人間が聞こえるよ
うに音として出力する処理
4. 人間の演奏を計算機プレーヤーに伝えるために入力する処理5. 計算機プレーヤーの CG 画像を表示する処理(計算機プレーヤーの体全体)
6. カメラにより人間のジェスチャーを検出する処理 (計算機プレーヤーの目)以上の処理を単一プロセスで実現するのは，計算量が多いために現実的でない．そこで本研究では，
これらの各処理を担当する複数のプロセスをサーバ・クライアント・モデルに基づいて実装し，演奏情報などをお互いに通信することでシステムを実現した．これは，

 各プロセスはそれぞれに特化した処理に専念すればよいため実装が容易になる．

 6 で後述するように拡張性が高く，提案したモデルを実現する上で適している．
という利点がある．
現在の実装では，ネットワーク (Ethernet) に接続された 3 台のワークステーション (SGI Indigo2
Impact/Extreme) 上でシステムは動作する．演奏の入力と出力は MIDI (Musical Instrument Digital
Interface) によりおこない，プロセス間の通信には次に述べる RMCP (Remote Music Control Protocol) [13] を用いた．

4.1 RMCP
RMCP は，MIDI と LAN (Local Area Network)を融合した分散協調システムにおけるサーバ・クラ
イアント間の通信プロトコルであり，UDP/IP 上のコネクションレスのプロトコルである．これはシンボル化された音楽情報をネットワークを通じて伝送するために設計された．本実装において RMCP

0240

は，次の四種類の情報を RMCP パケット5 として伝送する役割をする．

表 1: RMCP サーバ・クライアント一覧

 演奏情報 (MIDI メッセージ) ビート情報 (四分音符の時刻と現在のテンポ)
 ジェスチャー情報 (体を左に傾けた，体を右に傾けた，手で頭を指した)

 アニメーション生成情報 (ジェスチャー動作指示，うなずく動作指示，視線方向指示)
クライアントが RMCP パケットをすべてのサーバへ向けて送信 (ブロードキャスト) することにより，演奏情報などをネットワーク上の様々なサーバで共有して同時に活用できる6 ．さらに，サーバを単に追加するだけで新たな機能を実現できるので，システムの実装や拡張が容易になる．
RMCP は文献 [13] の時点ではリアルタイム性を全く確保していなかったが，本実装ではジャズセッ
ションをリアルタイムにおこなうために，RMCP
パケットのヘッダー部にタイムスタンプ7 を付加できるようプロトコルを拡張した．これによりサーバは，タイムスタンプの時刻前に到着したパケット
をその時刻通りに処理することができ，それらの時間順も保証できるようになった．

前述の六種類の必要な処理を担当する RMCP サ
ーバ・クライアントの一覧を表 1 に示す．名前に\Server" が含まれるものが RMCP サーバである．
これらのサーバ・クライアントの運用例について，で順に説明する．

4.2 4.3

4.2 すべてのプレーヤーが対等なジャズセッションシステムの実装

処理内容

サーバ・クライアント名

1. 演奏理解生成
2. テンポ管理
3. 演奏音出力
4. 演奏入力
5. CG 出力
6. カメラ入力

RMCP Player Server
RMCP Beat Provider
RMCP Sound Server
RMCP MIDI Receiver
RMCP Animation Server
RMCP Camera Analyzer

人間や計算機のプレーヤーの演奏情報は，図の中央のネットワーク (Ethernet) 上に RMCP パケッ
トとしてブロードキャストされる．このパケットをすべてのサーバが受信することで，演奏情報を共有できる．これは，全プレーヤーがお互いの演奏を聞き合って共有することに相当する．
人間がピアニストとして MIDI 楽器の鍵盤を弾くと，その演奏情報 (MIDI メッセージ) は，RMCP
MIDI Receiver によりネットワーク上に RMCP パ
ケットとしてブロードキャストされる．ベーシストとドラマーを担当する二つの RMCP Player Server
は，この演奏情報を受信しながら (演奏を聞きながら) ，自分の演奏情報をブロードキャストする (自分の楽器を演奏する) ．この際，他方の RMCP Player
Server の演奏情報も同様に受信して考慮する．これらの演奏情報を含む RMCP パケットを RMCP
Sound Server が受信すると，パケット中の MIDI
メッセージを MIDI 楽器に送ることにより実際の音として出力する．両 RMCP Player Server はテ
ンポに合わせて演奏を理解・生成しなければならないが，これは RMCP Beat Provider が送信する
ビート情報に基づいて演奏することで実現する．

すべてのプレーヤーが対等なジャズセッションシ
ステムを RMCP により実装した構成図を図 4 に示す．これは，表 1 の 1.〜4. で構成される．前述
した RMCP パケットが伝送する四種類の情報のうち，ここでは演奏情報とビート情報が用いられる．

Player 1: Pianist
Human
Computer

RMCP MIDI Receiver

5 RMCP が通信に用いるパケット．演奏情報を伝送する場合には，MIDI メッセージをパケット中に含む．RMCP パケット
はクライアントからサーバへ片方向に送信され，サーバからク
ライアントへの返答は原則としてない．
6 文献 [14] では分散環境での実装の際のプロセス間通信モデ
ルをいくつか考察しているが，RMCP のモデルは正確にはどれにも該当せず，文献中の「多対多」モデルと「黒板」モデルの中間に位置する．つまり，RMCP はコネクションレスであるために「多対多」モデルで議論されていたような全プロセス間のリンクは必要でなく，ブロードキャストで情報を共有するために「黒板」モデルのような黒板を管理するプロセスは存在しない．プロセスが黒板を介さずに直接通信するという意味で
は「多対多」モデルを受け継いでいるが，全プロセス間で情報を共有するという意味では「黒板」モデルを受け継いでいる．
7 現在の実装では 1ms 単位の絶対時刻とした．ただし，
NTP(Network Time Protocol) 等により，事前に計算機間で時刻を合わせておく必要がある．

RMCP Sound Server

PianistEthernet
Player 2: Bassist
Human

Player 3: Drummer
Human

ComputerComputer

RMCP Player Server

RMCP Player Server

RMCP Beat Provider

RMCP Beat Provider

BassistDrummer

図 4: RMCP によるジャズセッションシステムの
構成図

0250

4.2.1 RMCP Player Server
ベーシスト用とドラマー用のそれぞれの RMCP
Player Server は，他の二人のプレーヤーの演奏情
報と自分用のビート情報を RMCP パケットとして受信し，一拍ごとにその内容を過去の演奏情報と共に分析する．そして，分析結果に基づいて次の演奏情報を決定し，それを実際に鳴る時刻の一拍前までにブロードキャストする．この際，各 RMCP
パケットには，それが実際に処理されるべき時刻を表すタイムスタンプを付加する．
本サーバは大きく分けて，演奏理解部と演奏決
定部，演奏生成部で構成される．演奏理解部では，各プレーヤーの演奏をその楽器の演奏特性に応じた方法で分析して，プレーヤーの主張度を求める．
演奏決定部では，次の主張度等を予測しながら，自分がその後の演奏においてどれくらいの主導権を握るかを決定する．その際，シナリオ中のどの部分を現在演奏しているかも考慮する．最後の演奏
生成部では，音程・音量・リズムそれぞれについてのパターンのデータベースから，決定した主導権を実現できるようなパターンを選出して組み合わ
せ，実際の演奏情報 (MIDI メッセージ) を生成す
る．これらの具体的な実現上の課題や解決法についる．RMCP Camera Analyzer を二つ用意する実装も考えられるが，現時点では正面から人間のジェスチャーを検出すれば十分なので，一つのビデオ
カメラを両計算機プレーヤーが共用している．以
上の追加に伴い，RMCP パケットとして，演奏情報とビート情報に加えてジェスチャー情報とアニメーション生成情報も伝送される．ジェスチャー
情報は，RMCP Camera Analyzer から両 RMCP
Player Server へ送信されるか，両 RMCP Player
Server 間で通信される．後者は，仮想的なカメラを通じて他方の計算機のジェスチャーを見ることに相当する．アニメーション生成情報は，プレー
ヤーの可視化用に演奏音以外の動作情報を伝達するために用いられ，RMCP Player Server から対応
する RMCP Animation Server に送られる．これは，計算機プレーヤーの頭脳から体全体への動作
指令に相当する．
Player 1: Pianist
Human
Computer

RMCP Sound Server

RMCP MIDI Receiver

RMCP Camera Analyzer

Pianistいては，文献 [15] に詳しい．
Ethernet

4.2.2 RMCP Beat Provider

Player 2: Bassist

Player 3: Drummer

Human

Human
ComputerComputer

RMCP Beat Provider は，各拍の位置 (四分音符の時刻) を表すビート情報を順番に RMCP パケッ
トとしてブロードキャストする．このパケットは，
タイムスタンプとして四分音符の時刻を持ち，実際の時刻の一拍前までに送信される．RMCP Player
Server は，この時刻に基づいて，他のプレーヤーの演奏を分析し自分の演奏音の時刻を決定する．
現在の実装では演奏のテンポは一定としたため，本サーバは常に同一間隔のビートの情報を送信する．
ベーシストとド ラマーのそれぞれに RMCP Beat
Provider を用意してあるが，両者は同じ内容のビー
ト情報を送信する8 ．

RMCP Player Server
RMCP Beat Provider
RMCP Animation Server

BassistRMCP Player Server
RMCP Beat Provider
RMCP Animation Server

Drummer

Virtual Jazz Session
図 5: RMCP による姿の見えるジャズセッション
システムの構成図

VirJa Session のために，4.2 で述べた RMCP

Player Server を次の三点で拡張する．

4.3 姿の見えるジャズセッションシステ
ムの実装
姿の見えるジャズセッションシステム VirJa Session を RMCP により実装した構成図を図 5 に示す．
に対し，二つの RMCP Animation Serverと一つの RMCP Camera Analyzer が追加されて

4.2

8 演奏開始時に両者の RMCP Beat Provider は同期をとる．

0260

 RMCP Camera Analyzer や他方の RMCP
Player Server が送信するジェスチャー情報を受信し，シナリオ中の各部の繰り返し回数を動的に決定する．そして，確認のためのうな
ずく動作をアニメーション生成情報として送信する．

 ソロ演奏部やフォーバース部で最大繰り返し回数に達したときに，次へ移るためのジェス
チャー情報を送信すると共に，そのジェスチ
ャーに相当するアニメーション生成情報も送信する．

 シナリオ中の各部において終りに近付くと，頻繁に他のプレーヤーへ視線方向を切替えるためのアニメーション生成情報を送信する．また，他のプレーヤーの主張度が高いときなどに視線を向けることもおこなう．

4.3.1 RMCP Animation Server
RMCP Animation Server は，演奏情報とアニメーション生成情報，ビート情報の RMCP パケッ
トを受信し，その内容に応じてリアルタイムに変化するプレーヤーの姿を三次元 CG で表示する．対応する RMCP Player Server から演奏情報を受信すると，その音を自分の楽器で演奏する動作を生成する．アニメーション生成情報を受信すると，その指示に応じてジェスチャー動作やうなずく動作，
視線を向ける動作を生成する．また，RMCP Beat
Provider から受信したビート情報により，体を揺らしたり足踏みをする動作を生成する．
本サーバは大きく分けて，プレーヤー共通のRMCP 処理部と画像生成部，プレーヤー個別の動作決定部とモデリングデータから成る．RMCP 処
理部では，パケット中のタイムスタンプの時刻に実際の動作が起きるように，時間管理等をおこなう．
動作決定部では，ベーシストの場合には，左手のポジションと右手で弾く弦を，前の音からの指の移動量などを考慮しながら決定する．ド ラマーの場合には，足の動作は演奏情報から一意に決定し，手でどの打楽器を叩くかは曖昧性があるため動的に決定する．これらの処理の詳細に関しては，紙面の都合上，別の機会に報告する．

4.3.2 RMCP Camera Analyzer
RMCP Camera Analyzer は，演奏する人間の上半身を正面からビデオカメラで撮影して解析し，二種類のジェスチャーを検出する．そして，この結果得られるジェスチャー情報をブロードキャストする．

本サーバは，頭部位置推定部とその頭部位置を用いるジェスチャー検出部から成る．頭部位置推
定部では，まず事前に取り込んだ背景画像との差分を二値化し，x 軸 (水平軸) 方向のヒストグラムを求める．次に，ヒストグラム中で最大値をとる x
座標を頭部の x 座標 ( ) とし，最大値自体を頭部の y 座標 ( ) と推定する．ジェスチャー検出部では，が左右に大きく変動すれば，体をその方向へ傾けるジェスチャーをしたとみなす．また，() 周辺の色が大きく変化すれば，手で頭を指すジェスチャーをしたとみなす．

Hx

Hx;Hy

Hy

Hx

5

実験結果

実際に VirJa Session を運用してジャズセッショ
ンをおこなった．実験では，ジャズピアノ歴 5 年(ピアノ歴 21 年) のピアニストが，4 ビートのジャズのスタンダード曲「Take the \A" Train 」を即興演奏した．シナリオとしてはベースソロ演奏部
やフォーバース部 (ピアノとドラムスのソロ) を含
むものを設定し，演奏用の鍵盤および音源にはシンセサイザー (Korg 01/W FD) を用いた．
実験の結果，ピアニストが主導権を握るだけでなく，他のプレーヤーも主導権を握ってソロ演奏などをおこなうといった，従来のシステムに比べて全プレーヤーがより対等なセッションを実現できた．
演奏音だけのセッションと比較すると，相手の姿が見えることで臨場感が増し，ピアニストは実際にライブ演奏をしているときに近い感覚を得られた．
また，プレーヤー間でのジェスチャーを介した視覚的なインタラクションも達成できた．
本実装に用いた RMCP がジャズセッションシス
テムの通信プロトコルとして有効に機能することを確認する一環として，異なる計算機上にあるク
ライアントからサーバへ RMCP パケットが到達するまでの遅延時間を測定した9 ．その結果，平均値
0.30ms ，標準偏差 0.06ms ，最小値 0.28ms ，最大値 1.24ms であった．これから，RMCP は速度的に MIDI に遜色なく情報伝送できており，ブロードキャストやタイムスタンプ機能を活用しながら効果的に実装できることがわかった．

6

拡張性に関する考察

提案したモデルを分散環境で実装したことによって，どのように拡張性が高くなったかを具体的に
考察する．
□図

1 のモデルの実現

2.1 で述べたモデルにおいて，各プレーヤーを人間と計算機のいずれが担当してもよいことを述べた．例えば，図 2 のモデルにおいてベーシストの担当を計算機から人間に変更するには，図 4 の計算機担当用 (ベーシスト用) の二つのプロセス(RMCP Player Server, RMCP Beat Provider) を
人間担当用の二つのプロセス (RMCP MIDI Receiver, RMCP Sound Server) に単に置き換えるだ
けでよい．ピアニストの担当を人間から計算機に変更する場合も，人間担当用を計算機担当用 (ピア0270

9 MIDI note on メッセージを 10000 回伝送して測定した．

ニスト用に新たに実装) に逆に置き換えればよい．
また，プレーヤーを新たに追加する場合には，人間担当用か計算機担当用のプロセスを追加し，各RMCP Player Server の演奏理解部を新たなプレー
ヤーにも対応するように修正すればよい．以上はVirJa Session の場合にも同様に適用できる．

謝 辞本システムの実験に協力して頂き貴重なコメントを頂いた緒方 美音子 氏，浅谷 薫 氏，大森 哲也 氏，黛 慎
一郎 氏に深く感謝する．

参考文献
[1]

□ テンポ変化への対応
現在は演奏テンポを一定としたため RMCP Beat
Provider を用いているが，テンポが変化する演奏に対応するよう拡張するには，これを他のプレーヤーの演奏のテンポ変化に追従できるような RMCP
Beat Tracker に置き換えるだけでよい．

pp.1469-1481 (1994).

近藤 欣也, 片寄 晴弘, 井口 征士: 音楽情報から奏者の意図を理解する伴奏システム| JASPER++|, 第 46 回情処全大, 7Q-8 (1993).
[3] 渡辺 和之, 西嶋正子, 柿本 正憲, 村上 公一: ニュー
ラルネットワークを用いたジャズセッションシステ
ム | ニューロミュージシャン |, 第 44 回情処全大, 4R-5 (1992).
[2]□ 複数箇所にいるプレーヤー間でのセッション
今回は一箇所で実験したが，RMCP によりネットワークを利用して実装したことで，複数箇所にいるプレーヤー間にも自然に拡張できる．この場
合には，各プレーヤーのいる LAN 間で RMCP パ
ケットを中継する．

An On-Line Algorithm forReal-Time Accompaniment[4] Roger B.Dannenberg:

,

the

1984

The Synthetic Performer in theContext of Live Performance, Proc. of the 1984

ICMC, pp.199-200 (1984).
[6] Bridget Baird, Donald Blevins, and Noel Zahler:

The Arti cially Intelligent Computer Performer
on the Macintosh II and a Pattern Matching Algorithm for Real-time Interactive Performance,

Proc. of the 1989 ICMC, pp.13-16 (1989).
[7]堀内 靖雄, 藤井 敦, 田中 穂積: 複数の人間と協調して演奏するシステム, コンピュータソフトウェア,
Vol.12, No.5, pp.63-71 (1995).

[8]日高 伊佐夫, 後藤 真孝, 村岡 洋一: ジャズの独奏の変化に対応する自動伴奏システム, 情処研報, Vol.95,
No.19, 音楽情報科学 95-MUS-9-2 (1995).

[9] Isao Hidaka,

Masataka Goto,

and Yoichi Mu-

An Automatic Jazz Accompaniment System Reacting to Soloraoka:, Proc. of the 1995 ICMC,

pp.167-170 (1995).

おわりに

6

of

[5] Barry Vercoe:[10]

本稿では，すべてのプレーヤーが対等なジャズセッションシステム，およびその発展形である姿の見えるジャズセッションシステム VirJa Session の，全体構想と RMCP による実装について述べた．本システムでは，プレーヤーは固定した主従関係を持たずに即興演奏でき，演奏音に加えてジェスチャー
という視覚情報を介してインタラクションすることが可能になった．また，RMCP を用いて分散環
境で実装したことにより，単一プロセスですべてを実現する場合に比べて拡張性が非常に高くなった．
本稿で提案したモデルと実装方法は様々な発展の可能性を持っている．そこで今後は で述べたような拡張を実際におこなっていく予定である．他にも，画面上に仮想のライブステージを設置し，その中でピアニストの CG を含めた全員の姿を可視化することも予定している．

Proc.

ICMC, pp.193-198 (1984).

□ 様々な個性を持つ計算機プレーヤー間でのセッ
ション
RMCP をプラットフォームとして，様々な人が各自の思いを込めた RMCP Player Server を実装
すれば，それらのプレーヤーを接続していろいろな形態のセッションがおこなえる．つまり，計算機上のプレーヤーを介した，それらの設計者同士の間
接的なインタラクションも考えられる．この場合，
RMCP Player Server だけを選択・交換すれば，他のプロセスを変更する必要はない．

7

和気 早苗, 加藤 博一, 才脇 直樹, 井口 征士: テン
ション・パラメータを用いた協調型自動伴奏システ
ム: JASPER, 情報処理学会論文誌, Vol.35, No.7,

金森 務, 片寄 晴弘, 新美 康永, 平井 宏, 井口 征
士: ジャズセッションシステムのための音楽認識処理の一実現法, 情報処理学会論文誌, Vol.36, No.1,
pp.139-152 (1995).

[11] H. Katayose, T. Kanamori, K. Kamei, Y. Nagashima, K. Sato, S. Inokuchi, and S. Simura:

Virtual Performer

,

Proc.

of

the

1993

ICMC,

pp.138-145 (1993).
[12]

亀井 克之, 佐藤 宏介, 片寄 晴弘, 井口 征士: 実写
画像の編集と手の 3 次元モデルとによる人の動作ア
ニメーションの生成, 情報処理学会論文誌, Vol.36,[13]

後藤 真孝, 橋本 裕司: MIDI 制御のための分散協調システム | 遠隔地間の合奏を目指して|, 情処
研報, Vol.93, No.109, 音楽情報科学 93-MUS-4-1

No.2, pp.374-382 (1995).

(1993).

長嶋洋一, 由良泰人, 藤田泰成, 片寄晴弘, 井口征士:
マルチメディア生成系におけるプロセス間情報交換
モデルの検討, 情処研報, Vol.95, No.74, 音楽情報
科学 95-MUS-11-10 (1995).
[15] 日高 伊佐夫, 後藤 真孝, 村岡 洋一: すべてのプレー
ヤーが対等なジャズセッションシステム II. ベーシ
ストとドラマーの実現, 情処研報, Vol.96, 音楽情報
科学 96-MUS-14-5 (1996).

[14]0280