MIDI 制御のための分散協調システム| 遠隔地間の合奏を目指して |後藤 真孝y3

橋本 裕司z3y 早稲田大学 理工学部z 慶応義塾大学 環境情報学部

goto@muraoka.info.waseda.ac.jp

yuji@sala.sony.co.jp

3 SALA (Science Art Laboratory)

あらまし 本稿では MIDI と LAN を融合した分散協調システムについて述べる．本システムでは，コンピュータの支援を受けながら複数のユーザが MIDI 楽器を合奏できる．本システムにより，MIDI に対応した専用機器を用意しなくても，汎用のコンピュータを組み合わせて様々な演奏の支援や特殊効果を得られる．例えば，広域ネットワークを使って遠隔地間の合奏をしたり，他のユーザの演奏状態を視覚化したり，演奏情報に反応して変化する CG を表示したりすることができる．これらを実現するために，MIDI プロトコルをそのまま用いるのではなく，ブロードキャストなどの特徴を持つ通信プロトコル RMCP を設計した．本システムは実際にネットワー
クで結ばれたワークステーション上に実装され，3 人での合奏が可能であった．

A Distributed Cooperative Systemto play MIDI Instruments| Toward a Remote Session |Masataka Goto

Yuji Hashimotoy3z3y School of Science and Engineering,z Faculty of Environmental Information,

Waseda University
3-4-1 Ohkubo Shinjuku-ku, Tokyo 169, JAPAN.

Keio University
5322 Endoh Fujisawa, Kanagawa 252, JAPAN.

3 SALA (Science Art Laboratory)

6-7-35 Kitashinagawa Shinagawa-ku, Tokyo 141, JAPAN.

Abstract

This paper presents a distributed cooperative system, which integrates MIDI and LAN. Thissystem allows the users to play an ensemble with computer support. Because of the integration of MIDI andLAN, various kinds of support are obtained by exploiting existing computers without special MIDI materials.
For example, the users may play a remote session through a wide area network. They also may see visualized
information of other users' play, and computer graphics reacting to the play. This paper also shows RMCP
(Remote Music Control Protocol), which is an extension of MIDI protocol; it supports broadcasting, forexample. This system was implemented on workstations connected to Ethernet. In our experience, 3 users
were actually able to play an ensemble.
11 はじめにのクライアント (RMCP Client) は，ユーザからの演奏の指示 (MIDI メッセージ) を RMCP パケットにのせ，すべてのサーバへ向けてブロードキャストする．
RMCP パケットとは RMCP が通信に用いるパケットのことである．これはクライアントからサーバへ片方向に送信され，サーバからクライアントへの返答はない．一方，RMCP のサーバ (RMCP Server) は，ブロードキャストされた RMCP パケットを集め，それに基づいて電子楽器を実際に制御したり，各ユーザのモニタ画面に表示したりする．ユーザはサーバを通じて他のユーザの演奏状態を知り，合奏することができる．

本研究では，MIDI と LAN (Local Area Network)を融合することにより，LAN に接続可能な様々なコンピュータの支援を受けながら MIDI 楽器を用いた合奏ができる分散協調システムを実現した．現在，LAN に接続可能なコンピュータは多く，これらの汎用の機器を組み合わせて活用することにより，MIDI に対応した専用機器を用意しなくても容易に様々な演奏の支援が得られる．例えば，ISDN などの WAN (Wide AreaNetwork) を経由して本システムの目指す遠隔地間の合奏をしたり，他のユーザの演奏状態を視覚化して合奏を容易にすることができる．さらに，演奏情報に反応して変化する CG (Computer Graphics) を生成して，演奏による CG の制御がおこなえる．
本システムを実現するために，単に MIDI メッセー
ジを LAN 上に流すのではなく，MIDI を拡張した通信
プロトコル RMCP (Remote Music Control Protocol)を設計し，それに基づいて実装をおこなった．RMCP
は，通信をブロードキャストでおこない，複数のユーザによる合奏を支援するために，ユーザ識別子や指揮情報などの項目を含む．

