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

1997/07/20

村岡 洋一

ライブＭＩＤＩ中継

InternetB

ネットワークセッション
A

根山 亮

菊地 淑晃

遠隔地間の合奏目指す世界

多様な計算機による合奏支援（演奏関連情報のＣＧによる可視化など）

後藤 真孝

早稲田大学 理工学部

時間管理機能の拡張と遅延を考慮した遠隔地間の合奏

人間と複数の計算機間の即興演奏

音楽情報処理のためのネットワークプロトコル

No.2

ＣＧキャラクタとのインタラクション
No.1

RMCP:
Remote Media Control Protocol

１．はじめに従来研究／関連プロトコル
ＭＩＤＩに基づいたネットワークプロトコル

シンボル化された音楽情報（ＭＩＤＩ等）を通信

・ コネクション型

・ ネットワークを活用した・ 分散したプロセス間での情報共有

新たな音楽アプリケーションを実現

遅延小さく抑えることは十分考慮されていない
・ 音楽情報処理システムを分散実装

負荷分散

ＭＩＤＩ

異なる計算機に接続されている多様な機器を同時に活用できる・ ＭＩＤＩ機器間での情報共有

全対全通信を実現するのは効率が悪い
・ 低いバンド幅／局所的な通信

ＭＩＤＩに基づかない演奏情報の通信プロトコル
・ 多くは特殊な機器の使用を前提

Network

No.4

No.3

ネットワークを経由した効率の良い音楽情報の共有が重要

２．ＲＭＣＰの概要

ＲＭＣＰ (Remote Media Control Protocol)
音楽用通信プロトコル

ネットワークを介した音楽情報の共有

・ 計算機ネットワークを介してＲＭＣＰパケット

シンボル化された音楽情報を共有
・ 計算機ネットワークとＭＩＤＩを融合

・ 様々な音楽情報の伝送単位
・ 分散した計算機上の複数のプロセスによって共有

Ethernet

MIDI

ＭＩＤＩメッセージ
note onnote off

・ コネクションレス型

LAN・ 複数プロセス間での情報共有

ブロードキャストを利用して通信再送のオーバヘッドがなく効率が良い
・ 時間管理機能がない

パケットは受信直後に処理
・ ＷＡＮでの運用が実用上困難

No.5

本研究で解決マルチサーバ・マルチクライアント・モデル
ＲＭＣＰサーバ

ＲＭＣＰサーバ

ＲＭＣＰクライアント

No.6

十分高速で信頼性の高い通信回線が前提

設計指針
ＲＭＣＰサーバ・クライアントの設計指針

ＲＭＣＰサーバ

実現したい機能を再利用が可能なようにできるだけ小さなプロセスに分けて実装

ＲＭＣＰクライアント

ＲＭＣＰクライアント
・ 容易な実装・ ＲＭＣＰパケットを生成しすべてのサーバへ向けてブロードキャスト

各サーバ・クライアントはそれぞれに特化した処理に専念

ＭＩＤＩ機器から得たＭＩＤＩメッセージ
ユーザのインタラクション内容

・ 高い拡張性・ コネクションレス型の片方向の送信

サーバを単に追加するだけで新たな機能を実現

ＲＭＣＰサーバ

・ 効果的な負荷分散

・ ブロードキャストされたパケットを受信し各サーバ・クライアントを異なる計算機上に割り当てることが容易

様々な方法で利用
ＭＩＤＩ機器を制御して音を鳴らす
音楽情報を視覚化
音楽に反応するＣＧを生成

No.8

すべてのサーバが共有して同時に活用

No.7

・ 通信量を増やすことなく多様なサーバを追加可能

アプ

リケ

基本的なサーバ・クライアント

ネットワークセッション

ＲＭＣＰクライアント

複数の演奏者がＬＡＮを介して合奏ーション

１・ 他の演奏者の音を聞く

RMCP MIDI Receiver

ＭＩＤＩ機器から受信

RMCP MIDI Station

計算機のキーボードとマウスで演奏

RMCP SMF Player

標準ＭＩＤＩファイルを再生・ 視覚化された他の演奏者の演奏状態を見る

RMCP Display Server

ＲＭＣＰサーバ
RMCP Sound Server

ＭＩＤＩ機器へ送信

RMCP Display Server

画面上の鍵盤の色を変えて視覚化

RMCP MIDI Station

音楽に反応したリアルタイムＣＧ

RMCP Animation Server

SMF

A

RMCP SMF Player

RMCP MIDI Station

MIDI

RMCP Display ServerLAN
RMCP SMF Player

RMCP MIDI Receiver

Ethernet

B
RMCP Animation Server

RMCP Sound Server
RMCP Display Server

RMCP MIDI Station

No.10

