1998 年度ソフトウエア学科卒業論文発表会予稿集 MIDI Server Client System 梶浦文夫研究室:深田哲生 (E01C070) 1. はじめに 最近 に な っ て , イ ン ター ネ ッ ト 経 由 の ラ イ ブ MIDI 中継や,遠隔地間での人と人,人とコンピュ ータの合奏・即興演奏などが行われ,MIDI 情報 などの符号化された音楽情報の共有・通信が重 要視されている. 本稿では始めに,MIDI についての概説を述べ る. 次 に 私が 作 成 し た , イ ン タ ー ネ ット 経 由 で MIDI 通 信 を す る た め の 「 MIDI Server Client System」について述べる.このシステムでは複数 の PC を用い,MIDI 機器だけでは難しい遠距離 間の MIDI 通信が可能である. 「チャンネル・メッセージ」と,MIDI システム全体を 制御する「システム・メッセージ」とに大別される. チャンネル・メッセージでは最大16パートをコ ントロールするために「MIDI チャンネル」という概 念を用いる.更にチャンネル・メッセージは,ノート (音符)情報などの「ボイス・メッセージ」と,その受 信状態を設定する「モード・メッセージ」とに区別 される. 2.5 MIDI 通信 送信側は動作を MIDI メッセージとして送信し, 受信側はメッセージの種類に応じて様々な動作 を行う.(図 1) 2. MIDIの MIDIの概説 2.1 MIDI MIDI(Musical Instrument Digital Interface)とは, 楽器同士を接続し,その音楽情報をディジタル信 号によって伝達するためのインターフェイスを意 味する.また,演奏情報を他の楽器に伝えるため の,ハードウェア及びソフトウェアの標準フォーマ ットである. 2.2 MIDI 信号 MIDI 機器(楽器)間では MIDI 信号を用いて通 信を行う.MIDI 信号は 8bit で構成されるディジタ ル信号 で,こ れを 複数個 組み合 わせて1 つの MIDI メッセージを形成する. 2.3 MIDI メッセージ MIDI 規格では個々の演奏動作を MIDI メッセ ージとして定義している.MIDI 機器間の通信は MIDI メッセージを 1 つの単位として行う. MIDI メ ッセージには以下のようなものがある. • 鍵盤を押す = ノートオン • 鍵盤を離す = ノートオフ • 音色を変える = プログラムチェンジ 2.4 MIDI メッセージの メッセージの種類 様々な楽器やその動作に対応するため,多く の MIDI メッセージが定義されている. MIDI メッセージは,チャンネル毎の制御をする 図1: MIDI メッセージの送受信 2.6 MIDI チャンネル MIDI チャンネルは,チャンネル・メッセージが 持つ属性である.MIDI メッセージにチャンネルを 付けて送信し,受信したいチャンネルのメッセー ジだけを受け取ることができる. MIDI は MIDI チャンネルを持つことで,1本の MIDI ケーブルに接続された複数の各 MIDI 楽器 に,別々のパートを演奏させることができる. MIDI チャンネルは 4bit で表現されるので,最 大 16 台の MIDI 楽器をコントロールすることができ る. 3. 遠距離間での 遠距離間での MIDI 通信 MIDI 信号はディジタル信号であるため,オー ディオ信号のような音質の劣化という問題はなく, ノイズにも比較的強いといわれている.しかし,ノ イズが乗り,信号が変わると MIDI 機器の誤動作 の原因となる.MIDI ケーブルが長くなれば,その 分ノイズも乗りやすくなる.よって MIDI 規格では, MIDI ケーブルの長さを 15 メートル以内としている. MIDI の伝達距離を伸ばしたい場合には,光ファ イバを利用する方法もあるが,個人レベルでそれ を行うのは難しい. 1998 年度ソフトウエア学科卒業論文発表会予稿集 そこで,2 台以上の PC を使用し,LAN を経由 することで遠距離間の MIDI 通信をおこなった. 4. MIDI Server Client System 4.1 システムの システムの概要 入力用の MIDI 機器を MIDI クライアントに接続 し,出力用の MIDI 機器を MIDI サーバに接続す る.クライアントは,入力用の MIDI 機器から受け 取った MIDI メッセージを,LAN を通してサーバに 送信する.サーバは,クライアントから受け取った MIDI メッセージを,出力用の MIDI 機器に送信す る(図 4). サーバ・クライアント間では,リアルタイム性を優 先させるために UDP を用いている. クライアントは複数が存在でき,合奏が可能で ある.ただし,同時に出力できる音の数は出力用 の MIDI 機器の性能に依存する. 遅延は大きい.実験は学内のみで行ったので体 感できるほどの遅延はなかった.遅延が十分に小 さい場合は,UDP よりも信頼性のある TCP を利 用する方が良いだろう. また,PC の既存のアプリケーション・ソフトウェ アは,このシステムを利用できない.この問題は, クライアントのプログラムを「仮想 MIDI デバイスド ライバ」として作成することで解決できる.つまり, シーケンス・ソフトウェアや SMF(Standard Midi File)再生ソフトウェアの MIDI メッセージの出力先 を,その仮想 MIDI デバイスに設定する.すると, そ れ ら はネ ットワークを 全 く意識 するこ とな く, MIDI サーバへ MIDI メッセージを送ることができる (図 6). 図 6: 仮想 MIDI デバイス経由での MIDI メッセージの送信 5. おわりに 図 4: MIDI Server Client System 4.2 システムの システムの実装 実験では,クライアント側に MIDI キーボード (Roland JV-35)と,MIDI 楽器の不足を補うため, PC 上に「仮想 MIDI キーボード」(図 5)を作成し て使用した.サーバ側には MIDI 音源(Roland SC-55)を使用した. 仮想 MIDI キーボードは,マウスのクリック,又 は PC のキーボードを押さえることで演奏できる. また,サーバ,クライアント,仮想 MIDI キーボ ードのプログラムは Microsoft Visual C++ 5.0 で作 成した. 図 5: 仮想 MIDI キーボード 4.3 システムの システムの問題点と 問題点と課題 多人数で使用するネットワークを使用するため, 必ず遅延が起こる.回線が細く,利用が多いほど 今回は技術的な問題から,仮想 MIDI デバイス ドライバを作成するには至らなかった.これが実 現すれば,例えば,処理の重い音楽アプリケーシ ョンを分散して実装し,個々のコンピュータの負 荷を軽減するといったことができる.また,他の利 用方法も考えられるだろう. 参考文献 [1] 後藤 真孝,橋本 祐司(1993).MIDI 制御の ための分散協調システム – 遠隔地間の合 奏を目指して –. 情報処理学会 音楽情報 科 学 研 究 会 研 究 報 告 97-MUS-4-1 , Vol.93,No.109. [2] 後藤 真孝,根山 亮,菊地 淑晃,村岡 洋一 (1997) . RMCP: Remote Media Control Protocol – 時間管理機能の拡張と遅延を考 慮した遠隔地間の合奏 –, 情報処理学会 音楽情報科学研究会 研究報告 97-MUS21-3, Vol.97, No.67. [3] 女鹿 寛子(1995).マルチメディア操縦法 第 6章-2 MIDI 規格とSMFファイルについて. CQ 出版社. [4] Richard J. Simon,Tony Davis,John Eaton,ス リ ー エ ー シ ス テ ム ズ 訳 (1997) . Windows95 API バイブル3 ODBC,マルチメディア編.翔 泳社.
© Copyright 2025 Paperzz