RMCP Client には RMCP MIDI Station ，RMCP
MIDI Receiver ，RMCP Conductor ，RMCP SMF
Player ，Improvision の 5 つがある．RMCP MIDI Station や RMCP MIDI Receiver ，Improvision のいずれかを用いて，ユーザは演奏する．全体の協調をとるための指揮は，RMCP Conductor によりおこなう．コン
ピュータによる自動演奏が必要なときは，RMCP SMF
Player を用いる．

RMCP Server には RMCP Sound Server ，RMCP
Display Server ，RMCP Animation Server ，Improvision Display Server の 4 つがある．RMCP Sound
Server は，RMCP パケットに含まれる MIDI メッセー
ジを直接電子楽器に送って制御する．RMCP Display
Server は各ユーザの演奏状態を画面に鍵盤表示する．それぞれのユーザは，この RMCP Display Server を動作させてお互いの演奏状態を見ることができる．RMCP
Animation Server は，RMCP パケットの内容に応じて変化する CG キャラクタを生成し表示する．Improvision Display Server は，他のユーザが Improvision

RMCP では，演奏情報がネットワーク上のすべての出力装置へ向けて送信 (ブロードキャスト) されるので，一つの出力装置だけでなく，ネットワーク上の多様な出力装置を活用することが可能である．本システ
ムは，演奏用の複数の入力装置 ( クライアント) と様々な支援をおこなう複数の出力装置 (サーバ) で構成される．各サーバは，クライアントによって送信されたすべての演奏情報を受け取り，音や CG の出力など様々な支援を分散して実現する．この利点として，サーバを単に追加するだけで新たな支援を実現できるという拡張性の高さが挙げられる．
本稿では，MIDI 制御のための分散協調システムを実現する RMCP の構成とその実装について述べる．
表 1 に示したようなソフトウェアを開発し，実際に本システムを運用した．その結果，複数のユーザが協調して電子楽器を制御することが可能であり，数人での合奏をおこなえることを確認した．また，演奏によって CG の制御をおこなうこともできた．

で演奏している状態を表示する．

RMCP は遠隔地間の合奏を可能にする．遠隔地間の合奏では，遠隔地にいるユーザの演奏状態 (音や画面表示) をそれぞれのユーザに伝えなければならない．そのために離れたところに別々の電子楽器を用意しておき，それぞれに RMCP Sound Server を接続する (図 1) ．
各ユーザは自分の電子楽器によってすべてのユーザの演奏を聞くことができ，同時に，RMCP Display Serverが表示する他のユーザの演奏状態を見ることもできる．
ただし，遠隔地間を結ぶ通信回線は高速であることが必要である．なお，各ユーザが使うコンピュータが同一の LAN に接続されていないときは，両者の LAN の間でブロードキャストされた RMCP パケットを中継し合うプログラムを動作させておく．

2 RMCPRMCP はサーバ・クライアント・モデルに基づいている．クライアントがサーバに対して処理を要求し，サーバが要求を受けとってその処理を実行するというモデルである．RMCP では，演奏用の入力装置がクライアント，各種出力装置がサーバに対応する．RMCP

以下では表 1 に示した各 RMCP Server ，RMCP
Client について詳しく述べる．RMCP では，これらの RMCP Server と RMCP Client の組み合わせに応2表 1: RMCP の構成

RMCP Server
RMCP Sound Server
RMCP Display Server
RMCP Animation Server
Improvision Display Server
RMCP Client
RMCP MIDI Station
RMCP MIDI Receiver
RMCP Conductor
RMCP SMF Player
Improvision

説明
直接 MIDI 制御をおこなう音の出力装置
すべてのユーザの演奏情報を表示する演奏状態の出力装置
演奏情報に反応して変化する CG を生成する画像の出力装置
他のユーザの演奏情報を表示する Improvision のための出力装置
説明
コンピュータのキーボード・マウスによる演奏用の入力装置
電子楽器の鍵盤などによる演奏用の入力装置
全体の協調をとるための指揮をおこなう入力装置
標準 MIDI ファイル (SMF) を自動演奏する装置
鍵盤演奏ができない人でも演奏できるような即興演奏用の入力装置

