平野砂峰旅*1 (shirano@nn.iij4u.or.jp) 北岡正敏*1 一ノ瀬響*2
*1)神奈川大学 工学部 2*)作曲家
a)HyperMIDI
DirectorでMIDIを扱うためのXCMD。もともとHyperCard用のXCMDとして作られたものであるが、Directorでも使用可能。(筆者はバージョン4.0,バージョン5.0でチエック)HyperMIDIには、シエアウエア[1]のものと製品版[2]のものがある。シエアウエアのものが、MIDIに使用できるポートが固定されているといった制限やサポートが受けられないといった欠点はあるが、実用的な機能としては、充分なものを持っている。このXCMDを使うことにより、DirectorのLingoというプログラム言語によってMIDIの入出力を制御できる。
b)MIDXTRA[3]
YAMAHAのソフトシンセであるMidPlugをDirectorでコントロールするためのxtra。MF形式のデータをDirectorで読み込み、midplugを利用して演奏させることが可能である。さらに、midioutの機能やソフトシンセの制御をLingoで記述する機能も備えている。MIDXTRAは、7万円で販売されており個人での利用には高価である。しかし、90日間限定の試用版MIDXTRAがWWW上で公開されている。
c)Serial
Director本体に含まれているXobjectで、シリアル端子を介してのデータの入出力を可能とする。これは、RS232Cの入出力を持つAV機器や各種センサーをDirectorと組み合わせる場合に必要となる。

この作品は、作曲家の一ノ瀬氏と共同制作したWWWのshockwaveを利用した、コンテンツ。midxtraを使いmidplugのソフトシンセにより音を出している。Fig.2にこの作品の初期画面と共にその機能を示す。BlockMessageのメッセージ部分は、縦軸が音の高さ横軸が時間を表わした、縦10× 横16のブロックからなっている。ストップスイッチをクリックすると音の再生を停止して、編集モードに入る。この状態のときに、メッセージ部分をマウスでクリックすることによって文字を(文字に限るわけではなく絵でもかまわない)描くと、その縦軸の位置にあわせた高さで発音する。そしてプレイスイッチをクリックすると描かれたBlockMessageにあわせて演奏されていく。ただしこの演奏は、転調したり、音の再生の順序を時間軸上でシャッフルしたりして自動的に変化していき、しばらくすると元の状態に戻り再び変化を繰り返す。また、右下隅の4個の菱形は、再生する場合の楽器音を切り替える。
a)Directorの時間管理について。
Directorの時間管理は、通常1秒間に何コマ再生するかを設定する形で行われる。しかし、コンピュータの能力には限りがあるので、非常にデータ量の多い画像を動かしたりする部分になると、設定値より遅くなることがある。つまりこの設定値は、「この設定値で実行するように努力します」という程度に考えておかなければならない。つまり、この設定値を信じて画面が切り替わる毎に音を出そうとする場合は、十分な注意が必要だということである。またLingoの中では、1/60秒(約16.6ミリ秒)単位での制御しかできない。これも、音楽をLingoによって直接演奏させようとするには、時間分解能が足りない。
b)MIDEXTRA及びソフトシンセについて。
MIDEXTRAの主な目的は、Director上からMidPlugによるソフトシンセを用いたSMFの演奏の制御のようである。つまりSMF(StandardMIDI
File)の再生パネル(たとえば、テンポや各演奏パートのON/OFF、ボリュームの調整)がDirector上で実現できる。SMFを演奏する場合MIDXTRAを利用すれば、a)で上げた1/60秒といった時間制御とは切り離されて、MIDXTRA独自の演奏プログラムで演奏されるため、時間分解能の問題は、あまり気にならない。しかし、アルゴリズム作曲のプログラムを組む場合には、事前にSMFのデータが供給される場合は少なく、一音、一音をMIDIのノートオンコマンドで発音するようにLingoで記述しなければならず、a)でとり上げた問題点がクローズアップされることになる。この時間精度や遅れの問題は、HyperMIDIの場合も同様に起こる。さらに、ノートオンコマンドを実行した後、実際にソフトシンセが発音するまでに100ミリ秒程度以上はかかっているようである。それもこの時間遅れは、コンピュータの性能にやOSの種類によって変化する。
c)Directorを用いる利点
a),b)においては、その問題点を中心に書いてきたが、当然ながら利点も数多く存在する。まずは、Directorのもともとの機能であるインタラクティブなアニメーションが簡単に記述でき、その動きをきっかけにして音を出すことが簡単にできること。たとえば、" Shadow"の場合ボールの衝突の判定などは、Lingoのプログラム一行で書けてしまう。さらに" BlockMessage"のようにshockwaveとしてWWWでの発表が可能である。さらにDirectorのバージョン6.5からはJavaへのExportも可能になったので、プラットホームに依存しない作品にすることができる。(ただし、実行速度の問題やXCMD,
XTRAがどの程度Java上で機能するかという問題は残る。
参考URL
[1]http://www.earlevel.com/HyperMIDI/index.html
[2]ftp://www.cs.ruu.nl/pub/MIDI/PROGRAMS/MAC/HyperMIDI.sit.hqx
[3]http://www.yamaha.co.jp/xg/midxtra/midixtra.html
[4]http://www.nishinippon.co.jp/hensyu/bunka/denshi/project2/intro.html