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