Sound Server で制御できる．

Ethernet
演奏の指示

2.2

RMCP Client

演奏状態の表示RMCP Display Server

RMCP Display Server はすべてのユーザの演奏状演奏された音態を表示する．実際の画面には鍵盤部と指揮情報表示部の 2 つが表示される．鍵盤部は MIDI メッセージによる演奏情報を表示する．この表示は 120 鍵の鍵盤のうち演奏されている鍵盤の色を変えておこなう．また，指揮情報表示部は RMCP Conductor などによる指揮情報を表示する．
通常 RMCP Display Server はすべての MIDI Channel の演奏状態を表示するが，ある特定の MIDI Channel だけの演奏状態を表示する機能も持つ．また，それぞれのユーザが演奏中の鍵盤は各ユーザが設定した色 (ユーザ識別子) で表示されるので，ユーザ間の区別が可能である．

RMCP Sound Server

MIDI Instrument

RMCP Display Server

Ethernet
演奏の指示
RMCP Client
RMCP Display Server

演奏状態の表示
演奏された音RMCP Sound Server

MIDI Instrument

RMCP Client

2.3

RMCP Display Server

RMCP Animation Server

RMCP Animation Server は演奏情報に反応して変化する CG を生成する．ユーザの演奏内容に応じて異なる動きをする CG を表示することにより，演奏しながら視覚的に楽しむことができる．現時点の RMCPAnimation Server は，ドラムスの演奏に反応して踊る仮想の CG ダンサーを表示する．鍵盤に割り当てられたドラムスの各音に，CG ダンサーの各動きが対応し

図 1: 遠隔地間の合奏じて，柔軟に機能を変化させることができる．

2.1 RMCP Sound Serverている．

RMCP Sound Server は，RMCP Client から送られてきた RMCP パケットに含まれる MIDI メッセージを電子楽器に送ることにより，直接 MIDI 制御をおこなう．システム内で最低 1 つの RMCP Sound Server が動作していなければならない．システム内で 2 つ以上の RMCP Sound Server を動作させることもでき，その場合は離れたところにある電子楽器を各々の RMCP

2.4

RMCP MIDI Station

RMCP MIDI Station は，ワークステーションから電子楽器を演奏するための RMCP Client である．ユー
ザは各キーが鍵盤に割り当てられたキーボードを押す
か，画面上の鍵盤をマウスでクリックして電子楽器を演

3

2.6

奏する．演奏された鍵盤の色が自分で設定した色（ユーザ識別子に対応する色）に変わり，視覚的に自分の演奏が確認できる．

RMCP Conductor

RMCP Conductor は，合奏をする際に全体の協調をとるための指揮をおこなう RMCP Client である．マ
ウスをクリックしたことがネットワーク上の全 RMCP
Display Server に表示されるので，指揮をとることができる．また，RMCP Conductor もユーザ識別子を設定できるようになっており，RMCP Display Server はRMCP MIDI Station は次のような機能を持っている．
 送信側の MIDI Channel の指定する．
 演奏音色の変更 (Program change) をする．
 ボリュームを変更する．

そのユーザ識別子に対応する色で指揮情報を表示する．
RMCP Conductor がブロードキャストする RMCP パ
ケットは RMCP Sound Server には無視される．

 鍵盤を弾く強さ (Velocity) を指定する．

キーボードやマウスで演奏する場合にはその強さを検出できないので，ここで指定した一定の強さで演奏する．
 120 鍵の鍵盤から演奏するための表示範囲を指定する．
 ダンパーペダルを踏む (Dumper) ．

2.7

RMCP SMF Player

RMCP SMF Player は，標準 MIDI ファイル (SMF)を自動演奏する RMCP Client である．SMF のフォー
マット 0 に対応している．RMCP MIDI Receiver と同様に，指定した MIDI Channel と Note Number を持
つ Note on/o メッセージに合わせて指揮情報を送信

