図1を参照して、この実施例の作曲・演奏支援システム10は、テーブル12を含み、このテーブル12の上に、オペレータ(図示せず)が各種カードを置くことによって、作曲または演奏を行う。そして、このテーブル12の上方にカメラ14が設けられる。テーブル12上でのすべてのカードインタラクションを検出する必要があるので、カメラ14は、テーブル12の上面全体を撮影できるように設置される。
テーブル12の奥側には、テーブル12の手前側に存在するオペレータが見ることができるように、映像モニタ16が設置される。この映像モニタ16としては、一例として、プラズマディスプレイが用いられるが、ビデオプロジェクタとスクリーンとの組み合わせ、あるいはブラウン管または液晶ディスプレイなど任意のものが利用可能である。さらに、映像モニタ16の右左にはステレオスピーカ18Rおよび18Lが配置され、したがって、テーブル12の手前側のオペレータはステレオ音声を聴取できる。
カメラ14はたとえばCCDカメラであり、それによって撮影された映像信号は、コンピュータ20に与えられる。コンピュータ20は、CPU22およびそれに結合されたRAM24ならびにROM26を含む。コンピュータ20はさらに、映像入力インタフェース28を有し、この映像入力インタフェース28を通して、カメラ14からの映像信号がCPU22に入力される。なお、この実施例では、カメラ14の映像信号は、カメラ14から、たとえば光ファイバを用いたFire Wire(商品名)のような高速データ転送路で転送される。
RAM24はCPU22のワーキング領域として利用される他、必要に応じて、適宜のフラグやレジスタ領域を保持し、さらには、ビデオメモリとして利用され、このビデオメモリから映像データが映像出力インタフェース30を通して、先の映像モニタ16に与えられる。
ROM26には、後述のフロー図で示すこの実施例のシステムのプログラム32が格納される他、カメラでのカードトラッキングのためのソフトウェア(たとえばAugmented Reality Toolkit:商品名)34、3Dコンピュータグラフィックスのためのソフトウェア(たとえばOpen VRML)36、およびMIDIイベント用シーケンサとしてのPD38が予め組み込まれている。
Augmented Reality は強化現実または拡張現実と呼ばれるが、ARToolkit34は、現実の空間にあるマーカを認識し、その位置へコンピュータで生成したイメージを置くことができるソフトウェアである。たとえば、加藤博一氏およびワシントン大学Human Interface Technology Lab.の共同研究によって開発されている。フリーウェアであり、現在たとえばhttp://www.hitl.washington.edu/research/shared_space/download/ から入手可能である。
VRML(Virtual Reality Modeling Language)36は、インタネット上で3次元グフィックスを取り扱うための言語で、2次元のHTMLの3次元版で、HTMLを発展させて3次元画像処理を可能にしたもので、TGS社とSGI社とが共同開発したVRMLブラウザhttp://www.sgi.com/Products/webForce/WebSpaceまたはftp www.sd.tgs.com/~templeteからダウンロードしたビューワを使えば立体映像を見ることができる。
PD38は、Pure Dataと呼ばれるフリーウェアで、Miller Puckette氏等によって開発された。このPD38は、音楽プログラミング環境であり、MIDIイベント用シーケンサがこのPD38に組み込まれている。ただし、シーケンサとは、音楽をMIDI信号の形で記録、再生するもので、この実施例では、シーケンサは、それぞれ異なる1つのノート(音符)を演奏するのに割り当てられる。つまり、シーケンサは、テーブル上のカードの各々に個別に割り当てられ、そのカードのマーカに結び付けられる。なお、PDは、現在、たとえばhttp://man104nfs.ucsd.edu/~mpuckett/siftware.htmlから入手できる。このPD38は、後に詳細に説明するように、ノートカードに従ってMIDI信号を出力する。
PD38から出力されるMIDI信号は、MIDI音源40に与えられる。MIDI音源40では、PD38から与えられるMIDI信号すなわちMIDI値に応じた音声信号を出力し、それをスピーカ18R、18Lに与える。したがって、スピーカ18R、18Lから音楽がステレオ音声で再生または演奏される。
コンピュータ20にはさらに、UPDソケット42を有し、他のシステムの同様のコンピュータ20と、同じUPDソケット42を用いて、インタネット44を通して、通信することができる。コンピュータ20による通信処理はソケット42に対して読み書きすることで行われる。
この実施例のシステム10は、オペレータまたはユーザがテーブル12上でカードを操作することによって、音楽を演奏し、あるいは作曲するものであるが、図2にそのカードの1つである、ノート(Note:音符)カード46が例示される。
このノートカード46は、その表面に形成されたたとえば矩形形状のフレーム48と、そのフレーム48内に表示されるノートカードマーカ50とを含む。フレーム48およびノートカードマーカ50は、コンピュータ20およびオペレータによって読み取り可能な意味を持っている。すなわち、フレーム48は、この中に識別するべきノートカードマーカ50が記載されていることを意味し、そのノートカードマーカ50は、このカードがノートカードであることを示す。またノートカード46の裏面は、後述の他のカードと同じように、無模様であり、たとえば全面白色である。
オペレータまたはユーザはこのようなノートカード46をテーブル12上に置くことによって、音楽フレーズを作成する。
テーブル12上では図3に示すような座標系が決められていて、オペレータに正対するテーブル12上で、たとえばオペレータの左側でかつオペレータに近い側の1点を原点として設定する。さらに、このテーブル12の平面内で、この原点を通るオペレータの左右方向にX軸を設定し、オペレータの右手側をそのX軸の正の方向と指定する。また、テーブル12の平面内で、X軸に垂直でかつ原点を通る軸をY軸として設定するとともに、オペレータから遠ざかる方向にそのY軸の正の方向を指定する。さらに、原点を通ってテーブル12の平面に垂直な方向にZ軸をとり、上方をその正の方向に指定する。
このような座標系を予め設定しているテーブル12上にオペレータがノートカード46を置くと、コンピュータ20は、カメラ14から入力される映像信号に基づいて、カード46上のフレーム48およびノートカードマーカ50を識別するとともに、そのノートカード46のテーブル12の上記座標系上での2次元情報を検出する。この2次元情報とは、図3の座標系における、たとえばカード46の中心のX座標とY座標とである。そして、X軸が時間軸を表し、X座標が大きいほど後の時刻を表すという意味を予め与えておく。同様に、Y軸が音の高さを表し、Y座標が大きいほど高い音を表すという意味を予め与えておく。
さらに、図4に示すように、Y軸に平行な軸まわりにおける、ノートカード46の傾きが音の長さを表すことを決めておく。図4(A)に示す左方向の傾きが大きければ大きいほど、音の長さが短く、図4(B)に示す右方向の傾きが大きければ大きいほど、音の長さが長くなるように決めている。
また、図5に示すように、ノートカード46の中心を通ってZ軸に平行な軸まわりのカードの回転角度によって音の強弱を表現できるようにしている。たとえば、ノートカード46の時計方向(図5での点線矢印方向)の回転角度が大きければ大きいほど音の強さを強くし、反時計方向(図5での実線矢印方向)の回転角度が大きければ大きいほど音の強さを弱くするように決めている。
なお、先に説明したようにこの実施例ではVRML36によって3次元グラフィックスを作成することができるが、図6に、そのVRML36を用いて作成したノートカードの表示モデルすなわちノートカードモデル52の一例が示される。この例では、ノートカードモデル52は、その体長(串の数)で音の長さを可視的に表現し、胴体にあるトゲまたは毛54で音の大きさを可視的に表現できるようにした。ただし、このノートカードモデル52の具体的形状や音楽要素の表現方法は単なる一例であり、任意に変更可能である。
そして、コンピュータ20は、オペレータがテーブル12上にノートカード46を置き、かつそれを操作しているとき、オペレータに対して当該操作中のノートカードによってどのような音が設定されようとしているかを目視によって確認させ得るように、図7に示すように、カメラ14から取り込んだノートカードの映像とノートモデル(クリーチャ)とを重畳表示する。したがって、オペレータは、この重畳表示映像を見ながら図4や図5に示すようにノートカード46を操作することによって、音の長さや強弱(ボリューム)を希望のものに設定することができる。
具体的には、実施例のシステム10では、テーブル12およびたとえばノートカード46とのカメラ映像とコンピュータ20で生成した3次元モデルとを上述のように重畳表示するために、Augmented Reality (AR)Toolkit34を使用した。これは、各カードとそれぞれが持つ個別のマーカとその周りの正方形フレームとで識別する。すなわち、黒い正方形のフレームの歪みをトラッキングすることによって、AR Toolkit34はカードの傾斜角度を把握できる。AR Toolkit34がカードの位置や回転角度等を認識すれば、CPU22は、適切な大きさ、位置および回転角度のVRMLオブジェクトをレンダリングさせる値をOpen VRML36に送る。その結果、VRMLオブジェクトすなわち各カードモデルがOpen VRML36でレンダリングされ、元のカメラ映像とミックスされ、これらのVRMLオブジェクトが挿入された「現実」空間として映像モニタ16に映し出される。
ここで、このノートカード46に応じてPD38がMIDI信号を出力する動作について説明する。ノートカード46がテーブル12上に置かれると、カメラ14がそれのトラッキングパターンすなわちフレーム48を捉えるので、この映像信号を受けるCPU22がAR Toolkit34によってテーブル12上のノートカード46の位置を認識する。上述のように、テーブル12のY軸はそのノートのピッチ(音高)を意味し、ユーザないしオペレータから遠方(これは、映像モニタ16の表示上では上方)に行くほど音が高くなるように予め決めている。そして、CPU22は、AR Toolkit 34から出力されたノートカード46のY軸上の位置を、「0」と「127」との間のMIDI値として生成し、シーケンサすなわちPD38に送る。PD38は、CPU22から与えられたMIDI値をMIDIノートナンバにマッピングする。
テーブル12のX軸は時間を示し、テーブル12の左から右に向かってノートが順次演奏される。X軸上のノートカード46の位置もY軸と同様に「0」と「127」との間のMIDI値に変換され、シーケンサすなわちPD38に送られる。X軸上にループする時間軸は8ステップに相当するものと予め決めているので、PD38は、CPU22から与えられたMIDI値を、8つの等間隔のうちの1つに再配置する。
また、図5に示すように、ノートカード46がテーブル12上で右回りに回転された場合、CPU22は、カメラ映像信号から回転角度を割り出し、その回転角度をPD38へ、ボリューム(volume:音の大きさ)を増加する値(0−127)として送る。逆に左回転の場合、CPU22からは、ボリュームを減少する値がPD38に入力される。
図4(B)に示すようにノートカード46が右に傾斜されたときには、CPU22は、カメラ映像信号から傾斜角度を割り出し、その傾斜角度をPD38へ、デューレーション(duration:音の長さ)を増加する値(0−127)として送る。逆に左傾斜の場合、CPU22からは、デューレーションを減少する値がPD38に入力される。PDすなわち38は、入力されるデューレーション値によって決定された時間量だけそのノートを持続させる。
PD38は、ステップを「0」−「7」で規則的に繰り返しカウントするマスタクロック(図示せず)を持っている。つまり、X軸上にループする時間軸は8ステップに相当するので、PD38がカウントをとるとき、時間軸上のステップとそれ自身のカードの位置とが一致するかどうかチェックする。それらが一致して、かつカードがトラッキングされていれば、PD38は、ノートカード46の位置や、回転、傾斜角度から、音の高さ、強弱、長さの値に変換して、シンセサイザすなわちMIDI音源へ送るMIDI値を生成する。
テーブル上のカードから起こる情報はすべてそのカードのシーケンサへ送られ、シーケンサによってMIDI値が生成され、MIDIの1チャネル上に送られる。シーケンサのそれぞれに対する値はPD38中の1つの配列に格納される。そして、この配列は、クリップボードの中のストレージにあるので、他のいくつかの配列の1つにコピーすることができる。
このようにして、オペレータは、1つのノートカードで1つの音を決め、たとえば図8に示すような1つのフレーズの音楽パターンを作ったときには、図9に示すフレーズ(phrase:小節)カード56を用いて、それをフレーズとして保存することができる。具体的には後述する。
フレーズカード56も先のノートカード46と同様の矩形カードであるが、両者を容易に区別できるように、大きさを違えている。実施例ではフレーズカード56がノートカード46より大きい。フレーズカード56は、その表面に形成されたたとえば矩形形状のフレーム58と、そのフレーム58内に表示されるフレーズカードマーカ60とを含む。フレーム58およびフレーズカードマーカ60は、コンピュータ20やオペレータによって読み取り可能な意味を持っている。すなわち、フレーム58は、この中に識別するべきフレーズカードマーカ60が記載されていることを意味し、フレーズカードマーカ60は、このカードがフレーズカードであることを示す。
このフレーズカード56にもそれに対応する表示モデルがVRML36で生成される。図10がフレーズカード56の表示モデル62を示す。この例では、フレーズカードモデル62は、フレーズがノートの集合であることを直感させるように、図6に示したノートカードモデル52を用いて表現されている。
オペレータがこのフレーズカード56をテーブル12上で操作するときにも、図11に示すように、コンピュータ20は、オペレータに対して当該フレーズカードの操作を目視によって確認させ得るように、カメラ14から取り込んだフレーズカードの映像とフレーズカードモデルとを重畳表示する。したがって、オペレータは、この重畳表示映像を見ることによって、フレーズカード56の操作の適否等を判断することができる。
なお、図1の実施例では、さらに、編集カードおよび楽器カードを使用できる。編集カードはフレーズカード56に音楽パターンをコピーした後、元のノートカードがなくてもフレーズに格納されたノートパターンを再現し、編集するためのカードである。楽器カードは、オペレータないしユーザがテーブル上のすべてのノートまたはフレーズを演奏する楽器を任意に設定するためのカードである。図12−図14が編集カードを示し、図15−図17が楽器カードを示す。
編集カード64は、図12に示すように、表面に形成されたたとえば矩形形状のフレーム66と、そのフレーム66内に表示される編集カードマーカ68とを含む。フレーム66および編集カードマーカ68は、コンピュータ20およびオペレータによって読み取り可能な意味を持っている。すなわち、フレーム66は、この中に識別するべき編集カードマーカ68が記載されていることを意味し、その編集カードマーカ68は、このカードが編集(エディット)カードであることを示す。
なお、この編集カード64にもVRML36によって作成した3次元グラフィックスをそれの表示モデルとして準備するが、編集カード64の表示モデルの一例が図13に示される。この実施例では、編集カードモデル70は、矩形リングとその各辺に設けた両方向矢印とを含む。ただし、この編集カードモデル70の具体的形状は単なる一例であり、任意に変更可能である。
編集カード64が操作されるとき、図14に示すように、図13で示す編集カードモデル70で編集カード64が囲まれたような、重畳表示が映像モニタ16上に表示される。
編集カード64によれば、上述のようにフレーズカードに格納されていたノートのパターンを元のノートカードなしに再現することができので、ユーザまたはオペレータは、映像モニタ16に表示されたノートカードモデルを見ながら各ノートのタイミング、ピッチ、音の強弱、長さを変更できる。
楽器カード74は、図15に示すように、表面に形成されたたとえば矩形形状のフレーム76と、そのフレーム76内に表示される楽器カードマーカ78とを含む。フレーム76および楽器カードマーカ78は、コンピュータ20およびオペレータによって読み取り可能な意味を持っている。すなわち、フレーム76は、この中に識別するべき楽器カードマーカ78が記載されていることを意味し、その楽器カードマーカ78は、このカードが楽器(インスツルメント)カードであることを示す。
なお、この楽器カード74にもVRML36によって作成した表示モデルを準備するが、その表示モデルの一例が図16に示される。この実施例では、楽器カードモデル80は、環状に配置された8つの楽器のイラストを含む。ただし、表示される楽器の種類および数は、そのとき利用可能な楽器の種類および数に依存する。したがって、この楽器カードモデル80の具体的形状や楽器イラストなどは単なる一例であり、任意に変更可能である。
楽器カード74が操作されるとき、図17に示すように、図16で示す楽器カードモデル80が楽器カードの映像と重畳表示される。そして、楽器カード74をテーブル上で傾けると楽器モデルのメニューが回転し、それによって楽器を選択できるようになっている。つまり、この楽器カード74を用いることによって、ユーザは、テーブル上のすべてのノート、あるいは個々のフレーズカードの楽器(音)を変更できる。たとえば、楽器カード74をテーブル12上のノートカードまたは適宜のフレーズカードの近くに置き、左または右に傾けると、楽器の種類が循環されて音色が変化する。好みの楽器に変換されれば楽器カード74をテーブル12の上面と平行にするか、もしくはノートカードやフレーズカードから離して、楽器を決定する。これにより、MIDI出力に適切な変更メッセージを送ることができる。
次に、図1のROM26に格納されているプログラム32について、図18−図24のフロー図を参照して、詳細に説明する。
図18のメインスレッドの最初のステップS1では、具体的に図19に示す初期化処理
実行する。初期化処理では、コンピュータ20すなわちCPU22は、ステップS11でカード情報を初期化するとともに、ステップS13で初期ファイルの読込と各種パラメータの設定とを行う。続いて、ステップS15でUPDソケット42をオープンしてネットに対応できるように設定する。その後、CPU22は、ステップS17で、たとえばMIDIマップやオブジェクトデータを読み込むとともに、ステップS19で各カードの表示モデル(VRML)を読み込む。そして、ステップS21で、たとえばFire Wireによる映像入力を許容するために、映像入力インタフェース28(図1)オープンする。ステップS23でカメラ14(図1)のカメラパラメータを読み込み、ステップS25で映像モニタ16第2表示する表示画面を作成する。
そして、メインスレッドの次のステップS3で、CPU22は、カメラ14からの映像信号をインタフェース28を介して受ける。この映像入力に応じて、CPU22は、MIDIスレッドを作成する。
MIDIスレッドでは、ステップS5に示すように、カードのマーカ50(図2)を検出し、そのカードの状態、たとえば回転や傾きをAR Toolkit34で取得する。それに応じて、CPU22は、それらの状態データに応じたMIDIメッセージを作成し、PD38へ送信する(ステップS7)。つまり、テーブル12上のカードから起こる情報はすべてそのカードのシーケンサへ送られ、シーケンサによってMIDI値が生成され、MIDIチャネル上に送られる。シーケンサのそれぞれに対する値はPD38中の1つの配列に格納される。
図18の次のステップS7では、CPU22は、イベントループを実行する。このイベントループは、詳細には、図20に示される。
図20のステップS31で、CPU22は、入力インタフェース28から入力映像を、たとえばRAM24(図1)に取り込む。そして、ステップS33において、CPU22は、取り込んだ入力映像にカードのマーカが含まれるかどうか判断する。そして、このステップS33で“YES”が判断されると、次のステップS35において、CPU22は、そのカードのマーカの位置情報すなわちX座標およびY座標を検出する。その後、ステップS37で、カード操作処理を実行する。
図21に示すカード操作の最初のステップS51では、CPU22は、検出したカードが編集カード64(図12)かどうか判断する。“YES”なら、次のステップS53で、フレーズカード56(図9)が既に選択されているかどうか判断する。つまり、編集カード64をフレーズカード56に近付けて編集カード56を傾けると、フレーズカード56に保存されていたノートパターンの位置、長さ、大きさが保存されたフレーズカードモデル62(図10)が、図11に示すように、映像モニタ16上で、フレーズカード56の映像の上に重畳表示される。
そして、編集カード64が検出されかつフレーズカード56がすでに選択されているときには、続くステップS55において、編集中かどうか判断する。このステップS55において“YES”が判断されると、CPU22は、編集モードを終了させる。つまり、編集が終わって、編集カード64をフレーズカード56に近づけて傾けると、先のステップS53で開かれていたノートパターンが再びフレーズカード56に保存できる。
ステップS55で“NO”を判断すると、次のステップS59において、CPU22は、編集モードを開始させる。したがって、上述のようにして開いて映像モニタ16上に表示されたノートパターンのノートカードモデルを掬い上げるように編集カード64を潜り込ませると、編集カード64の移動、回転、傾きの操作に対応して、ノートカードモデルの位置や回転、傾きを変更できる。したがって、設定したい所望の位置で編集カードモデル70(図13)を消す(編集カードの認識を一時的に停止させる)と、ノートカードモデルをその位置に置くことができる。
なお、ステップS53でフレーズカード56の選択が“NO”と判断されると、続くステップS61において、CPU22は、編集中かどうか判断する。“YES”であれば、ステップS63において、フレーズカード56に保存されたノートをステップS59で説明したように、編集する。たたし、ステップS61で“NO”が判断されると、そのまま、先のステップS57、S59、S63を実行したときと同様に、図20のステップS39にリターンする。
図21のステップS51で“NO”が判断されたとき、つまり、そのときにテーブル12上に載せられたカードが編集カードではなかったとき、図22のステップS65において、CPU55は、そのカードがフレーズカード56かどうか判断する。フレーズカードであれば、次のステップS67で、CPU22は、そのフレーズカードの上方向位置(Z軸)が所定の閾値を超えていないかどうか判断する。
閾値を超えていなければ、フレーズカード56がカメラ14に近付き過ぎていないので、次のステップS69で、CPU22は、ノートパターンをフレーズカードにコピーまたは保存済みでないかどうか判断する。保存済みでなければ、ステップS71でノートカード(ノートパターン)をフレーズカード56に保存する。このようにして、フレーズカード56によってノートカードで作成した音楽パターンをフレーズカードに保存することができる。
また、ステップS67で“NO”を判断すると、つまり、フレーズカード56が上方向に持ち上げられて一定以下の距離までカメラ14に接近されると、CPU22は、フレーズカードの状態をリセットする。つまり、フレーズカード56をカメラ14に近付けると、フレーズカード56に保存していたノートパターンを消去することができる。先のステップS71を実行したとき、またはステップS73を実行したとき、図20のステップS39にリターンする。
さらに、図22のステップS65で“NO”が判断されたとき、つまり、そのときテーブル12上に載せられたカードが、編集カードでも、フレーズカードでもないときには、CPU22は、図23に示す次のステップS75で、そのカードが楽器カード74(図15)かどうか判断する。
“YES”なら、ステップS75で、CPU22は、そのとき既にノートカード46(図2)またはフレーズカード56(図9)を選択しているかどうか、判断する。“YES”のときには、ステップS77で、CPU22は、楽器番号0−7に対応した楽器カードモデル80(図16)を表示するとともに、MIDI値をPD38(図1)に出力する。したがって、楽器カード74を傾けると、楽器カードモデルのメニューが回転する。そして、選択したい楽器が大きく表示されたとき、楽器カード74をノートカード46またはフレーズカード56から離すと、楽器(音色)を決定することができる。
ステップS75で“NO”が判断されたとき、ステップS79で、そのときテーブル上にあるカードがノートカード46であるかどうか判断する。“NO”であれば、そのまま、図20のステップS39にリターンする。
ステップS79で“YES”が判断されたとき、つまり、そのときのカードがノートカード46であった場合には、続くステップS81で、CPU22は、そのノートカードを傾けているかどうか判断する。“YES”なら、ステップS83で、先に説明したように、その傾きの方向および傾きの角度(程度)に応じて、デューレーション(音長)を設定し、それに応じた体長を有するノートカードモデル52(図6)を表示するとともに、MIDI値をPD38に出力する。
ステップS81で“NO”が判断されたとき、またはステップS83が終了したとき、ステップS85で、ノートカード46を回転させているかどうか判断する。“NO”であれば、そのまま、図20のステップS39にリターンする。
ステップS85で“YES”が判断されたとき、ステップS87で、先に説明した様に、その回転の方向および回転角度(回転量)に応じて、ボリューム(音の強弱)を設定し、それに応じた数の毛54を有するノートカードモデル52(図6)を表示するとともに、MIDI値をPD38に出力する。
カード操作処理が終了すると、図20のステップS39においてCPU22は、ネットワーク版かどうか、すなわち通信すべき相手先のシステムがあるかどうか判断する。“NO”の場合には、CPU22は、次のステップS41において、ステップS33で検出したマーカの上にVRMLモデルを描画して、たとえば図7に示すような重畳表示を実行する。
図20のステップS39で“YES”が判断されると、続くステップS43で、ネットワーク処理を実行する。このネットワーク処理は、具体的には、図24のサブルーチンとして実行される。
図24の最初のステップS91において、CPU22は、ノートカードの状態(位置、傾き、回転)が変わったかどうか判断する。“YES”なら、図1に示すソケット42を使って、インタネット44を通して、相手システムのコンピュータ20(図1)に、その変化した情報を送信する(ステップS93)。それとともに、ステップS95で相手システムのコンピュータから、ソケット42を通した受信データがあるかどうか判断する。
相手コンピュータから受信データがあるとき、CPU22は、ステップS97で、その受信データに含まれるMIDI値(音楽データ)に応じてMIDI音源40を制御する。したがって、このとき相手のノートが自分側のスピーカ18で発音される。このステップS97では、また、CPU22は、相手のノートカードの位置、回転、傾きに応じた花のモデル、すなわち相手システムで設定したノートを表す表示モデルを自分側のシステムの映像モニタ16に表示する。
詳しくいうと、この実施例のシステム10は、ネットワーク対応システムである。したがって、インタネットを通して相手のシステムと協働させることができる。相手システムと協働しているとき、各システムのオペレータはそれぞれ任意にノートカードやフレーズカードを用いて、作曲し、あるいは演奏させることができる。したがって、もし相手システムにおいてノートがどのように変化されているのか把握できなければ、互いに協働して作曲する場合に、かなり不便である。なぜなら、相手が変化していないと言う前提で自分側のノートを最適に設定したとしても、相手のノートが変化しているのであれば、その前提が覆り、再度調整しなければならない。そこで、この実施例のシステムでは、相手から受信したデータに含まれる相手のノートを可視的に表示するための相手ノートモデルを設定している。それが図25に示される。
図25に示す相手ノートモデル82は、たとえば青色の花模様であり、音の大きさを花びら84の数で示し、音の長さを葉86の数で示すように設定されている。この相手ノートモデル82もVRML36によって作成される。そして、ステップS97で、図26に示すように、映像モニタ16上に自分側の映像に重ねてその相手ノートモデル82が表示されるのであるが、相手ノートモデル82のモニタ16上の表示位置は、相手システムのテーブル上での相手ノートカードの位置にそのまま対応している。つまり、相手ノートモデル82の表示位置は、相手の作曲・演奏支援システムで作成したノートが示す音の高さに対応する位置である。そして、受信データに含まれる音の強弱(回転方向/角度)および音の長さ(傾き方向/角度)にそれぞれ応じた数の花びら84および葉86が表示される。つまり、強弱表示部である花びら84および長さ表示部である葉86は、それぞれ、受信データで示される強弱および長さに従って可変的に表示される。
このように、自分側では、スピーカから相手ノートの音が発音されるだけではなく、相手ノートモデル82の表示位置で相手ノートカードの位置を知ることができるし、さらに花びら84の数や葉86の数で相手ノートカードの回転や傾きの状態、すなわち相手のノートの音の強弱や音の長さまで知ることができる。したがって、自分側では、相手システムの演奏が、音だけでなく、視覚的に構造やスケジュールが理解でき、遠隔地に離れた2つのシステムであっても、距離を感じることなく、きわめてスムーズに協働して作曲や演奏をすることができる。
なお、上述の実施例では2つのシステム10がソケット42によって結合され、インタネット44を通して互いにデータを授受するものとして説明した。しかしながら、たとえばLANのような他のネットワークを用いる可能性を排除するものではない。
さらに、各カードのフレームやマーカの形状は、ARToolkitが対応可能であれば、実施例で示した以外の形状に変更してもよい。
また、上述の実施例では、ノートカード46の傾き角度で音の長さを決めたが、この音長は、ノートカード46が傾斜している時間で決めるようにしてもよい。この場合、傾斜角度は、短い状態から長い状態へ変化するスピードに対応する。つまり、傾きを緩やかにするとノートカードモデル52の串数がゆっくりと増減し、傾きを急角度にすると、はやく串数が増減する。そして、希望の長さのところで、ノートカード46をフラットにすることでその長さを決めることができる。そして、PD38へは、短い状態を「1」、長い状態を「127」として、傾いていた時間に応じたデューレーション値を送ることになる。