(57)【要約】      （修正有）【課題】製造コストを抑制しながら、他の電子音楽装置と音楽ファイルを適正に共有することが可能となる電子音楽装置およびその制御方法を実現するプログラムを提供する。【解決手段】ユーザが、ディレクトリ情報を取得したいファイルを電子楽器１００上で指示すると、電子楽器１００は、ターゲット・コントローラ１２に設けられた所定のエンドポイントにＤＩＲコマンドを設定する。このＤＩＲコマンドには、ユーザが指示したファイルのパスが含まれている。ホスト電子楽器２００は、ホスト電子楽器２００、電子楽器１００およびターゲット電子楽器３００のうち、そのＤＩＲコマンドに含まれるパスが示しているドライブ、つまり楽器を決定し、その決定された楽器の内蔵ストレージから、当該パスが示している位置にあるファイルのディレクトリ情報を取得して、電子楽器１００に送信する。【選択図】図２
2009237045.tif 000002
【特許請求の範囲】
【請求項１】
ホスト電子音楽装置とＵＳＢ接続する接続手段と、
該接続手段によってＵＳＢ接続された前記ホスト電子音楽装置が読み取り可能なバッファと、
前記ホスト電子音楽装置に対して音楽ファイルの操作を要求するコマンドを前記バッファに設定する設定手段と
を有することを特徴とする電子音楽装置。
【請求項２】
各種音楽ファイルおよびその関連情報を記憶する記憶手段を備えたターゲット電子音楽装置とＵＳＢ接続する接続手段と、
該接続手段によってＵＳＢ接続された前記ターゲット電子音楽装置をポーリングして、音楽ファイルの操作を要求するコマンドを取得する取得手段と、
各種音楽ファイルおよびその関連情報を記憶する記憶手段と、
該記憶手段および前記ターゲット電子音楽装置の前記記憶手段のうち、前記取得手段によって取得されたコマンドが示す音楽ファイルを格納している記憶手段に対して、当該コマンドが示すファイル操作を行うように制御する制御手段と
を有することを特徴とする電子音楽装置。
【請求項３】
ホスト電子音楽装置とＵＳＢ接続する接続手段と、該接続手段によってＵＳＢ接続された前記ホスト電子音楽装置が読み取り可能なバッファとを有する電子音楽装置を制御する制御方法をコンピュータに実行させるプログラムであって、
前記制御方法は、
前記ホスト電子音楽装置に対して音楽ファイルの操作を要求するコマンドを前記バッファに設定する設定ステップ
を有することを特徴とするプログラム。
【請求項４】
各種音楽ファイルおよびその関連情報を記憶する記憶手段を備えたターゲット電子音楽装置とＵＳＢ接続する接続手段と、各種音楽ファイルおよびその関連情報を記憶する記憶手段とを有する電子音楽装置を制御する制御方法をコンピュータに実行させるプログラムであって、
前記制御方法は、
前記接続手段によってＵＳＢ接続された前記ターゲット電子音楽装置をポーリングして、音楽ファイルの操作を要求するコマンドを取得する取得ステップと、
当該電子音楽装置の前記記憶手段および前記ターゲット電子音楽装置の前記記憶手段のうち、前記取得ステップによって取得されたコマンドが示す音楽ファイルを格納している記憶手段に対して、当該コマンドが示すファイル操作を行うように制御する制御ステップと
を有することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、他の電子音楽装置を接続し、該電子音楽装置と音楽ファイルを共有する電子音楽装置およびその制御方法を実現するプログラムに関する。
【背景技術】
【０００２】
他の装置を接続し、該装置と音楽ファイルを共有する電子音楽装置は、従来から知られている。
【０００３】
このような電子音楽装置として、ＰＣ（パーソナルコンピュータ）を接続し、そのＰＣ上で編集された設定情報をそのＰＣから受信するようにしたものがある（たとえば、特許文献１参照）。
【０００４】
他の装置を接続するためのインターフェース（Ｉ／Ｆ）には各種あるが、その中でＵＳＢ（universal serial bus）Ｉ／Ｆは安価なＩ／Ｆであり、電子楽器を含む電子音楽装置にも実装されるようになってきている。ＵＳＢＩ／Ｆは、一般的にはＵＳＢコントローラを採用し、これにソフトウェアを組み合わせることで実現される。ＵＳＢコントローラには、ホスト用のＵＳＢコントローラ（以下、「ＵＳＢホスト・コントローラ」という）とターゲット用のＵＳＢコントローラ（以下、「ＵＳＢターゲット・コントローラ」という）がある。接続させたい他の装置が、ＵＳＢホスト・コントローラを実装したホスト機器であり、電子音楽装置が専らターゲット機器（周辺機器）として機能する場合には、電子音楽装置にはＵＳＢターゲット・コントローラのみが実装されていればよい。
【特許文献１】特開２００５−１０７１１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、上記従来の電子音楽装置、すなわち、ＵＳＢターゲット・コントローラのみが実装された電子音楽装置では、ホスト機器としてＰＣを接続し、当該ＰＣとの間で音楽ファイルを共有するときは、音楽ファイルは、ＰＣ内に記憶されているものは言うに及ばず、電子音楽装置内に記憶されているものであっても、ＰＣ側から一方的に操作されるのみで、電子音楽装置側から、ＰＣ内に記憶されている音楽ファイルを操作することはできなかった。
【０００６】
ところで、ＰＣと電子音楽装置との間、あるいは電子音楽装置と電子音楽装置との間で、音楽ファイルを共有する方法として、ＵＳＢＩ／Ｆではなく、ＩＥＥＥ１３９４Ｉ／Ｆを用いる方法が考えられる。ＩＥＥＥ１３９４Ｉ／Ｆを用いてシステムを構成した場合、そのシステムに属する各機器はそれぞれ自立的に動作するので、いずれの機器からでも、他の機器内の音楽ファイルを自由に操作することができる。しかし、ＩＥＥＥ１３９４Ｉ／Ｆは、ＵＳＢＩ／Ｆに比較して高価であるために、各機器の製造コストが増大し、これによりシステム全体の製造コストも増大する。
【０００７】
本発明は、この点に着目してなされたものであり、製造コストを抑制しながら、他の電子音楽装置と音楽ファイルを適正に共有することが可能となる電子音楽装置およびその制御方法を実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、請求項１に記載の電子音楽装置は、ホスト電子音楽装置とＵＳＢ接続する接続手段と、該接続手段によってＵＳＢ接続された前記ホスト電子音楽装置が読み取り可能なバッファと、前記ホスト電子音楽装置に対して音楽ファイルの操作を要求するコマンドを前記バッファに設定する設定手段とを有することを特徴とする。
【０００９】
上記目的を達成するため、請求項２に記載の電子音楽装置は、各種音楽ファイルおよびその関連情報を記憶する記憶手段を備えたターゲット電子音楽装置とＵＳＢ接続する接続手段と、該接続手段によってＵＳＢ接続された前記ターゲット電子音楽装置をポーリングして、音楽ファイルの操作を要求するコマンドを取得する取得手段と、各種音楽ファイルおよびその関連情報を記憶する記憶手段と、該記憶手段および前記ターゲット電子音楽装置の前記記憶手段のうち、前記取得手段によって取得されたコマンドが示す音楽ファイルを格納している記憶手段に対して、当該コマンドが示すファイル操作を行うように制御する制御手段とを有することを特徴とする。
【００１０】
上記目的を達成するため、請求項３および４に記載の各プログラムは、それぞれ請求項１および２と同様の技術的思想によって実現できる。
【発明の効果】
【００１１】
請求項１または３に記載の発明によれば、接続手段によってＵＳＢ接続されたホスト電子音楽装置が読み取り可能なバッファに、当該ホスト電子音楽装置に対して音楽ファイルの操作を要求するコマンドを設定したので、ホスト電子音楽装置を介して、当該電子音楽装置およびホスト電子音楽装置のいずれの装置に格納されている音楽ファイルも操作でき、これにより、製造コストを抑制しながら、他の電子音楽装置、つまりホスト電子音楽装置と音楽ファイルを適正に共有することが可能となる。
【００１２】
請求項２または４に記載の発明によれば、接続手段によってＵＳＢ接続されたターゲット電子音楽装置をポーリングして、音楽ファイルの操作を要求するコマンドを取得し、当該電子音楽装置の記憶手段および前記ターゲット電子音楽装置の記憶手段のうち、前記取得したコマンドが示す音楽ファイルを格納している記憶手段に対して、当該コマンドが示すファイル操作を行うように制御したので、ホスト機器である当該電子音楽装置を介して、当該電子音楽装置およびターゲット電子音楽装置のいずれの装置に格納されている音楽ファイルも操作でき、これにより、製造コストを抑制しながら、他の電子音楽装置、つまりターゲット電子音楽装置と音楽ファイルを適正に共有することが可能となる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００１４】
図１は、本発明の一実施の形態に係る電子音楽装置を適用した電子楽器１００の概略構成を示すブロック図である。
【００１５】
同図に示すように、電子楽器１００は、演奏情報を入力するための鍵盤を含む演奏操作子１と、各種情報を入力するための複数のスイッチやホイール、ジョイスティックを含む設定操作子２と、演奏操作子１の操作状態を検出する検出回路３と、設定操作子２の操作状態を検出する検出回路４と、装置全体の制御を司るＣＰＵ５と、該ＣＰＵ５が実行する制御プログラムや各種テーブルデータ等を記憶するＲＯＭ６と、演奏情報、各種入力情報および演算結果等を一時的に記憶するＲＡＭ７と、タイマ割込み処理における割込み時間や各種時間を計時するタイマ８と、各種情報等を表示する、たとえば液晶ディスプレイ（ＬＣＤ）および発光ダイオード（ＬＥＤ）等からなる表示器９と、各種楽曲データ等を記憶する不揮発性メモリ１０と、前記制御プログラムを含む各種アプリケーションプログラムや各種楽曲データ、各種データ等を記憶する外部記憶装置１１と、ＵＳＢターゲット・コントローラ１２と、外部からのＭＩＤＩ（musical instrument digital interface）メッセージを入力したり、ＭＩＤＩメッセージを外部に出力したりするＭＩＤＩインターフェース（Ｉ／Ｆ）１３と、通信ネットワーク５１０を介して、たとえばサーバコンピュータ（以下、「サーバ」と略して言う）５００とデータの送受信を行う通信インターフェース（Ｉ／Ｆ）１４と、演奏操作子１から入力された演奏情報や前記記憶された楽曲データ等をオーディオ信号に変換する音源回路１５と、該音源回路１５からのオーディオ信号に各種効果を付与するための効果回路１６と、該効果回路１６からのオーディオ信号を音響に変換する、たとえば、ＤＡＣ（digital-to-analog converter）やアンプ、スピーカ等のサウンドシステム１７とにより構成されている。
【００１６】
上記構成要素３〜１６は、バス１８を介して相互に接続され、ＣＰＵ５にはタイマ８が接続され、ＵＳＢターゲット・コントローラ１２には、ハブ（ＨＵＢ）２２０を介してホスト電子楽器２００および他のターゲット電子楽器３００が接続され、ＭＩＤＩＩ／Ｆ１３にはＭＩＤＩ機器４００が接続され、通信Ｉ／Ｆ１４には通信ネットワーク５１０が接続され、音源回路１５には効果回路１６が接続され、効果回路１６にはサウンドシステム１７が接続されている。ここで、通信Ｉ／Ｆ１４および通信ネットワーク５１０は、有線方式のものに限らず、無線方式のものであってもよい。また、両方式のものを備えていてもよい。
【００１７】
不揮発性メモリ１０としては、たとえば、ＮＶ（non volatile）ＲＡＭや電源バックアップされたＲＡＭ、フラッシュメモリ等を挙げることができる。不揮発性メモリ１０には、電子楽器１００の電源をオフしたときでも、保持しておくべき設定内容（前記各種楽曲データを含む）が記憶される。なお、各楽曲データは、ファイル形式で不揮発性メモリ１０に記憶される。
【００１８】
外部記憶装置１１としては、たとえば、フレキシブルディスクドライブ（ＦＤＤ）、ハードディスクドライブ（ＨＤＤ）、ＣＤ−ＲＯＭドライブおよび光磁気ディスク（ＭＯ）ドライブ等を挙げることができる。そして、外部記憶装置１１には、前述のように、ＣＰＵ５が実行する制御プログラムも記憶でき、ＲＯＭ６に制御プログラムが記憶されていない場合には、この外部記憶装置１１に制御プログラムを記憶させておき、それをＲＡＭ７に読み込むことにより、ＲＯＭ６に制御プログラムを記憶している場合と同様の動作をＣＰＵ５にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。なお、各楽曲データは、ファイル形式で外部記憶装置１１に記憶される。
【００１９】
通信Ｉ／Ｆ１４は、上述のように、たとえばＬＡＮ（local area network）やインターネット、電話回線等の通信ネットワーク５１０に接続されており、該通信ネットワーク５１０を介して、サーバ５００に接続される。外部記憶装置１１に上記各プログラムや各種パラメータが記憶されていない場合には、通信Ｉ／Ｆ１４は、サーバ５００からプログラムやパラメータをダウンロードするために用いられる。クライアントとなる電子楽器１００は、通信Ｉ／Ｆ１４および通信ネットワーク５１０を介してサーバ５００へとプログラムやパラメータのダウンロードを要求するコマンドを送信する。サーバ５００は、このコマンドを受け、要求されたプログラムやパラメータを、通信ネットワーク５１０を介して電子楽器１００へと配信し、電子楽器１００が通信Ｉ／Ｆ１４を介して、これらプログラムやパラメータを受信して外部記憶装置１１に蓄積することにより、ダウンロードが完了する。
【００２０】
なお、電子楽器１００は、上述の構成から分かるように、電子鍵盤楽器上に構築されたものであるが、鍵盤楽器の実施形態に限らず、弦楽器タイプ、管楽器タイプ、打楽器タイプ等の他の実施形態でもよい。また、ミキサなどの音響機器上に本発明を構築するようにしてもよい。その場合には、楽音信号をミキシングするための信号処理回路やＡＤ／ＤＡ変換回路などは必須の構成要素であるが、音源回路は必須の構成要素ではない。
【００２１】
ホスト電子楽器２００およびターゲット電子楽器３００の各ハードウェア構成は、電子楽器１００の上記ハードウェア構成と同様の構成を採るようにしてもよいし、あるいは、電子楽器１００の上記構成要素のうち、必須の構成要素（たとえば、構成要素１〜１１）を含んだ構成を採るようにしてもよい。ただし、ホスト電子楽器２００には、前記ＵＳＢターゲット・コントローラ１２に替えて（あるいは、それとともに）、ＵＳＢホスト・コントローラを設ける必要がある。
【００２２】
なお、本実施の形態では、電子楽器１００をターゲット機器として構成したが、これに限らず、ＵＳＢターゲット・コントローラ１２に替えて、ＵＳＢホスト・コントローラ２０を採用し、電子楽器１００をホスト機器として構成しても、本発明を実現することができる。この場合、ハブ２２０を介して、２つのターゲット電子楽器３００，３００′を接続するようにすればよい。もちろん、接続するターゲット機器は、２つに限らず、１つでもよいし、３つ以上であってもよい。
【００２３】
また、ハブ２２０は、ホスト電子楽器２００に内蔵されて外見上一体となっていてもよいし、ターゲット電子楽器３００に内蔵されて外見上一体となっていてもよい。
【００２４】
図２は、電子楽器１００およびホスト電子楽器２００の各ソフトウェア構成を示すブロック図である。同図には、説明の都合上、各ソフトウェアによって制御されるハードウェア（具体的には、ＵＳＢホスト・コントローラ（以下、「ホスト・コントローラ」と略す）２００ａ、ＵＳＢターゲット・コントローラ（以下、「ターゲット・コントローラ」と略す）１２および内蔵ストレージ２００ｂ，３０）も記載されている。なお、内蔵ストレージ２００ｂ，３０はいずれも、本実施の形態では、説明を簡単化するために１つのみ設けられているとする。したがって、内蔵ストレージ３０には、前記外部記憶装置１１または不揮発性メモリ１０のいずれか、たとえば外部記憶装置１１が対応付けられるものとする。また、本実施の形態では、電子楽器１００とターゲット電子楽器３００とは、同じソフトウェア構造を備えているものとする。さらに、ホスト・コントローラ２００ａは、ホスト電子楽器２００に備えられたＵＳＢホスト・コントローラであるのに対して、図１のＵＳＢホスト・コントローラ２０は、電子楽器１００をホスト機器として構成した場合に、電子楽器１００に備えられるＵＳＢホスト・コントローラである。つまり、両者は、同じものではない。
【００２５】
ターゲット用のソフトウェアは、図２に示すように、最下位層に位置するターゲット・コントローラ・ドライバ１０１と、その上位層に位置するターゲット側マスストレージ・ファンクション・ドライバ１０２ａおよびターゲット側コマンド通信ファンクション・ドライバ１０２ｂと、その上位層（アプリケーション・ソフトウェア層）に位置する制御部１０４とよって構成されている。
【００２６】
ターゲット・コントローラ・ドライバ１０１は、ターゲット・コントローラ１２に依存したドライバ層のソフトウェアであり、ターゲット・コントローラ１２に対するＩ／Ｏ処理や割り込み処理などを行う。
【００２７】
ターゲット側マスストレージ・ファンクション・ドライバ１０２ａは、ホスト電子楽器２００から送信されてきたファイルの読み出しコマンド（操作）に応じて、内蔵ストレージ３０に格納されているファイルを、内蔵ストレージ・ドライバ１０３を介して読み出し、ターゲット・コントローラ・ドライバ１０１を介してターゲット・コントローラ１２に設定する処理や、ホスト電子楽器２００から送信されてきたファイルの書き込みコマンド（操作）に応じて、その書き込みコマンドに続いてホスト電子楽器２００から送信されてきたファイルを、内蔵ストレージ・ドライバ１０３を介して内蔵ストレージ３０に書き込む処理などを行う。
【００２８】
ターゲット側コマンド通信ファンクション・ドライバ１０２ｂは、制御部１０４によって生成された各種コマンド（後述するＤＩＲコマンドおよびＣＯＰＹコマンドを含む）を、ターゲット・コントローラ・ドライバ１０１を介してターゲット・コントローラ１２に設定する処理や、特にＤＩＲコマンドのターゲット・コントローラ１２への設定に応じて、ターゲット・コントローラ１２がホスト電子楽器２００から受信したディレクトリ情報を、ターゲット・コントローラ１２から取得する処理などを行う。
【００２９】
内蔵ストレージ・ドライバ１０３は、制御部１０４の指示に従って、内蔵ストレージ３０に記憶されている各種ファイルやそのディレクトリ情報を読み出す処理や、ホスト電子楽器２００から送信されてきたファイルを内蔵ストレージ３０に書き込む処理などを行う。
【００３０】
制御部１０４は、その下位層のソフトウェア（図示例では、ターゲット側マスストレージ・ファンクション・ドライバ１０２ａ、ターゲット側コマンド通信ファンクション・ドライバ１０２ｂおよび内蔵ストレージ・ドライバ１０３）を制御する。
【００３１】
ホスト用のソフトウェアの構成も、上記ターゲット用のソフトウェアの構成と同様に、最下位層に位置するホスト・コントローラ・ドライバ２０１と、その上位層に位置するホスト側マスストレージ・クラス・ドライバ２０２ａおよびホスト側コマンド通信クラス・ドライバ２０２ｂと、その上位層（アプリケーション・ソフトウェア層）に位置する制御部２０４とよって構成されている。
【００３２】
ホスト・コントローラ・ドライバ２０１は、ホスト・コントローラ２００ａに依存したドライバ層のソフトウェアであり、ホスト・コントローラ２００ａに対するＩ／Ｏ処理や割り込み処理、ホスト・コントローラ２００ａに依存するスケジューリング処理などを行う。
【００３３】
ホスト側マスストレージ・クラス・ドライバ２０２ａは、ターゲット機器（本実施の形態では、電子楽器１００およびターゲット電子楽器３００）（の内蔵ストレージ）に記憶されている各種ファイルやそのディレクトリ情報の読み出し要求を当該ターゲット機器に送信し、これに応じて当該ターゲット機器が送信してきた各種ファイルやそのディレクトリ情報を受信する処理や、ホスト電子楽器２００内のバッファ（図示せず）に記憶されているファイルをターゲット機器（の内蔵ストレージ）に書き込む書き込み要求を当該ターゲット機器に送信し、この書き込み要求に続いて、書き込むべきファイルを当該ターゲット機器に送信することで、そのファイルを当該ターゲット機器に書き込ませる処理などを行う。
【００３４】
ホスト側コマンド通信クラス・ドライバ２０２ｂは、ターゲット機器を常時ポーリングし、ターゲット機器（のターゲット・コントローラ）に何らかのコマンドが設定されたときに、そのコマンドを取得する処理や、要求元のターゲット機器にディレクトリ情報を送信する処理などを行う。
【００３５】
内蔵ストレージ・ドライバ２０３は、制御部２０４の指示に従って、内蔵ストレージ２００ｂに記憶されている各種ファイルやそのディレクトリ情報を読み出す処理や、前記バッファに記憶されているファイルを内蔵ストレージ２００ｂに書き込む処理などを行う。
【００３６】
制御部２０４は、その下位層のソフトウェア（図示例では、ホスト側マスストレージ・クラス・ドライバ２０２ａ、ホスト側コマンド通信クラス・ドライバ２０２ｂおよび内蔵ストレージ・ドライバ２０３）を制御する。
【００３７】
以上のように構成された電子楽器１００およびホスト電子楽器２００が実行する各制御処理を、まずその概要を説明し、次に図３および図４を参照して詳細に説明する。
【００３８】
電子楽器１００は、ホスト電子楽器２００と協働して、
（１）ＤＩＲ（ディレクトリ）情報取得処理
（２）ファイル取得処理
の各処理を行う。
【００３９】
ユーザが、ディレクトリ情報を取得したいファイルを電子楽器１００上で指示すると、上記（１）のＤＩＲ情報取得処理が起動され、電子楽器１００は、前記ターゲット・コントローラ１２に設けられた所定のエンドポイントにＤＩＲコマンドを設定する。このＤＩＲコマンドには、ユーザが指示したファイルのパスが含まれている。ホスト電子楽器２００は、電子楽器１００の上記所定のエンドポイントを常時ポーリングしており、上記所定のエンドポイントにＤＩＲコマンドが設定されると、ホスト電子楽器２００は、ホスト電子楽器２００、電子楽器１００およびターゲット電子楽器３００のうち、そのＤＩＲコマンドに含まれるパスが示しているドライブ、つまり楽器を決定し、その決定された楽器の内蔵ストレージから、当該パスが示している位置にあるファイルのディレクトリ情報を取得して、電子楽器１００に送信する。電子楽器１００は、ホスト電子楽器２００からのディレクトリ情報を受信し、たとえば前記表示器９上に表示する。このように、上記（１）ＤＩＲ情報取得処理によれば、ターゲット機器である電子楽器１００にホスト機器（本実施の形態では、ホスト電子楽器２００）がＵＳＢ接続されていれば、電子楽器１００は、そのホスト電子楽器２００を介して、電子楽器１００にＵＳＢ接続されたいずれの機器（電子楽器１００を含む）の内蔵ストレージに記憶されているいずれのファイルのディレクトリ情報も得ることができる。
【００４０】
ユーザが、上述のようにして得られたディレクトリ情報を参照して、あるファイル（以下、「ソースファイル」という）を読み出して、ある楽器（電子楽器１００および電子楽器１００にＵＳＢ接続された機器（ホスト電子楽器２００およびターゲット電子楽器３００）のうちのいずれか）の内蔵ストレージに書き込む指示を電子楽器１００上で行うと、前記（２）のファイル取得処理が起動され、電子楽器１００は、前記所定のエンドポイントにＣＯＰＹコマンドを設定する。このＣＯＰＹコマンドには、ユーザが読み出し指示したソースファイルのパスと、そのソースファイルの格納先であるデスティネーションが含まれている。上述のように、ホスト電子楽器２００は、電子楽器１００の上記所定のエンドポイントを常時ポーリングしており、上記所定のエンドポイントにＣＯＰＹコマンドが設定されると、まずホスト電子楽器２００は、ホスト電子楽器２００、電子楽器１００およびターゲット電子楽器３００のうち、ＣＯＰＹコマンドに含まれるパスが示しているドライブ、つまり楽器を決定し、その決定された楽器の内蔵ストレージから、当該パスが示している位置にあるソースファイルを取得して、自身の前記バッファに書き込む。次にホスト電子楽器２００は、ＣＯＰＹコマンドに含まれるデスティネーションが示しているドライブ、つまり楽器を決定し、その決定された楽器の内蔵ストレージに、前記バッファから読み出したソースファイルを書き込む。このように、上記（２）ファイル取得処理によれば、ターゲット機器である電子楽器１００にホスト機器（本実施の形態では、ホスト電子楽器２００）がＵＳＢ接続されていれば、電子楽器１００は、そのホスト電子楽器２００を介して、電子楽器１００にＵＳＢ接続されたいずれの機器（電子楽器１００を含む）の内蔵ストレージに記憶されたいずれのファイルも読み出して、電子楽器１００にＵＳＢ接続されたいずれの機器（電子楽器１００を含む）の内蔵ストレージに記憶させる、つまりコピーすることができる。
【００４１】
以上のように、本実施の形態では、他の電子楽器と、ＵＳＢという安価な接続Ｉ／Ｆを用いて接続しながら、他の電子音楽装置と音楽ファイルを適正に共有することができる。      
【００４２】
次に、この制御処理を詳細に説明する。
【００４３】
図３は、電子楽器１００およびホスト電子楽器２００がそれぞれ実行する各ＤＩＲ情報取得処理の手順を示すフローチャートである。
【００４４】
ユーザが、ディレクトリ情報を取得したいファイルを電子楽器１００上で指示すると、電子楽器１００は、ＤＩＲ情報取得処理（ターゲット側）を起動する。このＤＩＲ情報取得処理では、まず制御部１０４が、ユーザが指示したファイルのパスを含むＤＩＲコマンドを生成し、生成したＤＩＲコマンドをターゲット側コマンド通信ファンクション・ドライバ１０２ｂに渡す。ターゲット側コマンド通信ファンクション・ドライバ１０２ｂは、このＤＩＲコマンドを、ターゲット・コントローラ・ドライバ１０１を介してターゲット・コントローラ１２の所定のエンドポイントに設定する（書き込む）（ステップＳ１０１）。本実施の形態では、ホスト機器とターゲット機器とのコマンド／データ転送をバルク・オンリで行うものとすると、ターゲット機器からホスト機器へのコマンド／データ転送は、バルクＩＮエンドポイントを使って行われ、ホスト機器からコマンド／データ転送へのコマンド／データ転送は、バルクＯＵＴエンドポイントを使って行われる。したがって、上記ステップＳ１０１で、ＤＩＲコマンドを設定するエンドポイントは、本実施の形態では、バルクＩＮエンドポイントである。
【００４５】
ホスト電子楽器２００のホスト側コマンド通信クラス・ドライバ２０２ｂは、バルクＩＮエンドポイントを常時ポーリングし、バルクＩＮエンドポイントに何らかのコマンドが設定されると、そのコマンドを取得する。バルクＩＮエンドポイントにＤＩＲコマンドが設定されてから、ホスト側コマンド通信クラス・ドライバ２０２ｂがバルクＩＮエンドポイントをポーリングすると、ホスト側コマンド通信クラス・ドライバ２０２ｂは、そのＤＩＲコマンドを取得する（ステップＳ２０１）。取得されたＤＩＲコマンドは、前記制御部２０４に渡され、制御部２０４は、このＤＩＲコマンドに含まれるパスが自身の内蔵ストレージ２００ｂを示しているかどうかを判別する（ステップＳ２０２）。
【００４６】
この判別の結果、当該パスが自身の内蔵ストレージ２００ｂを示していないときには、制御部２０４は、ホスト側マスストレージ・クラス・ドライバ２０２ａ経由で、当該パスが示す楽器の内蔵ストレージの、当該パスが示す位置に格納されているファイルのディレクトリ情報を読み出す（ステップＳ２０３）。具体的には、制御部２０４は、当該パスが示すターゲット機器（本実施の形態では、電子楽器１００またはターゲット電子楽器３００のいずれか）に対して、そのターゲット機器の内蔵ストレージ中、当該パスが示す位置のファイルのディレクトリ情報を送信して欲しい旨の指示コマンドを生成し、生成した指示コマンドを、ホスト側マスストレージ・クラス・ドライバ２０２ａおよびホスト・コントローラ・ドライバ２０１を介して、バルクＯＵＴエンドポイントに設定する。これに応じて、当該パスが示すターゲット機器は、送信依頼されたディレクトリ情報を読み出して、バルクＩＮエンドポイントに設定する。ホスト側マスストレージ・クラス・ドライバ２０２ａは、バルクＩＮエンドポイントに設定されたディレクトリ情報を受信し、制御部２０４に渡す。制御部２０４は、このディレクトリ情報を自身のバッファに書き込む（ステップＳ２０３）。
【００４７】
一方、前記ステップＳ２０２の判別の結果、当該パスが自身の内蔵ストレージ２００ｂを示しているときには、制御部２０４は、内蔵ストレージ・ドライバ２０３経由で、自身の内蔵ストレージ２００ｂの、当該パスが示す位置に格納されているファイルのディレクトリ情報を読み出し、このディレクトリ情報を前記バッファに書き込む（ステップＳ２０４）。
【００４８】
このようにして、バッファにディレクトリ情報が書き込まれると、ホスト側コマンド通信クラス・ドライバ２０２ｂは、要求元のターゲット機器、つまり電子楽器１００に、バッファから読み出したディレクトリ情報を送信する（ステップＳ２０５）。
【００４９】
電子楽器１００のターゲット側コマンド通信クラス・ドライバ１０２ｂは、ホスト電子楽器２００からのディレクトリ情報を受信する（ステップＳ１０２）。受信したディレクトリ情報は、制御部１０４に渡され、制御部１０４は、このディレクトリ情報を、たとえば前記表示器９上に表示する。
【００５０】
なお、本実施の形態では、ディレクトリ情報を取得したいファイルを電子楽器１００上で指示する際には、ユーザは、どのようなファイルが、電子楽器１００を含む、電子楽器１００にＵＳＢ接続された機器（ホスト電子楽器２００およびターゲット電子楽器３００）の内蔵ストレージに記憶されているかを知っていなければならない。これをユーザに知らせる方法としては、電子楽器１００を含む、電子楽器１００にＵＳＢ接続された機器のすべての内蔵ストレージに記憶されているすべてのファイルの、たとえば名称を取得し、その名称の一覧を電子楽器１００の表示器９上に表示させる方法が考えられる。この方法は、上記図３のＤＩＲ情報取得処理に少々の変更を加えることで、簡単に実現することができる。具体的には、前記ステップＳ１０１の処理を、電子楽器１００を含む、電子楽器１００にＵＳＢ接続された機器の内蔵ストレージのそれぞれに対して、当該内蔵ストレージに記憶されているすべてのファイルの名称を要求するＤＩＲコマンドを生成する処理に変更する。そして、この変更後の処理を定期的に実行すれば、ユーザは、どのようなファイルが、電子楽器１００を含む、電子楽器１００にＵＳＢ接続された機器の内蔵ストレージに記憶されているかを、電子楽器１００上で常に確認することができる。
【００５１】
図４は、電子楽器１００およびホスト電子楽器２００がそれぞれ実行する各ファイル取得処理の手順を示すフローチャートである。
【００５２】
ユーザが、前述のようにして得られたディレクトリ情報を参照して、あるソースファイルを読み出して、ある楽器（本実施の形態では、電子楽器１００、ホスト電子楽器２００およびターゲット電子楽器３００のうちのいずれか）の内蔵ストレージに書き込む指示を電子楽器１００上で行うと、電子楽器１００は、ファイル取得処理（ターゲット側）を起動する。このファイル取得処理では、まず制御部１０４が、ユーザが読み出し指示したソースファイルのパスと、そのソースファイルの格納先であるデスティネーションを含むＣＯＰＹコマンドを生成し、生成したＣＯＰＹコマンドをターゲット側コマンド通信ファンクション・ドライバ１０２ｂに渡す。ターゲット側コマンド通信ファンクション・ドライバ１０２ｂは、このＤＩＲコマンドを、ターゲット・コントローラ・ドライバ１０１を介してターゲット・コントローラ１２の前記バルクＩＮエンドポイントに設定する（書き込む）（ステップＳ１１１）。
【００５３】
ホスト電子楽器２００のホスト側コマンド通信クラス・ドライバ２０２ｂは、前記ステップＳ２０１の処理と同様にして、バルクＩＮエンドポイントを常時ポーリングし、バルクＩＮエンドポイントに設定されたＣＯＰＹコマンドを取得する（ステップＳ２１１）。取得されたＣＯＰＹコマンドは、制御部２０４に渡され、制御部２０４は、このＣＯＰＹコマンドに含まれるパスが自身の内蔵ストレージ２００ｂを示しているかどうかを判別する（ステップＳ２１２）。この判別の結果、当該パスが自身の内蔵ストレージ２００ｂを示していないときには、制御部２０４は、ホスト側マスストレージ・クラス・ドライバ２０２ａ経由で、当該パスが示す楽器の内蔵ストレージの、当該パスが示す位置に格納されているファイルを読み出す（ステップＳ２１３）。具体的には、制御部２０４は、当該パスが示すターゲット機器（本実施の形態では、電子楽器１００またはターゲット電子楽器３００のいずれか）に対して、そのターゲット機器の内蔵ストレージ中、当該パスが示す位置のファイルを読み出して欲しい旨の読み出しコマンドを生成し、生成した読み出しコマンドを、ホスト側マスストレージ・クラス・ドライバ２０２ａおよびホスト・コントローラ・ドライバ２０１を介して、バルクＯＵＴエンドポイントに設定する。これに応じて、当該パスが示すターゲット機器は、読み出し依頼されたファイルを読み出して、バルクＩＮエンドポイントに設定する。そのターゲット機器が、たとえば電子楽器１００であるとすると、ターゲット側コマンド通信ファンクション・ドライバ１０２ｂは、バルクＯＵＴエンドポイントに設定された読み出しコマンドを検知し、その読み出しコマンドによって指示されるソースファイルを内蔵ストレージ３０から読み出して（ステップＳ１１２→Ｓ１１３）、バルクＩＮエンドポイントに設定する（ステップＳ１１４）。ホスト側マスストレージ・クラス・ドライバ２０２ａは、バルクＩＮエンドポイントに設定されたソースファイルを受信し、制御部２０４に渡す。制御部２０４は、このディレクトリ情報を自身のバッファに書き込む（ステップＳ２１３）。
【００５４】
一方、前記ステップＳ２１２の判別の結果、当該パスが自身の内蔵ストレージ２００ｂを示しているときには、制御部２０４は、内蔵ストレージ・ドライバ２０３経由で、自身の内蔵ストレージ２００ｂの、当該パスが示す位置に格納されているファイルを読み出し、このファイルを前記バッファに書き込む（ステップＳ２１４）。
【００５５】
次に制御部２０４は、前記ＣＯＰＹコマンドに含まれるデスティネーションが自身の内蔵ストレージ２００ｂを示しているかどうかを判別する（ステップＳ２１５）。この判別の結果、当該デスティネーションが自身の内蔵ストレージ２００ｂを示していないときには、制御部２０４は、ホスト側マスストレージ・クラス・ドライバ２０２ａ経由で、当該デスティネーションが示す楽器の内蔵ストレージに、前記バッファに格納されているソースファイルを書き込む（ステップＳ２１６）。具体的には、制御部２０４は、当該デスティネーションが示すターゲット機器（本実施の形態では、電子楽器１００またはターゲット電子楽器３００のいずれか）に対して、そのターゲット機器の内蔵ストレージにソースファイルを書き込んで欲しい旨の書き込みコマンドを生成し、生成した書き込みコマンドを、ホスト側マスストレージ・クラス・ドライバ２０２ａおよびホスト・コントローラ・ドライバ２０１を介して、バルクＯＵＴエンドポイントに設定した後、バッファに格納されているソースファイルを読み出して、バルクＯＵＴエンドポイントに設定する。これに応じて、当該デスティネーションが示すターゲット機器は、書き込み依頼されたソースファイルを読み出して、自身の内臓ストレージに書き込む。そのターゲット機器が、たとえば電子楽器１００であるとすると、ターゲット側コマンド通信ファンクション・ドライバ１０２ｂは、バルクＯＵＴエンドポイントに設定された書き込みコマンドを検知し、その書き込みコマンドに続いて設定されるソースファイルを内蔵ストレージ３０に書き込む（ステップＳ１１５→Ｓ１１６）。
【００５６】
一方、ステップＳ２１５の判別の結果、当該デスティネーションが自身の内蔵ストレージ２００ｂを示しているときには、制御部２０４は、内臓ストレージ・ドライバ２０３経由で、前記バッファに格納されているソースファイルを自身の内蔵ストレージ２００ｂに書き込む（ステップＳ２１７）。
【００５７】
なお、本実施の形態では、音楽ファイルに関連するファイル操作の例として、ディレクトリ情報取得および音楽ファイル取得を挙げたが、これはあくまでも例示に過ぎず、他のファイル操作であっても、もちろん構わない。
【００５８】
具体的には、対象とする音楽ファイル（たとえば、演奏データ）から一部分のデータを読み出して、アプリケーション・ソフトウェア（たとえば、自動演奏ソフトウェア）で利用するようにする、単なる読み出し操作が考えられる。この操作は、ファイル取得処理（図４）とほぼ同様の処理によって実現できる。つまり、ファイル取得処理において、ファイル全体ではなく、ファイルの一部領域のデータを取得するようにするとともに、最終的にファイルの書き込みをするのではなく、ファイルの一部領域のデータをアプリケーション・ソフトウェアで利用するようにする。
【００５９】
あるいは、所定のデータによって、対象とする電子楽器の記憶装置のファイルの一部を書き換えるような、単なる書き込み操作が考えられる。この操作も、ファイル取得処理（図４）と同様の処理によって実現できる。つまり、ファイル取得処理において、ファイル全体ではなく、一部分のデータを書き込むようにするとともに、最終的にストレージにファイルを書き込むのではなく、既存ファイルの一部を書き換えるようにする。
【００６０】
あるいは、対象とするファイルを削除する操作が考えられる。この操作は、ＤＩＲ情報取得処理（図３）と同様の処理によって実現できる。つまり、ＤＩＲ情報取得処理において、ＤＩＲ情報取得コマンドに代えて、ファイル削除コマンドを採るようにし（Ｓ１０１，Ｓ１０２）、ＤＩＲ情報を取得する処理に代えて、ファイルを削除する処理を採るようにし（Ｓ２０３，Ｓ２０４）、ＤＩＲ情報の送受信を不要とする（Ｓ１０２，Ｓ２０５）。
【００６１】
あるいは、音楽ファイルを取得した直後に、元の音楽ファイルを削除することにより、音楽ファイルを移動させる操作が考えられる。
【００６２】
あるいは、操作対象となる音楽ファイルにパーミッション属性を付与する操作が考えられる。この操作によって、音楽ファイルにパーミッション属性が付与されると、そのパーミッション属性によってファイル操作が制限されるようにしてもよい。
【００６３】
以上の操作をする際、ディレクトリ情報取得および音楽ファイル取得の例と同様の仕組みにより、ホスト側からターゲット側への操作であっても、ターゲット側からホスト側への操作であっても、同様に行われることは言うまでもない。
【００６４】
なお、本実施の形態では、ホスト機器とターゲット機器とのコマンド／データ転送をバルク・オンリで行うようにしたが、これに限らず、その他の転送方法、たとえばＣＢＩ（コントロール／バルク／インタラプト）で行うようにしてもよい。
【００６５】
また、本実施の形態では、各電子楽器１００，２００および３００がそれぞれ備えている内蔵ストレージは、１つのみとしたが、これに限らず、複数あってもよい。
【００６６】
なお、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【００６７】
この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードおよび該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００６８】
プログラムコードを供給するための記憶媒体としては、たとえば、フレキシブルディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。また、通信ネットワークを介してサーバコンピュータからプログラムコードが供給されるようにしてもよい。
【００６９】
また、コンピュータが読出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【００７０】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００７１】
【図１】本発明の一実施の形態に係る電子音楽装置を適用した電子楽器の概略構成を示すブロック図である。
【図２】図１の電子楽器およびホスト電子楽器の各ソフトウェア構成を示すブロック図である。
【図３】図２の電子楽器およびホスト電子楽器がそれぞれ実行する各ＤＩＲ情報取得処理の手順を示すフローチャートである。
【図４】図２の電子楽器およびホスト電子楽器がそれぞれ実行する各ファイル取得処理の手順を示すフローチャートである。
【符号の説明】
【００７２】
５…ＣＰＵ（設定手段），１２…ＵＳＢターゲット・コントローラ（接続手段、バッファ），３０…内蔵ストレージ（記憶手段），１０１…ターゲット・コントローラ・ドライバ（設定手段），１０２ｂ…ターゲット側コマンド通信ファンクション・ドライバ（設定手段），１０４…制御部（設定手段），２００ａ…ＵＳＢホスト・コントローラ（接続手段），２００ｂ…内蔵ストレージ（記憶手段），２０１…ホスト・コントローラ・ドライバ（取得手段、制御手段），２０２ａ…ホスト側マスストレージ・クラス・ドライバ（制御手段），２０２ｂ…ホスト側コマンド通信クラス・ドライバ（取得手段），２０４…制御部（取得手段、制御手段）
【図１】
2009237045.tif 000003
【図２】
2009237045.tif 000004
【図３】
2009237045.tif 000005
【図４】
2009237045.tif 000006