これを操作するには，パネル上のボタンをクリックする方法とキーボードのスペースキーやマウスの右ボタンを押す方法がある．
 指定 MIDI Channel のすべての音を止める (AllNote o )．
なんらかの事情により音が鳴り続けてしまった場
合，この機能を使って指定 MIDI Channel で発音中のすべての音を止める．Note o メッセージをのせた RMCP パケットが失われて音が鳴り続けてしまったときにも使える．

する機能を持っている．これにより，あらかじめ一定テンポの指揮情報を SMF ファイルに記録しておくと，演奏時に全ユーザがその情報を RMCP Display Serverの指揮情報表示部で確認できる．

2.8

Improvision, Improvision Display
ServerImprovision は，鍵盤演奏ができない人でも演奏できるような，即興演奏 (Improvisation) をおこなうための RMCP Client である．マウスの各ボタンを押しながらドラッグすることにより，通常の鍵盤演奏とは全く異なる感覚で演奏できる．例えば，左ボタンを押しながらドラッグすると，その移動に合わせて連続的に変化する音を演奏できる．この音の音程はその移動方向から，音量は移動速度から計算される．同時に，マウスカーソルの移動に合わせて画面上を演奏に対応した色がスクロールする．マウスの移動方向が色に，移動速度がその輝度に対応している．

キーボードと鍵盤の割り当ては，スペースキーの上の 4 列のキーボードを 2 列ずつの組に分け，それぞれの組の上側の列を黒鍵，下側の列を白鍵とした．およそ 2 オクターブ半の範囲が演奏できる．
マウスでの演奏は，左ボタンでは押している間だけ鳴り，中央のボタンでは次にボタンが押されるまで鳴り続けるようにした．右ボタンにはダンパーペダルが割り当てられている．

2.5 RMCP MIDI Receiver

Improvision Display Server は，他のユーザが Improvision で演奏している画面を演奏情報から再構成

RMCP MIDI Receiver は，電子楽器の鍵盤などのMIDI 入力機器を演奏用の入力装置として使うためのRMCP Client である．電子楽器から受信した MIDIメッセージを RMCP パケットとしてブロードキャストする．その際，受信したい複数の MIDI Channel を指定できる．RMCP Conductor の代わりに特定の MIDI
Channel の鍵盤を用いて指揮できるように，指定したMIDI Channel と Note Number を持つ Note on/o

して表示する．これは協調演奏を支援するものではな
いが，これにより他のユーザの演奏音に加えてカラフルな画面表示を楽しむことができる．

3

RMCP の実装

RMCP Server と RMCP Client 間の通信プロトコルとして RMCP を設計し，それに基づいて実装作業をおこなった．RMCP は UDP/IP を下位レイヤーとメッセージに合わせて，指揮情報を送信する機能も持っている．なお，受信した MIDI システムメッセージは無視する．

4

して利用する．そして，信頼性の高い通信回線を使用することを前提として，RMCP レイヤーでは信頼性が確保されない connection-less な通信を提供する．この RMCP レイヤーのパケットを RMCP パケットと呼び，RMCP Client から RMCP Server へ片方向に送信される．

RMCP Animation Server

RMCP Display Server
RMCP MIDI Station
RMCP Conductor
RMCP SMF Player..
.

IRIS 320VGXRMCP パケットについて説明した後，RMCP を実装した環境を述べる．そして RMCP パケットの遅延

Workstations

時間の測定結果を示し，考察する．

Ethernet

SPARC Station 2
NWS-3860

3.1 RMCP パケット
RMCP パケットはヘッダーとそれに続くメッセージ

Synthesizer
T2EX
S750

本体で構成される．ヘッダーにはユーザ識別子，サーバ番号，メッセージの種類，メッセージ長などが含まれている．

Personal Computer
MIDI

PC-9801RA

RMCP Sound Server

