(57)【特許請求の範囲】
【請求項１】
演奏操作に対応して発生する演奏情報を一時記憶するバッファ領域と当該演奏情報を記憶保存するバンク領域とを備える記憶手段と、
この記憶手段のバッファ領域に演奏情報を順次一時記憶して行き、先の演奏操作から一定時間以上経過した後に新たな演奏操作がなされた場合には、当該バッファ領域に格納済みの前記先の演奏操作までの演奏情報を前記バンク領域に転送して記憶保存する記憶制御手段と、
前記バッファ領域に格納済みの演奏情報が前記バンク領域へ転送記憶されないように指示する手段であって、当該指示された状態においては、先の演奏操作から一定時間以上経過した後に新たな演奏操作がなされた場合であっても、前記バッファ領域に格納済みの演奏情報を前記バンク領域へ転送記憶しないように前記記憶制御手段を制御する転送防止手段と
を具備することを特徴とする演奏情報記憶装置。
【請求項２】
コンピュータに、
演奏操作に対応して発生する演奏情報を、記憶手段のバッファ領域に順次一時記憶する一時記憶手順と、
先の演奏操作から一定時間以上経過した後に新たな演奏操作がなされた時には、前記バッファ領域に格納済みの前記先の演奏操作までの演奏情報を、前記記憶手段のバンク領域に転送して記憶保存する転送記憶手順と、
前記バッファ領域に格納済みの演奏情報が前記バンク領域へ転送記憶されないように指示された状態においては、先の演奏操作から一定時間以上経過した後に新たな演奏操作がなされた場合であっても、前記バッファ領域に格納済みの演奏情報を前記バンク領域へ転送記憶しないように制御する転送防止手順と
を実行させるための演奏情報記憶プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば、シーケンサ等の演奏記録再生装置に用いて好適な演奏情報記憶装置および演奏情報記憶方法並びに演奏情報記憶プログラムを記録した媒体に関する。
【０００２】
【従来の技術】
従来より、所望の楽曲の各音符について、その音符の音高や発音タイミング等からなる演奏情報を記憶しておき、これを演奏したテンポあるいは指定テンポで再生するシーケンサ（演奏記録再生装置）が知られている。このシーケンサでは、音高や符長などを表わす演奏情報を一音づつ入力するステップ入力や、実際の演奏操作（例えば、鍵盤操作）に応じて発生する演奏情報をリアルタイム入力する方式によって記憶保持する演奏情報記憶装置を備えている。
【０００３】
【発明が解決しようとする課題】
さて、このような演奏情報記憶装置において、リアルタイム入力により演奏情報を記憶するには、記憶する曲番号を指定してから記憶開始を指示するスタートスイッチを操作し、記憶を終了する際にはストップスイッチを操作する等の各種スイッチ操作が必要となる。
【０００４】
このため、例えば、作曲演奏中に思い浮かんだ断片的なフレーズをすぐさま書き留めておきたい場合などでは不向きな操作となってしまう。つまり、心に描いたフレーズを演奏によって表現している最中では”演奏を記録する”という意識が無く、そのような状態で上述の各種スイッチ操作を行うと、創作中にある思考の流れが阻害されてしまい、操作が煩わしくなるという問題がある。
【０００５】
そこで本発明は、上述した事情に鑑みてなされたもので、演奏入力したフレーズをワンタッチで記憶保存したり、何等スイッチ操作せずとも自動的に記憶保存することができる演奏情報記憶装置および演奏情報記憶方法並びに演奏情報記憶プログラムを記録した媒体を提供することにある。
【０００９】
【課題を解決するための手段】
上記目的を達成するため、請求項１に記載の演奏情報記憶装置では、演奏操作に対応して発生する演奏情報を一時記憶するバッファ領域と当該演奏情報を記憶保存するバンク領域とを備える記憶手段と、この記憶手段のバッファ領域に演奏情報を順次一時記憶して行き、先の演奏操作から一定時間以上経過した後に新たな演奏操作がなされた場合には、当該バッファ領域に格納済みの前記先の演奏操作までの演奏情報を前記バンク領域に転送して記憶保存する記憶制御手段と、前記バッファ領域に格納済みの演奏情報が前記バンク領域へ転送記憶されないように指示する手段であって、当該指示された状態においては、先の演奏操作から一定時間以上経過した後に新たな演奏操作がなされた場合であっても、前記バッファ領域に格納済みの演奏情報を前記バンク領域へ転送記憶しないように前記記憶制御手段を制御する転送防止手段とを具備することを特徴としている。
【００１１】
請求項２に記載の演奏情報記憶プログラムを記録した媒体では、演奏操作に対応して発生する演奏情報を、記憶手段のバッファ領域に順次一時記憶する一時記憶手順と、先の演奏操作から一定時間以上経過した後に新たな演奏操作がなされた時には、前記バッファ領域に格納済みの前記先の演奏操作までの演奏情報を、前記記憶手段のバンク領域に転送して記憶保存する転送記憶手順と、前記バッファ領域に格納済みの演奏情報が前記バンク領域へ転送記憶されないように指示された状態においては、先の演奏操作から一定時間以上経過した後に新たな演奏操作がなされた場合であっても、前記バッファ領域に格納済みの演奏情報を前記バンク領域へ転送記憶しないように制御する転送防止手順とをコンピュータが読み取り実行可能に記録されていることを特徴としている。
【００１３】
本発明では、演奏操作が完了してから一定時間以上経過後に再度の演奏操作がなされると、記憶手段のバッファ領域に格納済みの先の演奏操作に対応した演奏情報を自動的にバンク領域に転送して記憶保存し、一方、転送防止が指示されているときには、一定時間以上経過した後に再度の演奏操作がなされても、バッファ領域に格納済みの演奏情報をバンク領域に転送せずに破棄する。これにより、演奏入力したフレーズを何等操作せずとも自動的に記憶保存することが可能となる。
【００１４】
【発明の実施の形態】
本発明による演奏情報記憶装置および演奏情報記憶方法並びに演奏情報記憶プログラムを記録した媒体は、シーケンサの他、電子楽器やパーソナルコンピュータを用いたコンピュータミュージック機器にも適用可能である。以下では、本発明の実施の形態である電子楽器を実施例として図面を参照して説明する。
【００１５】
Ａ．第１実施例
（１）全体構成
図１は、本発明の第１実施例による電子楽器の構成を示すブロック図である。この図において、１は鍵盤であり、押離鍵操作（演奏操作）に応じたキーオン／キーオフ信号、キーコードおよび押鍵速度（強度）に対応したベロシティ情報等の演奏情報を発生する。
【００１６】
２は楽器パネル前面に配設されるパネルスイッチ群である。このパネルスイッチ群２には、電源投入用のオンオフスイッチや音色選択スイッチの他、演奏入力されたフレーズの演奏情報を記録する際に操作されるバンクスイッチＢＳ、フレーズバンク（後述する）を選択するバンクセレクトスイッチＢＳＥＬ等が設けられている。３はＬＣＤパネル等から構成される表示部であり、後述するＣＰＵ４から供給される表示制御信号に応じて楽器全体の動作モードや各種設定状態を表示する。
【００１７】
ＣＰＵ４は、鍵盤１から出力される演奏情報に応じて後述する音源７に楽音発生を指示する他、その演奏情報を記憶したり再生させる機能を備える。なお、本発明の要旨に係わるＣＰＵ４の動作については追って述べる。５はＲＯＭであり、上記ＣＰＵ４にロードされる各種制御プログラムの他、楽音制御用の各種パラメータやテーブルが記憶される。
【００１８】
なお、ＲＯＭ５に記憶されるプログラムやデータ類は、記録媒体を備える記憶装置１０に記憶しておく態様としても良く、記録媒体としては固定的あるいは着脱自在な媒体に磁気記録、光磁気記録、光学的記録する他、ＩＣカードのようにフラッシュメモリ等の書き換え可能な不揮発性の半導体メモリを用いても良い。
また、ＲＯＭ５に記憶されるプログラムやデータ類は、通信回線等を介して接続された他の機器から受信して上述の記録媒体に記憶する態様にすることも可能であるし、後述するＲＡＭ４や、ＲＯＭ３の代りに設けたフラッシュメモリ等の書き換え可能な不揮発性メモリにダウンロードする構成にしても良い。
【００１９】
６はＣＰＵ４のワークエリアとして用いられるＲＡＭであり、各種演算結果やレジスタ・フラグの他、上述のバンクスイッチＢＳのオン操作に応じて演奏情報を記憶保持するフレーズエリアを備える。なお、このフレーズエリアの構成については後述するが、当該フレーズエリアは、ＲＡＭ６に限らず、電気的に書き換え可能な不揮発性メモリを別途に設け、このメモリにアサインする態様としても良い。
【００２０】
音源７は、周知の波形メモリ読み出し方式によって構成され、時分割動作する複数の発音チャンネルを備える。この音源７は、各種音色の波形データを記憶しており、予め指定された音色の波形データを、ＣＰＵ４から供給される演奏情報に応じて読み出して楽音波形Ｗを発生する。
８はＤ／Ａ変換回路であり、上記音源７から出力される楽音波形Ｗをアナログ波形信号に変換して次段のサウンドシステム９に供給する。サウンドシステム９は、例えば、前段から供給されるアナログ波形信号に対して不要ノイズを除去する等のフィルタリングを施した後、これを増幅してスピーカから発音する。
【００２１】
（２）ＲＡＭ６の構成
次に、図２〜図３を参照してＲＡＭ６に設けられるフレーズエリアの構成について説明する。
図２において、Ｒｐはリードポインタであり、後述するテンポラリバッファＴＢの読み出しアドレスを指定する。Ｗｐはライトポインタであり、テンポラリバッファＰＢの書込みアドレスを指定する。つまり、リードポインタＲｐおよびライトポインタＷｐは、テンポラリバッファＴＢの読み出し／書込み位置を管理する。
【００２２】
テンポラリバッファＴＢは、鍵盤１の押離鍵操作に応じて発生する演奏情報を一時記憶する。ＰＢはフレーズバンクＰＢ（０）〜Ｐ（ｎ）から形成されるフレーズバンクエリアである。各フレーズバンクＰＢ（０）〜ＰＢ（ｎ）は、前述したバンクセレクトスイッチＢＳＥＬの操作に応じて選択される他、演奏情報を記憶保持する際に更新指定されるものであり、選択指定あるいは更新指定されるフレーズバンクＰＢ（０）〜ＰＢ（ｎ）に対してテンポラリバッファＴＢに一時記憶される演奏情報が記憶保存される。
【００２３】
ＤＩＲはディレクトリエリアであり、各フレーズバンクＰＢ（０）〜ＰＢ（ｎ）の先頭アドレスおよびデータサイズを管理するデータが記憶される。すなわち、図３に示す通り、ディレクトリエリアＤＩＲは、フレーズアドレスＰＡＤとフレーズデータサイズＰＤＳとから構成されている。
フレーズアドレスＰＡＤは、各フレーズバンクＰＢ（０）〜ＰＢ（ｎ）毎の先頭アドレスを記憶するアドレスエリアＰＡＤ（０）〜ＰＡＤ（ｎ）からなる。一方、フレーズデータサイズＰＤＳは、各フレーズバンクＰＢ（０）〜ＰＢ（ｎ）毎のデータサイズを記憶するサイズエリアＰＤＳ（０）〜ＰＤＳ（ｎ）から形成されている。
【００２４】
（３）動作
次に、図４〜図７を参照して上記構成による第１実施例の動作について説明する。なお、ここでは特に、鍵盤１の押離鍵操作により生成される演奏情報を、バンクスイッチＢＳのオン操作に応じて記憶保存する動作について言及する。
【００２５】
▲１▼全体動作（メインルーチン）
まず、本実施例による電子楽器に電源が投入されると、ＣＰＵ４はＲＯＭ５に記憶された制御プログラムをロードした後、図４に示すメインルーチンを実行してステップＳＡ１に処理を進め、各種レジスタ・フラグ類をゼロリセットしたり、あるいは初期値セットするイニシャライズを行う。この後、ＣＰＵ４はステップＳＡ２に処理を進め、パネルスイッチ群２のスイッチ操作に応じた各種のスイッチ処理を行う。このスイッチ処理では、後述するように、バンクスイッチＢＳのオン操作に対応してテンポラリバッファＴＢに一時記憶される演奏情報を、自動的にフレーズバンクＰＢへ退避格納して保存する。
【００２６】
そして、ステップＳＡ３では、鍵盤１の押離鍵操作に応じて演奏情報を発生させたり、この演奏情報をテンポラリバッファＴＢに一時記憶する鍵盤処理を行う。次いで、ステップＳＡ４では、上記鍵盤処理にて生成した演奏情報に対応して音源７に発音指示する発音処理を行い、そして、続くステップＳＡ５では、上記スイッチ処理に対応して動作状態等を表示する表示処理等、その他の処理を実行する。これ以後、ＣＰＵ４はステップＳＡ２〜ＳＡ５の各処理を繰り返す。
【００２７】
▲２▼タイマインタラプト処理
ＣＰＵ４では、演奏操作（押離鍵操作）が行われない空白時間を計測すべく、一定周期毎に図５に示すタイマインタラプト処理を実行している。割込みタイミングになると、ＣＰＵ４は図５に示すステップＳＢ１に処理を進め、レジスタＢＣに格納されるカウンタ値を１インクリメントして歩進させる。そして、次のステップＳＢ２では、歩進されたカウンタ値が最大値ＭＡＸに達したか否かを判断する。ここで、最大値ＭＡＸに達していない時には、判断結果が「ＮＯ」となり、この処理を一旦終了させてメインルーチンへ復帰する。
一方、カウンタ値が最大値ＭＡＸに達した時には、判断結果が「ＹＥＳ」となり、次のステップＳＢ３に処理を進め、その値を１デクリメントしてカウンタ値を最大値ＭＡＸでクリップさせて本処理を終了する。
【００２８】
▲３▼鍵盤処理ルーチンの動作
上述したステップＳＡ３を介して図６に示す鍵盤処理ルーチンが実行されると、ＣＰＵ４はステップＳＣ１に処理を進め、キーオンイベントの有無を判別する。ここで、押鍵操作に応じてキーオンイベントが発生すると、ステップＳＣ１の判断結果が「ＹＥＳ」となり、次のステップＳＣ２に処理を進める。ステップＳＣ２では、押鍵された鍵のキーコードやベロシティを表わす演奏情報を生成し、これを音源７へ送出するキーオン処理を行う。
【００２９】
一方、離鍵操作に応じてキーオフイベントが発生すると、上記ステップＳＣ１を介してステップＳＣ３に進み、ここでの判断結果が「ＹＥＳ」となってステップＳＣ４に処理を進める。ステップＳＣ４では、音源７に対して離鍵された鍵のキーコードに対応する楽音の消音を指示するキーオン処理を行う。
なお、押離鍵操作がなされない場合には、上記ステップＳＣ１，ＳＣ２の判断結果がいずれも「ＮＯ」となり、何も処理せずに本ルーチンを完了する。
【００３０】
さて、作曲者が断片的なフレーズを弾いた場合、その押鍵操作に対応して上記ステップＳＣ２のキーオン処理が行われた後、ＣＰＵ４はステップＳＣ５に処理を進める一方、離鍵操作に対応してステップＳＣ８に処理を進める。
まず、押鍵操作に対応してステップＳＣ５に進むと、ＣＰＵ４は上述のタイマインタラプト処理（図５参照）にて歩進されるレジスタＢＣのカウンタ値が一定値ＢＴＩＭＥ以上であるか否かを判断する。ここで、一定値ＢＴＩＭＥ以上であると、判断結果が「ＹＥＳ」となり、次のステップＳＣ６に進む。ステップＳＣ６では、現在、キーオン中の鍵の数が「０」であるか否かを判断する。そして、キーオン中の鍵が無ければ、判断結果が「ＹＥＳ」となり、ステップＳＣ７に処理を進めてリードポインタＲｐの値をライトポインタＷｐに書き換える。
【００３１】
このように、ステップＳＣ５〜ＳＣ７では、今回のキーオンイベントが発生する迄の間に、押鍵操作されない空白時間があったかどうかを判断しており、一定値ＢＴＩＭＥで表わされる空白時間が存在した時には、テンポラリバッファＴＢをクリアすべくリードポインタＲｐの値をライトポインタＷｐに書き換え、両ポインタＲｐ，Ｗｐが指し示すアドレスを一致させる。
なお、空白時間が存在しない時には、上記ステップＳＣ５、ＳＣ６の判断結果が「ＮＯ」となり、ステップＳＣ８に処理を進めるので、この場合にはテンポラリバッファＴＢはクリアされない。
【００３２】
そして、ステップＳＣ８に進むと、ＣＰＵ４はライトポインタＷｐが指し示す書込みアドレスに従ってテンポラリバッファＴＢに演奏情報を順次書き込んで行く。書き込まれる演奏情報は、キーオン／キーオフイベントの間隔（イベント時間差）、キーコードおよびベロシティからなる。
こうして演奏情報がテンポラリバッファＴＢに書き込まれると、ステップＳＣ９に処理を進めてライトポインタＷｐを更新し、続くステップＳＣ１０ではレジスタＢＣのカウンタ値をゼロクリアして本ルーチンを完了する。
【００３３】
このように、鍵盤処理ルーチンでは、押離鍵操作に対応して発生する演奏情報（イベント時間差、キーコードおよびベロシティ）を順次テンポラリバッファＴＢに書き込んで行き、一定時間以上の間、押鍵操作されない場合にはテンポラリバッファＴＢをクリアすべくリードポインタＲｐとライトポインタＷｐとを一致させている。
【００３４】
▲４▼スイッチ処理（バンクスイッチＢＳがオン操作された時の動作）
以上のようにして、演奏した断片的なフレーズがテンポラリバッファＴＢに一時記憶されている状態で、バンクスイッチＢＳがオン操作されたとする。
そして、ＣＰＵ４が前述のステップＳＡ２を介して図６に示すスイッチ処理ルーチンを実行してステップＳＤ１に処理を進めると、先ずステップＳＤ１においてパネルスイッチ群２を形成する各種スイッチを走査して設定状態を検出する。
【００３５】
次いで、ステップＳＤ２では、バンクスイッチＢＳがオン設定されているか否を判断する。この場合、当該スイッチＢＳがオン操作されるから、判断結果が「ＹＥＳ」となり、次のステップＳＤ３に処理を進める。なお、バンクスイッチＢＳがオン操作されない時には、判断結果が「ＮＯ」となり、ステップＳＤ８に進み、その他のスイッチ処理を行う。
【００３６】
ステップＳＤ３では、リードポインタＲｐとライトポインタＷｐとが異なるアドレスを指し示しているか否か、つまり、テンポラリバッファＴＢに演奏情報が一時記憶されている状態であるかどうかを判断する。ここで、リードポインタＲｐとライトポインタＷｐとが同一のアドレスを指定する場合、すなわち、テンポラリバッファＴＢが空の時には判断結果が「ＮＯ」となり、本ルーチンを完了する。
【００３７】
一方、前述した鍵盤処理ルーチンによって、テンポラリバッファＴＢに演奏情報が一時記憶されていると、判断結果が「ＹＥＳ」となり、ステップＳＤ４に処理を進める。ステップＳＤ４では、リードポインタＲｐが指し示す読み出し開始アドレスを、アドレスエリアＰＡＤ［ＢＮＵＭ］にセットする。なお、ＢＮＵＭは、前述のバンクセレクトスイッチＢＳＥＬの操作によって指定されるバンク番号である。次いで、ステップＳＤ５では、ライトポインタＷｐとリードポインタＲｐとの差で表わされる演奏情報のデータサイズを、サイズエリアＰＤＳ［ＢＮＵＭ］にセットする。
【００３８】
そして、次のステップＳＤ６に進むと、ＣＰＵ４はアドレスエリアＰＡＤ［ＢＮＵＭ］にセットされた読み出し開始アドレスに基づき、サイズエリアＰＤＳ［ＢＮＵＭ］にセットされたデータサイズ分の演奏情報をテンポラリバッファＴＢから読み出し、これをフレーズバンクＰＢ［ＢＮＵＭ］に書込み保存する。
次いで、ステップＳＤ７では、ライトポインタＷｐのアドレス値をリードポインタＲｐにストアし、テンポラリバッファＴＢを再びクリアすると共に、バンク番号ＢＮＵＭの重複を避けるべく、レジスタＢＮＵＭにストアされるバンク番号ＢＮＵＭを歩進させて本ルーチンを完了する。
【００３９】
以上のように、第１実施例によれば、作曲者がフレーズを弾き始めると、その押離鍵操作に対応して発生する演奏情報（イベント時間差、キーコードおよびベロシティ）が順次テンポラリバッファＴＢに書き込まれ、弾き終わりから一定時間経過する前にバンクスイッチＢＳがオン操作された場合、テンポラリバッファＴＢに書き込まれた演奏情報列が、フレーズバンクＰＢに自動的に書き込まれて保存されるので、演奏入力したフレーズをワンタッチで記録することが可能になる。
一方、弾いてみたフレーズが気に入らず、バンク保存しない時には、そのまま放置しておけば、弾き終わりから一定時間経過後に自動的にテンポラリバッファＴＢがクリアされる。
【００４０】
Ｂ．第２実施例
上述の第１実施例では、フレーズを弾き終わってから一定時間経過する迄の間にバンクスイッチＢＳをオン操作すると、テンポラリバッファＴＢに一時記憶されたフレーズの演奏情報列がフレーズバンクＰＢに自動的に保存され、バンクスイッチＢＳがオン操作されない時には自動的にテンポラリバッファＴＢに一時記憶されたフレーズの演奏情報列がクリアされるようにした。
【００４１】
これに対して、第２実施例では、後述するように、フレーズを弾き終わってから一定時間以上経過してから再び押鍵がなされると、テンポラリバッファＴＢに既に一時記憶されている演奏情報列がフレーズバンクＰＢに自動的に保存されるようにし、消去指示するキャンセルスイッチＣＳ（後述する）をオン操作した時にはテンポラリバッファＴＢをクリアして自動保存を回避する態様となっている。
【００４２】
したがって、第２実施例と上述の第１実施例との構成上の差異は、バンクスイッチＢＳに替えて不要フレーズの保存を防止する際に操作されるキャンセルスイッチＣＳを設けたことにあり、これ以外は第１実施例と同一構成だから、構成の説明については省略する。
また、第２実施例では、鍵盤処理ルーチンおよびスイッチ処理ルーチンのみが第１実施例と相違するので、以下、これらルーチンの動作について説明する。
【００４３】
▲１▼鍵盤処理ルーチンの動作
上述した第１実施例と同様、ステップＳＡ３を介して図８に示す鍵盤処理ルーチンが実行されると、ＣＰＵ４はステップＳＥ１に処理を進め、キーオンイベントの有無を判別する。ここで、押鍵操作に応じてキーオンイベントが発生すると、ステップＳＥ１の判断結果が「ＹＥＳ」となり、次のステップＳＥ２に処理を進める。ステップＳＥ２では、押鍵された鍵のキーコードやベロシティを表わす演奏情報を生成し、これを音源７へ送出するキーオン処理を行う。
【００４４】
一方、離鍵操作に応じてキーオフイベントが発生すると、上記ステップＳＥ１を介してステップＳＥ３に進み、ここでの判断結果が「ＹＥＳ」となってステップＳＥ４に処理を進める。ステップＳＥ４では、音源７に対して離鍵された鍵のキーコードに対応する楽音の消音を指示するキーオン処理を行う。
なお、押離鍵操作がなされない場合には、上記ステップＳＥ１，ＳＥ２の判断結果がいずれも「ＮＯ」となり、何も処理せずに本ルーチンを完了する。
【００４５】
さて、作曲者が断片的なフレーズを弾いた場合、その押鍵操作に対応して上記ステップＳＥ２のキーオン処理が行われた後、ＣＰＵ４はステップＳＥ５に処理を進める一方、離鍵操作に対応してステップＳＥ１１に処理を進める。
まず、押鍵操作に対応してステップＳＥ５に進むと、ＣＰＵ４は前述したタイマインタラプト処理（図５参照）にて歩進されるレジスタＢＣのカウンタ値が一定値ＢＴＩＭＥ以上であるか否かを判断する。ここで、一定値ＢＴＩＭＥ以上であると、判断結果が「ＹＥＳ」となり、次のステップＳＥ６に進む。ステップＳＥ６では、現在、キーオン中の鍵の数が「０」であるか否かを判断する。そして、キーオン中の鍵が無ければ、判断結果が「ＹＥＳ」となり、ステップＳＥ７に処理を進める。
【００４６】
ステップＳＥ７では、リードポインタＲｐとライトポインタＷｐとが異なるアドレスを指し示しているか否か、つまり、テンポラリバッファＴＢに演奏情報が一時記憶されている状態であるかどうかを判断する。ここで、リードポインタＲｐとライトポインタＷｐとが同一のアドレスを指定する場合、すなわち、テンポラリバッファＴＢが空の時には判断結果が「ＮＯ」となり、後述するステップＳＥ１１に処理を進める。
【００４７】
一方、テンポラリバッファＴＢに既に演奏情報が一時記憶されている場合には、ここでの判断結果が「ＹＥＳ」となり、ステップＳＥ８に処理を進める。ステップＳＥ８では、リードポインタＲｐが指し示す読み出し開始アドレスを、アドレスエリアＰＡＤ［ＢＮＵＭ］にセットすると共に、ライトポインタＷｐとリードポインタＲｐとの差で表わされる演奏情報のデータサイズを、サイズエリアＰＤＳ［ＢＮＵＭ］にセットする。なお、ＢＮＵＭは、前述のバンクセレクトスイッチＢＳＥＬの操作によって指定されるバンク番号である。
【００４８】
次いで、ステップＳＥ９に進むと、ＣＰＵ４はアドレスエリアＰＡＤ［ＢＮＵＭ］にセットされた読み出し開始アドレスと、サイズエリアＰＤＳ［ＢＮＵＭ］にセットされたデータサイズとに応じてテンポラリバッファＴＢから演奏情報列を読み出してフレーズバンクＰＢ［ＢＮＵＭ］に書込み保存する。この後、ステップＳＥ１０に進み、ライトポインタＷｐのアドレス値をリードポインタＲｐにストアし、テンポラリバッファＴＢをクリアする。
【００４９】
このように、ステップＳＥ５〜ＳＥ１０においては、先の演奏操作が完了してから一定時間以上経過してから次の演奏操作による押鍵があると、先の演奏操作に対応してテンポラリバッファＴＢに一時記憶されている演奏情報列がフレーズバンクＰＢに自動的に保存される。このようにすることで、演奏入力されたフレーズを自動的に記憶保存でき、保存し忘れを防止することが可能になっている。
【００５０】
なお、一定時間以上の空白時間が存在しない時、あるいはテンポラリバッファＴＢが空の場合には、上記ステップＳＥ５、ＳＥ６およびＳＥ７の判断結果がいずれも「ＮＯ」となり、これらの場合にはステップＳＥ１１に処理を進めるので、上述の自動保存は実行されない。
【００５１】
そして、ステップＳＥ１１に進むと、ＣＰＵ４はライトポインタＷｐが指し示す書込みアドレスに従ってテンポラリバッファＴＢに演奏情報を順次書き込んで行く。書き込まれる演奏情報は、キーオン／キーオフイベントの間隔（イベント時間差）、キーコードおよびベロシティからなる。
こうして演奏情報がテンポラリバッファＴＢに書き込まれると、ステップＳＥ１２に処理を進め、レジスタＢＣのカウンタ値をゼロクリアして本ルーチンを完了する。
【００５２】
このように、鍵盤処理ルーチンでは、先の演奏操作が完了してから一定時間以上経過後に次の演奏操作による押鍵があると、先の演奏操作に対応してテンポラリバッファＴＢに一時記憶されている演奏情報列がフレーズバンクＰＢに自動的に保存され、一方、先の演奏操作がなされていない時には、現在行われている演奏操作に対応して発生する演奏情報（イベント時間差、キーコードおよびベロシティ）を順次テンポラリバッファＴＢに書き込んで行く。
【００５３】
▲４▼スイッチ処理（キャンセルスイッチＣＳがオン操作された時の動作）
こうして演奏したフレーズがテンポラリバッファＴＢに一時記憶されている状態で、キャンセルスイッチＣＳがオン操作されると、ＣＰＵ４は図９に示すスイッチ処理ルーチンを実行してステップＳＦ１に処理を進めてスイッチ走査し、続くステップＳＦ２においてスイッチ走査結果に基づき、キャンセルスイッチＣＳがオン設定されているか否を判断する。
【００５４】
この場合、当該スイッチＣＳがオン操作されるから、判断結果が「ＹＥＳ」となり、次のステップＳＦ３に処理を進める。なお、キャンセルスイッチＣＳがオン操作されていない時には、判断結果が「ＮＯ」となり、ステップＳＦ４に進み、その他のスイッチ処理を行う。
そして、ステップＳＦ３では、リードポインタＲｐの値をライトポインタＷｐにセットし直してテンポラリバッファＴＢをクリアする。これにより、テンポラリバッファＴＢに一時記憶されている不要なフレーズの演奏情報列を自動保存するのを防止している訳である。
【００５５】
以上説明したように、第２実施例によれば、先の演奏操作がなされてから一定時間以上経過後に再び演奏操作を行うと、テンポラリバッファＴＢに格納済みとなっている先の演奏操作による演奏情報列がフレーズバンクＰＢに自動的に保存され、それ以前に消去指示するキャンセルスイッチＣＳ（後述する）をオン操作すれば、テンポラリバッファＴＢがクリアされて自動保存を回避するので、演奏入力したフレーズを、何等スイッチ操作せずとも自動的に記憶保存でき、保存不要なフレーズは消去し得るようになっている。
【００５６】
なお、上述した第１および第２実施例では、鍵盤１の押離鍵操作に応じて生成される演奏情報を記憶保存対象としているが、本発明の要旨はこれに限定されるものではなく、他の演奏形態により生じる演奏情報の記憶保存にも勿論適用可能である。
また、上述の各実施例では、押鍵操作されない空白時間の存在の有無を、固定的な値ＢＴＩＭＥに基づいて判定しているが、これに替えて、演奏者が任意可変に設定する態様としても良い。つまり、フレーズの区切りが認識し得るように、所望のインターバル時間をセット可能にすれば良い。
【００５７】
さらに、上述の各実施例では、記憶保存するためのフレーズバンクＰＢをスイッチ操作によって選択する態様としているが、これに替えて、空いているフレーズバンクＰＢを自動的に選択したり、全フレーズバンクＰＢが占有されている場合には最も古いフレーズが記憶保存されているバンクに最新のフレーズを上書きして保存する態様にしても良い。あるいは上書き禁止のフラグを設けておき、当該フラグがセットされていないバンクに新たなフレーズを上書き保存することもできる。
【００５８】
【発明の効果】
本発明によれば、演奏操作が完了してから一定時間以上経過後に再度の演奏操作がなされると、記憶手段のバッファ領域に格納済みの先の演奏操作に対応した演奏情報を自動的にバンク領域に転送して記憶保存し、一方、転送防止が指示されているときには、一定時間以上経過した後に再度の演奏操作がなされても、バッファ領域に格納済みの演奏情報をバンク領域に転送せずに破棄するので、演奏入力したフレーズを何等操作せずとも自動的に記憶保存することができる。
【図面の簡単な説明】
【図１】本発明による第１実施例の構成を示すブロック図である。
【図２】ＲＡＭ６のメモリ構成を示すメモリマップである。
【図３】ＲＡＭ６のメモリ構成を示すメモリマップである。
【図４】第１実施例におけるメインルーチンの動作を示すすフローチャートである。
【図５】第１実施例におけるタイマインタラプト処理ルーチンの動作を示すフローチャートである。
【図６】第１実施例における鍵盤処理ルーチンの動作を示すフローチャートである。
【図７】第１実施例におけるスイッチ処理ルーチンの動作を示すフローチャートである。
【図８】第２実施例における鍵盤処理ルーチンの動作を示すフローチャートである。
【図９】第２実施例におけるスイッチ処理ルーチンの動作を示すフローチャートである。
【符号の説明】
１  鍵盤
２  パネルスイッチ群（指示手段）
３  表示部
４  ＣＰＵ（指示手段、記憶制御手段）
５  ＲＯＭ
６  ＲＡＭ（記憶手段）
７  音源
８  Ｄ／Ａ変換回路
９  サウンドシステム
１０  記憶装置
【図１】
0003632806.tif 000002
【図２】
0003632806.tif 000003
【図３】
0003632806.tif 000004
【図４】
0003632806.tif 000005
【図５】
0003632806.tif 000006
【図６】
0003632806.tif 000007
【図７】
0003632806.tif 000008
【図８】
0003632806.tif 000009
【図９】
0003632806.tif 000010