RMCP Sound Server

No.9

MIDIアプリケ

Improvisionーシ

３．ＲＭＣＰの実装

ョン２

即興演奏用インタフェース

ＲＭＣＰの通信・ 鍵盤演奏ができない人でもマウスだけで演奏

コネクションレス型

・ 無調性でリズムのない音楽を対象

・ 下位レイヤー：

ＵＤＰ／ＩＰImprovision Display Server・ ブロードキャスト通信・ 信頼性を確保しないA

Improvisio
nBC

十分高速で信頼性の高いネットワークで運用
情報共有する際の遅延時間を小さく抑える

ImprovisionA
B
Improvision

Improvision

LANnovisio
Impr

Improvision

No.12

RMCP Sound Server

No.11

Cアプ

リケ

VirJa Session

ＲＭＣＰパケット
2 bytes (16 bits)

ーシ

ョン

３

仮想ジャズセッションシステム

RMCP magic number flag
server numberheader length
type of message
message lengthclient/user identification (R)client/user identification (G)client/user identification (B)type of time stamp
reserved
time stamp (sec)time stamp (msec)

RMCP Header

optional・ 全演奏者間のマルチモーダルインタラクション
演奏音以外に視覚情報（ジェスチャー）も交換

Player 1: Pianist
Human
Computer

RMCP Message Body

主要なメッセージの種類

ビート時刻の伝送（テンポ同期）

alPlayer 2: Bassist

Re

Human
Computer・ コード情報

コード名・ボイシングの伝送

Player 3: Drummerera
amCamera・ ビート情報C
al

ＭＩＤＩメッセージの伝送

Re

Virtual Jazz Trio・ ＭＩＤＩ情報

Human
Computer

Virtual Camera

F7

Cm7

・ アニメーション情報

ＣＧの生成・制御用

Real-time CG

Real-time CG

アプ

リケーシ

VirJa Session の実装

No.14

ジェスチャー認識結果の伝送
No.13

・ ジェスチャー情報

Virtual Camera

時間管理

ョン

３

タイムスタンプを用いた時間管理機能
・ サーバがクライアントの指定する時刻にパケット処理
Player 1: Pianist
Human・ 二種類のパケット

Computer

タイムスタンプを付与されたパケットRMCP Sound Server

RMCP MIDI Receiver

タイムスタンプの時刻前に到着したパケット
バッファリングして時刻通りに処理

Pianist

時間順を保証タイムスタンプなしパケット

Ethernet
Player 3: Drummer

Human

Human

ComputerComputer

RMCP Player Server

RMCP Player Server

RMCP Beat Provider

RMCP Beat Provider

RMCP Animation Server

Bassist

サーバ到着直後にその場で処理

note onnote offnote on

5000

5100

5200

数秒前にブロードキャスト

RMCP Animation Server

RMCP SMF Playert

Drummer

Virtual Jazz Session

RMCP Sound Server

演奏音はネットワークの遅延揺らぎの影響を受けない
No.15

Player 2: Bassist

RMCP Animation Server

予備動作をおこなってから発音タイミングで演奏

No.16

RMCP Camera Analyzer

時刻同期サーバ

時刻同期サーバ

計算機間の時刻同期ＲＭＣＰサーバのタイムスタンプ処理

・ 同じタイムスタンプのパケット

異なる計算機上のサーバによって同一時刻に処理

時刻同期サーバ

Offset Table
133.9.68.56 0
133.9.68.57 -50
133.9.68.58 +20

IP Address:
133.9.68.56

1200

RMCP Time Synchronization Server

Host A・ あたかも異なる計算機の内部時計が同期してOffset Table
133.9.68.56 +50
133.9.68.57 0
133.9.68.58 +70

いるかのようにサーバがタイムスタンプを処理可能
・ サーバ開発者は時刻同期を意識する必要がない
・ オフセットテーブル

IP Address:
133.9.68.58

1250

送信時刻をつけて定期的にブロードキャスト

1180

Host B

Host A

Host C

1050

Offset Table
133.9.68.56 0
133.9.68.57 -50
133.9.68.58 +20980

ts
タイムスタンプがts のパケット

1000

Offset Table
133.9.68.56 +50
133.9.68.57 0
133.9.68.58 +70

Offset Table
133.9.68.56 -20
133.9.68.57 -70
133.9.68.58 0

Host C

1050

980

No.18

IP Address:
133.9.68.58

No.17

IP Address:
133.9.68.57

Host B

Offset Table
133.9.68.56 -20
133.9.68.57 -70
133.9.68.58 0-20

IP Address:
133.9.68.57

計算機の内部時計の時刻差の表

IP Address:
133.9.68.56+501000