ユーザ識別子は RGB それぞれ 2 バイトづつの計 6 バ
イトのカラーコードである．ユーザ固有のカラーコードを用いて画面表示をおこなうことにより，ユーザ間の区別をおこなう．

図 2: RMCP の SALA における実装環境

サーバ番号はサーバを区別するための 1 バイトの識別子である．RMCP Server は，起動時に自分のサーバ番号を設定でき，同じサーバ番号を持つもの同士でグループを作ることができる．RMCP Client は，送信時にどのサーバ番号 (グループ) に対する要求かを指定する．このとき，すべての RMCP Server を指定することもできる．いくつかの演奏グループが同一 LAN
上で RMCP を利用するときに，各グループがそれぞれのサーバ番号を変えて運用すれば，お互いに独立に演奏できる．

されている．

RMCP Sound Server は，Ethernet インタフェー
ス (CentreCOM SIU-98) と MIDI インタフェース(Roland MPU-PC98) を搭載したパーソナルコンピュータ (NEC PC-9801RA51) 上で動作する．RMCP
Sound Server および RMCP MIDI Receiver は，MIDI
インタフェース (Come on Music MA01) を接続した
ワークステーション (Sun SPARC Station 10) 上で動作する．RMCP Animation Server は，グラフィッ
クスワークステーション (SGI IRIS 320VGX) 上で動作する．その他の RMCP Server ，RMCP Client は，各ワークステーション (Sun SPARC Station 2, Sun
SPARC Station 10, Solbourne Series 5/600, SONY
NWS-38601 ) 上で動作する．使用した電子楽器はシンセサイザー (KORG T2EX, YAMAHA DX21) とサンプラー (Roland S750) であり，実際に様々な受信 MIDIChannel を設定して運用をおこなった．
RMCP Animation Server の CG 出力には，Backyard Script を使用した．Backyard Script は，リアルタイム CG アニメーションを容易に作成するためのシステムである．CG オブジェクトの自律的な動きや外主要なメッセージの種類には，SMIDI(Send MIDIraw data) メッセージと CONDUCT(Conductor) メッセージがある．SMIDI メッセージは，メッセージ本体をそのまま MIDI メッセージとして扱うときに使用する．多くの場合，一つの RMCP パケットが一つのMIDI メッセージを伝送する．RMCP Sound Server がこれを受けると，そこに含まれる MIDI メッセージを電子楽器に向けて送出し，その制御をおこなう．通常の演奏情報の通信は，すべて SMIDI メッセージを用いる．一方，CONDUCT メッセージは指揮情報を通信するときに使用する．これは，指揮状態を表す 1 バ
イトのメッセージ本体を持つ．

部入力に対応した動きなどを専用スクリプト形式で記述する．

3.2 実装環境

RMCP SMF Player は現在試作段階であり，リアルタイム性を保証する OS 上には実装していないため，本システムを開発した SALA (Science Art Laboratory) における実装環境を図 2 に示す．RMCP は，既に SALA と早稲田大学村岡研究室の二つの環境に実装

しばしばテンポの揺らぎが起きる．
1 一部の

5

RMCP Client を除く．

3.3 実験結果の LAN とコンピュータの負荷は小さかった．
この結果から，LAN などの負荷が小さい状態では，ある程度リアルタイムに近い状態で演奏できることがわかる．実際に運用した経験によると，音色などによっても差はあるがこの程度の遅れならば演奏に支障がなかった．また，RMCP Animation Server を用いて CGを表示させたときにも，遅延をほとんど意識することなく演奏に反応した CG の変化を得ることができた．

RMCP パケットが LAN 上を往復する遅延時間を測定する実験をおこなった．図 3 のような機器を用いて，RMCP Sound Server と RMCP MIDI Receiver ，RMCP Relay Program により測定した．RMCP Relay
Program は，サーバ番号 (SNUM) の異なるグループ間で RMCP パケットを片方向に中継するプログラムである．ある SNUM の RMCP パケットを受信し，それを別の SNUM の RMCP パケットとして再び LAN

