(57)【特許請求の範囲】
【請求項１】
回転させることによってアクセス可能となる記憶媒体を回転させる駆動手段と、
上記記憶媒体にアクセスする処理を有する第１のタスクと、上記記憶媒体にアクセスする処理を有しない第２のタスクとを平行して行うことが可能な処理手段と、
上記処理手段に対して第１のタスクが設定されたか否かとともに、上記処理手段が実行しているタスクの有無を判別する第１の判別手段と、
上記第１の判別手段によって上記第１のタスクが設定されたと判別されると、上記駆動手段に対して、上記記憶媒体を回転させるコマンドを供給する一方、
実行中の第１のタスクが無であると判別されると、上記駆動手段に対して、上記記憶媒体を停止させるコマンドを供給する制御手段と、
上記記憶媒体へのアクセスの有無を判別する第２の判別手段とを備え、
上記第１のタスクには、ソングデータを所定量ずつ間欠的に読み取るタスクと、前記ソングデータ以外のデータを１度にまとめて読み取るタスクとの２種類があり、ソングデータを所定量ずつ間欠的に読み取るタスクは、データを１度にまとめて読み取るタスクよりも優先順位が低く、
上記第１のタスクが設定されていると、上記第１の判別手段によって判別され、かつ、上記記憶媒体へのアクセスがないと、上記第２の判別手段によって判別されると、上記処理手段は、設定された上記第１のタスクのうち、優先順位に従って一つの第１のタスクを選択し、選択した第１のタスクの実行を開始して、上記記憶媒体にアクセスする
ことを特徴とする電子楽器。
【請求項２】
回転させることによってアクセス可能となる記憶媒体を回転して、上記記憶媒体にアクセスする処理を有する第１のタスクと、上記記憶媒体にアクセスする処理を有しない第２のタスクとを並行して行う情報処理方法であって、
上記第１のタスクには、ソングデータを所定量ずつ間欠的に読み取るタスクと、前記ソングデータ以外のデータを１度にまとめて読み取るタスクとの２種類があり、ソングデータを所定量ずつ間欠的に読み取るタスクは、データを１度にまとめて読み取るタスクよりも優先順位を低くしておき、
上記第１のタスクが設定されたか否かとともに、実行中のタスクの有無を判別し、
上記第１のタスクが設定されたと判別されると、上記記憶媒体を回転させるコマンドを供給する一方、実行中の第１のタスクが無であると判別されると、上記記憶媒体を停止させ、
上記第１のタスクが設定されていると判別され、かつ、上記記憶媒体へのアクセスがないと判別されると、設定された上記第１のタスクのうち、優先順位に従って一つの第１のタスクを選択し、選択した第１のタスクの実行を開始して、上記記憶媒体にアクセスする
ことを特徴とする電子楽器の情報処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、回転させることによってアクセス可能となる記憶媒体を用いる電子楽器および電子楽器の情報処理方法に関する。
【０００２】
【従来の技術】
従来、電子機器に用いられているディスクドライブ装置においては、ディスクへのアクセスを終了するたびに、ディスクの回転を停止し、次にアクセスを行う場合、再度ディスクの回転を開始しディスクに記憶した情報の読取やディスクへの情報の書込を行っていた。
【０００３】
【発明が解決しようとする課題】
しかし、ディスクの回転を一旦停止し、その後、ディスクの回転を再開したのでは、情報の読取や書込が可能になるまでにある程度時間がかかってしまい、その分、処理能率の低下を招いていた。例えば、電子楽器において、フロッピーディスクに演奏データを記憶させたり演奏データに従って演奏を行ったりする場合があるが、このような場合にデータの読み書きが遅れることは、演奏タイミングとの関係で許されない。
【０００４】
この問題を解決するため、一旦ディスクの回転が開始されたら、ディスクがドライブ装置から取り出されるまで、またはドライブ装置への電力供給が絶たれるまでは、ディスクを回転し続ける装置も開発されている。これによれば、情報の読取や書込を迅速に行うことができる。しかし、常にディスクを回転し続けることにより、電力の消費量が大きく、しかもドライブ装置の駆動時間が必然的に長くなり、その故障の割合も高まってしまう。
【０００５】
本発明は上記の事情を考慮してなされたものであり、情報の読取や書込を迅速に行うことができるとともに、消費電力が低減され、寿命の長い電子楽器を提供することを目的とする。また、本発明は、情報の読取や書込を迅速に行い、かつ消費電力を低減し、電子楽器の寿命を長くする電子楽器の情報処理方法を提供することを目的とする。
【０００６】
【課題を解決するための手段】
上記課題を解決するため、本発明に係る電子楽器は、回転させることによってアクセス可能となる記憶媒体を回転させる駆動手段と、上記記憶媒体にアクセスする処理を有する第１のタスクと、上記記憶媒体にアクセスする処理を有しない第２のタスクとを平行して行うことが可能な処理手段と、上記処理手段に対して第１のタスクが設定されたか否かとともに、上記処理手段が実行しているタスクの有無を判別する第１の判別手段と、上記第１の判別手段によって上記第１のタスクが設定されたと判別されると、上記駆動手段に対して、上記記憶媒体を回転させるコマンドを供給する一方、実行中の第１のタスクが無であると判別されると、上記駆動手段に対して、上記記憶媒体を停止させるコマンドを供給する制御手段と、上記記憶媒体へのアクセスの有無を判別する第２の判別手段とを備え、上記第１のタスクには、ソングデータを所定量ずつ間欠的に読み取るタスクと、前記ソングデータ以外のデータを１度にまとめて読み取るタスクとの２種類があり、ソングデータを所定量ずつ間欠的に読み取るタスクは、データを１度にまとめて読み取るタスクよりも優先順位が低く、上記第１のタスクが設定されていると、上記第１の判別手段によって判別され、かつ、上記記憶媒体へのアクセスがないと、上記第２の判別手段によって判別されると、上記処理手段は、設定された上記第１のタスクのうち、優先順位に従って一つの第１のタスクを選択し、選択した第１のタスクの実行を開始して、上記記憶媒体にアクセスすることを特徴とする。
【０００７】
上記課題を解決するため、本発明に係る電子楽器の情報処理方法は、回転させることによってアクセス可能となる記憶媒体を回転して、上記記憶媒体にアクセスする処理を有する第１のタスクと、上記記憶媒体にアクセスする処理を有しない第２のタスクとを並行して行う情報処理方法であって、上記第１のタスクには、ソングデータを所定量ずつ間欠的に読み取るタスクと、前記ソングデータ以外のデータを１度にまとめて読み取るタスクとの２種類があり、ソングデータを所定量ずつ間欠的に読み取るタスクは、データを１度にまとめて読み取るタスクよりも優先順位を低くしておき、上記第１のタスクが設定されたか否かとともに、実行中のタスクの有無を判別し、上記第１のタスクが設定されたと判別されると、上記記憶媒体を回転させるコマンドを供給する一方、実行中の第１のタスクが無であると判別されると、上記記憶媒体を停止させ、上記第１のタスクが設定されていると判別され、かつ、上記記憶媒体へのアクセスがないと判別されると、設定された上記第１のタスクのうち、優先順位に従って一つの第１のタスクを選択し、選択した第１のタスクの実行を開始して、上記記憶媒体にアクセスすることを特徴とする。
【０００８】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態について説明する。
１．第１の実施形態
Ａ．実施形態の構成
図１は、発明の実施形態に係る電子機器である電子楽器の構成を示すブロック図である。この電子楽器は、自動演奏と手動演奏の二つのモードで演奏を行うようになっている。
【０００９】
同図において、符号１はディスクドライブ装置であり、このディスクドライブ装置１は、フロッピーディスク（記憶媒体）１１を回転させるモータ１２と、モータ１２の回転を制御する回転制御部１３とを備える。また、ディスクドライブ装置１には、フロッピーディスク１１からのデータの読取を行う読取部１４が設けられている。
フロッピーディスク１１には、自動演奏の際の再生用のソングデータ、スタイルデータ、レジストレーションデータなどの種々の演奏データが記録されている。フロッピーディスク１１は、モータ１２により回転させられることにより、読取部１４によるアクセスが可能となる。
【００１０】
符号２は鍵盤であり、この鍵盤２には多数の鍵が設けられている。そして、手動演奏モードでは、鍵を演奏者が押すことにより、その鍵のピッチに対応した信号および押鍵の強弱に対応した信号が生成される。
【００１１】
符号３はコントロールパネルであり、このコントロールパネル３には、例えばトーンレバーなどの手動演奏用の入力装置が設けられている。そして、手動演奏用の入力装置を演奏者が操作することにより、トーン信号などが生成される。
また、コントロールパネル３には、自動演奏用の入力装置であるパネルスイッチが設けられている。パネルスイッチには、自動演奏の開始・停止、ソングデータの読取の開始・停止、読み取るべきスタイルデータまたはレジストレーションデータなどの設定・変更を設定するものがあり、各パネルスイッチの操作により、対応する動作を指示する信号が生成される。
【００１２】
符号４は表示装置を示し、この表示装置４は、現在自動演奏なのか手動演奏なのかのモードの種別、コントロールパネル２で設定したトーン、自動演奏でのスタイルやレジストレーションなどの様々な演奏状態を表示する。
【００１３】
符号５は電子音源を示し、この電子音源５は、バス６を介して供給される種々の信号に基づいて、音源信号を生成し、これをディジタルシグナルプロセッサ（ＤＳＰ）７に供給する。ＤＳＰ７は音源信号とバス６を介して供給される信号に基づいてディジタル楽音信号を生成し、これをディジタル／アナログ変換器（ＤＡＣ）８に供給する。ＤＡＣ８はディジタル楽音信号をアナログ楽音信号に変換し、スピーカ９で楽音を発生させる。
【００１４】
符号２０はＣＰＵであり、ＣＰＵ２０は、ＲＯＭ２１に記憶されたプログラムに従い、自動演奏モードおよび手動演奏モードでの各種のタスクの実行を制御する。かかるタスクには、自動演奏モードにおけるコントロールパネル３からの信号などをバス６を介してＲＡＭ２２へ転送するタスクがある。また、自動演奏モードでは、フロッピーディスク１１に記憶されたデータのうち、スタイルデータおよびレジストレーションデータは、スタイルやレジストレーションの変更が指示されると、フロッピーディスク１１から読み取られ、ＲＡＭ２２へ転送され、ＲＡＭ２２の所定位置に一時的に記憶され、新たに同種のデータが転送されると書き換えられる。
【００１５】
また、ソングデータは、フロッピーディスク１１から１クラスタ分ずつ読み取られ、ＲＡＭ２２へ転送される。まず、ＲＡＭ２２は、所定位置に所定容量までソングデータを蓄積する。後述するように、ソングデータがここから転送されて、１クラスタ分以上の空き容量が生ずると、フロッピーディスク１１から次の１クラスタ分のソングデータが読み取られ、ＲＡＭ２２に転送される。
なお、読取部１４のマルチセクタリード機能またはマルチトラックリード機能を利用して、所定の複数クラスタ分、フロッピーディスク１１からソングデータを読み取るようにしてもよい。
【００１６】
Ｂ．実施形態の動作
Ｂ−１。実行するタスク
次に、上述した電子楽器の自動演奏モードでの動作について説明する。自動演奏モードでは、ＣＰＵ２０は、ディスクタスク、スイッチモニタータスク、音源コントロールタスク、表示タスク、シーケンサタスクなど様々なタスクを時分割で並行して行う。すなわち、この電子楽器はマルチタスク機能を有する。
【００１７】
ディスクタスクは、フロッピーディスク１１への読取部１４のアクセスを制御するタスクである。本実施形態のディスクタスクには、ソングデータの読取タスク、レジストレーションデータの読取タスク、スタイルデータの読取タスクなど、フロッピーディスク１１に記憶されたデータごとの読取タスクがある。これらのディスクタスク（第１のタスク）は、フロッピーディスク１１にアクセスする処理を有する。
【００１８】
このうち、ソングデータの読取タスクは、コントロールパネル３で設定されたソングデータの読取開始信号に基づいて、一定時間をおいてソングデータをフロッピーディスクから１クラスタ分（または所定の複数クラスタ分）ずつ読み取るタスクである。他のスタイルデータなどの読取タスクは、コントロールパネル３の設定に対応するスタイルデータやレジストレーションデータなどを一度に読み取るタスクである。
【００１９】
またその他の自動演奏モードで実行するタスクのうち、スイッチモニタータスクは、コントロールパネル３のパネルスイッチの設定状況を一定時間おきに監視し、設定状況に応じた信号をＲＡＭ２２に転送するタスクである。音源コントロールタスクは、コントロールパネル３からのＲＡＭ２２に一旦転送された信号およびフロッピーディスク１１から一旦ＲＡＭ２２に転送されたスタイルデータやレジストレーションデータを、電子音源５に転送し電子音源５の音色などを制御するタスクである。表示タスクは、一旦ＲＡＭ２２に転送された上記の信号やデータに基づいて、表示装置４へ供給する表示信号を制御し、現在行っている演奏状況に対応する表示を行わせるタスクである。シーケンサタスクは、フロッピーディスク１１から読み取ってＲＡＭ２２に一時的に記憶したソングデータを設定時間ごとに電子音源５に転送し、電子音源５での音源信号の生成を行わせるタスクである。これらのスイッチモニタータスク、音源コントロールタスク、表示タスク、シーケンサタスクタスクは、フロッピーディスク１１にアクセスする処理を有しないもの（第２のタスク）である。
【００２０】
ＣＰＵ２０は、新たに第１のタスクの開始設定がなされるたびに、ディスク管理フラグをセットし、アクセスが終了するたびに、ディスク管理フラグをリセットする。ディスク管理フラグは、ＲＡＭ２２において、タスクの種別に対応した所定位置にあり、これによりディスク管理フラグがセットされていれば、いずれかの第１のタスクが実行中であることが識別されるだけでなく、どのタスクが実行中かも識別されるようになっている。
【００２１】
Ｂ−２．メインルーチン
図２は、自動演奏モードでのメインルーチンを示すフローチャートである。自動演奏モードが設定されると、まずステップＳａ１で、全てのディスク管理フラグを０にする（リセットする）。次に、ステップＳａ２において、ディスク管理ルーチンに移行するとともに、マルチタスクを実行する。そして、ステップＳａ３で、マルチタスクで行った処理で生成された信号に基づいて演奏を行う。
【００２２】
Ｂ−３．ディスク管理ルーチン
次に、ステップＳａ２で移行したディスク管理ルーチンについて図４を参照しながら説明する。まず、ステップＳｂ１において、新規なパネル設定がされたか否かを判断する。ここで、新規なパネル設定がされていれば、判断結果は「ＹＥＳ」となり、処理はステップＳｂ２に進む。
【００２３】
ステップＳｂ２では、新規なパネル設定に対応するタスクがフロッピーディスク１１へアクセスする処理を有するタスクであるか否かを判断する。ここで、フロッピーディスク１１へアクセスする処理を有するのであれば、ステップＳｂ２の判断結果は「ＹＥＳ」となる。このとき、処理はステップＳｂ３に進み、ここでモータ１２が回転しているか停止しているかを判断した後、停止しているのであれば、ステップＳｂ４で、回転を開始するように回転制御部１３にコマンドを供給し、処理はステップＳｂ５に進む。モータ１２が回転中であれば処理は、ステップＳｂ３からステップＳｂ５に進む。
【００２４】
次に、ステップＳｂ５において新規タスクに対応する管理フラグを１にセットする。そして、ステップＳｂ６で、１にセットされた管理フラグが複数か否かを判断する。フロッピーディスク１１へのアクセスを要するタスクが、ほかにも設定されていなければ、ステップＳｂ６の判断結果は「ＮＯ」となる。このとき、処理はステップＳｂ７に進み、新規設定タスクの実行を開始し、ステップＳｂ８に進む。
【００２５】
ステップＳｂ８では、フロッピーディスク１１へアクセスする処理を有するタスクのうち完了したものがあるか否かを判断し、完了したものがなければ処理はメインルーチンに戻り、完了したものがあれば、ステップＳｂ９に処理が進む。ステップＳｂ９では、完了したタスクに対応するディスク管理フラグを０にする。
【００２６】
一方、新規なパネル設定に対応するタスクがフロッピーディスク１１へのアクセスする処理を有しないのであれば、ステップＳｂ２での判断結果は「ＮＯ」となり、処理はステップＳｂ１０に進み、この新規タスクの実行を開始する。次に、ステップＳｂ１１において、１にセットされた管理フラグの有無を判断する。フロッピーディスク１１へのアクセスを要する他のタスクが設定されていなければ、ステップＳｂ１１の判断結果は「ＮＯ」となり、処理はメインルーチンに戻る。従って、タスクが新たに設定されても、そのタスクがフロッピーディスク１１へのアクセスを要しない限り、処理はステップＳｂ２からステップＳｂ１０を経てステップＳｂ１１まで進むことになる。
【００２７】
なお、新規なパネル設定が全くされていなければ、ステップＳｂ１での判断結果が「ＮＯ」となり、処理は直接ステップＳｂ１１に進む。そして、フロッピーディスク１１へのアクセスを要するタスクが実行中であることを示す管理フラグが１にセットされていなければ、すなわち実行中のタスクがあったとしてもフロッピーディスク１１へのアクセスを要する処理を有しないのであれば、ステップＳｂ１１を経てそのまま処理はメインルーチンに戻る。一方、すでに実行中のタスクの一つまたは複数が、フロッピーディスク１１へのアクセスを要する処理を有するのであれば、ステップＳｂ１１の判断結果が「ＹＥＳ」となり、処理はステップＳｂ１２に進む。
【００２８】
また、すでにフロッピーディスク１１へアクセスする処理を有するタスクが設定されており、さらに新たなフロッピーディスク１１へアクセスする処理を有するタスクが設定された場合には、処理はステップＳｂ１〜Ｓｂ３を経てステップＳｂ５に進む。そして、新規に設定されたタスクに対応するディスク管理フラグを１にセットする。ここで複数のディスク管理フラグが１にセットされたことになるから、ステップＳｂ６での判断結果が「ＹＥＳ」となり、処理はステップＳｂ１２に進む。
【００２９】
ステップＳｂ１２では、フロッピーディスク１１に現在アクセスが行われているか否かを読取部１４からの読取信号に基づいて判断する。そして、フロッピーディスク１１にアクセス中であれば、ステップＳｂ１２の判断結果は「ＹＥＳ」となり、処理はメインルーチンに戻る。一方、フロッピーディスク１１にアクセス中でなければ、ステップＳｂ１２の判断結果は「ＮＯ」となり、処理はステップＳｂ１３に進む。このように、フロッピーディスク１１へアクセスする処理を有するタスクが単独あるいは複数設定されている場合であっても、実際にフロッピーディスク１１へのアクセスを行っているか否かにより、その後の処理の進行が異なる。
【００３０】
さて、ステップＳｂ１３では、優先タスクの選択を行い、選択されたタスクの実行を開始する。ここで、優先タスクの選択について説明すると、上記のフロッピーディスク１１へアクセスする処理を有するタスクには、あらかじめフロッピーディスク１１へのアクセスする際の優先順位がつけられている。そして、ステップＳｂ１３では、１にセットされたディスク管理フラグに対応するタスクが複数あれば、優先順位の高いタスクの実行を開始し、タスクが一つしかなければそのタスクの実行を開始する。従って、後から優先順位の低いタスクが設定されても、それより優先順位が高いタスクが設定されていないか、優先順位が高いタスクが完了しない限り、優先順位の低いタスクはフロッピーディスク１１にアクセスできないようになっている。
【００３１】
また、先に設定されたタスクより後から設定されたタスクの優先順位が高ければ、後から設定されたタスクが優先的に選択される。ただし、ステップＳｂ１３に処理が進むには、ステップＳｂ１２の判断結果が「ＮＯ」でなければならないから、かかるタスクの選択が行われるのは、フロッピーディスク１１へのアクセスを休止するタスクが実行されている途中でアクセスの休止があったときと、フロッピーディスク１１へのアクセスをタスクの完了と同時に完了するタスクが完了したときに限られる。
【００３２】
ステップＳｂ１３の後、処理はステップＳｂ８に進む。ステップＳｂ８では、フロッピーディスク１１へアクセスする処理を有するタスクのうち完了したものがあるか否かを判断し、完了したものがなければ処理はメインルーチンに戻り、完了したものがあれば、ステップＳｂ９に処理が進む。ステップＳｂ９では、完了したタスクに対応するディスク管理フラグを０にする。ここで０にされるディスク管理フラグに対応するタスクは、直前のステップＳｂ１３で選択されたタスクのこともあるし、選択されなかったタスクのこともある。
【００３３】
さて、単独で設定されていたフロッピーディスク１１へアクセスする処理を有するタスクが終了した場合にも、フロッピーディスク１１へのアクセスが行われなくなり、ステップＳｂ１２の判断結果は「ＮＯ」となる。このときも処理はステップＳｂ１３に進む。しかし、この終了したタスクに対応するディスク管理フラグがまだセットされていたとしても、ステップＳｂ１３では、実行すべき内容がないのでなにもせず、処理はそのままステップＳｂ８に進む。そして、ステップＳｂ８の判断結果が「ＹＥＳ」となって、ステップＳｂ９に進み、全てのディスク管理フラグを０にし処理がメインルーチンのステップＳａ３に進む。
【００３４】
Ｂ−３．割込プログラム
図３は、自動演奏モードで所定時間おきに行う割込プログラムを示すフローチャートである。この割込プログラムでは、まずステップＳｃ１において、上記のディスク管理フラグが全て０であるか否かを判断する。この判断結果が「ＮＯ」であれば、処理はそのままメインルーチンに戻る。
【００３５】
一方、ステップＳｃ１の判断結果が「ＹＥＳ」のときは、処理はステップＳｃ２に進み、モータ１２が回転しているか否か判断する。これまでに全くフロッピーディスク１１へのアクセスが必要とされなかった場合には、ディスク管理ルーチンのステップＳｂ４でモータ１２の回転は行われないから、ステップＳｃ２の判断結果は「ＮＯ」となり、処理はメインルーチンに戻る。これに対して、フロッピーディスク１１へアクセスする処理を有するタスクが全て終了しステップＳｂ９で全てのディスク管理フラグを０にした後である場合には、それ以前にステップＳｂ４でモータ１２の回転がされているから、ステップＳｃ２での判断結果は「ＹＥＳ」となり、ステップＳｃ３に進む。ステップＳｃ３では、ステップＳｃ２の判断後、所定の時間、例えば３秒間経過するまで待ち、処理はステップＳｃ４に進む。そして、ステップＳｃ４でモータ１２の回転を停止するコマンドを回転制御部１３に供給した後、処理はメインルーチンに戻る。
【００３６】
Ｃ．実施形態の効果および応用例
以上のように、本実施形態では、ディスク管理ルーチンにおいて、新たにフロッピーディスク１１へのアクセスが必要となるたびにアクセスする処理を有する第１のタスクが実行中であることを示すディスク管理フラグをセットするとともに、第１のタスクが終了するたびに対応するディスク管理フラグをリセットする。そして、所定時間おきに行う割込プログラムにおいて、ディスク管理フラグの有無を判別し、ディスク管理フラグが一つでもセットされていると判別した場合に、フロッピーディスク１１の回転を継続する一方、ディスク管理フラグが全くセットされていないと判別した場合に、フロッピーディスク１１の回転を停止させる。
【００３７】
従って、アクセスすべきタスクが一旦終了しても、次にアクセスすべき別のタスクがすでに設定されている場合には、フロッピーディスク１１の回転は継続され、これにより、フロッピーディスク１１へのアクセスを迅速に行うことが可能である。特に、電子楽器において、マルチタスクの実行を行う場合にあたっては、演奏処理の実行タイミングに、アクセスのタイミングが遅れることは許されないが、本実施形態によれば、そのような懸念が排除される。さらには、アクセスまでに要する時間が短縮されるから、フロッピーディスク１１から読み取り可能となるデータの量も増加させることができる。
【００３８】
一方、アクセスすべきタスクが終了し、次にアクセスすべき別のタスクが設定されていなければ、フロッピーディスク１１の回転は停止され、これにより消費電力が節約される。また、モータ１２の駆動時間が必要最低限に抑制されるから、モータ１２などの部品の故障の回数も減少し、ディスクドライブ装置１の寿命を長く保つことが可能となる。
【００３９】
さらにまた本実施形態では、フロッピーディスク１１へアクセスする処理を有するディスクタスクのうち、ソングデータの読取タスクは、ソングデータを１クラスタまたは所定の複数クラスタ分ずつ間欠的に読み取ってゆき、他のスタイルデータなどの読取タスクは、スタイルデータやレジストレーションデータなどをきわめて短時間で一度に読み取るようになっている。そして、これらのディスクタスクには、フロッピーディスク１１へのアクセスに関する優先順位がつけられている。
【００４０】
ここで、例えば、ソングデータの読取タスクの優先順位を他の読取タスクの優先順位よりも低く設定した場合について説明する。ソングデータについては、他の読取タスクに比較してきわめて長時間かかるが、読み取るべきクラスタの区切りで、フロッピーディスク１１へのアクセスの休止があることになる。従って、他の読取タスクが設定されていなければ、ステップＳｂ１３でソングデータの読取タスクを選択し、ソングデータの次のクラスタを読み取るようになるが、他の読取タスクが設定されていれば、ステップＳｂ１３で他の読取タスクを選択し、そのタスクを実行する。すなわち、一つのソングの自動演奏の途中で、スタイルまたはレジストレーションの変更を行うことが可能になり、演奏の内容をより自由に変更することができるようになる。
【００４１】
そして、スタイルデータなどの読取タスクに要する時間はきわめて短く、しかもフロッピーディスク１１の回転は継続されているため、直ちにソングデータの読取タスクが再開され、ソングデータがＲＡＭ２２に転送される。これにより自動演奏が途切れてしまうことが防止される。
【００４３】
２．第２実施形態
次に図５ないし図７を参照しながら本発明に係る第２実施形態について説明する。第２実施形態は、電子楽器に関するものであり、その構成は図１に示すものと同様であるため、共通する構成要素についての説明は省略する。この実施形態では、同一の演奏モードで、フロッピーディスク１１への読取および書込を行う。またマルチタスク機能を有しており、複数のタスクを時分割で並行して実行する。
【００４４】
ここで実行するタスクには、ディスクタスクと、フロッピーディスク１１に読取または書込のアクセスする処理を有するタスクと、フロッピーディスク１１にアクセスする処理を有しないタスクとがある。
【００４５】
Ａ．ディスクタスク
図５は、第２実施形態で実行するディスクタスクを示すフローチャートを示す。ここで実行するディスクタスクは、他のタスクで要求された書込要求および読取要求に応じて、フロッピーディスク１１の回転およびこれへのアクセスを実行する一つのタスクであり、第１実施形態のように読取対象となるディスクごとに複数の読取タスクがあるのではない。
【００４６】
このディスクタスクにおいては、まずステップＳｄ１でフロッピーディスク１１へのアクセスを現在実際に行っているか否か、すなわち、情報の読取または書込が実施中であるか否かを判別する。そして、ステップＳｄ１での判別結果が「ＹＥＳ」であれば、処理はメインルーチンへ戻る。メインルーチンでは各タスクを並行して所定時間おきに実行する。
【００４７】
一方、ステップＳｄ１の判別結果が「ＮＯ」であれば、処理はステップＳｄ２に進み、フロッピーディスク１１への書込要求があるか否かを判別する。ここまでに書込要求がされていれば、処理はステップＳｄ３に進み、モータ１２が回転中であるか否かを判別する。モータ１２が回転中でなければ、判別結果は「ＮＯ」となり、ステップＳｄ４に進み、モータ１２の回転を開始してから、処理はステップＳｄ５に進む。一方、ステップＳｄ３でモータ１２がすでに回転中であれば、そのままステップＳｄ５に処理が進む。ステップＳｄ５においては、他のタスクで要求されたデータの書込をフロッピーディスク１１に対して行う。次に、ステップＳｄ６で、書込要求元のタスクへ書込完了を示す信号を供給し、処理はステップＳｄ７に進む。
【００４８】
また、ステップＳｄ２において、判別結果が「ＮＯ」であれば、処理はステップＳｄ８に進み、フロッピーディスク１１への読取要求があるか否かを判別する。ここまでに読取要求がされていれば、処理はステップＳｄ９に進み、モータ１２が回転中であるか否かを判別する。モータ１２が回転中でなければ、判別結果は「ＮＯ」となり、ステップＳｄ１０に進み、モータ１２の回転を開始してから、処理はステップＳｄ１１に進む。一方、ステップＳｄ９でモータ１２がすでに回転中であれば、そのままステップＳｄ１１に処理が進む。ステップＳｄ１１においては、他のタスクで要求されたデータの読取をフロッピーディスク１１に対して行う。次に、ステップＳｄ１２で、読取要求元のタスクへ読取完了を示す信号を供給し、処理はステップＳｄ７に進む。
【００４９】
なお、上記のステップＳｄ２およびステップＳｄ８での判別結果がいずれも「ＮＯ」の場合にも、処理はステップＳｄ７に進む。この場合、データの読取及び書込のいずれも行わない。
【００５０】
ステップＳｄ７において、ディスク管理フラグが全て０であるか否かを判断する。このディスク管理フラグのセットおよびリセットは他のタスクが実行する。この判断結果が「ＮＯ」であれば、処理はそのままメインルーチンに戻る。一方、ステップＳｄ７の判断結果が「ＹＥＳ」のときは、処理はステップＳｄ１３に進み、ステップＳｄ１３では、ステップＳｄ７の判断後、所定の時間、例えば３秒間経過するまで待ち、処理はステップＳｄ１４に進む。そして、ステップＳｄ１４でモータ１２の回転を停止した後、処理はメインルーチンに戻る。
【００５１】
Ｂ．タスク１
図６は、第２実施形態で実行するタスクの一つを示すフローチャートである。このタスクは、フロッピーディスク１１への書込データを生成し、これを上記のディスクタスクへ与えるものであり、以下タスク１と称する。なお、書込データの種別ごとに同様のタスクが複数ある。
【００５２】
タスク１では、まずステップＳｅ１において、フロッピーディスク１１に書き込むためのデータを生成する。次に、ステップＳｅ２で、タスク１に対応するディスク管理フラグを１にセットする。そして、ステップＳｅ３で、生成したデータの書込要求をディスクタスクへ与えるとともに、この書込データをディスクタスクへ転送する。
【００５３】
次に、ステップＳｅ４に処理が進み、ディスクタスクで書込が完了したか否かを判別する。ここで書込完了でなければ判別結果は「ＮＯ」となり処理はステップＳｅ３に戻り、書込完了であれば処理はステップＳｅ５に進む。ステップＳｅ５では、タスク１に対応するディスク管理フラグを０にセットし、処理はメインルーチンに戻る。
【００５４】
Ｃ．タスク２
図７も第２実施形態で実行するタスクの一つを示すフローチャートである。このタスクは、ディスクタスクにフロッピーディスク１１の記憶データを読み取らせ、これを受け取って処理を行うものであり、以下タスク２と称する。なお、読取データの種別ごとに同様のタスクが複数ある。
【００５５】
タスク２では、まずステップＳｆ１で、タスク２に対応するディスク管理フラグを１にセットする。次に、ステップＳｆ２で、ディスクタスクに対して、フロッピーディスク１１の記憶データの読取要求を与える。そして、ステップＳｆ３で、ディスクタスクにおけるデータの読取が完了したか否かを判別する。ここで読取完了でなければ判別結果は「ＮＯ」となり処理はステップＳｆ２に戻り、読取完了であれば処理はステップＳｆ４に進む。
【００５６】
ステップＳｆ４では、読取データを受け取る。この受け取り完了後、処理はステップＳｆ５に進み、タスク２に対応するディスク管理フラグを０にセットする。次に、ステップＳｆ６で読取データを利用した処理を実行し、処理はメインルーチンに戻る。
【００５７】
Ｄ．実施形態の効果
以上のように、本実施形態では、ディスクタスクにおいて、ディスク管理フラグの有無を判別し、ディスク管理フラグが一つでもセットされていると判別した場合に、フロッピーディスク１１の回転を継続する一方、ディスク管理フラグが全くセットされていないと判別した場合に、フロッピーディスク１１の回転を停止させる。従って、アクセスが完了しても、他のタスクで、アクセスする要求がされていれば、フロッピーディスク１１の回転は継続され、これにより、フロッピーディスク１１へのアクセスを迅速に行うことが可能である。また、アクセスまでに要する時間が短縮されるから、フロッピーディスク１１から読み取り可能となるデータの量も増加させることができる。
【００５８】
一方、アクセスすべきタスクが終了し、次に別のタスクでアクセスする要求がされていなければ、フロッピーディスク１１の回転は停止され、これにより消費電力が節約される。また、モータ１２の駆動時間が必要最低限に抑制されるから、モータ１２などの部品の故障の回数も減少し、ディスクドライブ装置１の寿命を長く保つことが可能となる。
【００５９】
また、本実施形態では、タスク１において書込データを生成した後、フロッピーディスク１１への書込をディスクタスクに要求する前にディスク管理フラグをセットするとともに、実際にディスクタスクで書込を完了した後、ディスク管理フラグをリセットする。また、タスク２において、フロッピーディスク１１への読取をディスクタスクに要求する前にディスク管理フラグをセットするとともに、実際にディスクタスクで読取を完了した後にディスク管理フラグをリセットする。タスク１およびタスク２では、書込データの生成や読取データの利用のような主な処理の間、ディスク管理フラグをリセットしており、フロッピーディスク１１にアクセスが必要な時間だけ、ディスク管理フラグをセットしている。従って、フロッピーディスク１１を無駄に回転する時間がより短縮される。
【００６０】
なお、ディスクタスクのステップＳｄ１において、フロッピーディスク１１へのアクセスを実施中であるか否かを判断している。ここで、第１実施形態と同様に各タスクに優先順位をつけておき、ステップＳｄ５およびステップＳｄ１１では、優先順位の高いタスクに従ってデータの書込または読取を行うようにするとよい。これにより、第１実施形態と同様に、長時間にわたって間欠的に実行されるタスクの途中で、他の短時間で完了するタスクを割り込ませることが可能となる。
【００６１】
３．変更例
以上、本発明に係る実施形態について説明したが、本発明は上記の実施形態に限定されるものではなく、以下のように種々の変更が可能である。
例えば、使用するディスクは、フロッピーディスクには限定されず、ハードディスクやＲＯＭとして使用されるコンパクトディスクなどであってもよい。
また、電子楽器以外の他の電子機器にも本発明を適用することが可能である。さらに、上記の情報処理方法は、あらかじめプログラムしておくことが可能であり、このプログラムをハードディスクなどの情報記憶媒体に記憶させておくことも可能である。
【００６２】
【発明の効果】
以上説明したように、本発明によれば、情報の読取や書込を迅速に行うことが可能となるだけでなく、消費電力が低減され、電子楽器の寿命を長くすることも可能となる。
【図面の簡単な説明】
【図１】  本発明の第１実施形態に係る電子機器である電子楽器の構成を示すブロック図である。
【図２】  第１実施形態に係る電子楽器で実行するメインルーチンを示すフローチャートである。
【図３】  第１実施形態に係る電子楽器で実行する割込プログラム示すフローチャートである。
【図４】  第１実施形態に係る電子楽器で実行するディスク管理ルーチンを示すフローチャートである。
【図５】  本発明の第２実施形態に係る電子楽器で実行するディスクタスクを示すフローチャートである。
【図６】  第２実施形態に係る電子楽器で実行するタスクの一例を示すフローチャートである。
【図７】  第２実施形態に係る電子楽器で実行するタスクの他の例を示すフローチャートである。
【符号の説明】
１…ディスクドライブ装置、１１…フロッピーディスク（記憶媒体）、１２…モータ（駆動手段）、１３…回転制御部、１４…読取部、２０…ＣＰＵ（処理手段、判別手段、制御手段）
【図１】
0003653155.tif 000002
【図２】
0003653155.tif 000003
【図３】
0003653155.tif 000004
【図４】
0003653155.tif 000005
【図５】
0003653155.tif 000006
【図６】
0003653155.tif 000007
【図７】
0003653155.tif 000008