(57)【特許請求の範囲】
【請求項１】
自動演奏データを記録し、再生する自動演奏装置において、
操作子イベントを記録するための自動演奏データ記憶手段と、
前記操作子イベントの記録開始からの経過時間を計測する時間計測手段と、
該計測された経過時間が設定された所定時間を超えた場合には、前記自動演奏データ記憶手段に記録された前記所定時間のデータを、該所定時間より短い所定単位時間毎のブロックデータに分割して得られた複数のブロックデータの内、古いものから当該ブロック単位で消去して、該自動演奏データ記憶手段には前記所定時間内のデータを記録するように制御する制御手段と
を有し、
前記制御手段は、前記所定単位時間毎に、該時点のパネル設定データを前記自動演奏データ記憶手段に記録することを特徴とする自動演奏装置。
【請求項２】
前記自動演奏データ記憶手段は、パネル設定データを一時的に記憶するパネル設定データ記憶領域を有し、
前記制御手段は、前記古いデータを消去するときに、該消去されるデータに含まれ、パネル設定データに関連する操作子イベントで、前記記憶されたパネル設定データを更新することを特徴とする請求項１記載の自動演奏装置。
【請求項３】
前記自動演奏データ記憶手段に記録したデータのうち、ユーザが指示した一部のデータを切り取り、記録媒体にセーブするセーブ手段を有することを特徴とする請求項１または２のいずれかに記載の自動演奏装置。
【請求項４】
前記自動演奏データ記憶手段の所望の位置にマークを埋め込むマーク埋め込み手段と、
該埋め込まれたマークを再生時に検出するマーク検出手段と
を有し、
前記マーク検出手段によってマークが検出されたときには、前記制御手段は、該検出されたマークの次の自動演奏データを読み出すことを特徴とする請求項１乃至３のいずれかに記載の自動演奏装置。
【請求項５】
前記自動演奏データ記憶手段中の所定時間以上の空白を検出する空白検出手段を有し、
前記空白検出手段によって前記所定時間以上の空白が検出されたときには、前記制御手段は、該検出された空白の次の自動演奏データを読み出すことを特徴とする請求項１乃至４のいずれかに記載の自動演奏装置。
【請求項６】
前記自動演奏データ記憶手段に記録した操作子イベントのうち、リズムスタートイベントを検出するリズムスタートイベント検出手段を有することを特徴とする請求項１乃至５のいずれかに記載の自動演奏装置。
【請求項７】
パネル設定データを記憶するパネル設定データ記憶手段と、
前記記録したパネル設定データを前記パネル設定データ記憶手段にセーブするパネル設定データセーブ手段と
を有することを特徴とする請求項１乃至６に記載の自動演奏装置。
【請求項８】
ユーザが前記設定された所定時間を変更するための記録時間変更手段を有することを特徴とする請求項１乃至７のいずれかに記載の自動演奏装置。
【請求項９】
前記自動演奏データ記憶手段へのデータの記録を終了し、次の記録を開始する場合に、前のデータを記録媒体にセーブしていないときには、該データのセーブを行うか否かをユーザに確認するための確認手段を有することを特徴とする請求項１乃至８のいずれかに記載の自動演奏装置。
【請求項１０】
前記記憶媒体中の、自動演奏データがセーブされているファイルを読み出し、前記自動演奏データ記憶手段にロードするロード手段を有し、
前記確認手段は、該ロード手段により自動演奏データをロードするときに、前記自動演奏データ記憶手段にデータが記録されている場合には、その記録されているデータをセーブするか否かをユーザに確認することを特徴とする請求項９記載の自動演奏装置。
【請求項１１】
前記制御手段は、古いブロックデータが消去された後に残った自動演奏データの先頭にスタートイベントを書き込むことを特徴とする請求項１記載の自動演奏装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、自動演奏データを記録し、再生する自動演奏装置に関する。
【０００２】
【従来の技術】
従来、自動演奏装置に操作子イベント等の自動演奏データをリアルタイム入力するときには、ユーザが自動演奏装置を記録状態にしてスタートの指示を行うと、自動演奏装置は、所定期間（例えば、１または２小節間）のカウントを行った後に、自動演奏データの記録を開始する。そして、ユーザが自動演奏装置に対して停止の指示を行うと、自動演奏データの記録を停止する。
【０００３】
また、ユーザが行った鍵盤等の操作に同期して記録を開始するように構成された自動演奏装置もある。
【０００４】
【発明が解決しようとする課題】
しかしながら、上記従来の自動演奏装置では、自動演奏データを記録する前および後で所定の操作を行う必要があり、ユーザは演奏（記録）に集中できないという問題が生じた。また、自動演奏データの記録を意識するあまり、演奏がぎこちなくなってしまうこともあった。
【０００５】
本発明は、上記問題に鑑みてなされたもので、自動演奏データを記録するときに、ユーザが演奏に集中できるとともに、自動演奏データの記録を意識せずに行うことが可能な自動演奏装置を提供することを目的とする。
【０００６】
【課題を解決するための手段】
上記目的を達成するため本発明は、自動演奏データを記録し、再生する自動演奏装置において、操作子イベントを記録するための自動演奏データ記憶手段と、前記操作子イベントの記録開始からの経過時間を計測する時間計測手段と、該計測された経過時間が設定された所定時間を超えた場合には、前記自動演奏データ記憶手段に記録された前記所定時間のデータを、該所定時間より短い所定単位時間毎のブロックデータに分割して得られた複数のブロックデータの内、古いものから当該ブロック単位で消去して、該自動演奏データ記憶手段には前記所定時間内のデータを記録するように制御する制御手段とを有し、前記制御手段は、前記所定単位時間毎に、該時点のパネル設定データを前記自動演奏データ記憶手段に記録することを特徴とする。
【０００８】
また、好ましくは、前記自動演奏データ記憶手段は、パネル設定データを一時的に記憶するパネル設定データ記憶領域を有し、前記制御手段は、前記古いデータを消去するときに、該消去されるデータに含まれ、パネル設定データに関連する操作子イベントで、前記記憶されたパネル設定データを更新することを特徴とする。
【０００９】
さらに、好ましくは、前記自動演奏データ記憶手段に記録したデータのうち、ユーザが指示した一部のデータを切り取り、記録媒体にセーブするセーブ手段を有することを特徴とする。
【００１０】
また、前記自動演奏データ記憶手段の所望の位置にマークを埋め込むマーク埋め込み手段と、該埋め込まれたマークを再生時に検出するマーク検出手段とを有し、前記マーク検出手段によってマークが検出されたときには、前記制御手段は、該検出されたマークの次の自動演奏データを読み出すことを特徴とし、または、前記自動演奏データ記憶手段中の所定時間以上の空白を検出する空白検出手段を有し、前記空白検出手段によって前記所定時間以上の空白が検出されたときには、前記制御手段は、該検出された空白の次の自動演奏データを読み出すことを特徴とし、または、前記自動演奏データ記憶手段に記録した操作子イベントのうち、リズムスタートイベントを検出するリズムスタートイベント検出手段を有することを特徴とする。
【００１１】
さらに、パネル設定データを記憶するパネル設定データ記憶手段と、前記記録したパネル設定データを前記パネル設定データ記憶手段にセーブするパネル設定データセーブ手段とを有することを特徴とする。
【００１２】
また、好ましくは、ユーザが前記設定された所定時間を変更するための記録時間変更手段を有することを特徴とする。
【００１３】
さらに、好ましくは、前記自動演奏データ記憶手段へのデータの記録を終了し、次の記録を開始する場合に、前のデータを記録媒体にセーブしていないときには、該データのセーブを行うか否かをユーザに確認するための確認手段を有することを特徴とし、または、前記記憶媒体中の、自動演奏データがセーブされているファイルを読み出し、前記自動演奏データ記憶手段にロードするロード手段を有し、前記確認手段は、該ロード手段により自動演奏データをロードするときに、前記自動演奏データ記憶手段にデータが記録されている場合には、その記録されているデータをセーブするか否かをユーザに確認することを特徴とする。
また、好ましくは、前記制御手段は、古いブロックデータが消去された後に残った自動演奏データの先頭にスタートイベントを書き込むことを特徴とする。
【００１４】
【作用】
本発明の構成に依れば、時間計測手段により計測された経過時間が設定された所定時間を超えた場合には、自動演奏データ記憶手段に記録された前記所定時間のデータを、該所定時間より短い所定単位時間毎のブロックデータに分割して得られた複数のブロックデータの内、古いものから当該ブロック単位で消去され、自動演奏データ記憶手段には前記所定時間内のデータが記録される。
【００１５】
【実施例】
以下、本発明の実施例を図面に基づいて詳細に説明する。
【００１６】
図１は、本発明の一実施例に係る自動演奏装置の概略構成を示すブロック図である。
【００１７】
同図に示すように、本実施例の自動演奏装置は、音高情報を入力するための鍵盤１と、各種情報を入力するためのスイッチ群２と、鍵盤１の押鍵状態を検出する押鍵検出回路３と、スイッチ群２の各スイッチの押下状態を検出するスイッチ検出回路４と、装置全体の制御を司るＣＰＵ５と、該ＣＰＵ５が実行する制御プログラムやテーブルデータ等を記憶するＲＯＭ６と、自動演奏データ、各種入力情報および演算結果等を一時的に記憶するＲＡＭ７と、タイマ割り込み処理における割り込み時間や各種時間を計時するタイマ８と、自動演奏データや各種情報等を表示する表示回路９と、外部からのＭＩＤＩ（Musical Instrument Digital Interface）信号を入力したり、ＭＩＤＩ信号として外部に出力したりするＭＩＤＩインターフェース（Ｉ／Ｆ）１０と、記憶媒体であるフロッピディスク（ＦＤ）をドライブするフロッピディスクドライブ（ＦＤＤ）１１と、鍵盤１からの演奏データや自動演奏データ等を楽音信号に変換する音源回路１２と、該音源回路１２からの楽音信号に各種効果を付与するための効果回路１３と、該効果回路からの楽音信号を音響に変換する、例えばスピーカ等のサウンドシステム１４とにより構成されている。
【００１８】
上記構成要素３〜１３は、バス１５を介して相互に接続され、ＣＰＵ５にはタイマ８が接続され、音源回路１２には効果回路１３が接続され、効果回路１３にはサウンドシステム１４が接続されている。
【００１９】
なお、本実施例では、記憶媒体としてフロッピディスクを用いているが、これに限らず、ハードディスクやＭＯ（Magneto Optical disk）等であってもよい。
【００２０】
図２は、前記スイッチ群２が配設されているパネル面を示す図である。
【００２１】
同図において、スイッチ群２は、前記ＲＡＭ７に確保された自動演奏データ格納領域に鍵盤１やスイッチ群２の操作データ（以下、「自動演奏データ」と呼ぶ）をエンドレス記録するためのエンドレス記録スイッチ２１と、記録された自動演奏データを再生するための再生スイッチ２２と、再生を一時的に停止するための再生一時停止スイッチ２３と、記録および再生を停止するための停止スイッチ２４と、再生時に早送りするための早送りスイッチ２５と、早戻しするための早戻しスイッチ２６と、リズム演奏の開始／停止を指示し、記録時にリズムスタート（ＲＳＴ）／ストップイベントを書き込むためのリズムスタート／ストップスイッチ２７と、記録時にマークイベントを書き込むためのマークスイッチ２８と、リズムスタートイベントが書き込まれた位置を検索するためのＲＳＴスイッチ２９と、自動演奏データ格納領域中の所定時間以上の空白部分を検索するための空白スイッチ３０と、記録した自動演奏データのうち所望の部分をフロッピディスクにセーブするときに、その開始点Ａの位置を決定するためのＡ点スイッチ３１と、その終了点Ｂを決定するためのＢ点スイッチ３２と、開始点Ａと終了点Ｂの間の自動演奏データをセーブするためのＡＢ間セーブスイッチ３３と、ＲＡＭ７の所定領域に確保されたレジストレーションデータ記録領域にパネル設定データをセーブするためのパネル設定セーブスイッチ３４と、自動演奏データ格納領域に格納された自動演奏データ等をファイルとしてフロッピディスクにセーブするためのセーブスイッチ３５と、フロッピディスクに記録されている自動演奏データ等のファイルを読み出して自動演奏データ格納領域にロードするためのロードスイッチ３６とにより構成されている。
【００２２】
また、エンドレス記録スイッチ２１、再生スイッチ２２および再生一時停止スイッチ２３の各近傍には、それぞれＬＥＤ４１〜４３が配設され、各スイッチ２１〜２３の操作状態が分かるようになっている。
【００２３】
なお、実際には、パネル面に配設されるスイッチは、上記スイッチ２１〜３６以外のものもあるが、本発明の特徴を説明する上で不可欠なものでないため、その図示および説明を省略する。
【００２４】
図３は、自動演奏データを自動演奏データ格納領域７1に記録するときのフォーマットおよびその自動演奏データをフロッピディスクにセーブするときのフォーマットを示す図である。図中、（ａ）は、自動演奏データ格納領域７1に記録された自動演奏データの一例を示し、（ｂ）は、設定した記録時間が経過したときの自動演奏データ格納領域７1の状態の一例を示し、（ｃ）は、記録された自動演奏データをフロッピディスクにセーブするときのファイルのフォーマットを示している。
【００２５】
（ａ）に示すように、自動演奏データの記録を開始すると、ＣＰＵ５は、自動演奏データ格納領域７1に、まず、記録開始を示すスタートイベント５１を書き込み、次に、自動演奏データ間の時間間隔を示すデルタタイム５２を書き込み、現在設定されているパネル設定情報、即ち、音色、音量、効果、リズム等の情報から成るパネル設定イベント５３を書き込み、該イベント５３と次のイベント５５とのデルタタイム５４を書き込み、ユーザが操作した操作子のイベント、例えば、ノートイベント、その他の演奏イベント、マーカ等の操作子イベント５５を書き込む。同様にして、デルタタイムおよびイベントの順に自動演奏データを書き込み、所定の時間、例えば１０ｓｅｃ経過すると、その時間経過を示す１０ｓｅｃイベント５６を書き込む。以上のようにして、自動演奏データ格納領域７1に順次、自動演奏データを書き込んで行く。
【００２６】
なお、本実施例では、１０ｓｅｃ毎に区切りイベント（１０ｓｅｃイベント５６）を記録するように構成したが、これに限らず、１０ｓｅｃ以外の時間で区切るようにしてもよいし、また、このような区切りイベントを記録しなくてもよい。
【００２７】
本実施例では、ユーザが自動演奏データを記録したい時間を設定することができ、この設定された記録時間が経過すると、（ｂ）に示すように、（ａ）のスタートイベント５１から最初の１０ｓｅｃイベント５６までの自動演奏データを消去し、スタートイベント５１を、消去されていない自動演奏データの最初のデルタタイム５７の前に書き込む。なお、自動演奏データ格納領域７1の容量は、ユーザが設定した時間にもとづいて決定され、該時間分の演奏データが十分格納できるように余裕ををもって確保されている。その後１０秒が経過する度に、先頭（スタートイベント）から最初の１０ｓｅｃイベントまでの領域を消去する。即ち、自動演奏データ格納領域７1を１０ｓｅｃ毎のブロックに分割し、その分割したブロックを１単位として古いデータの消去が行われる。
【００２８】
なお、前述したように、区切りイベント（本実施例では、１０ｓｅｃイベント５６）を自動演奏データ格納領域７1に記録しない場合には、デルタタイム５４，…に基づいて消去すべき領域を算出し、その領域を順次消去するようにすればよい。
【００２９】
そして記録が進み、確保されている自動演奏データ格納領域７1が一杯になると、領域の先頭（前述のように先頭のデータは既に消去されており、領域の先頭部分は空き領域となっている）から、新しく入力された自動演奏データを順次書き込んで行く。
【００３０】
以上のようにユーザが設定した時間分の自動演奏データが自動演奏データ格納領域７1に記録されていく。
【００３１】
このようにして記録した自動演奏データをフロッピディスクにセーブするときには、（ｃ）に示すように、記録した自動演奏データの先頭に、ファイル名、記録日時、および、設定されたテンポ等の情報を含むヘッダデータ５８を付与し、その最後には自動演奏データの終わりを示すエンドデータ５９を付与し、ファイル形式にしてセーブする。
【００３２】
なお、本実施例では、自動演奏データは、各種イベントおよびそのイベント間のデルタタイムというデータフォーマットにより構成したが、これに限らず、各種イベントおよび絶対時間というデータフォーマット等でもよい。
【００３３】
また、本実施例では、自動演奏データ格納領域７1として、連続したメモリ空間に自動演奏データを順次記録するように構成したが、これに限らず、不連続なメモリ空間を所定のブロックに分割し、１つのブロックを使い切ると、空いているブロックを探し、そのブロックに続きの自動演奏データを記録するとともに、設定した時間が経過したときには、最初に記録したブロックに記録されている自動演奏データを前述と同様消去していくようにしてもよい。各ブロックの連結状態を管理しておけば、連続したメモリに記録していくのと同じことになるからである。
【００３４】
以上のように構成された自動演奏装置のＣＰＵ５が実行する制御処理を、以下、図４〜２９のフローチャートに基づいて説明する。
【００３５】
図４は、ユーザが入力した自動演奏データを自動演奏データ格納領域７1にエンドレス記録する記録処理の手順を示すフローチャートである。本処理は、タイマ割り込み処理中で行われるものであり、このタイマ割り込みは、設定テンポに応じた時間により発生する。具体的には、ユーザがテンポを設定すると、そのテンポに応じた時間がタイマ８の所定のレジスタに設定され、タイマ８は、その時間を一定時間毎にダウンカウントして“０”になると、タイマ割り込み信号をＣＰＵ５に送信し、この割り込み信号に応じてＣＰＵ５は、本記録処理に制御を移す。
【００３６】
図４において、まず、前記ＲＡＭ７の所定領域に確保され、自動演奏データのエンドレス記録中を示すフラグＲＥＣの状態を判別し、記録中（フラグＲＥＣ＝１）のときにはステップＳ２に進み、一方、記録中でない（フラグＲＥＣ＝０）ときには本記録処理を終了する。
【００３７】
ステップＳ２では、ＲＡＭ７の所定領域に確保され、各種イベントデータを一時的に格納するイベントバッファ（図示せず）をチェックし、ステップＳ３では、イベントバッファ中にイベントデータが格納されているか否かを判別する。
【００３８】
ステップＳ３の判別で、イベントデータが格納されているときには、自動演奏データ格納領域（メモリ）７1のアドレスを進め、ＲＡＭ７の所定領域に確保され、前記デルタタイム５２，５４を生成するためのカウンタＴＩＭＥの値を当該アドレスに書き込み（ステップＳ４）、自動演奏データ格納領域７1のアドレスを進め、イベントバッファに格納されているイベントデータの１つを当該アドレスに書き込み（ステップＳ５）、カウンタＴＩＭＥをクリア（“０”を格納）し（ステップＳ６）、イベントバッファの続きをチェックする（ステップＳ７）。
【００３９】
続くステップＳ８では、イベントバッファに格納されているイベントデータがあるか否かを判別し、まだ残っているときには前記ステップＳ４に戻って上述の処理を繰り返し、一方、全てのイベントデータを自動演奏データ格納領域７1に書き込んだときにはステップＳ９に進み、イベントバッファをクリアする。
【００４０】
一方、ステップＳ３の判別で、イベントバッファにイベントデータが格納されていないときには、前記ステップＳ４〜Ｓ９をスキップして、ステップＳ１０に進む。
【００４１】
ステップＳ１０では、カウンタＴＩＭＥの値を“１”だけインクリメントする。
【００４２】
続くステップＳ１１では、ＲＡＭ７の所定領域に確保されたフラグＤＥＬＥＴＥの状態を判別する。ここで、フラグＤＥＬＥＴＥは、前記図３（ｂ）で説明したように、ユーザが設定した記録時間が経過したときに、記録されている自動演奏データの先頭から１０秒分の自動演奏データを消去する指示を行うフラグである。
【００４３】
ステップＳ１１の判別で、消去する指示がなされているとき（フラグＤＥＬＥＴＥ＝１）には、自動演奏データ格納領域７1のスタートイベントの次から最初の１０ｓｅｃイベントまでの自動演奏データ（すなわち１０秒分の自動演奏データ）を消去し（ステップＳ１２）、フラグＤＥＬＥＴＥをクリア（“０”）した（ステップＳ１３）後に、本記録処理を終了する。一方、ステップＳ１１の判別で、消去する指示がなされていないとき（フラグＤＥＬＥＴＥ＝０）には、ステップＳ１２，Ｓ１３をスキップして本記録処理を終了する。
【００４４】
図５は、１０ｓｅｃ毎の処理の手順を示すフローチャートであり、本処理は、タイマ８が１０ｓｅｃ毎に発生するタイマ割り込み信号に応じて、行われるものである。
【００４５】
同図において、まず、前記イベントバッファに１０ｓｅｃイベントを書き込み（ステップＳ２１）、イベントバッファに現在のパネル設定状態を示すパネル設定イベントを書き込み（ステップＳ２２）、ＲＡＭ７の所定領域に確保され、自動演奏データの記録を開始してからの経過時間をカウントするためのソフトカウンタＰＡＳＴＩＭＥを“１”だけインクリメントする（ステップＳ２３）。
【００４６】
すなわち１０秒経過する毎にパネル設定データが自動演奏データ中に記録されていく。
【００４７】
次に、ＲＡＭ７の所定領域に確保され、前記ユーザが設定した自動演奏データの記録時間を記憶する領域ＲＥＣＴＩＭＥの値（以下、この値を全記録時間ＲＥＣＴＩＭＥという）とカウンタＰＡＳＴＩＭＥの値（以下、この値を経過時間ＰＡＳＴＩＭＥという）とを比較し、経過時間ＰＡＳＴＩＭＥが全記録時間ＲＥＣＴＩＭＥより大きいとき、即ち、記録を開始してから、ユーザが設定した記録時間が経過しているときには、前記フラグＤＥＬＥＴＥをセット（“１”）し（ステップＳ２５）、経過時間ＰＡＳＴＩＭＥを全記録時間ＲＥＣＴＩＭＥにより更新する（ステップＳ２６）。一方、ステップＳ２４の比較で、経過時間ＰＡＳＴＩＭＥが全記録時間ＲＥＣＴＩＭＥ以下であるとき、即ち、設定した記録時間がまだ経過していないときには、ステップＳ２５，Ｓ２６をスキップしてステップ２７に進む。
【００４８】
ステップＳ２７では、経過時間ＰＡＳＴＩＭＥに基づいて経過時間を前記表示回路９に表示した後に、本処理を終了する。
【００４９】
図６は、記録時間設定処理の手順を示すフローチャートであり、図示しないメインルーチン中で行われるものである。記録時間設定スイッチ（図示せず）が押されたり、記録時間設定モードに移行したりすることにより、この処理が呼び出される。
【００５０】
同図において、ユーザがテンキー（図示せず）等によって記録時間を入力すると、ＲＡＭ７のワークエリア等に一時的に記憶した（ステップＳ３１）後に、その時間を前記領域ＲＥＣＴＩＭＥに格納する（ステップＳ３２）。ここで、ステップＳ３１の記録時間の入力は、例えば、１０ｓｅｃを１単位として、６から３６０、即ち、１分から６０分までの値を設定するが、記録時間の入力方法や設定時間は、これに限らないことは云うまでもない。
【００５１】
本処理により、入力された時間に応じて、自動演奏データ格納領域７1の大きさが決定される。すなわち入力された時間分の平均的な自動演奏データ量よりも十分に大きな容量の格納領域が確保される。
【００５２】
図７は、前記エンドレス記録スイッチ２１が押されたときに行われるエンドレス記録スイッチ処理の手順を示すフローチャートであり、エンドレス記録中にエンドレス記録スイッチが押下されるとエンドレス記録を終了し、エンドレス記録を行っていないときにエンドレス記録スイッチが押下されるとエンドレス記録を開始する。なお、本処理も、前記メインルーチン中で行われる。
【００５３】
同図において、まず、前記フラグＲＥＣの状態を判別し（ステップＳ４１）、記録中（フラグＲＥＣ＝１）のときには、エンドレス記録を停止するためにフラグＲＥＣをリセット（“０”）し（ステップＳ４２）、この時点にイベントバッファに格納されているイベントデータを前記自動演奏データ格納領域７1に格納する（ステップＳ４３〜Ｓ５０）。このステップＳ４３〜Ｓ５０の処理は、前記図４のステップＳ２〜Ｓ９の処理と同じであるので、各ステップの説明を省略する。
【００５４】
続くステップ５１では、前記図３（ｃ）で説明した自動演奏データの終了を示すエンドデータ５９を自動演奏データの最後に書き込み、本エンドレス記録スイッチ処理を終了する。
【００５５】
一方、前記ステップＳ４１の判別で、記録中でない（フラグＲＥＣ＝０）ときには、自動演奏データ格納領域７1に自動演奏データが格納されており、その自動演奏データがまだフロッピディスクへセーブされていないか否かを判別し（ステップＳ５２）、セーブされていないときには、ユーザに対してセーブする必要があるか否かを確認する表示を行い（ステップＳ５３）、セーブする必要があるときには後述するセーブ処理サブルーチンを実行する（ステップＳ５４）。一方、ステップＳ５２またはＳ５３の判別で、その答えが“ＮＯ”のとき、即ち、自動演奏データ格納領域７1に自動演奏データが格納されていないとき、または、自動演奏データが格納されていてもフロッピディスクにセーブする必要のないときには、ステップＳ５４のセーブ処理サブルーチンをスキップしてステップＳ５５に進む。
【００５６】
ステップＳ５５では、前記カウンタＴＩＭＥをリセット（“０”）し、ステップＳ５６では、イベントバッファにスタートイベントおよび現在設定されているパネル設定イベントを書き込み、ステップＳ５７では、フラグＲＥＣをセットしてエンドレス記録の指示を行い、ステップＳ５８では、経過時間ＰＡＳＴＩＭＥを“０”にした後に、本エンドレス記録スイッチ処理を終了する。
【００５７】
図８は、前記セーブ処理サブルーチンの詳細な手順を示すフローチャートである。
【００５８】
同図において、まず、ユーザがファイル名を設定すると、そのファイル名を前記ＲＡＭ７のワークエリアに一時的に記憶し（ステップＳ６１）、次に、そのファイル名、ＣＰＵ５が管理している現在の日時および前記図４で説明した設定テンポ等のデータをヘッダ情報として、前記格納された自動演奏データの最初に付加し（ステップＳ６２）、記録媒体であるフロッピディスクにファイルを作成し、この自動演奏データをセーブする（ステップＳ６３）。
【００５９】
図９は、前記鍵盤１が押鍵または離鍵されたときに行われる鍵盤処理の手順を示すフローチャートであり、本処理も、メインルーチン中で行われる。
【００６０】
同図において、まず、押鍵されたか否かを判別し（ステップＳ７１）、押鍵されたときにはその鍵に応じた発音処理を行い（ステップＳ７２）、一方、離鍵されたときにはその鍵に応じた消音処理を行う（ステップＳ７３）。ここで、発音処理および消音処理は、ともに周知の方法によって行うので、その詳細な説明を省略する。
【００６１】
次に、フラグＲＥＣの状態を判別し（ステップＳ７４）、記録中（フラグＲＥＣ＝１）のときには、イベントバッファに押鍵されたキーまたは離鍵されたキーに対応するキーイベントを書き込み（ステップＳ７５）、本処理を終了する。この結果図４のステップＳ５あるいは図７のステップＳ４６にて、キーイベントが自動演奏データ格納領域７1に書き込まれる。一方、ステップＳ７４の判別で、記録中でない（フラグＲＥＣ＝０）ときにはステップＳ７５をスキップして本処理を終了する。
【００６２】
図１０は、前記マークスイッチ２８が押下されたときに行われるマークスイッチ処理の手順を示すフローチャートであり、本処理も、メインルーチン中で行われる。マークスイッチ２８は、記録した自動演奏データを再生するときに、再生を開始したい位置を迅速に検索するためのマークイベントを自動演奏データ格納領域７1中に埋め込むためのスイッチであり、本実施例では、このスイッチ２８は自動演奏データのエンドレス記録時のみに有効である。なお、再生時にもマークイベントを埋め込むことができるようにしてもよい。
【００６３】
図１０において、フラグＲＥＣの状態を判別し（ステップＳ８１）、記録中のときにはイベントバッファにマークイベントを書き込む（ステップＳ８２）。この結果、図４のステップＳ５あるいは図７のステップＳ４６にてマークイベントが自動演奏データ格納領域７1に書き込まれる。一方、記録中でないときには何もせずに本処理を終了する。
【００６４】
図１１は、パネル設定操作子が押下されたときに行われる処理の手順を示すフローチャートであり、本処理も、メインルーチン中で行われる。
【００６５】
同図において、まず、パネル設定操作子を構成する複数の操作子（例えば音色スイッチ、効果スイッチ；図示せず）のうち、ユーザが操作した操作子に応じた処理を行う（ステップＳ９１）。
【００６６】
次に、フラグＲＥＣの状態を判別し（ステップＳ９２）、録音中のときには、操作した操作子が記録すべきものであるか否かを判別し（ステップＳ９３）、記録すべき操作子であるときには、イベントバッファに当該操作子に対応するパネル設定イベントを書き込む（ステップＳ９４）。この結果、図４のステップＳ５あるいは図７のステップＳ４６にてパネル設定操作子イベントが自動演奏データ格納領域７1に書き込まれる。
【００６７】
一方、ステップＳ９２またはＳ９３の判別で、その答えが“ＮＯ”のとき、即ち、記録中でないとき、または、記録中であっても操作した操作子が記録すべきものでないときには、ステップＳ９４の処理をスキップして本パネル設定スイッチ処理を終了する。なお、記録すべきでない操作子は予め決められている、あるいはユーザが設定するもので、例えばマスターボリュームの操作などは記録しないようにする。
【００６８】
図１２は、前記リズムスタート／ストップスイッチ２７が押されたときに行われる処理の手順を示すフローチャートであり、本処理も、メインルーチン中で行われる。前述したように、リズムスタート／ストップスイッチ２７は、リズム演奏の開始／停止を指示するためのスイッチであり、リズム演奏をしているときにリズムスタート／ストップスイッチ２７が押下されるとリズム演奏を停止し、リズム演奏をしていないときにリズムスタート／ストップスイッチ２７が押下されるとリズム演奏を開始する。
【００６９】
同図において、まず、リズム演奏中か否かを判別する（ステップＳ１０１）。ここで、この判別は、例えばリズム演奏フラグを設けること等によって行うようにすればよい。
【００７０】
ステップＳ１０１の判別で、リズム演奏中のときにはリズム演奏を停止し（ステップＳ１０２）、一方、リズム演奏中でないときにはリズム演奏を開始する（ステップＳ１０３）。
【００７１】
次に、エンドレス記録中か否かをフラグＲＥＣの状態により判別し（ステップＳ１０４）、記録中のときにはイベントバッファにリズムスタート／ストップイベントを書き込み（ステップＳ１０５）、記録中でないときにはステップＳ１０５をスキップして本処理を終了する。この結果、図４のステップＳ５あるいは図７のステップＳ４６にて、リズムスタート／ストップイベントが自動演奏データ格納領域７1に書き込まれる。
【００７２】
図１３は、前記セーブスイッチ３５が押されたときに行われるセーブスイッチ処理の手順を示すフローチャートであり、本処理も、メインルーチン中で行われる。前述したように、セーブスイッチ３５は、記録した自動演奏データをファイルとしてフロッピディスクにセーブするためのものである。
【００７３】
同図において、まず、エンドレス記録中でなく、かつ、自動演奏データの再生中でないか否かを判別する（ステップＳ１１１）。ここで、自動演奏データを再生中か否かは、ＲＡＭ７の所定領域に確保され、自動演奏データの再生中を示すフラグＲＵＮの状態により判別する。即ち、フラグＲＵＮの値が“１”のときには自動演奏データを再生している状態であり、フラグＲＵＮの値が“０”のときには自動演奏データを再生していない状態である。
【００７４】
ステップＳ１１１の判別で、記録および再生のどちらも行っていないときには、自動演奏データ格納領域７1に自動演奏データが格納されており、その自動演奏データがまだフロッピディスクへセーブされていないか否かを判別し（ステップＳ１１２）、セーブされていないときには、ユーザに対してセーブする必要があるか否かを確認する表示を行い（ステップＳ１１３）、セーブする必要があるときには、前記セーブ処理サブルーチンを実行する（ステップＳ１１４）。
【００７５】
一方、ステップＳ１１１〜１１３のうち、１つでもその答えが“ＮＯ”のときには、何もせずに本処理を終了する。
【００７６】
なお、本実施例では、ユーザがセーブスイッチ３５を押すと自動演奏データ格納領域７1に記録された自動演奏データをフロッピディスクへセーブするように構成したが、これに限らず、前記図４の記録処理を終了したときに、自動的にセーブするようにしてもよい。
【００７７】
図１４は、前記ロードスイッチ３６を押したときに行われるロードスイッチ処理の手順を示すフローチャートであり、本処理も、メインルーチン中で行われる。前述したように、ロードスイッチ３６は、フロッピディスクに記憶されている自動演奏データのファイルを自動演奏データ格納領域７1にロードするためのものである。
【００７８】
同図において、まず、ステップＳ１２１〜Ｓ１２３で、前記図７のステップＳ５２〜Ｓ５４と同様にして、自動演奏データ格納領域７1に自動演奏データが格納されている場合のセーブ処理を行う。
【００７９】
次に、ユーザの指示に応じて、記録媒体であるフロッピディスクからロードしたいファイルを選択し（ステップＳ１２４）、選択されたファイルをＲＡＭ７の自動演奏データ格納領域７1にロードし（ステップＳ１２５）、ロードしたファイルからヘッダのデータを読み出して、そのヘッダデータから表示すべき情報等を前記表示回路９等に設定する（ステップＳ１２６）。
【００８０】
図１５は、前記再生スイッチ２２が押されたときに行われる再生スイッチ処理の手順を示すフローチャートであり、本処理も、メインルーチン中で行われる。前述したように、再生スイッチ２２は、自動演奏データ格納領域７1に記録された自動演奏データを再生するためのものである。
【００８１】
同図において、自動演奏データ格納領域７1に自動演奏データが格納されているか否かを判別し（ステップＳ１３１）、格納されているときには自動演奏データの最初のデルタタイム、例えば、図３（ａ）のデルタタイム５２を読み出し、その値を前記カウンタＴＩＭＥに格納する（ステップＳ１３２）とともに、前記フラグＲＵＮをセットして再生の指示を行う。
【００８２】
一方、ステップＳ１３１の判別で、自動演奏データ格納領域７1に自動演奏データが格納されていないときには、何もせずに本処理を終了する。
【００８３】
図１６は、ユーザが再生スイッチ２２により自動演奏データの再生を指示したときに行われる再生処理の手順を示すフローチャートであり、本処理は、前記図４の記録処理と同様のタイマ割り込み処理、即ち、設定テンポに応じた周期で発生するタイマ割り込み処理中で行われるものである。ここで、設定テンポは、前記図１４のステップＳ１２６で読み出したヘッダ情報に記録されているものを使用すればよい。
【００８４】
図１６において、まず、フラグＲＵＮの状態を判別し（ステップＳ１４１）、再生の指示がなされている（フラグＲＵＮ＝１）ときには、カウンタＴＩＭＥが“０”か否か、即ち、次の自動演奏データを読み出す時点にあるか否かを判別する（ステップＳ１４２）。
【００８５】
ステップＳ１４２の判別で、次の自動演奏データを読み出す時点である（カウンタＴＩＭＥ＝０）ときには、自動演奏データ格納領域７1のアドレスを進め、そのアドレスに格納されている自動演奏データを読み出し（ステップＳ１４３）、このデータがデルタタイムであるか否かを判別する（ステップＳ１４４）。
【００８６】
ステップＳ１４４の判別で、読み出したデータがデルタタイムでないとき、即ち、パネル設定イベントデータまたは操作子イベントデータであるときには、当該イベントに対応した処理を実行した（ステップＳ１４５）後に、前記ステップＳ１４３に戻り、上述の処理を繰り返す。
【００８７】
一方、ステップＳ１４４の判別で、読み出したデータがデルタタイムであるときには、そのデルタタイムの値をカウンタＴＩＭＥに格納し（ステップＳ１４６）、カウンタＴＩＭＥの値が“０”であるか否かを判別する（ステップＳ１４７）。
【００８８】
ステップＳ１４７の判別で、カウンタＴＩＭＥの値が“０”であるときには、前記ステップＳ１４３に戻って上述の処理を繰り返し、一方、カウンタＴＩＭＥの値が“０”でないときには、カウンタＴＩＭＥの値を“１”だけデクリメントした後に、本再生処理を終了する。
【００８９】
一方、前記ステップＳ１４２の判別で、カウンタＴＩＭＥの値が“０”でないときにはステップＳ１４８に進み、カウンタＴＩＭＥのデクリメントを行う。
【００９０】
ここでは、カウンタＴＩＭＥを、記録された自動演奏データ中のデルタタイムをダウンカウントして、操作子イベント等のデータを前記音源回路１２等に送出するタイミングを決定するために用いており、前記図４の記録処理中で説明したデルタタイムを生成するためには用いていない。本実施例では、記録処理と再生処理が同時に行われることはないので、同じカウンタＴＩＭＥを用いている。
【００９１】
図１７は、前記停止スイッチ２４により行われる停止スイッチ処理の手順を示すフローチャートであり、本処理は、前記メインルーチン中で行われる。
【００９２】
同図において、フラグＲＵＮの状態を判別し（ステップＳ１５１）、再生中でない（フラグＲＵＮ＝０）ときには本処理を終了し、一方、再生中（フラグＲＵＮ＝１）のときには、フラグＲＵＮをクリアし（ステップＳ１５２）、現在発音中の楽音を消音する（ステップＳ１５３）。
【００９３】
図１８は、前記早送りスイッチ２５または早戻しスイッチ２６の単独操作により行われる早送り／早戻しスイッチの単独操作処理の手順を示すフローチャートであり、本処理も、メインルーチン中で行われる。なお、本フローチャートには、両スイッチ２５，２６による処理が同時に記載され、「または」のあるステップにおいて、「または」の前の処理が早送りスイッチ２５による処理に対応し、後の処理が早戻しスイッチ２６による処理に対応する。
【００９４】
同図において、まず、早送りスイッチ２５または早戻しスイッチ２６の操作に応じて、１つ前または後の「１０ｓｅｃ」イベントをサーチする（ステップＳ１６１）。
【００９５】
次に、「１０ｓｅｃ」イベントをサーチしたか否かを判別し（ステップＳ１６２）、サーチしたときには、サーチした「１０ｓｅｃ」イベントの次のアドレスに記憶されているデルタタイムを読み出して、その値をカウンタＴＩＭＥに格納し（ステップＳ１６３）、一方、サーチしないときには、操作したスイッチ２５，２６に応じて、「前または後に１０ｓｅｃ以上のデータなし」という表示を前記表示回路９に表示させる。
【００９６】
図１９は、早送りスイッチ２５または早戻しスイッチ２６と他のスイッチとの同時押しによりなされる同時押し処理の手順を示すフローチャートである。
【００９７】
同図において、フラグＲＵＮの状態を判別し（ステップＳ１７１）、再生中でない（フラグＲＵＮ＝０）ときには本処理を終了し、一方、再生中（フラグＲＵＮ＝１）のときには、同時に操作されているスイッチに応じた処理を実行する（ステップＳ１７２）。
【００９８】
図２０は、上記ステップＳ１７２の処理のうち、前記マークスイッチ２８が同時に押されているときの処理の手順を示すフローチャートである。
【００９９】
同図において、まず、マークスイッチ２８と同時に押される早送りスイッチ２５または早戻しスイッチ２６とに応じて、１つ前または後の「マーク」イベントをサーチする（ステップＳ１８１）。
【０１００】
次に、「マーク」イベントをサーチしたか否かを判別し（ステップＳ１８２）、サーチしたときには、「マーク」イベントの次のアドレスに記憶されているデルタタイムを読み出して、その値をカウンタＴＩＭＥに格納し（ステップＳ１８３）、一方、サーチしないときには、「前または後にマークなし」という表示を表示回路９に表示する。
【０１０１】
図２１は、前記ステップＳ１７２の処理のうち、前記リズムスタート（ＲＳＴ）スイッチ２９が同時に押されているときの処理の手順を示すフローチャートである。
【０１０２】
同図において、まず、ＲＳＴスイッチ２９と同時に押される早送りスイッチ２５または早戻しスイッチ２６とに応じて、１つ前または後の「リズムスタート」イベントをサーチする（ステップＳ１９１）。
【０１０３】
次に、「リズムスタート」イベントをサーチしたか否かを判別し（ステップＳ１９２）、サーチしたときには、「リズムスタート」イベントの次のアドレスに記憶されているデルタタイムを読み出して、その値をカウンタＴＩＭＥに格納し（ステップＳ１９３）、一方、サーチしないときには、「前または後にリズムスタートなし」という表示を表示回路９に表示する。
【０１０４】
図２２は、前記ステップＳ１７２の処理のうち、前記空白スイッチ３０が同時に押されているときの処理の手順を示すフローチャートである。
【０１０５】
同図において、まず、空白スイッチ３０と同時に押される早送りスイッチ２５または早戻しスイッチ２６とに応じて、１つ前または後の所定時間以上の「空白（１０ｓｅｃイベントおよびそれにつづくパネル設定イベントを除く他のイベントが全く無い状態）」をサーチする（ステップＳ２０１）。
【０１０６】
次に、所定時間の「空白」をサーチしたか否かを判別し（ステップＳ２０２）、サーチしたときには、所定時間以上の「空白」の次のデルタタイムを読み出して、その値をカウンタＴＩＭＥに格納し（ステップＳ２０３）、一方、サーチしないときには、「前または後に所定時間以上の空白なし」という表示を表示回路９に表示する。
【０１０７】
図２３は、前記Ａ点スイッチ３１が押されたときに行われるＡ点スイッチ処理の手順を示すフローチャートである。
【０１０８】
同図において、フラグＲＵＮの状態を判別し（ステップＳ２１１）、再生中でない（フラグＲＵＮ＝０）ときには本処理を終了し、一方、再生中（フラグＲＵＮ＝１）のときには、現在のパネル設定データをＲＡＭ７のワークエリアに一時的に記憶し（ステップＳ２１２）、現在の読み出しアドレスおよびカウンタＴＩＭＥの値をＲＡＭ７のワークエリアに一時的に記憶する（ステップＳ２１３）。
【０１０９】
図２４は、前記Ｂ点スイッチ３２が押されたときに行われるＢ点スイッチ処理の手順を示すフローチャートである。
【０１１０】
同図において、フラグＲＵＮの状態を判別し（ステップＳ２２１）、再生中（フラグＲＵＮ＝１）のときには、Ａ点スイッチ３１により既にＡ点を設定しているか否かを判別し（ステップＳ２２２）、設定しているときには現在の読み出しアドレスおよびカウンタＴＩＭＥの値をＲＡＭ７のワークエリアに一時的に記憶する（ステップＳ２２３）。
【０１１１】
一方、前記ステップＳ２２１で再生中でない（フラグＲＵＮ＝０）とき、または、前記ステップＳ２２２で再生中であってもまだＡ点を設定していないときには、本処理を終了する。
【０１１２】
図２５は、前記ＡＢ間セーブスイッチ３３が押されたときに行われるＡＢ間セーブスイッチ処理の手順を示すフローチャートである。
【０１１３】
まず、Ａ点スイッチ３１およびＢ点スイッチ３２により、Ａ点およびＢ点の設定が完了しているか否かを判別し（ステップＳ２３１）、まだ設定を完了していないときには本処理を終了し、一方、設定を完了しているときにはステップＳ２３２に進む。
【０１１４】
ステップＳ２３２では、前記図２３のステップＳ２１３でワークエリアに記憶したＡ点のアドレスと前記図２４のステップＳ２２３でワークエリアに記憶したＢ点のアドレスとの間の自動演奏データを、ＲＡＭ７のワークエリアの別の領域にコピーする。
【０１１５】
次に、前記ステップＳ２１２でワークエリアに記憶したＡ点のパネル設定データをコピーした自動演奏データの先頭に付加し（ステップＳ２３３）、先頭のデルタタイムを前記ステップＳ２１３で記憶したカウンタＴＩＭＥの値、即ちＡ点のカウンタＴＩＭＥの値に変更し（ステップＳ２３４）、最後のデルタタイムを前記ステップＳ２２３で記憶したカウンタＴＩＭＥの値、即ちＢ点のカウンタＴＩＭＥの値に変更し（ステップＳ２３５）、このようにして作成された自動演奏データにエンドデータを付加し（ステップＳ２３６）、さらに、この自動演奏データにユーザが設定したファイル名を付加し（ステップＳ２３７）、記録媒体であるフロッピディスクにファイルを作成し、以上のようにして生成された自動演奏データをセーブする（ステップＳ２３８）。
【０１１６】
なお、本実施例では、Ａ点およびＢ点をそれぞれ別のスイッチ３１，３２により設定するように構成したが、これに限らず、例えばＡ／Ｂスイッチを設け、最初に押したときにはＡ点を指定でき、次に押したときにはＢ点を指定できるように構成してもよい。
【０１１７】
また、ＡＢ間セーブスイッチ処理により記録した自動演奏データの一部を切り取ってセーブする場合に、表示回路９に記録したデータを表示し、ユーザは、表示されたデータを見ながら切り取る部分（Ａ点およびＢ点）を指定するようにしてもよい。この一部をセーブするときに、自動演奏データの記録先トラック（チャンネル）を指定できるようにしてもよい。さらに、切り取ったデータを後で編集できるようにしてもよい。この編集機能を用いて、自動演奏データを切り取る前にデータを修正するようにしてもよい。
【０１１８】
図２６は、前記パネル設定セーブスイッチ３４が押されたときに行われるパネル設定セーブスイッチ処理の手順を示すフローチャートである。
【０１１９】
同図において、フラグＲＵＮの状態を判別し（ステップＳ２４１）、再生中でない（フラグＲＵＮ＝０）ときには本処理を終了し、一方、再生中（フラグＲＵＮ＝１）のときには、ユーザが図示しないスイッチ等により指定したセーブ先のレジストレーションデータ記憶領域（例えば、ＲＡＭ７に確保された所定レジスタ）の番号をＲＡＭ７のワークエリアに一時的に記憶し（ステップＳ２４２）、この番号に対応するレジストレーションデータ記録領域（エリア）に現在のパネル設定状態をセーブする（ステップＳ２４３）。
【０１２０】
図２７は、前記再生一時停止スイッチ２３が押されたときに行われる再生一時停止スイッチ処理の手順を示すフローチャートであり、再生時にこのスイッチ２３が押下されると再生を一時停止し、一時停止時にこのスイッチ２３が押下されると再生を開始する。
【０１２１】
同図において、まず、フラグＲＵＮの状態を判別し（ステップＳ２５１）、再生中（フラグＲＵＮ＝１）のときには、フラグＲＵＮをリセットして再生の停止を指示し（ステップＳ２５２）、再生の一時停止を指示するためのフラグＰＡＵＳＥをセットし（ステップＳ２５３）、発音中の楽音を消音して（ステップＳ２５４）、本処理を終了する。
【０１２２】
一方、ステップＳ２５１の判別で、再生中でないときには、フラグＰＡＵＳＥの状態から再生の一時停止状態であるか否かを判別し（ステップＳ２５５）、一時停止状態であるときには、フラグＲＵＮをセットして再生の開始を指示し（ステップＳ２５６）、フラグＰＡＵＳＥをリセットして、本処理を終了する。
【０１２３】
以上説明したように、本実施例に依れば、自動演奏データを常に所定時間記録し続けることができるので、演奏の前後にスタートやストップの指示をする必要がなく、ユーザは演奏に集中することができる。そして、記録後に、前記ＡＢ間セーブスイッチ３３により必要な部分を切り出せばよい。
【０１２４】
また、演奏を失敗してもそのまま演奏を続ければよいので、あまり演奏の記録を意識せずに、気楽に演奏することができる。そして、記録を終了した後に、同様にして、前記ＡＢ間セーブスイッチ３３によりうまく演奏できた部分を切り出せばよい。
【０１２５】
さらに、所定時間経過した後に、記録した自動演奏データを先頭から消去して行っても、パネル設定データは一定時間毎に記録されているために、パネル設定データが消去されることにより生ずる不都合を解消することができる。また、このパネル設定データを、前記パネル設定セーブスイッチ３４により自動演奏データと別にセーブすることができるため、過去に設定したパネル状態をレジストレーションデータとして記憶させることが可能となる。
【０１２６】
なお、自動演奏データを記録するときに、設定したテンポに応じて小節線データを記録するようにしてもよい。この小節線データの記録は、自動リズムが動作している間のみ行うようにしてもよい。拍子は４／４拍子に固定してもよいが、ユーザが他の拍子を選択できるようにしてもよい。
【０１２７】
また、本実施例では、自動演奏データを、ＲＡＭ７の自動演奏データ格納領域７1に記録した後に、記録されたデータをフロッピディスクに保存するように構成したが、これに限らず、はじめからＲＡＭ７に記録せずに直接フロッピディスクやハードディスク等の記録媒体に記録するようにしてもよい。
【０１２８】
さらに、本実施例では、図３（ａ）で説明したように、各１０ｓｅｃ間の自動演奏データ中には、必ず「パネル設定イベント」を記録するように構成したが、該各自動演奏データ中に必ず「パネル設定イベント」を記録するようにしなくてもよい。例えば、前記ＲＡＭ７の所定領域にパネル設定イベント格納領域（レジスタ）を設け、そのレジスタに、最初に１度だけ自動演奏データの記録開始時の「パネル設定イベント」を格納し、前記設定した記録時間が経過して、自動演奏データ格納領域７１を消去しなければならないときには、その消去領域に含まれる操作子イベントからパネル設定関連のデータを抽出して、このデータに対応するレジスタのデータを上書きにより更新し、エンドレス記録終了後に「パネル設定イベント」を自動演奏データの先頭に付加すれば、前記各１０ｓｅｃ間の自動演奏データ中に必ず「パネル設定イベント」を記録しなくてもよい。
【０１２９】
図２８は、このようなデータフォーマットを用いたときの記録処理の手順を示すフローチャートであり、前記図４に対応するものである。図２８中、図４と同様の処理を行うステップには同一ステップ番号を付し、その説明を省略する。
【０１３０】
ステップＳ１１の判別で、フラグＤＥＬＥＴＥが“１”のとき、即ち、設定した記録時間が経過しており、最も古く格納されたデータを消去しなければならないときには、スタートイベントの次の操作子イベントから、次の「１０ｓｅｃイベント」の前までの操作子イベントに含まれるパネル設定関連のデータを抽出し（ステップＳ２６１）、この抽出したパネル設定関連のデータで、既に記録されている元のパネル設定関連データのうち、対応するデータを変更した（ステップＳ２６２）後に、スタートイベントの次から、次の「１０ｓｅｃイベント」までの自動演奏データを消去し（ステップＳ２６３）、フラグＤＥＬＥＴＥをリセットする（ステップＳ２６４）。
【０１３１】
図２９は、上記データフォーマットを用いたときのセーブ処理の手順を示すフローチャートであり、前記図８に対応するものである。図２９中、図８と同様の処理を行うステップには同一ステップ番号を付し、その説明を省略する。
【０１３２】
ステップＳ２７１では、前記パネル設定イベントレジスタに記録しておいたパネル設定関連データをヘッダデータの後（自動演奏データの前）に付加し、ステップＳ６３では、そのデータをフロッピディスクに作成されたファイルにセーブする。
【０１３３】
このように記録データを構成することにより、自動演奏データを格納するメモリのメモリ容量を減少させることができ、製造コストを削減することが可能になる。
【０１３４】
また、パネル設定イベントを自動演奏データ中に記録しない他のデータフォーマットとして、パネル設定イベントを自動演奏データの先頭部分の１箇所のみに記録し、自動演奏データを消去するときには、その消去部分に含まれる操作子イベントのパネル設定関連のデータと前記先頭部分に記録されたパネル設定イベントから消去されない部分のパネル設定イベントを生成し、その消去されない部分の先頭に、生成されたパネル設定イベントを付加するようにしてもよい。
【０１３５】
なお、本実施例では、自動演奏データ格納領域７1に記録する自動演奏データは、ユーザが操作した操作子に関連するイベントであったが、これに限らず、再生されている自動リズムや自動伴奏および自動演奏により発生したイベントを記録するようにしてもよい。
【０１３６】
また、外部装置から入力されたデータ、例えば、前記ＭＩＤＩインターフェース１０に外部装置を接続して、この外部装置が出力したＭＩＤＩ信号（コード）を自動演奏データとして記録してもよい。
【０１３７】
【発明の効果】
以上説明したように、本発明に依れば、時間計測手段により計測された経過時間が設定された所定時間を超えた場合には、自動演奏データ記憶手段に記録された前記所定時間のデータを、該所定時間より短い所定単位時間毎のブロックデータに分割して得られた複数のブロックデータの内、古いものから当該ブロック単位で消去され、自動演奏データ記憶手段には前記所定時間内のデータが記録されるので、自動演奏データを記録するときに、ユーザが演奏に集中できるとともに、自動演奏データの記録を意識せずに行うことが可能となる効果を奏する。
【０１３８】
また、前記制御手段は、前記所定単位時間毎に、該時点のパネル設定データを前記自動演奏データ記憶手段に記録するので、記録した自動演奏データを先頭から消去して行っても、パネル設定データは記録され、パネル設定データが消去されることにより生ずる不都合を解消することができる。
【０１３９】
また、前記自動演奏データ記憶手段は、パネル設定データを一時的に記憶するパネル設定データ記憶領域を有し、前記制御手段は、前記古いデータを消去するときに、該消去されるデータに含まれ、パネル設定データに関連する操作子イベントで、前記記憶されたパネル設定データを更新するので、自動演奏データ記憶手段の記憶容量を削減し、これにより製造コストを低減させることができる。
【０１４０】
前記自動演奏データ記憶手段に記録したデータのうち、ユーザが指示した一部のデータを切り取り、記録媒体にセーブするセーブ手段を有するので、必要な部分およびうまく演奏できた部分を取り出すことができ、これにより、ユーザはさらに演奏に集中できるとともに気軽に演奏を行うことができる。
【図面の簡単な説明】
【図１】本発明の一実施例に係る自動演奏装置の概略構成を示すブロック図である。
【図２】図１のスイッチ群が配設されているパネル面を示す図である。
【図３】自動演奏データを図１のＲＡＭの自動演奏データ格納領域に記録するときのフォーマットおよびその自動演奏データをフロッピディスクにセーブするときのフォーマットを示す図である。
【図４】自動演奏データを自動演奏データ格納領域に記録する記録処理の手順を示すフローチャートである。
【図５】１０ｓｅｃ毎の処理の手順を示すフローチャートである。
【図６】記録時間設定処理の手順を示すフローチャートである。
【図７】図２のエンドレス記録スイッチが押されたときに行われるエンドレス記録スイッチ処理の手順を示すフローチャートである。
【図８】図７のステップＳ５４のセーブ処理サブルーチンの詳細な手順を示すフローチャートである。
【図９】図１の鍵盤が押鍵または離鍵されたときに行われる鍵盤処理の手順を示すフローチャートである。
【図１０】図２のマークスイッチが押されたときに行われるマークスイッチ処理の手順を示すフローチャートである。
【図１１】パネル設定操作子が押されたときに行われる処理の手順を示すフローチャートである。
【図１２】図２のリズムスタート／ストップスイッチが押されたときに行われる処理の手順を示すフローチャートである。
【図１３】図２のセーブスイッチが押されたときに行われるセーブスイッチ処理の手順を示すフローチャートである。
【図１４】図２のロードスイッチが押されたときに行われるロードスイッチ処理の手順を示すフローチャートである。
【図１５】図２の再生スイッチが押されたときに行われる再生スイッチ処理の手順を示すフローチャートである。
【図１６】ユーザが図２の再生スイッチにより自動演奏データの再生を指示したときに行われる再生処理の手順を示すフローチャートである。
【図１７】図２の停止スイッチが押されたときに行われる停止スイッチ処理の手順を示すフローチャートである。
【図１８】図２の早送りスイッチまたは早戻しスイッチの単独操作により行われる早送り／早戻しスイッチの単独操作処理の手順を示すフローチャートである。
【図１９】図２の早送りスイッチまたは早戻しスイッチと他のスイッチとの同時押しによりなされる同時押し処理の手順を示すフローチャートである。
【図２０】図１９のステップＳ１７２の処理のうち、図２のマークスイッチが同時に押されているときの処理の手順を示すフローチャートである。
【図２１】図１９のステップＳ１７２の処理のうち、図２のリズムスタートスイッチが同時に押されているときの処理の手順を示すフローチャートである。
【図２２】図１９のステップＳ１７２の処理のうち、図２の空白スイッチが同時に押されているときの処理の手順を示すフローチャートである。
【図２３】図２のＡ点スイッチが押されたときに行われるＡ点スイッチ処理の手順を示すフローチャートである。
【図２４】図２のＢ点スイッチが押されたときに行われるＢ点スイッチ処理の手順を示すフローチャートである。
【図２５】図２のＡＢ間セーブスイッチが押されたときに行われるＡＢ間セーブスイッチ処理の手順を示すフローチャートである。
【図２６】図２のパネル設定セーブスイッチが押されたときに行われるパネル設定セーブスイッチ処理の手順を示すフローチャートである。
【図２７】図２の再生一時停止スイッチが押されたときに行われる再生一時停止スイッチ処理の手順を示すフローチャートである。
【図２８】本実施例の他のデータフォーマットを用いたときの記録処理の手順を示すフローチャートである。
【図２９】本実施例の他のデータフォーマットを用いたときのセーブ処理の手順を示すフローチャートである。
【符号の説明】
５  ＣＰＵ（制御手段、パネル設定データセーブ手段、記録時間変更手段、確認手段）
７  ＲＡＭ（自動演奏データ記憶手段、パネル設定データ記憶手段）
８  タイマ（時間計測手段）
９  表示回路（確認手段）
１１  ＦＤＤ（セーブ手段、ロード手段）
２５  早送りスイッチ（マーク検出手段、リズムスタートイベント検出手段、空白検出手段）
２６  早戻しスイッチ（マーク検出手段、リズムスタートイベント検出手段、空白検出手段）
２８  マークスイッチ（マーク検出手段、マーク埋め込み手段）
２９  ＲＳＴスイッチ（リズムスタートイベント検出手段）
３０  空白スイッチ（空白検出手段）
【図１】
0003721593.tif 000002
【図２】
0003721593.tif 000003
【図３】
0003721593.tif 000004
【図４】
0003721593.tif 000005
【図５】
0003721593.tif 000006
【図６】
0003721593.tif 000007
【図７】
0003721593.tif 000008
【図８】
0003721593.tif 000009
【図９】
0003721593.tif 000010
【図１０】
0003721593.tif 000011
【図１１】
0003721593.tif 000012
【図１２】
0003721593.tif 000013
【図１３】
0003721593.tif 000014
【図１４】
0003721593.tif 000015
【図１５】
0003721593.tif 000016
【図１６】
0003721593.tif 000017
【図１７】
0003721593.tif 000018
【図１８】
0003721593.tif 000019
【図１９】
0003721593.tif 000020
【図２０】
0003721593.tif 000021
【図２１】
0003721593.tif 000022
【図２２】
0003721593.tif 000023
【図２３】
0003721593.tif 000024
【図２４】
0003721593.tif 000025
【図２５】
0003721593.tif 000026
【図２６】
0003721593.tif 000027
【図２７】
0003721593.tif 000028
【図２８】
0003721593.tif 000029
【図２９】
0003721593.tif 000030