3.4上へ送信する．

実装に当たっては TCP ではなく UDP を下位レイヤーとして RMCP を設計した．これは Ethernet のブロードキャスト機能を利用するためである．UDP はconnection-oriented でなく connection-less であるので，クライアントの起動時にコネクションの確立等の手続きを省け，RMCP を簡略化できる．しかし UDPは信頼性を確保しないので，パケットの到着が保証されない，到着順が不定である，といった問題がある．

SNUM1

RMCP MIDI Receiver

MIDI OUT

Synthesizer

RMCP Relay Program
RMCP Sound Server

MIDI IN

SNUM2

Ethernet

MIDI

DX21

SPARC Station 10

考察

Solbourne Series 5/600

図 3: 遅延時間の測定
実験は，人間がシンセサイザーを弾いたときに鳴る音と，その演奏情報が LAN を経由して戻ってきたときに鳴る音との時間間隔を音響的に測定しておこなった．演奏情報の流れは以下のようになる．
1. シンセサイザーは，人間が演奏した鍵盤の音を鳴らすとともに，その MIDI メッセージを MIDIOUT から送信する．
2. RMCP MIDI Receiver はこの MIDI メッセージを受信し，その内容を SNUM1 を指定した RMCPパケットとして LAN 上へ送信する．
3. RMCP Relay Program はこの SNUM1 の RMCP
パケットを受信し，SNUM2 を指定した RMCP パケットとして LAN 上へ送信する．
4. RMCP Sound Server はこの SNUM2 の RMCP
パケットを受信し，その内容を MIDI メッセージとしてシンセサイザーに送信する．
5. シンセサイザーは，MIDI IN からこの MIDI メッセージを受信して音を鳴らす．
シンセサイザーの出力音の音響波形から 1. と 5. の両者の音の発音開始時刻の間隔を測定し，遅延時間とした．
この遅延時間は，RMCP パケットが Ethernet 上を往復した遅延時間の他に，RMCP Sound Server ，RMCP
MIDI Receiver ，RMCP Relay Program による処理
時間，シンセサイザー内部での発音までの処理時間，MIDI ケーブル上の往復の伝達時間も含んでいる．
以上のようにして遅延時間を 60 回測定した結果，平
均値 22.98ms ，標準偏差 8.88ms ，最小値 10.70ms ，最大値 38.05ms となった．なお，シンセサイザーの音色にはアタックの速い減衰音を用い，およそ 500ms 前後の間隔で人間が一つの鍵盤を弾いて実験した．測定時

今回の設計ではその様な信頼性の確保は一切おこなわなず，またリアルタイム性も確保していない．この理由を以下に示す．

1. 今回実装した環境で運用するときには，ネットワークの状態が良好なためにこれらの問題が生ずる可能性が極めて低い．
本システムを運用した経験によると，実際にパケットロスなどは認められていない．パケットの到着順の入れ換えも，単一セグメントであれば通常は起こらない．また遅延時間の測定実験の結果から，ネットワークとコンピュータの負荷が小さい状態
では，リアルタイム性を確保していなくても演奏可能なことがわかる．
2. これらを確保した下位レイヤーが将来普及することが予想される．
動画や音声をリアルタイムにネットワークで扱う際にもこれらの確保が必要であり，将来マルチメディア・ネットワークが実用化するときには，リアルタイム性と信頼性を確保した高速な下位レイヤーが提供されるであろう．現在も，これに関連してリアルタイム OS ，マルチメディア通信プロ
トコル，ATM-LAN ，B-ISDN などの研究・開発がおこなわれている．現在は，実装の容易さからUDP を下位レイヤーとして利用しているが，将来的にはこのような下位レイヤーを用いて実装するのが望ましい．
3. 今回の実装は実験システムとしての実装であり，実用的な運用を目指すものではない．
実装した環境では，信頼性を確保しようとすると6