信頼性を確保したパケット中継
ＲＭＣＰをインターネットなどのＷＡＮ上で運用
・ 二つのＬＡＮ間で双方向にパケットを中継（共有）

ＲＭＣＰをインターネットでも使いたい！

コネクション型
・ 下位レイヤー：

ＴＣＰ／ＩＰ・ 信頼性を確保した通信を提供

ＷＡＮはそもそも遅延時間が大きい

しかし．．．

RMCP Gateway
・ 一度中継したパケットは中継禁止フラグをセット

現状のインターネットは・ サーバ・クライアントは二つのＬＡＮがあたかも遅い同一ネットワークであるかのように通信できる

パケットロス発生RMCP client

RMCP Gateway

Host B

Host A

Host E

Host DRMCP Gateway
LAN

No.20

No.19

RMCP server

コネクション

パケットの到着順が不定

WAN

LANアプリケ

信頼性を確保したパケット中継

RemoteGIG

遠隔地間の通信遅延を考慮した遠隔地間の合奏・ ネットワークの遅延時間は不可避

ーシ

ョン

４

・ 遅延の大きいＷＡＮを使ったリアルタイム演奏は困難
・ 一箇所で合奏するモデルを遠隔地間に持ち込めない

光速でさえ地球半周に約６６ｍｓ

B

RemoteGIG

変動が非常に小さい一定の遅延時間を提供

A・ インターネット等で不可避な遅延を積極的に利用した・ 中継用の遅延時間Ｄ

新たな形態の遠隔地間の合奏モデル

ネットワークの遅延時間よりも十分大きく設定

・ 同一のコード進行の繰り返しをテンポ一定で即興演奏

受信側でバッファリングすることでネットワークに起因する変動の影響を回避（ガイドドラム等が必要）
一周期

LAN

Host A

1050

1300-50

1000+2000+500-20
Host E

Host D3780

RMCP server

3800

RMCP Gateway

1500

Player A A-1

LANA-2

A-3

B-1

B-2

A-1

A-2

B-2

B-3

Site B
Player B B-1

・ お互いの演奏を一周期分だけ遅れて聞いてセッション

No.21

1480

４．実験結果・ 無調性音楽等にも適用できる

仮想のダンサー ‘‘Cindy’’

Ｃ言語

Ｊａｖａ言語・ ＯＳ：

IRIX-5.3

IRIX-6.2

Solaris-2.5

HP-UX

Linux-2.0

Windows-95

アプリケーション

５

音楽に踊らされるＣＧダンサーによるインタラクティブパフォーマンス

実装言語／ＯＳ （ＲＭＣＰプログラミングライブラリ）
・ 言語：

時間

No.22

1350

一周期

Site A+2000 中継用の遅延時間 D
WAN+/- 500 内部時計の時刻差の補正

Host BRMCP Gateway

コネクションRMCP client

一周期

・ 聴覚と視覚によるマルチモーダルインタラクション
SunOS-4.1.3

・ 二人の演奏者にとっての新たな表現手段

Windows-NT

遅延時間の測定
二人の演奏にリアルタイムに振付けされ踊らされる・ クライアントからサーバへ到着するまでの遅延時間

note onclient

10Mbps Ethernet

一万回伝送

LANCG DancerSound

serverInteractive Performance

SGI Indigo2 (IRIX-5.3)

平均値

0.30 ms

最小値 0.28 ms

標準偏差 0.06 ms

最大値 1.24 ms

SoundCGCGSound・ 速度的にＭＩＤＩに遜色なく情報伝送Sound・ パケットロス・到着順に入れ換え等の問題は発生せず

Player A

Player B

ドラムスを即興演奏

メロディー・コード楽器を即興演奏

拡張性も高くなることを確認

No.23

・ 必要な機能が再利用できて実装が容易になり

No.24

様々な分散音楽情報処理システムを実現

仮想のダンサーの実装

アプリケーシ

５．おわりに

ョン

５

まとめMIDI Instrument

ネットワークプロトコルＲＭＣＰCG Dancer

ネットワーク経由で音楽情報を共有

MIDI

RMCP Sound Server

RMCP Animation Server

時間管理機能RMCP Music Analyzer

RMCP MIDI Receiver

タイムスタンプ／時刻同期サーバ

効率が良く実用的な情報共有

RMCP MIDI Receiver

ＬＡＮ： コネクションレス型 ブロードキャスト

Player B
PianoGuitar

信頼性を確保遅延を考慮した遠隔地間の合奏
複数のＯＳ上に実装され様々な目的で運用

ＷＷＷ上で本日より公開！
http://www.info.waseda.ac.jp/
muraoka/members/goto/RMCP/No.26

Player A
Drums

ＷＡＮ： コネクション型

MIDI

No.25

MIDI