(57)【要約】   【課題】タップ操作が容易であり、製品の製造コストを安くすることができる自動演奏装置を提供する。  【解決手段】変数ｄｅｌａｙの値をｄｔだけ進める（Ｓ３２）。次に、現在のｄｅｌａｙの値が正の値か否かを判断する（Ｓ３３）。ｄｅｌａｙの値が正の値である場合は、現在のティックｔｉｃｋからｔｉｃｋ＋ｄｅｌａｙまでの演奏データを音源８へ出力する（Ｓ３４）。次に、ｔｉｃｋの値をｄｅｌａｙの値だけ進め（Ｓ３５）、ｄｅｌａｙの値を０に設定する（Ｓ３６）。Ｓ３３の処理でｄｅｌａｙの値が正の値ではない場合（Ｓ３３：Ｎｏ）、またはＳ３６の処理を終了した場合は、メイン処理へ戻る。  【選択図】    図７
2006145721.tif 000002
【特許請求の範囲】
【請求項１】
演奏情報を記憶する記憶手段と、タップ操作を行うためのタップ操作子と、そのタップ操作子が操作される時間間隔を計測する計測手段と、その計測手段により計測された時間間隔に基づいて自動演奏のテンポを設定するテンポ設定手段と、そのテンポ設定手段により設定されたテンポに応じて前記記憶手段に記憶されている演奏情報における演奏位置を歩進させる演奏位置設定手段と、その演奏位置設定手段により設定された演奏位置に応じて前記記憶手段に記憶された演奏情報を読出して自動演奏を行う自動演奏手段とを備えた自動演奏装置において、
前記演奏位置設定手段により設定される演奏位置が、前記タップ操作子が操作されることにより特定される演奏情報の区切り位置に到達する前に前記タップ操作子が操作された場合は、演奏位置をその区切り位置に移動し、前記計測手段により計測された時間間隔に基づいたテンポに応じて演奏位置を歩進するように前記演奏位置設定手段を制御し、
前記演奏位置設定手段により設定される演奏位置が、前記タップ操作子が操作されることにより特定される演奏情報の区切り位置に到達する前に前記タップ操作子が操作されない場合は、引き続き演奏位置を歩進し、演奏位置が区切り位置に到達した後タップ操作子が操作された場合は、演奏情報の区切り位置と前記タップ操作子が操作されたときの演奏位置との差に対応する遅延時間の後、前記計測手段により計測された時間間隔に基づいたテンポに応じて演奏位置を歩進するように前記演奏位置設定手段を制御する制御手段を備えていることを特徴とする自動演奏装置。
【請求項２】
前記制御手段は、前記演奏位置設定手段により設定される演奏位置が、前記タップ操作子が操作されることにより特定される演奏情報の区切り位置に到達した後前記タップ操作子が操作された場合は、前記演奏位置設定手段による演奏位置の歩進を停止し、演奏情報の区切り位置と前記タップ操作子が操作されたときの演奏位置との差に対応する遅延時間が経過した後、前記計測手段により計測された時間間隔に基づいたテンポに応じて演奏位置を歩進するように前記演奏位置設定手段を制御するものであることを特徴とする請求項１記載の自動演奏装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動演奏装置に関し、特にタップ操作子を操作することにより任意のテンポを設定することができる自動演奏装置に関する。
【背景技術】
【０００２】
従来、自動演奏装置（シーケンサ、自動リズム演奏装置や自動伴奏装置を含む）において、タップ操作子を所望の時間間隔で叩くタップ操作により自動演奏のテンポを設定するとともに自動演奏の拍頭位置をタップ操作が行なわれたタイミングに同期させることが行われている。
【０００３】
特開２００３−９１２７９号公報には、自動演奏中にタップ操作が行われた場合、そのタイミングにおいて、演奏位置が演奏情報の区切り位置である拍に到達していない場合は、演奏位置をその拍の位置まで進め、次の区間の演奏をタップ操作の時間間隔により定められるテンポで演奏を開始し、タップ操作が行われる前に演奏位置が拍に到達した場合には、自動演奏を停止してタップ操作が行われるまで待機し、タップ操作が行われると、次の区間の演奏をタップ操作の時間間隔により定められるテンポで再開する自動演奏装置が開示されている。
【特許文献１】特開２００３−９１２７９号公報。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記した自動演奏装置では、タップ操作によりテンポの設定を完了し、タップ操作を中止して継続して自動演奏を行わせようとする場合には、タップ操作子とは別のスイッチを備え、そのスイッチを操作することにより、タップ操作の終了を入力する必要があった。従って、操作が煩雑であるとともに、スイッチの数が多くなり自動演奏装置の製造コストが高くなるという問題点があった。
【０００５】
本発明は、上述した問題点を解決するためになされたものであり、タップ操作が容易であり、製品の製造コストを安くすることができる自動演奏装置を提供することを目的としている。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、請求項１記載の発明は、演奏情報を記憶する記憶手段と、タップ操作を行うためのタップ操作子と、そのタップ操作子が操作される時間間隔を計測する計測手段と、その計測手段により計測された時間間隔に基づいて自動演奏のテンポを設定するテンポ設定手段と、そのテンポ設定手段により設定されたテンポに応じて演奏位置を歩進させる演奏位置設定手段と、その演奏位置設定手段により設定された演奏位置に応じて前記記憶手段に記憶された演奏情報を読出し自動演奏を行う自動演奏手段とを備えたものであって、前記演奏位置設定手段により設定される演奏位置が、前記タップ操作子が操作されることにより特定される演奏情報の区切り位置に到達する前に前記タップ操作子が操作された場合は、演奏位置をその区切り位置に移動し、前記計測手段により計測された時間間隔に基づいたテンポに応じて演奏位置を歩進するように前記演奏位置設定手段を制御し、前記演奏位置設定手段により設定される演奏位置が、前記タップ操作子が操作されることにより特定される演奏情報の区切り位置に到達する前に前記タップ操作子が操作されない場合は、引き続き演奏位置を歩進し、演奏位置が区切り位置に到達した後タップ操作子が操作された場合は、演奏情報の区切り位置と前記タップ操作子が操作されたときの演奏位置との差に対応する遅延時間の後、前記計測手段により計測された時間間隔に基づいたテンポに応じて演奏位置を歩進するように前記演奏位置設定手段を制御する制御手段を備えている。
【０００７】
請求項２記載の自動演奏装置は、請求項１記載の自動演奏装置において、前記制御手段は、前記演奏位置設定手段により設定される演奏位置が、前記タップ操作子が操作されることにより特定される演奏情報の区切り位置に到達した後前記タップ操作子が操作された場合は、前記演奏位置設定手段による演奏位置の歩進を停止し、演奏情報の区切り位置と前記タップ操作子が操作されたときの演奏位置との差に対応する遅延時間が経過した後、前記計測手段により計測された時間間隔に基づいたテンポに応じて演奏位置を歩進するように前記演奏位置設定手段を制御するものである。
【発明の効果】
【０００８】
請求項１記載の自動演奏装置によれば、演奏位置設定手段により設定される演奏位置が、前記タップ操作子が操作されることにより特定される演奏情報の区切り位置に到達する前に前記タップ操作子が操作された場合は、演奏位置をその区切り位置に移動し、前記計測手段により計測された時間間隔に基づいたテンポに応じて演奏位置を歩進するように前記演奏位置設定手段を制御し、前記演奏位置設定手段により設定される演奏位置が、前記タップ操作子が操作されることにより特定される演奏情報の区切り位置に到達する前に前記タップ操作子が操作されない場合は、引き続き演奏位置を歩進し、演奏位置が区切り位置に到達した後タップ操作子が操作された場合は、演奏情報の区切り位置と前記タップ操作子が操作されたときの演奏位置との差に対応する遅延時間の後、前記計測手段により計測された時間間隔に基づいたテンポに応じて演奏位置を歩進するように前記演奏位置設定手段を制御する制御手段を備えているので、タップ操作子を操作する時間間隔によりテンポを設定し、タップ操作子による操作を停止することにより設定されたテンポで演奏を継続させることができる。従って、タップ操作子を操作する時間間隔によりテンポを設定し、タップ操作子によるテンポの設定を終了したことを入力する操作子を別途備える場合に比べ、操作が容易であるとともに、自動演奏装置の製造コストを低くすることができるという効果がある。
【０００９】
請求項２記載の自動演奏装置によれば、請求項１記載の自動演奏装置の奏する効果に加え、制御手段は、前記演奏位置設定手段により設定される演奏位置が、前記タップ操作子が操作されることにより特定される演奏情報の区切り位置に到達した後前記タップ操作子が操作された場合は、前記演奏位置設定手段による演奏位置の歩進を停止し、演奏情報の区切り位置と前記タップ操作子が操作されたときの演奏位置との差に対応する遅延時間が経過した後、前記計測手段により計測された時間間隔に基づいたテンポに応じて演奏位置を歩進するように前記演奏位置設定手段を制御するものであるので、タップ操作子が操作されたときの演奏位置までの演奏情報が、再度読み出されることを防止することができる。よって、同じ部分が繰り返し演奏されることがないので、音楽的に好ましい演奏を行うことができるという効果がある。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の好ましい実施形態について、添付図面を参照して説明する。図１は、本発明の一実施形態である自動演奏装置１の電気的構成を示したブロック図である。自動演奏装置１は、ＣＰＵ２（中央処理装置）と、そのＣＰＵ２により実行される制御プログラムを記憶したＲＯＭ３（リード・オンリ・メモリ）と、ＣＰＵ２が制御プログラムを実行する際の作業用のメモリエリアを提供するＲＡＭ４（ランダム・アクセス・メモリ）と、自動演奏装置１に指示を行う操作子６と、その操作子６により設定されたパラメータなどを表示する表示器７と、ＣＰＵ２により送信された演奏情報に対応した楽音信号を生成する音源８と、その音源８により形成された楽音を増幅する増幅器９と、その増幅器９により増幅された楽音を放音するスピーカ１０とにより構成されている。
【００１１】
ＲＯＭ３には、図５，図６および図７に示すフローチャートの処理を行う制御プログラムや、自動演奏が行われる複数の演奏曲の演奏データなどが記憶されている。演奏曲としては、リズム演奏などのように繰り返し演奏されるパターンが複数記憶されているものとする。
【００１２】
次に、図２を参照して操作子６および表示器７が備えられた操作パネル１０について説明する。図２には、操作子６を構成する各種の操作子ならびに表示器７を配置した操作パネル１０の概略構成図である。
【００１３】
操作子６としては、パターンを選択するためのパターン選択ボタン６ａと、自動演奏のテンポ値を設定するテンポ設定ボタン６ｂと、タップ操作を行うためのタップ操作ボタン６ｃと、選択された演奏データの自動演奏の開始または停止を指示するスタート／ストップボタン６ｄとが備えられている。
【００１４】
パターン選択ボタン６ａは、上方に尖った正三角形の第１のボタンと下方に尖った正三角形の第２のボタンとにより構成され、第１のボタンを操作する毎に、ＲＯＭ３に順に記憶されているパターンを昇順に順次に選択することができ、第２のボタンを操作することによりパターンを降順に順次に選択することができる。
【００１５】
テンポ設定ボタン６ｂは、パターン選択ボタン６ａと同様に、上方に尖った正三角形の第１のボタンと下方に尖った正三角形の第２のボタンとにより構成され、第１のボタンを操作する毎に、テンポ値を増加することができ、第２のボタンを操作する毎に、テンポ値を減少することができる。
【００１６】
タップ操作ボタン６ｃは、長方形のボタンであって、このタップ操作ボタン６ｃを操作する間隔によりテンポ値を設定することができる。したがって、テンポ設定ボタン６ｂを操作することにより、テンポを表す数値を直接変更することによりテンポを設定することができ、タップ操作ボタン６ｃを操作することにより、その操作の時間間隔により感覚的にテンポを設定することができる。
【００１７】
スタート／ストップボタン６ｄは、タップ操作ボタン６ｃと同様に長方形のボタンであり、自動演奏が停止されているときに操作された場合には、自動演奏が開始され、自動演奏が行われているときに操作された場合は、自動演奏が停止される。
【００１８】
表示器７は、液晶ディスプレイ（ＬＣＤ）により構成される表示画面７ａと、４つのＬＥＤ７ｂとにより構成されている。
【００１９】
表示画面７ａには、パターン選択ボタン６ａにより選択されたパターンとテンポ設定ボタン６ｂまたはタップ操作ボタン６ｃにより設定されたテンポの値が表示される。
【００２０】
４つのＬＥＤ７ｂは、自動演奏の拍のタイミングを表示するもので、最も左端のＬＥＤから順に、第１拍、第２拍、第３拍、第４拍に対応している。選択された曲が４拍子の場合には、自動演奏の進行に応じて第１拍を演奏するタイミングで第１拍に対応するＬＥＤが点灯し、点灯の直後に消灯される。以降、第２拍、第３拍、第４拍それぞれの演奏タイミングで、それぞれの拍に対応するＬＥＤが点灯および消灯される。
【００２１】
選択された曲が３拍子の場合には、第１拍、第２拍、第３拍のタイミングで、それぞれの拍に対応するＬＥＤが点灯および消灯される。この表示により、使用者は、視覚によりいずれの拍が演奏されているのかを確認することができる。
【００２２】
次に、図３を参照して本発明による自動演奏装置１の構成を説明する。図３は、自動演奏装置１の主要な構成を機能的に示したブロック構成図である。操作パネル１０に設けられた操作子６は、各操作子に対応した操作情報を発生し、当該操作情報に応じたイベントをＣＰＵ２により処理される自動演奏メイン処理部へ入力する。操作情報としては、自動演奏の開始を示すスタート情報、自動演奏の停止を示すストップ情報、自動演奏させるために選択されたパターンを示すパターン選択情報、タップボタン６ｃの操作を示すタップ情報がある。また、操作パネル１０は、自動演奏メイン処理部から、所定の情報を表示器７の表示画面７ａおよびＬＥＤ７ｂへ表示するための表示指示を受け取る。
【００２３】
ＲＡＭ４の演奏データ記憶領域には、図示しない外部メモリ（フレキシブルディスクやメモリカード）から演奏データをロードして格納することができ、また、ＲＡＭ４の演奏データ記憶領域に格納された演奏データは外部メモリにセーブすることができる。
【００２４】
自動演奏メイン処理部は、パターン選択情報によるパターン選択指示に従って、外部メモリから選択されたパターンの演奏データをロードしてＲＡＭ４の演奏データ記憶領域に格納し、その演奏データをアドレス情報に従って読み出して音源８に出力する。音源８は、その演奏データを入力すると、演奏データに応じた音高と大きさの楽音を形成する。
【００２５】
ＣＰＵ２に内蔵されるクロックタイマ２ａは、自動演奏メイン処理部により所定の周期を設定され、自動演奏メイン処理部に対して設定された一定周期でクロックイベントを発行する。また、自動演奏メイン処理部は、クロックタイマ２ａに対し、自動演奏の開始を示すスタート情報が入力されるとクロックイベントの発行を許可し、自動演奏の停止を示すストップ情報が入力されるとクロックイベントの発行を禁止する。
【００２６】
ＣＰＵ２に内蔵されるタップ間隔計測タイマ２ｂは、タップ操作の時間間隔の計測を行うタイマであり、自動演奏メイン処理部によりタップ間隔の計測を指示されると、タップボタン６ｃが操作される時間間隔を計測して、その時間間隔を変数ｔとして自動演奏メイン処理部に与える。
【００２７】
次に図４を参照して、演奏データについて説明する。図４は、演奏データを構成するデータの一例を示している。演奏データは、演奏が行われる順に、時間に対応してイベントであるＭＩＤＩメッセージが記憶されている。時間は、ＭＩＤＩメッセージが音源に送られる時刻を表し、この時間の単位は、ティックである。このティックとは、テンポ値に対応する時間間隔であり、テンポ値により特定される１拍の時間長さを所定の値（例えば、２４）で除算した時間である。テンポ値は、１分当たりの拍数（ｂｅａｔ  ｐｅｒ  ｍｉｎｕｔｅを略してｂｐｍという）で表される。例えば、テンポ値が１２０ｂｐｍであれば、１拍の長さは、５００ｍｓｅｃであり、これを２４で除算すると１ティックは、２０．８３ｍｓｅｃとなる。
【００２８】
ＭＩＤＩメッセージは、ＭＩＤＩ規格により定められた情報で、音色などを設定するプログラムチェンジや、音量などを設定するコントロールチェンジや、発音の開始を指示するノートオンなどが規定されている。ＭＩＤＩメッセージは、チャネル番号により、複数の演奏パートをそれぞれ制御することができる。
【００２９】
図４に示された例では、第１番目のデータは、時間が０に設定され、ＭＩＤＩメッセージとしてプログラムチェンジが記憶されている。従って、演奏の開始と同時に、このプログラムチェンジが音源８に送られる。音源８は、このプログラムチェンジを受信すると、プログラムチェンジにより指定されるパートの音色をプログラムチェンジにより指定される音色に設定する。
【００３０】
第２番目のデータは、時間０に設定され、ＭＩＤＩメッセージとして、コントロールチェンジが記憶されている。第１番目のデータの時間が０に設定されているので、このコントロールチェンジも演奏の開始と同時に音源８に送られる。音源８は、このコントロールチェンジを受信すると、コントロールチェンジにより指定されるパートの音量などを設定する。
【００３１】
第３番目のデータは、時間０に設定され、ＭＩＤＩメッセージとして、ノートオンが記憶されている。、このノートオンも演奏の開始と同時に音源８に送られる。音源８は、このノートオンを受信すると、ノートオンにより指定されるパートにおいて、ノートオンにより指定される音高の楽音をノートオンにより指定されるベロシティ（押鍵速度）に応じた音量で発音する。
【００３２】
第４番目のデータは、時間２４に設定され、ＭＩＤＩメッセージとして、ノートオンが記憶されている。従って時刻が２４のタイミングで、この第４番目のノートオンが音源８に送られる。
【００３３】
次に、図５〜図７に示すフローチャートを参照してＣＰＵ２が実行する処理について説明する。まず、これらのフローチャートで使用される定数および変数について説明する。
【００３４】
ＴＰＱＮは、１拍当たりのティック数（例えば２４）を示す定数である。Ｃは、クロックイベントの発生時間間隔（例えば、１ｍｓｅｃ）を示す定数である。クロックタイマ２ａは、この時間間隔Ｃで、クロックイベントを発生する。
【００３５】
ＴＭＡＸは、設定可能な最も遅いテンポの１拍の時間を示す定数である。例えば、設定可能な最も遅いテンポを４０ｂｐｍとすると、ＴＭＡＸは、１．５ｓｅｃである。
【００３６】
ｔｉｃｋは、現在のティック数を示す変数である。また、ｔｅｍｐｏは、テンポを表す変数であって、その単位を１秒当たりのティック数（ｔｉｃｋ／ｓｅｃ）とする。テンポは、一般には１分当たりの拍数（ｂｐｍ）であるからテンポをＮ、１拍当たりのティック数（ＴＰＱＮ）を２４とすると、ｔｅｍｐｏ＝Ｎ×２４／６０である。
【００３７】
また、ｄｅｌａｙは、タップ操作子が操作された場合に、その時のティック数から直近の拍のタイミングのティック数までの差を示す変数である。タップ操作ボタン６ｃが拍のタイミングの前に操作された場合には、このｄｅｌａｙの値は、正の値に設定され、タップ操作ボタン６ｃが拍のタイミングの後に操作された場合には、このｄｅｌａｙの値は、負の値に設定される。なお、この実施形態では、タップ操作ボタン６ｃが操作されるタイミングは、１拍（４分音符）の先頭のタイミングに対応するものとする。なお、タップ操作ボタン６ｃが操作されるタイミングを、例えば、半拍（８分音符）や２拍（２分音符）などに対応するようにしてもよい。
【００３８】
図５は、メイン処理を示すフローチャートであって、自動演奏装置１の電源が投入されてから遮断されるまで実行される処理である。まず、初期化処理を行う（Ｓ１）。この初期化処理としては、演奏位置である変数ｔｉｃｋを０に、変数ｄｅｌａｙの値を０にそれぞれ設定し。表示器７に所定の初期画面を表示する処理などを行う。
【００３９】
次に、いずれかの操作子６が操作されたか否かを判断する（Ｓ２）。いずれの操作子６も操作されていない場合は（Ｓ２：Ｎｏ）、Ｓ１１の処理へ進み、いずれかの操作子６が操作された場合は（Ｓ２：Ｙｅｓ）、タップボタン６ｃが操作されるタップイベントが発生したか否かを判断する（Ｓ３）。
【００４０】
タップイベントが発生した場合には、後述するタップイベント処理を行う（Ｓ４）。タップイベント処理を終了した場合、またはＳ３の処理においてタップイベントが発生していない場合（Ｓ３：Ｎｏ）は、テンポ設定ボタン６ｂが操作されてテンポ値が変更されたか否かを判断する（Ｓ５）。テンポ値が変更された場合は（Ｓ５：Ｙｅｓ）、表示画面７ａに表示されたテンポ値を変更し、そのテンポ値に応じて変数ｔｅｍｐｏの値を算出する（Ｓ６：テンポ変更処理）。
【００４１】
テンポ変更処理を終了した場合、またはＳ５の処理においてテンポ設定ボタン６ｂが操作されていない場合は、次に、パターン選択ボタン６ａが操作されたか否かを判断する（Ｓ７）。パターン選択ボタン６ａが操作された場合は（Ｓ７：Ｙｅｓ）、その操作に応じ表示画面７ａに表示されたパターン名を変更し、パターンを読み出す読み出しアドレスを選択されたパターンのアドレスに変更する（Ｓ８：パターン変更処理）。このアドレス変更は、自動演奏が行われているときに行ってもよいし、自動演奏が停止しているときに行ってもよい。
【００４２】
パターン変更処理を終了した場合、またはＳ７の処理においてパターン選択ボタン６ａが操作されていない場合は、次に、スタート／ストップボタン６ｄが操作されたか否かを判断する（Ｓ９）。スタート／ストップボタン６ｄが操作された場合は（Ｓ９：Ｙｅｓ）、自動演奏が停止中であれば、自動演奏を開始する処理を行い、自動演奏が行われていれば、自動演奏を停止する処理を行う（Ｓ１０：スタート／ストップ処理）。
【００４３】
自動演奏を開始する処理は、時間間隔Ｃでクロックイベントを発生するようにクロックタイマ２ａを設定し、自動演奏を停止する処理は、クロックイベントの発生を停止するようにクロックタイマ２ａを設定する処理である。
【００４４】
スタートストップ処理を終了した場合、またはＳ９の処理においてスタート／ストップボタン６ｄが操作されていない場合は、次に、クロックイベントが発生したか否かを判断する（Ｓ１１）。このクロックイベントは、クロックタイマ２ａがＣＰＵ２に指示するイベントである。このクロックイベントが発生した場合は（Ｓ１１：Ｙｅｓ）、後述するクロックイベント処理を実行する（Ｓ１２）。クロックイベントが発生していない場合（Ｓ１１：Ｎｏ）およびクロックイベント処理を終了した場合は、Ｓ２の処理へ戻る。
【００４５】
次に、図６を参照してタップイベント処理について説明する。図６は、タップイベント処理を示すフローチャートである。タップ操作ボタン６ｃが操作されると、まず、変数ｄｅｌａｙの値を演算する（Ｓ２１）。ｄｅｌａｙの値は、定常状態では、０に設定され、タップ操作ボタン６ｃが操作された場合に、演奏位置を調整するために設定される。
【００４６】
この演算は、タップ操作ボタン６ｃが操作された時の演奏位置であるティック数とタップ操作ボタン６ｃにより指示される拍のタイミングに対応する演奏位置との差である。この実施形態では、タップ操作ボタン６ｃが操作されたタイミングは、拍のタイミングであるものとする。
【００４７】
この演算を式で表すと、−（（ｔｉｃｋ＋ＴＰＱＮ／２）％ＴＰＱＮーＴＰＱＮ／２）となる。ここで、「％」は、正の剰余を表す演算子である。例えばＡ％Ｂは、ＡをＢで割った余りであり、５％３は、２である。
【００４８】
この演算から分かるように、現在のテンポより速い時間間隔でタップ操作ボタン６ｃが操作された場合は、このｄｅｌａｙの値は、正の値に設定される。一方、現在のテンポより遅い時間間隔でタップ操作ボタン６ｃが操作された場合は、このｄｅｌａｙの値は負の値に設定される。
【００４９】
次に、タップ間隔計測タイマ２ｂから計測値ｔを取得する（Ｓ２２）。次に、タップ間隔計測タイマ２ｂの計測値をクリアし、次にタップ操作ボタン６ｃが操作されるまでの時間の計測を開始するようにタップ間隔計測タイマ２ｂを設定する（Ｓ２３）。
【００５０】
次に、タップ間隔計測タイマ２ｂから取得した時間ｔが設定することができる最も遅いテンポの周期ＴＭＡＸに等しいまたは小さいか否かを判断する（Ｓ２４）。時間ｔが、ＴＭＡＸに等しいかまたは小さい場合は（Ｓ２４：Ｙｅｓ）、変数ｔｅｍｐｏの値を、ＴＰＱＮ／ｔとする（Ｓ２５）。変数ｔｅｍｐｏの値をＴＰＱＮ／ｔとした場合、またはＳ２５の処理において時間ｔが、ＴＭＡＸより大きい場合は、（Ｓ２４：Ｎｏ）このタップイベント処理を終了し、メイン処理へ戻る。
【００５１】
なお、時間ｔがＴＭＡＸに等しいまたは小さいか否かを判断する理由は、時間ｔが、ＴＭＡＸより大きい場合は、タップ操作ボタン６ｃが、しばらく操作されていない状態から、操作された場合であると判断し、その時間ｔは無視し、その次に時間ｔがＴＭＡＸに等しいかまたは小さい場合に、その時間間隔ｔに基づいてｔｅｍｐｏ値を変更するためである。
【００５２】
次に図７を参照して、クロックイベント処理について説明する。図７は、クロックイベント処理を示すフローチャートである。クロックタイマ２ａにより所定の時間間隔で、クロックイベントが発生した場合は、まず、テンポ値に対するその時間間隔のティック数であるｄｔを演算する（Ｓ３１）。この演算式は、Ｃ×ｔｅｍｐｏである。
【００５３】
次に、変数ｄｅｌａｙの値をｄｔだけ進める（Ｓ３２）。次に、現在のｄｅｌａｙの値が正の値か否かを判断する（Ｓ３３）。ｄｅｌａｙの値が正の値である場合は、現在のティックｔｉｃｋからｔｉｃｋ＋ｄｅｌａｙまでの演奏データを音源８へ出力する（Ｓ３４）。次に、ｔｉｃｋの値をｄｅｌａｙの値だけ進め（Ｓ３５）、ｄｅｌａｙの値を０に設定する（Ｓ３６）。Ｓ３３の処理でｄｅｌａｙの値が正の値ではない場合（Ｓ３３：Ｎｏ）、またはＳ３６の処理を終了した場合は、メイン処理へ戻る。
【００５４】
このクロックイベント処理では、タップ操作ボタン６ｃが操作されない定常状態では、Ｓ３６の処理においてｄｅｌａｙの値が０に設定され、次にクロックが発生した場合には、Ｓ３２の処理でｄｔの値がｄｅｌａｙの値に加算されるので、ｄｅｌａｙの値はｄｔの値となりＳ３３の判断は、常にＹｅｓとなって、演奏位置を表すｔｉｃｋ値が歩進される。
【００５５】
一方、タップ操作ボタン６ｃが操作され、そのタイミングが拍（直近の拍）の前であれば、ｄｅｌａｙの値は正の値に設定されるので、Ｓ３３の判断は、Ｙｅｓとなって、ｔｉｃｋの値が、拍のタイミングの演奏位置に設定される。また、タップ操作ボタン６ｃが操作され、そのタイミングが拍の後であれば、ｄｅｌａｙの値が負の値に設定され、Ｓ３３の判断は、Ｎｏとなりｄｅｌａｙの値が正の値になるまで、ｔｉｃｋの値は、歩進されない。
【００５６】
次に、図８に示すグラフを参照して、具体的なテンポが変化する様子について説明する。図８（ａ）は、現在のテンポより遅い時間間隔でタップ操作ボタン６ｃが操作された場合を、図８（ｂ）は、現在のテンポより速い時間間隔でタップ操作ボタン６ｃが操作された場合を、それぞれ、時間の経過に従って読み出し位置を示すティックの値が変化する様子を示すグラフである。図８（ａ）,（ｂ）は、ともに横軸に時間（ｓｅｃ）を、縦軸にティック数を表し、いずれも現在のテンポ値を１２０とし、現在のテンポによる時間に対するティック値を一点鎖線で表している。この一点鎖線は、時刻０．５のとき、ｔｉｃｋの値２４、時刻１．０のとき、ｔｉｃｋの値４８をとる。
【００５７】
図８（ａ）において、時刻Ａ（０．６２５ｓｅｃ）に最初のタップ操作ボタン６ｃが操作されたものとする。すなわち、タップ操作が行われた時刻Ａと、それ以前に操作された時刻との間隔が十分く、時刻Ａにおけるｔｉｃｋの値が３０であったものとする。
【００５８】
この場合は、図６に示すフローチャートのＳ２１の処理で、ｔｉｃｋが３０、ＴＰＱＮが２４、であるからｄｅｌａｙは、−６ｔｉｃｋとなる。次にＳ２３の処理によりタップ間隔計測タイマ２ｂによる計測値ｔが取得されるが、Ｓ２５の処理において、この値ｔはＴＭＡＸに比べ十分大きな値であるので、変数ｔｅｍｐｏは、変更されない。
【００５９】
このタップイベント処理が行われた後、図７に示すフローチャートの処理において、クロックイベントが発生するとＳ３２の処理で、ｄｅｌａｙの値にｄｔの値が加算される。  ｄｅｌａｙの値が負である間は、Ｓ３４の処理は行われないので、新たな演奏データがメモリから読み出されず、音源８から新たな楽音は発生されない。
【００６０】
ｄｅｌａｙの値にｄｔが加算され、ｄｅｌａｙの値が正になると、ｔｉｃｋの値に応じて演奏データが読み出され、音源８へ出力される（Ｓ３４）。
【００６１】
したがって、図８（ａ）に示すように、次にタップ操作ボタン６ｃが操作される時刻Ｂまでは、現在のテンポで演奏が行われるので、グラフの傾きは、現在のテンポの傾きと同一である。
【００６２】
次に、時刻Ｂ（１．２５ｓｅｃ）において、タップ操作ボタン６ｃが操作されたものとする。このとき、ｔｉｃｋの値は、５４である。この場合もｄｅｌａｙの値は、Ｓ２１の処理で−６となる。次ぎにＳ２３の処理によりタップ間隔計測タイマ２ｂの計測値ｔは、１．２５−０．６２５＝０．６２５となる。この値は、ＴＭＡＸの値より小さいので、新たなｔｅｍｐｏの値が２４／０．６２５として設定される（Ｓ２５）。
【００６３】
図７に示すフローチャートの処理では、この新たなｔｅｍｐｏ値に基づいてｄｔ値が設定され、ｄｅｌａｙ値は、クロックイベントが発生する度に変更される。ｄｅｌａｙの値が負の値である間は、ｔｉｃｋの値は、変更されず、ｄｅｌａｙの値が、正の値になると、クロックイベントが発生する度にｔｉｃｋの値が変更される。従って、図８（ａ）の時刻ＢからＣの間に示すように、ｔｉｃｋ値は、タップ操作ボタン６ｃが操作された時間間隔により設定された新たなテンポでｔｉｃｋが歩進される。時刻Ｂから、時刻Ａと時刻Ｂとの時間間隔と同じ時間間隔である時刻Ｃ（１．８７５ｓｅｃ）において、タップ操作ボタン６ｃが操作された場合は、タップ操作により指示される演奏位置であるｔｉｃｋの値が７２であって一致し、ｄｅｌａｙの値は、０となる。このように設定された後、タップ操作を中止してもそれまでにタップ操作により設定されたテンポで演奏が継続される。
【００６４】
図８（ｂ）は、図８（ａ）の場合とは逆に、テンポを速くするようにタップ操作ボタン６ｃが操作された場合を示し、時刻Ｄ（０．３７５ｓｅｃ）において、最初の操作が行われたものとする。この場合は、ｔｉｃｋ値が１８であり、ＴＰＱＮの値である２４に到達していない。図６に示すフローチャートのＳ２１の処理で、ｔｉｃｋが１８、ＴＰＱＮが２４、であるからｄｅｌａｙは、＋６ｔｉｃｋとなる。次にＳ２２の処理により、ｔｉｃｋの値が１８＋６＝２４に変更される。次にＳ２３の処理によりタップ間隔計測タイマ２ｂによる計測値ｔが取得されるが、Ｓ２５の処理において、この値はＴＭＡＸに比べ十分大きな値であるので、変数ｔｅｍｐｏは、変更されない。
【００６５】
このタップイベント処理が行われた後、図７に示すフローチャートのクロックイベント処理において、クロックイベントが発生すると、Ｓ３２の処理で、ｄｅｌａｙの値が正であるので、ｔｉｃｋの値に対応する演奏位置より以前の演奏データで、まだ音源８に出力されていない演奏データは、全て音源８に出力される。その後、時刻Ｅまで、同じテンポで演奏が行われる。したがって、図８（ｂ）に示すように、次にタップ操作ボタン６ｃが操作される時刻Ｅまでは、現在のテンポで演奏が行われるので、グラフの傾きは、現在のテンポの傾きと同じである。
【００６６】
次に、時刻Ｅ（０．７５ｓｅｃ）において、タップ操作ボタン６ｃが操作されたものとする。このとき、ｔｉｃｋの値は、４２である。この場合にも、ｄｅｌａｙの値はＳ２１の処理で＋６となり、ｔｉｃｋの値は、４２＋６＝４８に変更される。
【００６７】
Ｓ２３の処理で、タップ間隔計測タイマ２ｂの計測値ｔは、０．７５−０．３７５＝
０．３７５となる。この値はＴＭＡＸの値より小さいので、新たなｔｅｍｐｏの値が、２４／０．３７５として設定される。
【００６８】
以上説明したように、本発明による自動演奏装置は、タップ操作が行われたとき、演奏位置がタップ操作に対応する演奏の区切り位置に到達していない場合は、演奏位置を区切り位置に移動し、タップ操作により設定された新たなテンポに変更して演奏を行い、演奏位置がタップ操作に対応する区切り位置に到達するまでにタップ操作が行われない場合は、引き続き演奏を行うとともに、その後タップ操作が行われた場合は、演奏位置を、タップ操作に対応する演奏の区切り位置に移動し、タップ操作により設定される新たなテンポで演奏を行うように制御している。したがって、タップ操作により適切なテンポを設定することができた場合に、タップ操作を中止するだけで、その設定されたテンポで演奏を続けることができるので、操作が簡単であるとともに、タップ操作によるテンポの設定を終了したことを入力するための操作子が不要であり、自動演奏装置の製造コストを安くすることができる。
【００６９】
なお、請求項１でいう、テンポ設定手段は、図７に示すフローチャートのＳ３１の処理が該当し、演奏位置設定手段は、図７に示すフローチャートのＳ３６の処理が該当し、自動演奏手段は、図７に示すフローチャートのＳ３５の処理が該当し、制御手段は、図６に示すフローチャートの処理と、図７に示すフローチャートの処理とが該当する。
【００７０】
以上、実施形態に基づき本発明を説明したが、本発明は上記実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
【００７１】
例えば、上記実施形態では、タップ操作ボタン６ｃが操作された場合に、演奏の区切り位置として、演奏の拍（４分音符）のタイミングを対応付けたが、半拍（８分音符）あるいは２分音符などに対応付けるようにしてもよい。また、その場合に、タップタイミングにいずれの音符を対応付けるかを、任意に設定できるようにしてもよい。
【００７２】
また、上記実施形態ではタップ操作が行われたとき、演奏位置がタップ操作に対応する演奏の区切り位置をすでに通過している場合は、演奏の区切り位置とタップ操作が行なわれたときの演奏位置との差に対応する遅延時間の間演奏位置の歩進を停止するように制御したが、演奏位置を演奏の区切り位置に戻し、すでに読出した区切り位置からタップ操作が行われた時の演奏位置までの演奏データを再度読み出して発音するようにしてもよい。
【図面の簡単な説明】
【００７３】
【図１】本発明の実施形態による自動演奏装置の電気的構成を示すブロック図である。
【図２】自動演奏装置の操作パネルを示す平面図である。
【図３】自動演奏装置の主要な構成を機能的に示したブロック構成図である。
【図４】演奏データを示す図である。
【図５】メイン処理を示すフローチャートである。
【図６】タップイベント処理を示すフローチャートである。
【図７】クロックイベント処理を示すフローチャートである。
【図８】時間の進行に対し、演奏データを読み出す読み出し位置の変化を示すグラフであり、（ａ）は、テンポが遅くなる場合を、（ｂ）は、テンポが速くなる場合をそれぞれ示す図である。
【符号の説明】
【００７４】
１                          自動演奏装置
２                          ＣＰＵ
２ｂ                        タップ間隔計測タイマ（計測手段）
３                          ＲＯＭ（記憶手段）
６                          操作子
６ｃ                        タップ操作ボタン（タップ操作子）
７                          表示器
８                          音源
【図１】
2006145721.tif 000003
【図２】
2006145721.tif 000004
【図３】
2006145721.tif 000005
【図４】
2006145721.tif 000006
【図５】
2006145721.tif 000007
【図６】
2006145721.tif 000008
【図７】
2006145721.tif 000009
【図８】
2006145721.tif 000010