レスポンスが遅くなってしまう．また，RMCP レイヤーだけでリアルタイム性を確保するのは困難である．そのため，今回の実装はこれらを確保せずにおこなった．

演奏することにより，音と CG を介した CG キャラクタとのインタラクションを実現できる．
RMCP Animation Serverinteraction

4 システムの運用例

ALANA

本システムの代表的な運用例を述べる．表 1 に示したような RMCP Server と RMCP Client を組み合わせることで，複数のユーザによる合奏や CG キャラクタとのインタラクション，音と CG による遠隔地間のインタラクション [6] ，鍵盤を使わない即興演奏などをおこなうことができる．ただし，の遠隔地間のインタラクションだけは，設備の都合によりまだ運用していない．

RMCP Sound Server

RMCP MIDI Station

図 5: CG キャラクタとのインタラクション

4.3

4.3

音と CG による遠隔地間のインタラクション

音と CG による遠隔地間のインタラクションをおこなうためのシステム構成例を図 6 に示す．ユーザ Aとユーザ B のもとに同じ入出力装置を用意しておく．
RMCP Animation Server がユーザ A とユーザ B の両者の CG キャラクタを表示することにより，図 5 の音と CG を遠隔地間で共有する．CG キャラクタを各ユーザの仮想のモデルと見立てて，お互いに相手の CGキャラクタを見ながら演奏することで，合奏を含んだ遠隔地のユーザとのインタラクションを実現できる．

4.1 複数のユーザによる合奏
複数のユーザが合奏するためのシステム構成例を
図 4 に示す．各ユーザは，自分のワークステーション
で RMCP Display Server を実行し，他のユーザの演奏状態や指揮情報を見ながら演奏する．原理上はネッ
トワークの伝送能力まで何人でも同時に演奏できるので，高速なネットワークを用いれば大規模な合奏も実現可能である．また，RMCP SMF Player による伴奏に合わせて合奏してもよい．この場合，RMCP SMF
Player の演奏も RMCP Display Server で視覚的に確認できる．

RMCP Animation Server

A

B

LANA
Ethernet
RMCP MIDI Station

RMCP Sound Server

RMCP MIDI Station

RMCP Display Server
WAN

RMCP Sound ServerLAN

RMCP MIDI StationA

B
B

RMCP Display Server
RMCP MIDI ReceiverRMCP Sound Server
RMCP Display Server

RMCP MIDI Station

RMCP Conductor

図 6: 音と CG による遠隔地間のインタラクション

RMCP Display Server

これは単に視覚的に楽しむことができる利点を持つだけでなく，協調作業を支援するためにも有効である．
現在，RMCP Animation Server が表示できるのは CGダンサーだけだが，お互いの演奏音に対応したミュー
ジシャンの CG を表示して遠隔地間で共有すれば，音だけでなく相手の動きも見ることができ，より遠隔地間で合奏しやすくなる．この際，実際には音が鳴らないような Note on メッセージに CG ミュージシャンの動きを割り当てておく．これを利用して音以外の身体

図 4: 複数のユーザによる合奏

4.2 CG キャラクタとのインタラクション
CG キャラクタとのインタラクションをおこなうためのシステム構成例を図 5 に示す．RMCP Animation
Server の表示する CG キャラクタがユーザの演奏に反応して変化し，またその CG に影響を受けてユーザが7

機能を持ったサーバが様々な処理を分散しておこなう．
これにより，CG の出力などの様々なコンピュータによる演奏の支援が受けられるだけでなく，新しい機能の拡張・開発も容易になった．なお，MIDI を中継するために WAN(ISDN) を用いた遠隔地間の合奏の実施例も報告されている [2] ．
今後の研究としては，RMCP 及び各ソフトウェアの機能のさらなる拡充を考えている．また，RMCP の各種応用も検討している．既に Virtual Reality の実現を目指すシステムに効果音を提供するために応用したことがある．現在は設備の都合により遠隔地間のインタラクションの実験をまだおこなっていないが，今後条件が整い次第おこなっていきたい．

