(57)【要約】      【構成】  作曲・演奏支援システム１０では、オペレータは、テーブル１２上でカードを操作する。カメラ１４がこのカードインタラクションを撮影する。コンピュータ２０がその映像信号に基づいてＭＩＤＩデータを出力し、それぞれをＭＩＤＩ音源４０に与える。したがって、スピーカ１８からそのカードの位置情報および状態情報に応じた音が発音される。映像モニタ１６には、カードの映像が、そのカードの３次元表示モデルとともに表示される。コンピュータ２０が別のシステムのコンピュータからソケット４２を通してデータを受信すると、その受信データに含まれる相手システムでのカードの位置情報および状態情報に従って、映像モニタにさらに相手ノートモデル（８２：図２６）を重畳表示する。        【効果】  相手ノートを目視によって確認できるので、協働作業がスムーズに進行できる。【選択図】  図１
2005283858.tif 000002
【特許請求の範囲】
【請求項１】
テーブル上のカードをカメラで撮影し、それによって取得した前記カードの位置情報および状態情報に基づいて音楽データを作成し、前記音楽データに従ってスピーカから発音させるとともに、映像モニタに前記カードの映像とともに当該カードの表示モデルを表示する作曲・演奏支援システムであって、
別の作曲・演奏支援システムとネットワークを通して通信するための通信手段、
前記通信手段によって前記別の作曲・演奏支援システムに音楽データを送信する送信手段、および
前記通信手段によって前記別の作曲・演奏支援システムから受信した受信データに基づいて前記映像モニタに前記別の作曲・演奏支援システムでカードを操作することによって作成されたノートを表す相手ノートモデルを表示させる表示手段を備える、作曲・演奏支援システム。
【請求項２】
前記受信データに含まれる音楽データに従って前記スピーカから発音させる発音手段をさらに備える、請求項１記載の作曲・演奏支援システム。
【請求項３】
前記受信データは前記ノートの音の高さを示す情報を含み、前記表示手段は前記音の高さに対応する位置に前記相手ノートモデルを表示させる、請求項１または２記載の作曲・演奏支援システム。
【請求項４】
前記相手ノートモデルは音の強弱を表す強弱表示部および音の長さを示す長さ表示部を含み、前記表示手段は、前記受信データに含まれる音の強弱を示す情報および音の長さを示す情報に応じて前記強弱表示部および前記長さ表示部を表示する、請求項４記載の作曲・演奏支援システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は作曲・演奏支援システムに関し、特にたとえば、テーブルの上に並べられたカードをカメラによって撮影し、そのカメラからの映像信号に基づいて各カードの位置や状態情報を取り込み、カードの位置や状態に応じたＭＩＤＩ(Musical Instrument Digital Interface)データを出力する、作曲・演奏支援システムに関する。
【背景技術】
【０００２】
本件発明者等は、特許文献１で、この種の作曲・演奏支援システムを提案している。この背景技術は、オペレータがテーブル上に並べた音符カードを、そのテーブルの上方に設けたカメラで撮影し、その映像信号から、コンピュータが音符カードの位置や状態情報を示す２次元座標情報を獲得し、それに応じたＭＩＤＩデータを作成する。このＭＩＤＩデータがＭＩＤＩ音源へ与えられ、音楽的表現（音色、音程、大きさ等）の音が発音される。
【特許文献１】特開２００３−３３０４６３［Ｇ１０Ｈ  １／００，Ｇ１０Ｇ  １／００］
【発明の開示】
【発明が解決しようとする課題】
【０００３】
この従来技術を用いれば、新たなフレーズや楽曲を自由に創作するができる。そして、この従来技術に示唆しているように、２つのシステムをネットワークで結合すれば、遠隔地にあっても、２人のオペレータが協働して１つの曲を作ることができる。しかしながら、従来技術には、そのための具体的構成や方法が明示されていない。
【０００４】
それゆえに、この発明の主たる目的は、ネットワーク対応型の、新規な作曲・演奏支援システムを提供することである。
【０００５】
この発明の他の目的は、ネットワーク接続された２つのシステムで互いに相手のノートを把握できる、作曲・演奏支援システムを提供することである。
【課題を解決するための手段】
【０００６】
請求項１の発明は、テーブル上のカードをカメラで撮影し、それによって取得したカードの位置情報および状態情報に基づいて音楽データを作成し、音楽データに従ってスピーカから発音させるとともに、映像モニタにカードの映像とともに当該カードの表示モデルを表示する作曲・演奏支援システムであって、別の作曲・演奏支援システムとネットワークを通して通信するための通信手段、通信手段によって別の作曲・演奏支援システムに音楽データを送信する送信手段、および通信手段によって別の作曲・演奏支援システムから受信した受信データに基づいて映像モニタに別の作曲・演奏支援システムでカードを操作することによって作成されたノートを表す相手ノートモデルを表示させる表示手段を備える、作曲・演奏支援システムである。
【０００７】
請求項１の発明では、それぞれの作曲・演奏支援システムは、テーブル（１２：実施例で相当する部分を表す参照符号。以下同様。）を含み、オペレータは、このテーブル上でノートカード（４６）を操作する。テーブルの上方に設けたカメラ（１４）でそのノートカードを撮影し、コンピュータ（２０）すなわちＣＰＵ（２２）は、たとえばAugmented Reality Toolkitのようなカメラトラッキングソフトによって、カメラからの映像信号からノートカードの座標位置および状態情報（傾きや回転）を取得し、その位置情報や状態情報をたとえばPure Dataのような音楽プログラミングソフトに与える。したがって、ＰＤが、ノートカードの位置情報や状態情報に基づいて音楽データ、すなわちＭＩＤＩデータを手段する。このＭＩＤＩデータがたとえばＭＩＤＩ音源（４０）に与えられ、ＭＩＤＩ音源がスピーカ（１８）を鳴らすことによって、音楽データに従った発音が行われる。
【０００８】
他方、カメラからのカード映像信号が、たとえばＶＲＭＬで作った３次元クリーチャ、すなわちノートカードモデルとともに映像モニタ（１６）で表示される。
【０００９】
作曲・演奏支援システムは、さらに、たとえばＵＰＤソケットのような通信手段を有し、ＣＰＵはこの通信手段を用いて、別の作曲・演奏支援システムすなわち相手システムに音楽データを送信する（図２４：Ｓ９３）。また、表示手段（図２４：Ｓ９７）は、相手システムからの受信データに含まれるカノートカードの位置情報や状態情報を受け、相手ノートモデル（８２）を映像モニタ上に重畳表示させる。したがって、この相手ノートモデルを見ることによって、別の作曲・演奏支援システムで相手が作成または設定したノートを目視によって確認できる。したがって、２つのシステムでの協働作業が極めてスムーズに進行できる。
【００１０】
請求項２の発明は、受信データに含まれる音楽データに従ってスピーカから発音させる発音手段をさらに備える、請求項１記載の作曲・演奏支援システムである。
【００１１】
請求項２の発明では、相手ノートに応じた音も発音されるので、請求項１の発明での目視確認に加えて、音によっても、相手ノートを確認することができる。
【００１２】
請求項３の発明は、受信データはノートの音の高さを示す情報を含み、表示手段は音の高さに対応する位置に相手ノートモデルを表示させる、請求項１または２記載の作曲・演奏支援システムである。
【００１３】
作曲・演奏支援システムでは、ノートの音の高さはノートカードの位置できまるが、請求項３の発明では、相手ノートモデルを表示するときに、その位置に表示するので、自分側では、その相手ノートモデルの表示位置を見ることによって、相手のノートの音の高さを視覚によって確認できる。
【００１４】
請求項４の発明は、相手ノートモデルは音の強弱を表す強弱表示部および音の長さを示す長さ表示部を含み、表示手段は、受信データに含まれる音の強弱を示す情報および音の長さを示す情報に応じて強弱表示部および長さ表示部を表示する、請求項４記載の作曲・演奏支援システムである。
【００１５】
請求項４の発明では、相手ノートの音の大きさをたとえば花びら（８４）の数で示し、音の長さをたとえば葉（８６）の数で示すように設定しているので、強弱表示部である花びらおよび長さ表示部である葉は、それぞれ、受信データで示される強弱および長さに従って可変的に表示される。そのため、相手ノートの音の強弱や長さを容易に視認できる。
【発明の効果】
【００１６】
この発明によれば、自分側の映像モニタに表示される相手ノートモデルを見ることによって、相手のノートを目視によって確認できるので、ネットワークで結合した２つのシステムがたとえ遠隔地にあっても、協働作業が極めてスムーズに進行できる。
【００１７】
この発明の上述の目的，その他の目的，特徴，および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００１８】
図１を参照して、この実施例の作曲・演奏支援システム１０は、テーブル１２を含み、このテーブル１２の上に、オペレータ（図示せず）が各種カードを置くことによって、作曲または演奏を行う。そして、このテーブル１２の上方にカメラ１４が設けられる。テーブル１２上でのすべてのカードインタラクションを検出する必要があるので、カメラ１４は、テーブル１２の上面全体を撮影できるように設置される。
【００１９】
テーブル１２の奥側には、テーブル１２の手前側に存在するオペレータが見ることができるように、映像モニタ１６が設置される。この映像モニタ１６としては、一例として、プラズマディスプレイが用いられるが、ビデオプロジェクタとスクリーンとの組み合わせ、あるいはブラウン管または液晶ディスプレイなど任意のものが利用可能である。さらに、映像モニタ１６の右左にはステレオスピーカ１８Ｒおよび１８Ｌが配置され、したがって、テーブル１２の手前側のオペレータはステレオ音声を聴取できる。
【００２０】
カメラ１４はたとえばＣＣＤカメラであり、それによって撮影された映像信号は、コンピュータ２０に与えられる。コンピュータ２０は、ＣＰＵ２２およびそれに結合されたＲＡＭ２４ならびにＲＯＭ２６を含む。コンピュータ２０はさらに、映像入力インタフェース２８を有し、この映像入力インタフェース２８を通して、カメラ１４からの映像信号がＣＰＵ２２に入力される。なお、この実施例では、カメラ１４の映像信号は、カメラ１４から、たとえば光ファイバを用いたFire Wire（商品名）のような高速データ転送路で転送される。
【００２１】
ＲＡＭ２４はＣＰＵ２２のワーキング領域として利用される他、必要に応じて、適宜のフラグやレジスタ領域を保持し、さらには、ビデオメモリとして利用され、このビデオメモリから映像データが映像出力インタフェース３０を通して、先の映像モニタ１６に与えられる。
【００２２】
ＲＯＭ２６には、後述のフロー図で示すこの実施例のシステムのプログラム３２が格納される他、カメラでのカードトラッキングのためのソフトウェア（たとえばAugmented Reality Toolkit：商品名）３４、３Ｄコンピュータグラフィックスのためのソフトウェア（たとえばOpen VRML）３６、およびＭＩＤＩイベント用シーケンサとしてのＰＤ３８が予め組み込まれている。
【００２３】
Augmented Reality は強化現実または拡張現実と呼ばれるが、ＡＲToolkit３４は、現実の空間にあるマーカを認識し、その位置へコンピュータで生成したイメージを置くことができるソフトウェアである。たとえば、加藤博一氏およびワシントン大学Human Interface Technology Lab.の共同研究によって開発されている。フリーウェアであり、現在たとえばhttp://www.hitl.washington.edu/research/shared_space/download/ から入手可能である。
【００２４】
ＶＲＭＬ(Virtual Reality Modeling Language)３６は、インタネット上で３次元グフィックスを取り扱うための言語で、２次元のＨＴＭＬの３次元版で、HTMLを発展させて３次元画像処理を可能にしたもので、ＴＧＳ社とＳＧＩ社とが共同開発したＶＲＭＬブラウザhttp://www.sgi.com/Products/webForce/WebSpaceまたはftp www.sd.tgs.com/~templeteからダウンロードしたビューワを使えば立体映像を見ることができる。
【００２５】
ＰＤ３８は、Pure Dataと呼ばれるフリーウェアで、Miller Puckette氏等によって開発された。このＰＤ３８は、音楽プログラミング環境であり、ＭＩＤＩイベント用シーケンサがこのＰＤ３８に組み込まれている。ただし、シーケンサとは、音楽をＭＩＤＩ信号の形で記録、再生するもので、この実施例では、シーケンサは、それぞれ異なる１つのノート（音符）を演奏するのに割り当てられる。つまり、シーケンサは、テーブル上のカードの各々に個別に割り当てられ、そのカードのマーカに結び付けられる。なお、ＰＤは、現在、たとえばhttp://man104nfs.ucsd.edu/~mpuckett/siftware.htmlから入手できる。このＰＤ３８は、後に詳細に説明するように、ノートカードに従ってＭＩＤＩ信号を出力する。
【００２６】
ＰＤ３８から出力されるＭＩＤＩ信号は、ＭＩＤＩ音源４０に与えられる。ＭＩＤＩ音源４０では、ＰＤ３８から与えられるＭＩＤＩ信号すなわちＭＩＤＩ値に応じた音声信号を出力し、それをスピーカ１８Ｒ、１８Ｌに与える。したがって、スピーカ１８Ｒ、１８Ｌから音楽がステレオ音声で再生または演奏される。
【００２７】
コンピュータ２０にはさらに、ＵＰＤソケット４２を有し、他のシステムの同様のコンピュータ２０と、同じＵＰＤソケット４２を用いて、インタネット４４を通して、通信することができる。コンピュータ２０による通信処理はソケット４２に対して読み書きすることで行われる。
【００２８】
この実施例のシステム１０は、オペレータまたはユーザがテーブル１２上でカードを操作することによって、音楽を演奏し、あるいは作曲するものであるが、図２にそのカードの１つである、ノート(Note：音符)カード４６が例示される。
【００２９】
このノートカード４６は、その表面に形成されたたとえば矩形形状のフレーム４８と、そのフレーム４８内に表示されるノートカードマーカ５０とを含む。フレーム４８およびノートカードマーカ５０は、コンピュータ２０およびオペレータによって読み取り可能な意味を持っている。すなわち、フレーム４８は、この中に識別するべきノートカードマーカ５０が記載されていることを意味し、そのノートカードマーカ５０は、このカードがノートカードであることを示す。またノートカード４６の裏面は、後述の他のカードと同じように、無模様であり、たとえば全面白色である。
【００３０】
オペレータまたはユーザはこのようなノートカード４６をテーブル１２上に置くことによって、音楽フレーズを作成する。
【００３１】
テーブル１２上では図３に示すような座標系が決められていて、オペレータに正対するテーブル１２上で、たとえばオペレータの左側でかつオペレータに近い側の１点を原点として設定する。さらに、このテーブル１２の平面内で、この原点を通るオペレータの左右方向にＸ軸を設定し、オペレータの右手側をそのＸ軸の正の方向と指定する。また、テーブル１２の平面内で、Ｘ軸に垂直でかつ原点を通る軸をＹ軸として設定するとともに、オペレータから遠ざかる方向にそのＹ軸の正の方向を指定する。さらに、原点を通ってテーブル１２の平面に垂直な方向にＺ軸をとり、上方をその正の方向に指定する。
【００３２】
このような座標系を予め設定しているテーブル１２上にオペレータがノートカード４６を置くと、コンピュータ２０は、カメラ１４から入力される映像信号に基づいて、カード４６上のフレーム４８およびノートカードマーカ５０を識別するとともに、そのノートカード４６のテーブル１２の上記座標系上での２次元情報を検出する。この２次元情報とは、図３の座標系における、たとえばカード４６の中心のＸ座標とＹ座標とである。そして、Ｘ軸が時間軸を表し、Ｘ座標が大きいほど後の時刻を表すという意味を予め与えておく。同様に、Ｙ軸が音の高さを表し、Ｙ座標が大きいほど高い音を表すという意味を予め与えておく。
【００３３】
さらに、図４に示すように、Ｙ軸に平行な軸まわりにおける、ノートカード４６の傾きが音の長さを表すことを決めておく。図４（Ａ）に示す左方向の傾きが大きければ大きいほど、音の長さが短く、図４（Ｂ）に示す右方向の傾きが大きければ大きいほど、音の長さが長くなるように決めている。
【００３４】
また、図５に示すように、ノートカード４６の中心を通ってＺ軸に平行な軸まわりのカードの回転角度によって音の強弱を表現できるようにしている。たとえば、ノートカード４６の時計方向（図５での点線矢印方向）の回転角度が大きければ大きいほど音の強さを強くし、反時計方向（図５での実線矢印方向）の回転角度が大きければ大きいほど音の強さを弱くするように決めている。
【００３５】
なお、先に説明したようにこの実施例ではＶＲＭＬ３６によって３次元グラフィックスを作成することができるが、図６に、そのＶＲＭＬ３６を用いて作成したノートカードの表示モデルすなわちノートカードモデル５２の一例が示される。この例では、ノートカードモデル５２は、その体長（串の数）で音の長さを可視的に表現し、胴体にあるトゲまたは毛５４で音の大きさを可視的に表現できるようにした。ただし、このノートカードモデル５２の具体的形状や音楽要素の表現方法は単なる一例であり、任意に変更可能である。
【００３６】
そして、コンピュータ２０は、オペレータがテーブル１２上にノートカード４６を置き、かつそれを操作しているとき、オペレータに対して当該操作中のノートカードによってどのような音が設定されようとしているかを目視によって確認させ得るように、図７に示すように、カメラ１４から取り込んだノートカードの映像とノートモデル（クリーチャ）とを重畳表示する。したがって、オペレータは、この重畳表示映像を見ながら図４や図５に示すようにノートカード４６を操作することによって、音の長さや強弱（ボリューム）を希望のものに設定することができる。
【００３７】
具体的には、実施例のシステム１０では、テーブル１２およびたとえばノートカード４６とのカメラ映像とコンピュータ２０で生成した３次元モデルとを上述のように重畳表示するために、Augmented Reality （ＡＲ）Toolkit３４を使用した。これは、各カードとそれぞれが持つ個別のマーカとその周りの正方形フレームとで識別する。すなわち、黒い正方形のフレームの歪みをトラッキングすることによって、ＡＲ Toolkit３４はカードの傾斜角度を把握できる。ＡＲ Toolkit３４がカードの位置や回転角度等を認識すれば、ＣＰＵ２２は、適切な大きさ、位置および回転角度のＶＲＭＬオブジェクトをレンダリングさせる値をOpen VRML３６に送る。その結果、ＶＲＭＬオブジェクトすなわち各カードモデルがOpen VRML３６でレンダリングされ、元のカメラ映像とミックスされ、これらのＶＲＭＬオブジェクトが挿入された「現実」空間として映像モニタ１６に映し出される。
【００３８】
ここで、このノートカード４６に応じてＰＤ３８がＭＩＤＩ信号を出力する動作について説明する。ノートカード４６がテーブル１２上に置かれると、カメラ１４がそれのトラッキングパターンすなわちフレーム４８を捉えるので、この映像信号を受けるＣＰＵ２２がＡＲ Toolkit３４によってテーブル１２上のノートカード４６の位置を認識する。上述のように、テーブル１２のＹ軸はそのノートのピッチ（音高）を意味し、ユーザないしオペレータから遠方（これは、映像モニタ１６の表示上では上方）に行くほど音が高くなるように予め決めている。そして、ＣＰＵ２２は、ＡＲ Toolkit ３４から出力されたノートカード４６のＹ軸上の位置を、「０」と「１２７」との間のＭＩＤＩ値として生成し、シーケンサすなわちＰＤ３８に送る。ＰＤ３８は、ＣＰＵ２２から与えられたＭＩＤＩ値をＭＩＤＩノートナンバにマッピングする。
【００３９】
テーブル１２のＸ軸は時間を示し、テーブル１２の左から右に向かってノートが順次演奏される。Ｘ軸上のノートカード４６の位置もＹ軸と同様に「０」と「１２７」との間のＭＩＤＩ値に変換され、シーケンサすなわちＰＤ３８に送られる。Ｘ軸上にループする時間軸は８ステップに相当するものと予め決めているので、ＰＤ３８は、ＣＰＵ２２から与えられたＭＩＤＩ値を、８つの等間隔のうちの１つに再配置する。
【００４０】
また、図５に示すように、ノートカード４６がテーブル１２上で右回りに回転された場合、ＣＰＵ２２は、カメラ映像信号から回転角度を割り出し、その回転角度をＰＤ３８へ、ボリューム（volume：音の大きさ）を増加する値（０−１２７）として送る。逆に左回転の場合、ＣＰＵ２２からは、ボリュームを減少する値がＰＤ３８に入力される。
【００４１】
図４（Ｂ）に示すようにノートカード４６が右に傾斜されたときには、ＣＰＵ２２は、カメラ映像信号から傾斜角度を割り出し、その傾斜角度をＰＤ３８へ、デューレーション（duration：音の長さ）を増加する値（０−１２７）として送る。逆に左傾斜の場合、ＣＰＵ２２からは、デューレーションを減少する値がＰＤ３８に入力される。ＰＤすなわち３８は、入力されるデューレーション値によって決定された時間量だけそのノートを持続させる。
【００４２】
ＰＤ３８は、ステップを「０」−「７」で規則的に繰り返しカウントするマスタクロック（図示せず）を持っている。つまり、Ｘ軸上にループする時間軸は８ステップに相当するので、ＰＤ３８がカウントをとるとき、時間軸上のステップとそれ自身のカードの位置とが一致するかどうかチェックする。それらが一致して、かつカードがトラッキングされていれば、ＰＤ３８は、ノートカード４６の位置や、回転、傾斜角度から、音の高さ、強弱、長さの値に変換して、シンセサイザすなわちＭＩＤＩ音源へ送るＭＩＤＩ値を生成する。
【００４３】
テーブル上のカードから起こる情報はすべてそのカードのシーケンサへ送られ、シーケンサによってＭＩＤＩ値が生成され、ＭＩＤＩの１チャネル上に送られる。シーケンサのそれぞれに対する値はＰＤ３８中の１つの配列に格納される。そして、この配列は、クリップボードの中のストレージにあるので、他のいくつかの配列の１つにコピーすることができる。
【００４４】
このようにして、オペレータは、１つのノートカードで１つの音を決め、たとえば図８に示すような１つのフレーズの音楽パターンを作ったときには、図９に示すフレーズ（phrase：小節）カード５６を用いて、それをフレーズとして保存することができる。具体的には後述する。
【００４５】
フレーズカード５６も先のノートカード４６と同様の矩形カードであるが、両者を容易に区別できるように、大きさを違えている。実施例ではフレーズカード５６がノートカード４６より大きい。フレーズカード５６は、その表面に形成されたたとえば矩形形状のフレーム５８と、そのフレーム５８内に表示されるフレーズカードマーカ６０とを含む。フレーム５８およびフレーズカードマーカ６０は、コンピュータ２０やオペレータによって読み取り可能な意味を持っている。すなわち、フレーム５８は、この中に識別するべきフレーズカードマーカ６０が記載されていることを意味し、フレーズカードマーカ６０は、このカードがフレーズカードであることを示す。
【００４６】
このフレーズカード５６にもそれに対応する表示モデルがＶＲＭＬ３６で生成される。図１０がフレーズカード５６の表示モデル６２を示す。この例では、フレーズカードモデル６２は、フレーズがノートの集合であることを直感させるように、図６に示したノートカードモデル５２を用いて表現されている。
【００４７】
オペレータがこのフレーズカード５６をテーブル１２上で操作するときにも、図１１に示すように、コンピュータ２０は、オペレータに対して当該フレーズカードの操作を目視によって確認させ得るように、カメラ１４から取り込んだフレーズカードの映像とフレーズカードモデルとを重畳表示する。したがって、オペレータは、この重畳表示映像を見ることによって、フレーズカード５６の操作の適否等を判断することができる。
【００４８】
なお、図１の実施例では、さらに、編集カードおよび楽器カードを使用できる。編集カードはフレーズカード５６に音楽パターンをコピーした後、元のノートカードがなくてもフレーズに格納されたノートパターンを再現し、編集するためのカードである。楽器カードは、オペレータないしユーザがテーブル上のすべてのノートまたはフレーズを演奏する楽器を任意に設定するためのカードである。図１２−図１４が編集カードを示し、図１５−図１７が楽器カードを示す。
【００４９】
編集カード６４は、図１２に示すように、表面に形成されたたとえば矩形形状のフレーム６６と、そのフレーム６６内に表示される編集カードマーカ６８とを含む。フレーム６６および編集カードマーカ６８は、コンピュータ２０およびオペレータによって読み取り可能な意味を持っている。すなわち、フレーム６６は、この中に識別するべき編集カードマーカ６８が記載されていることを意味し、その編集カードマーカ６８は、このカードが編集（エディット）カードであることを示す。
【００５０】
なお、この編集カード６４にもＶＲＭＬ３６によって作成した３次元グラフィックスをそれの表示モデルとして準備するが、編集カード６４の表示モデルの一例が図１３に示される。この実施例では、編集カードモデル７０は、矩形リングとその各辺に設けた両方向矢印とを含む。ただし、この編集カードモデル７０の具体的形状は単なる一例であり、任意に変更可能である。
【００５１】
編集カード６４が操作されるとき、図１４に示すように、図１３で示す編集カードモデル７０で編集カード６４が囲まれたような、重畳表示が映像モニタ１６上に表示される。
【００５２】
編集カード６４によれば、上述のようにフレーズカードに格納されていたノートのパターンを元のノートカードなしに再現することができので、ユーザまたはオペレータは、映像モニタ１６に表示されたノートカードモデルを見ながら各ノートのタイミング、ピッチ、音の強弱、長さを変更できる。
【００５３】
楽器カード７４は、図１５に示すように、表面に形成されたたとえば矩形形状のフレーム７６と、そのフレーム７６内に表示される楽器カードマーカ７８とを含む。フレーム７６および楽器カードマーカ７８は、コンピュータ２０およびオペレータによって読み取り可能な意味を持っている。すなわち、フレーム７６は、この中に識別するべき楽器カードマーカ７８が記載されていることを意味し、その楽器カードマーカ７８は、このカードが楽器（インスツルメント）カードであることを示す。
【００５４】
なお、この楽器カード７４にもＶＲＭＬ３６によって作成した表示モデルを準備するが、その表示モデルの一例が図１６に示される。この実施例では、楽器カードモデル８０は、環状に配置された８つの楽器のイラストを含む。ただし、表示される楽器の種類および数は、そのとき利用可能な楽器の種類および数に依存する。したがって、この楽器カードモデル８０の具体的形状や楽器イラストなどは単なる一例であり、任意に変更可能である。
【００５５】
楽器カード７４が操作されるとき、図１７に示すように、図１６で示す楽器カードモデル８０が楽器カードの映像と重畳表示される。そして、楽器カード７４をテーブル上で傾けると楽器モデルのメニューが回転し、それによって楽器を選択できるようになっている。つまり、この楽器カード７４を用いることによって、ユーザは、テーブル上のすべてのノート、あるいは個々のフレーズカードの楽器（音）を変更できる。たとえば、楽器カード７４をテーブル１２上のノートカードまたは適宜のフレーズカードの近くに置き、左または右に傾けると、楽器の種類が循環されて音色が変化する。好みの楽器に変換されれば楽器カード７４をテーブル１２の上面と平行にするか、もしくはノートカードやフレーズカードから離して、楽器を決定する。これにより、ＭＩＤＩ出力に適切な変更メッセージを送ることができる。
【００５６】
次に、図１のＲＯＭ２６に格納されているプログラム３２について、図１８−図２４のフロー図を参照して、詳細に説明する。
【００５７】
図１８のメインスレッドの最初のステップＳ１では、具体的に図１９に示す初期化処理
実行する。初期化処理では、コンピュータ２０すなわちＣＰＵ２２は、ステップＳ１１でカード情報を初期化するとともに、ステップＳ１３で初期ファイルの読込と各種パラメータの設定とを行う。続いて、ステップＳ１５でＵＰＤソケット４２をオープンしてネットに対応できるように設定する。その後、ＣＰＵ２２は、ステップＳ１７で、たとえばＭＩＤＩマップやオブジェクトデータを読み込むとともに、ステップＳ１９で各カードの表示モデル（ＶＲＭＬ）を読み込む。そして、ステップＳ２１で、たとえばFire Wireによる映像入力を許容するために、映像入力インタフェース２８（図１）オープンする。ステップＳ２３でカメラ１４（図１）のカメラパラメータを読み込み、ステップＳ２５で映像モニタ１６第２表示する表示画面を作成する。
【００５８】
そして、メインスレッドの次のステップＳ３で、ＣＰＵ２２は、カメラ１４からの映像信号をインタフェース２８を介して受ける。この映像入力に応じて、ＣＰＵ２２は、ＭＩＤＩスレッドを作成する。
【００５９】
ＭＩＤＩスレッドでは、ステップＳ５に示すように、カードのマーカ５０（図２）を検出し、そのカードの状態、たとえば回転や傾きをＡＲ Toolkit３４で取得する。それに応じて、ＣＰＵ２２は、それらの状態データに応じたＭＩＤＩメッセージを作成し、ＰＤ３８へ送信する（ステップＳ７）。つまり、テーブル１２上のカードから起こる情報はすべてそのカードのシーケンサへ送られ、シーケンサによってＭＩＤＩ値が生成され、ＭＩＤＩチャネル上に送られる。シーケンサのそれぞれに対する値はＰＤ３８中の１つの配列に格納される。
【００６０】
図１８の次のステップＳ７では、ＣＰＵ２２は、イベントループを実行する。このイベントループは、詳細には、図２０に示される。
【００６１】
図２０のステップＳ３１で、ＣＰＵ２２は、入力インタフェース２８から入力映像を、たとえばＲＡＭ２４（図１）に取り込む。そして、ステップＳ３３において、ＣＰＵ２２は、取り込んだ入力映像にカードのマーカが含まれるかどうか判断する。そして、このステップＳ３３で“ＹＥＳ”が判断されると、次のステップＳ３５において、ＣＰＵ２２は、そのカードのマーカの位置情報すなわちＸ座標およびＹ座標を検出する。その後、ステップＳ３７で、カード操作処理を実行する。
【００６２】
図２１に示すカード操作の最初のステップＳ５１では、ＣＰＵ２２は、検出したカードが編集カード６４（図１２）かどうか判断する。“ＹＥＳ”なら、次のステップＳ５３で、フレーズカード５６（図９）が既に選択されているかどうか判断する。つまり、編集カード６４をフレーズカード５６に近付けて編集カード５６を傾けると、フレーズカード５６に保存されていたノートパターンの位置、長さ、大きさが保存されたフレーズカードモデル６２（図１０）が、図１１に示すように、映像モニタ１６上で、フレーズカード５６の映像の上に重畳表示される。
【００６３】
そして、編集カード６４が検出されかつフレーズカード５６がすでに選択されているときには、続くステップＳ５５において、編集中かどうか判断する。このステップＳ５５において“ＹＥＳ”が判断されると、ＣＰＵ２２は、編集モードを終了させる。つまり、編集が終わって、編集カード６４をフレーズカード５６に近づけて傾けると、先のステップＳ５３で開かれていたノートパターンが再びフレーズカード５６に保存できる。
【００６４】
ステップＳ５５で“ＮＯ”を判断すると、次のステップＳ５９において、ＣＰＵ２２は、編集モードを開始させる。したがって、上述のようにして開いて映像モニタ１６上に表示されたノートパターンのノートカードモデルを掬い上げるように編集カード６４を潜り込ませると、編集カード６４の移動、回転、傾きの操作に対応して、ノートカードモデルの位置や回転、傾きを変更できる。したがって、設定したい所望の位置で編集カードモデル７０（図１３）を消す（編集カードの認識を一時的に停止させる）と、ノートカードモデルをその位置に置くことができる。
【００６５】
なお、ステップＳ５３でフレーズカード５６の選択が“ＮＯ”と判断されると、続くステップＳ６１において、ＣＰＵ２２は、編集中かどうか判断する。“ＹＥＳ”であれば、ステップＳ６３において、フレーズカード５６に保存されたノートをステップＳ５９で説明したように、編集する。たたし、ステップＳ６１で“ＮＯ”が判断されると、そのまま、先のステップＳ５７、Ｓ５９、Ｓ６３を実行したときと同様に、図２０のステップＳ３９にリターンする。
【００６６】
図２１のステップＳ５１で“ＮＯ”が判断されたとき、つまり、そのときにテーブル１２上に載せられたカードが編集カードではなかったとき、図２２のステップＳ６５において、ＣＰＵ５５は、そのカードがフレーズカード５６かどうか判断する。フレーズカードであれば、次のステップＳ６７で、ＣＰＵ２２は、そのフレーズカードの上方向位置（Ｚ軸）が所定の閾値を超えていないかどうか判断する。
【００６７】
閾値を超えていなければ、フレーズカード５６がカメラ１４に近付き過ぎていないので、次のステップＳ６９で、ＣＰＵ２２は、ノートパターンをフレーズカードにコピーまたは保存済みでないかどうか判断する。保存済みでなければ、ステップＳ７１でノートカード（ノートパターン）をフレーズカード５６に保存する。このようにして、フレーズカード５６によってノートカードで作成した音楽パターンをフレーズカードに保存することができる。
【００６８】
また、ステップＳ６７で“ＮＯ”を判断すると、つまり、フレーズカード５６が上方向に持ち上げられて一定以下の距離までカメラ１４に接近されると、ＣＰＵ２２は、フレーズカードの状態をリセットする。つまり、フレーズカード５６をカメラ１４に近付けると、フレーズカード５６に保存していたノートパターンを消去することができる。先のステップＳ７１を実行したとき、またはステップＳ７３を実行したとき、図２０のステップＳ３９にリターンする。
【００６９】
さらに、図２２のステップＳ６５で“ＮＯ”が判断されたとき、つまり、そのときテーブル１２上に載せられたカードが、編集カードでも、フレーズカードでもないときには、ＣＰＵ２２は、図２３に示す次のステップＳ７５で、そのカードが楽器カード７４（図１５）かどうか判断する。
【００７０】
“ＹＥＳ”なら、ステップＳ７５で、ＣＰＵ２２は、そのとき既にノートカード４６（図２）またはフレーズカード５６（図９）を選択しているかどうか、判断する。“ＹＥＳ”のときには、ステップＳ７７で、ＣＰＵ２２は、楽器番号０−７に対応した楽器カードモデル８０（図１６）を表示するとともに、ＭＩＤＩ値をＰＤ３８（図１）に出力する。したがって、楽器カード７４を傾けると、楽器カードモデルのメニューが回転する。そして、選択したい楽器が大きく表示されたとき、楽器カード７４をノートカード４６またはフレーズカード５６から離すと、楽器（音色）を決定することができる。
【００７１】
ステップＳ７５で“ＮＯ”が判断されたとき、ステップＳ７９で、そのときテーブル上にあるカードがノートカード４６であるかどうか判断する。“ＮＯ”であれば、そのまま、図２０のステップＳ３９にリターンする。
【００７２】
ステップＳ７９で“ＹＥＳ”が判断されたとき、つまり、そのときのカードがノートカード４６であった場合には、続くステップＳ８１で、ＣＰＵ２２は、そのノートカードを傾けているかどうか判断する。“ＹＥＳ”なら、ステップＳ８３で、先に説明したように、その傾きの方向および傾きの角度（程度）に応じて、デューレーション（音長）を設定し、それに応じた体長を有するノートカードモデル５２（図６）を表示するとともに、ＭＩＤＩ値をＰＤ３８に出力する。
【００７３】
ステップＳ８１で“ＮＯ”が判断されたとき、またはステップＳ８３が終了したとき、ステップＳ８５で、ノートカード４６を回転させているかどうか判断する。“ＮＯ”であれば、そのまま、図２０のステップＳ３９にリターンする。
【００７４】
ステップＳ８５で“ＹＥＳ”が判断されたとき、ステップＳ８７で、先に説明した様に、その回転の方向および回転角度（回転量）に応じて、ボリューム（音の強弱）を設定し、それに応じた数の毛５４を有するノートカードモデル５２（図６）を表示するとともに、ＭＩＤＩ値をＰＤ３８に出力する。
【００７５】
カード操作処理が終了すると、図２０のステップＳ３９においてＣＰＵ２２は、ネットワーク版かどうか、すなわち通信すべき相手先のシステムがあるかどうか判断する。“ＮＯ”の場合には、ＣＰＵ２２は、次のステップＳ４１において、ステップＳ３３で検出したマーカの上にＶＲＭＬモデルを描画して、たとえば図７に示すような重畳表示を実行する。
【００７６】
図２０のステップＳ３９で“ＹＥＳ”が判断されると、続くステップＳ４３で、ネットワーク処理を実行する。このネットワーク処理は、具体的には、図２４のサブルーチンとして実行される。
【００７７】
図２４の最初のステップＳ９１において、ＣＰＵ２２は、ノートカードの状態（位置、傾き、回転）が変わったかどうか判断する。“ＹＥＳ”なら、図１に示すソケット４２を使って、インタネット４４を通して、相手システムのコンピュータ２０（図１）に、その変化した情報を送信する（ステップＳ９３）。それとともに、ステップＳ９５で相手システムのコンピュータから、ソケット４２を通した受信データがあるかどうか判断する。
【００７８】
相手コンピュータから受信データがあるとき、ＣＰＵ２２は、ステップＳ９７で、その受信データに含まれるＭＩＤＩ値（音楽データ）に応じてＭＩＤＩ音源４０を制御する。したがって、このとき相手のノートが自分側のスピーカ１８で発音される。このステップＳ９７では、また、ＣＰＵ２２は、相手のノートカードの位置、回転、傾きに応じた花のモデル、すなわち相手システムで設定したノートを表す表示モデルを自分側のシステムの映像モニタ１６に表示する。
【００７９】
詳しくいうと、この実施例のシステム１０は、ネットワーク対応システムである。したがって、インタネットを通して相手のシステムと協働させることができる。相手システムと協働しているとき、各システムのオペレータはそれぞれ任意にノートカードやフレーズカードを用いて、作曲し、あるいは演奏させることができる。したがって、もし相手システムにおいてノートがどのように変化されているのか把握できなければ、互いに協働して作曲する場合に、かなり不便である。なぜなら、相手が変化していないと言う前提で自分側のノートを最適に設定したとしても、相手のノートが変化しているのであれば、その前提が覆り、再度調整しなければならない。そこで、この実施例のシステムでは、相手から受信したデータに含まれる相手のノートを可視的に表示するための相手ノートモデルを設定している。それが図２５に示される。
【００８０】
図２５に示す相手ノートモデル８２は、たとえば青色の花模様であり、音の大きさを花びら８４の数で示し、音の長さを葉８６の数で示すように設定されている。この相手ノートモデル８２もＶＲＭＬ３６によって作成される。そして、ステップＳ９７で、図２６に示すように、映像モニタ１６上に自分側の映像に重ねてその相手ノートモデル８２が表示されるのであるが、相手ノートモデル８２のモニタ１６上の表示位置は、相手システムのテーブル上での相手ノートカードの位置にそのまま対応している。つまり、相手ノートモデル８２の表示位置は、相手の作曲・演奏支援システムで作成したノートが示す音の高さに対応する位置である。そして、受信データに含まれる音の強弱（回転方向／角度）および音の長さ(傾き方向／角度)にそれぞれ応じた数の花びら８４および葉８６が表示される。つまり、強弱表示部である花びら８４および長さ表示部である葉８６は、それぞれ、受信データで示される強弱および長さに従って可変的に表示される。
【００８１】
このように、自分側では、スピーカから相手ノートの音が発音されるだけではなく、相手ノートモデル８２の表示位置で相手ノートカードの位置を知ることができるし、さらに花びら８４の数や葉８６の数で相手ノートカードの回転や傾きの状態、すなわち相手のノートの音の強弱や音の長さまで知ることができる。したがって、自分側では、相手システムの演奏が、音だけでなく、視覚的に構造やスケジュールが理解でき、遠隔地に離れた２つのシステムであっても、距離を感じることなく、きわめてスムーズに協働して作曲や演奏をすることができる。
【００８２】
なお、上述の実施例では２つのシステム１０がソケット４２によって結合され、インタネット４４を通して互いにデータを授受するものとして説明した。しかしながら、たとえばＬＡＮのような他のネットワークを用いる可能性を排除するものではない。
【００８３】
さらに、各カードのフレームやマーカの形状は、ＡＲToolkitが対応可能であれば、実施例で示した以外の形状に変更してもよい。
【００８４】
また、上述の実施例では、ノートカード４６の傾き角度で音の長さを決めたが、この音長は、ノートカード４６が傾斜している時間で決めるようにしてもよい。この場合、傾斜角度は、短い状態から長い状態へ変化するスピードに対応する。つまり、傾きを緩やかにするとノートカードモデル５２の串数がゆっくりと増減し、傾きを急角度にすると、はやく串数が増減する。そして、希望の長さのところで、ノートカード４６をフラットにすることでその長さを決めることができる。そして、ＰＤ３８へは、短い状態を「１」、長い状態を「１２７」として、傾いていた時間に応じたデューレーション値を送ることになる。
【図面の簡単な説明】
【００８５】
【図１】この発明の一実施例の作曲・演奏支援システムを示す図解図である。
【図２】図１実施例で用いるノートカード（音符カード）の一例を示す図解図である。
【図３】図１実施例における３次元座標上のノートカードの２次元情報の一例を示す図解図である。
【図４】図１実施例においてテーブル上のノートカードの傾きを変化させる状態を示す図解図である。
【図５】図１実施例においてテーブル上のノートカードの回転を変化させる状態を示す図解図である。
【図６】図１実施例におけるノートカードモデルの一例を示す図解図である。
【図７】図１実施例においてノートカードとノートカードモデルとが重畳表示される状態を示す図解図である。
【図８】フレーズの一例を示す図解図である。
【図９】図１実施例で用いるフレーズカードの一例を示す図解図である。
【図１０】図１実施例におけるフレーズカードモデルの一例を示す図解図である。
【図１１】図１実施例においてフレーズカードとフレーズカードモデルとが重畳表示される状態を示す図解図である。
【図１２】図１実施例で用いる編集カードの一例を示す図解図である。
【図１３】図１実施例における編集カードモデルの一例を示す図解図である。
【図１４】図１実施例において編集カードと編集カードモデルとが重畳表示される状態を示す図解図である。
【図１５】図１実施例で用いる楽器カードの一例を示す図解図である。
【図１６】図１実施例における楽器カードモデルの一例を示す図解図である。
【図１７】図１実施例において楽器カードと楽器カードモデルとが重畳表示される状態を示す図解図である。
【図１８】図１実施例のメインスレッドおよびＭＩＤＩスレッドを示すフロー図である。
【図１９】図１８のメインスレッドにおける初期化サブルーチンを示すフロー図である。
【図２０】図１８のメインスレッドにおけるイベントループを示すフロー図である。
【図２１】図２０のイベントループドにおけるカード操作処理のサブルーチンを示すフロー図である。
【図２２】図２１の続きを示すフロー図である。
【図２３】図２２の続きを示すフロー図である。
【図２４】図２０におけるネットワーク処理のサブルーチンを示すフロー図である。
【図２５】図１実施例において表示される相手ノートの表示モデルの一例を示す図解図である。
【図２６】図１実施例において映像モニタに自分側の映像と相手ノートモデルとを表示した例を示す図解図である。
【符号の説明】
【００８６】
１０  …作曲・演奏支援システム
１２  …テーブル
１４  …カメラ
１６  …映像モニタ
２０  …コンピュータ
２２  …ＣＰＵ
４２  …ソケット
４４  …インタネット
８２  …相手ノートモデル
【図１】
2005283858.tif 000003
【図２】
2005283858.tif 000004
【図３】
2005283858.tif 000005
【図４】
2005283858.tif 000006
【図５】
2005283858.tif 000007
【図６】
2005283858.tif 000008
【図７】
2005283858.tif 000009
【図８】
2005283858.tif 000010
【図９】
2005283858.tif 000011
【図１０】
2005283858.tif 000012
【図１１】
2005283858.tif 000013
【図１２】
2005283858.tif 000014
【図１３】
2005283858.tif 000015
【図１４】
2005283858.tif 000016
【図１５】
2005283858.tif 000017
【図１６】
2005283858.tif 000018
【図１７】
2005283858.tif 000019
【図１８】
2005283858.tif 000020
【図１９】
2005283858.tif 000021
【図２０】
2005283858.tif 000022
【図２１】
2005283858.tif 000023
【図２２】
2005283858.tif 000024
【図２３】
2005283858.tif 000025
【図２４】
2005283858.tif 000026
【図２５】
2005283858.tif 000027
【図２６】
2005283858.tif 000028