的合い図も共有すれば，より緊密な協調を必要とする合奏をおこなうのに有効である．

4.4 鍵盤を使わない即興演奏
鍵盤演奏ができない人でも演奏できるような入力装置である Improvision を用いて，即興演奏による合奏をおこなうことができる．この場合，図 4 においてRMCP MIDI Station などの RMCP Client の代わりに Improvision を用い，RMCP Display Server の代わりに Improvision Display Server を用いる．ただし，現時点の Improvision はとりあえずマウスで演奏できる程度であり，即興演奏のための演奏能力は十分なものではないので，今後改良の必要がある．

謝辞

5 おわりに本稿に対して有益な助言を下さった東京大学の千葉 滋 氏に深く感謝いたします．また Sun の RS232C
端子から直接 MIDI 制御をする方法や，RMCP SMF
Player を実装する際の手がかりを教えていただいた
NTT の鷲坂 光一 氏に感謝いたします．なお，本研究は SALA 2 と早稲田大学村岡研究室においておこないました．協力していただいた SALA Crew/Member の方々に感謝いたします．

本稿では，MIDI 制御のための分散協調システムを実現する RMCP の構成とその実装について述べた．本システムでは，MIDI と LAN を融合することにより，LAN に接続可能な様々なコンピュータを組み合わせて多様な演奏の支援や特殊効果を得ることができた．

RMCP は以下の二つの特徴を持つ．一つ目は，演奏情報を全サーバへ向けてブロードキャストすることにより，複数の異なる機能を持ったサーバが音や CG の出力などの様々な処理を分散して実現できる点である．
サーバを単に追加するだけで，従来実現されていた処理に影響を与えずに新たな処理をおこなえるため，拡張性が高い．二つ目は，複数のユーザによる合奏を支援するために，ユーザ識別子やサーバ番号を指定する機能，指揮情報を送る機能を持つ点である．ユーザ識別子により演奏状態の表示においてユーザ間の区別ができ，サーバ番号によりサーバをグループ分けして演奏することが可能になった．また指揮情報を用いて全体の協調をとるための指揮がおこなえるようになった．

参考文献

MIDI 1.0[1] MIDI 規格協議会 規格検討委員会 :規格
日本語版 , MIDI 規格協議会 (1989).
[2] 高山 明, 千葉 雅之, 三木 恵造, 首藤 一彦 : 遠隔同時演奏システム , 音楽音響研, MA89-10 (1989).
[3] Tatsuya Aoyagi and Keiji Hirata :(Document Ver.4.1)

Music Server
System | Distributed Music System on Local
Area Network | , Journal of Information Pro-

本研究は [5] に対し，1) プロトコルの改訂 2) RMCP
MIDI Station のキーボード入力対応 3) RMCP Animation Server ，RMCP MIDI Receiver ，RMCP SMF
Player ，Improvision ，Improvision Display Server のcessing, Vol.15, No.1, pp.1-9 (1992).
[4] 森 光彦 : 音楽情報処理システムの構築とネットワーク技術の活用 , 音楽音響研, MA92-3 (1992).
[5] 後藤 真孝 :制御のための分散協調システム, jus 設立 10 周年記念 UNIX 国際シンポジウム 論文集, pp.161-171 (1992).
[6] 後藤 真孝 : 分散協調インタラクティブシステム
音とによる遠隔地間のインタラクション,
NICOGRAPH'93 CG 教育シンポジウムプロシー
ディングス, pp.44-49 (1993).

MIDI

実装 などの拡張をおこなったものである．
本研究に関連する報告としては，MIDI と LAN を融合し，楽曲の自動演奏のためにタイミング管理の機能を備えたシステムが過去に開発されている [3] [4] ．これらもサーバ・クライアント・モデルで実現されているが，クライアントが一つのサーバと一対一に通信しているために，すべての機能を一つのサーバで実現しなければならない．それに対して RMCP は，演奏情報をブロードキャストすることにより，複数の異なるCG

2 ソニー株式会社の外部開放型研究施設

8||