(57)【特許請求の範囲】
【請求項１】
演奏データのうちの音符の発音に関わるノートデータと発音する楽音の音色の制御に関わる制御データとを分けて該ノートデータをノートデータ領域に、該制御データを制御データ領域にそれぞれ時系列に記憶している記憶手段と、演奏を再生させる時間位置を現位置として設定する設定手段と、該現位置での該制御データを、該制御データ領域の検索によって取得する第１の検索手段と、該現位置での該ノートデータを、該ノートデータ領域における該現位置付近の検索によって取得する第２の検索手段とを備えた自動演奏装置の演奏データ更新装置。
【請求項２】
該第１の検索手段は、該設定手段でいったん設定された現位置が変更になった場合に、該変更後の現位置が現在検索を行っている位置よりも時間的に前側にならない限り、該現在検索を行っている位置から引き続いて該制御データの検索を該制御データ領域内で行うように構成された請求項１記載の自動演奏装置の演奏データ更新装置。
【請求項３】
該記憶手段は、演奏データのうちのテンポデータおよび／または拍データについては該ノートデータ領域と該制御データ領域とは別の記憶領域に時系列に記憶し、該設定手段で現位置が設定されたら、該現位置に対応するテンポデータおよび／または拍データを該別の記憶領域を検索して取得し表示器に表示するようにした請求項１または２記載の自動演奏装置の演奏データ更新装置。
【請求項４】
入力した演奏データをノートデータと制御データとに分ける手段をさらに備え、該分けたノートデータと制御データとを該記憶手段のノートデータ領域と制御データ領域とにそれぞれ書き込むようにした請求項１〜３のいずれかに記載の自動演奏装置の演奏データ更新装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、自動演奏装置において演奏を曲の途中などから開始する際に演奏データをその開始位置のものに更新する演奏データ更新装置に関する。
【０００２】
【従来の技術】
自動演奏装置（シーケンサ）では、通常、演奏データを曲の初めから順に読み出して発音する楽音の制御を行っている。この演奏データは主に音符の発音（音符の音高、長さ、強さなど）に係わるノートデータと、発音する楽音の音色等を変える制御データとからなり、これらが曲の進行する順に時系列に並べてある。このため、演奏を曲の初めからではなく途中の任意の位置から開始させるような操作をした場合、ノートデータについてはその開始位置のノートデータを得れば演奏上大した不都合はないが、その開始位置で用いるべき音色やテンポ、拍数などのデータは、その開始位置よりもかなり前の演奏データ中に含まれている可能性があるので、その開始位置付近にある演奏データを見ただけでは、開始位置での音色やテンポ、拍数が何であるかは直ちに分からず、このため、音色やテンポ、拍数などが演奏に的確に反映されないことがある。
【０００３】
このため、従来は、例えば曲の途中から演奏を開始するような場合でも、その曲の演奏データを曲の先頭から開始位置に至るまで検索し、開始位置で演奏を開始するに必要な演奏データを得ていた。
【０００４】
【発明が解決しようとする課題】
上述したように、演奏データには大きく分けてノートデータと制御データとがあり、これらが混在して演奏データを形作っているが、このうちノートデータの占める割合は統計的にみて制御データに比べて大きい。このため、任意の開始位置から演奏を開始する場合に、その開始位置での音色やテンポ、拍数などのデータを得るために演奏データを曲の先頭から検索すると、その検索すべき演奏データの量はかなり多くなってしまい、検索に時間がかかってしまう。
【０００５】
また、演奏開始時には、ユーザはその開始時点での曲のテンポ、拍数、小節数などを演奏開始とともに直ちに知りたい場合が多いが、上述のように開始位置での演奏データの検索に時間がかかってしまうため、使用者がテンポや拍数、小節数などを直ちに表示することができなかった。
【０００６】
また、いったん演奏開始位置を設定してその演奏開始位置での演奏データを検索している途中で、さらに新たな演奏開始位置の設定（すなわち演奏開始位置の変更）があった場合（これをＳｅｅｋ操作とよぶ）、通常、後にした演奏開始位置設定の操作は無視されてしまい、新たな開始位置を設定したいというユーザの意志が演奏に反映されなかった。
【０００７】
本発明はかかる問題点に鑑みてなされたものであり、曲の途中から演奏を開始したり演奏途中で演奏位置を変えたりした場合に、開始点または変更点での演奏に必要な演奏データの検索を短時間で行えるようにすることを目的とする。また、上記の場合に演奏者の演奏準備等に必要な情報をできるだけはやく演奏者に提示できるようにすることを他の目的とする。また、上記の場合に、いったん設定した演奏位置を再び変える操作をした場合にも、その操作が無視されることなくユーザの意図が演奏に的確に反映できるようにすることも他の目的とする。
【０００８】
【課題を解決するための手段および作用】
上述の課題を解決するために、本発明に係る自動演奏装置の演奏データ更新装置は、演奏データのうちの音符の発音に関わるノートデータと発音する楽音の音色の制御に関わる制御データとを分けて該ノートデータをノートデータ領域に、該制御データを制御データ領域にそれぞれ時系列に記憶している記憶手段と、演奏を再生させる時間位置を現位置として設定する設定手段と、該現位置での該制御データを、該制御データ領域の検索によって取得する第１の検索手段と、該現位置での該ノートデータを、該ノートデータ領域における現位置付近の検索によって取得する第２の検索手段とを備える。設定手段により、演奏を開始する位置や演奏途中で変更した演奏位置が現位置として設定されると、第１の検索手段は、制御データ領域の検索によって制御データを取得し、第２の検索手段は、ノートデータ領域における現位置付近の検索によってノートデータを取得し、その現位置についての演奏データを取得する。この場合、制御データはノートデータに対して統計的に少ないものであるから、たとえ制御データの検索を曲の先頭から行う必要がある場合でもその検索に要する時間はわずかである。一方、ノートデータについては、その現位置付近のノートデータだけを検索すれば実用上は足りるので、検索に時間を要しない。このように、本発明では、ノートデータと制御データとに分けることで、それぞれに適した検索方法で検索を行うことができるようになり、検索時間を短縮することができる。
【０００９】
上記の第１の検索手段は、該設定手段でいったん設定された現位置が変更になった場合に、該変更後の現位置が現在検索を行っている位置よりも時間的に前側にならない限り、該現在検索を行っている位置から引き続いて該制御データの検索を該制御データ領域内で行うように構成することができる。このように構成することで、それまで行った検索のデータを無駄にしなくて済むようになり、また、ユーザの行った後の操作が無視されないので、ユーザの意図を演奏に反映でき、操作性の向上につながる。
【００１０】
また、上記の記憶手段は、演奏データのうちのテンポデータおよび／または拍データについては該ノートデータ領域と該制御データ領域とは別の記憶領域に時系列に記憶し、該設定手段で現位置が設定されたら、該現位置に対応するテンポデータおよび／または拍データを該別の記憶領域を検索して取得し表示器に表示するように構成することができる。このように構成することで、演奏の開始時や演奏位置の変更時に、演奏者にその準備のための情報を速やかに提示することができ、操作性が向上する。
【００１１】
また、上述の各演奏データ更新装置は、入力した演奏データをノートデータと制御データとに分ける手段をさらに備え、該分けたノートデータと制御データとを該記憶手段のノートデータ領域と制御データ領域とにそれぞれ書き込むように構成することができる。
【００１２】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。図１には本発明の一実施例としての演奏データ更新装置を搭載した自動演奏装置のハードウェア構成が示される。図１において、自動演奏装置はＣＰＵ１、ＲＡＭ２、ＲＯＭ３、テンポクロック源４、操作子群５、表示器６、音源７、増幅器８、スピーカ９、フロッピィディスク（ＦＤ）ドライバ１０等を含み構成される。このうち、音源７、増幅器８、スピーカ９、ＦＤドライバ１０は自動演奏装置と一体に組み込むほか、別体に設けるものであってもよい。つまり、自動演奏装置を上記１〜６の要素だけで構成するものであってもよい。
【００１３】
ここで、ＣＰＵ１はＲＯＭ３に格納されたプログラムに基づいて装置の全体的な制御を行うもの、ＲＡＭ２は演奏データやＣＰＵ１の処理で用いられる各種変数、フラグなどを格納するもの、操作子群５は演奏の開始／停止、早送り／巻戻し、ジャンプの指示などを行う各種の操作子からなるもの、表示器６は液晶表示装置（ＬＣＤ）からなり、テンポ、拍数、小節数などを表示するもの、音源７はＣＰＵ１から演奏データを受信し、演奏データ中のノートデータに応じた楽音の発音／消音などや制御データに応じた音色等の制御をした楽音信号を発生するものである。ＦＤドライバ１０はこの実施例では自動演奏装置に内蔵されており、フロッピィディスクに記録された演奏データを自動演奏装置内部に取り込んだり、自動演奏装置で作成した演奏データをフロッピィディスクに格納したりすることができる。
【００１４】
図２には実施例装置のパネル上に配置された操作子と表示器とが示される。なお、実際の自動演奏装置では種々の操作子や表示器があるが、図２では本発明に係わる部分のみを示している。図２において、５１は自動演奏の再生開始を指示するプレイトスイッチ、５２は自動演奏の再生停止を指示するストップスイッチである。５３は早送りを指示する早送りスイッチ、５４は巻戻しを指示する巻戻しスイッチである。早送りスイッチ５３は１回押す毎に再生位置が１小節分時間的に後側にシフトし、巻戻しスイッチ５４は１回押す毎に再生位置が１小節分時間的に前側にシフトする。５５と５６は現在の再生位置を曲中の所望の位置にジャンプさせるためのマーカスイッチであり、予めジャンプ先の位置Ａ、Ｂのデータが登録されている。早送りスイッチ５３、巻戻しスイッチ５４、マーカスイッチ５５、５６は、演奏中に現在の再生位置（曲の先頭からの経過時間）を更新するための操作子として用いられるとともに、曲の再生を開始する位置を設定するための操作子として用いられる。また、６１は現在演奏している位置の小節数（Ｍｅａｓ）を表示するための表示器、６２は現在演奏している位置の拍（Ｂｅａｔ）を表示するための表示器、６３は現在演奏している位置のテンポを表示する表示器である。
【００１５】
図３には演奏データを格納するためのＲＡＭ２のトラック構成が示される。図示するように、ノート・トラック２１、アップデート・トラック２２、テンポ・トラック２３、ビート・トラック２４等からなる。ノート・トラック２１には演奏データのうちのノート・データやレガート・データが格納される。ここで、ノート・データは、音符の発音に関わるもので例えば音高、音長、音の強さなどのデータであり、具体的には、ノート・オン／オフ、ノート番号、ベロシティなどのデータである。またこれらのノート・データにレガート・データなども加えて記憶すると好ましい。このレガート・データはノート・データのノート（音符）がどのように演奏されるかを指示する制御データであり、かかる制御データはノート・データと分離せずに記憶することが望ましい。アップデート・トラック２２には演奏データのうちの楽音の制御データが格納される。ここで、楽音の制御データは、発音する音色の設定に係わる音色データ、ベダルの状態を示すペダル・データ、ベンダー・データなどである。また、テンポ・トラック２３にはテンポ・データが格納され、このテンポ・データは４分音符あたりのテンポ・クロック数である。また、ビート・トラック２４にはビート・データが格納され、このビート・データは例えば３／４、４／４などの拍子を表すものである。各トラック２１〜２４に格納されるデータの１データ単位は、図３に示すように、そのデータにより示されるイベントの内容と次のデータがある位置までの時間（この実施例ではテンポクロック数を単位として表される）である。
【００１６】
以下、この実施例装置の動作を、図４〜図７のフローチャートを参照して説明する。ここで、図４〜図７は演奏データのうちの制御データを、適宜設定される開始位置のデータ、あるいは演奏中であれば演奏の進行に伴う現在位置のデータにアップデート（更新）するための処理フローであり、図４は実施例装置の立上げ後の待機状態での待機処理フロー、図５は演奏開始位置の設定／変更操作や演奏中に再生位置の位置変更操作があった場合の位置変更処理フロー、図６は自動演奏の再生時のプレイ処理フロー、図７は制御データをアップデート（更新）する時のアップデート処理フローであり、各フローチャート間の関係は、各フローチャートが図中に丸枠で示した結合子で結合されているものである。また、各フローチャートのプログラムはＲＯＭ３のそれぞれの所定領域に格納されていて、ＣＰＵ１によって読み出されて実行されるものである。
【００１７】
これらのフローチャートで用いられる変数としては以下のものがある。現在位置Ｐｃｕｒ：自動演奏の再生を開始する開始位置あるいは演奏中であれば現在の演奏位置を示す変数（曲先頭からの経過時間で表示）アップデート位置Ｐｕｐ：アップデートが完了している位置を示す変数（曲先頭からの経過時間で表示）演奏フラグＦｐｌａｙ：自動演奏の演奏中／停止中状態を表示するフラグであり、“０”で演奏停止中、“１”で演奏中を表す。
【００１８】
実施例装置の電源が投入されると、ＲＡＭ２の初期化などの所定の初期化処理が行われ（ステップＳ１）、これが完了したら、演奏フラグＦｐｌａｙを“０”に設定し（ステップＳ２）、演奏する曲の演奏データをＲＡＭ２にロードし（ステップＳ３）、現在位置Ｐｃｕｒ を「０」に設定し（ステップＳ４）、アップデート位置Ｐｕｐを「０」に設定し、さらに現在位置Ｐｃｕｒに対応する小節数（Ｍｅａｓ）、拍（Ｂｅａｔ）、テンポ（Ｔｅｍｐ）をＲＡＭ２のそれぞれのトラックから読み出して表示器６１〜６３にそれぞれ表示する（ステップＳ６）。この後、位置変更用のスイッチ５３〜５６およびプレイスイッチ５１のいずれかが操作されるまで、待機状態となる。
【００１９】
この待機状態で、位置変更用のスイッチ５３〜５６の何れかが操作されれば（ステップＳ７〜Ｓ１０）、図５に示す位置変更処理が行われ、プレイスイッチ５１が操作されれば（ステップＳ１２）、図６に示す演奏のプレイ処理が行われる。このプレイ処理については後述する。
【００２０】
まず、早送りスイッチ５３が１回操作された場合には、現在位置Ｐｃｕｒの次の小節の位置（時間）を新たな現在位置Ｐｃｕｒとし（ステップＳ２１）。その現在位置Ｐｃｕｒに対応する小節数、拍、テンポをそれぞれのトラックから読み出して表示器６１〜６３に表示し（ステップＳ２２）、アップデート処理に遷移する。このアップデート処理の詳細については後述する。
【００２１】
また、巻戻しスイッチ５４が１回操作された場合には、現在位置Ｐｃｕｒの前の小節の位置（時間）を新たな現在位置Ｐｃｕｒとし（ステップＳ２３）、その現在位置Ｐｃｕｒでの小節数、拍、テンポをそれぞれのトラックから読み出して表示器６１〜６３に表示し（ステップＳ２６）、次いで、アップデート処理に遷移するが、その際、この現在位置の前側へのシフト処理により、現在の現在位置Ｐｃｕｒがアップデート位置Ｐｕｐよりも時間的に前側に戻ってしまっていないかを「Ｐｃｕｒ≧Ｐｕｐ」により判定する（ステップＳ２７）。現在位置Ｐｃｕｒが前側になっている場合にはアップデート位置Ｐｕｐを「０」に設定し直した後に、アップデート処理に遷移する。これは、現在位置Ｐｃｕｒがアップデート位置Ｐｕｐよりも前側になっている場合にはその制御データの検索を曲の先頭からやり直すためであり、一方、アップデート位置Ｐｕｐが後ろ側になっている場合には制御データの検索はそのアップデート位置Ｐｕｐから引き続き行う。
【００２２】
また、マークＡスイッチ５５が操作されたら、そのマークＡスイッチ５５に対して予め登録されたジャンプ位置（時間）を新たな現在位置Ｐｃｕｒとし（ステップＳ２４）、また、マークＢスイッチ５６が操作されたら、そのマークＢスイッチ５６に対して予め登録されたジャンプ位置（時間）を新たな現在位置Ｐｃｕｒとし、上述したステップＳ２６〜２８の処理を行う。
【００２３】
このように、この位置変更処理フローでは、現在位置Ｐｃｕｒが変更されると、その変更された現在位置Ｐｃｕｒに対応する小節数、拍数、テンポがそれぞれ対応するトラックから検索されて表示器６１〜６３に表示されるが、これらのデータは他の種類のデータと比較して数が少ないものであるから、その検索時間は短く、よって最初に検索してこれらの情報を表示するようにしても処理上の問題はなく、よって位置の変更処理に伴ってリアルタイムにこれらの情報をユーザに視覚表示してその便宜に供することができる。また現在位置Ｐｃｕｒの変更により、現在位置Ｐｃｕｒがアップデート位置Ｐｕｐよりも前側になってしまった場合には、その制御データの検索を曲の先頭からやり直すが、前側になっていない場合にはそのアップデート位置Ｐｕｐから引き続き行うので、それまで行った検索を全てやり直すといった無駄な処理を無くすことができる。
【００２４】
図７に示すアップデート処理においては、ＲＡＭ２のアップデート・トラックから、アップデート位置Ｐｕｐに対応する制御データを１つ読み出してその内容を調べて記憶する（ステップＳ４１）。そして、アップデート・トラックにおける次の順に並べてある制御データの位置を新たなアップデート位置Ｐｕｐとする（ステップＳ４２）。これは現在のアップデート位置Ｐｕｐに次の制御データまでの時間を加算することで求められる。次いで、このアップデート位置Ｐｕｐの更新により、アップデート位置Ｐｕｐが現在位置Ｐｃｕｒに到達または追い越しているかを「Ｐｃｕｒ≦Ｐｕｐ」により判定する（ステップＳ４３）。
【００２５】
アップデート位置Ｐｕｐが現在位置Ｐｃｕｒにまだ達していない場合には、上述のステップＳ４１、Ｓ４２の処理を繰り返すことで、アップデート・トラックの制御データを逐次に調査・記憶していくが、その際、位置変更用のスイッチ５３〜５６のいずれかが操作された場合には（ステップＳ４５〜Ｓ４８）、それに応じて図５の位置変更処理を行って現在位置Ｐｃｕｒの変更と必要であればアップデート位置Ｐｕｐの修正を行う（ステップＳ２１〜Ｓ２８）。これにより、アップデート処理中に新たに位置変更操作があった場合にも、それらの操作が直ちにアップデート処理に反映されることになるので、ユーザの意図が演奏に的確に反映されるようになる。また、この現在位置Ｐｃｕｒに到達するまでの制御データの調査・記憶中に、プレイスイッチ５１が操作された場合には（ステップＳ４９）、演奏フラグＦｐｌａｙを“１”にし（ステップＳ５１）、ストップスイッチ５２が操作された場合には（ステップＳ５０）、演奏フラグＦｐｌａｙを“０”にする（ステップＳ５２）。
【００２６】
一方、アップデート位置Ｐｕｐが現在位置Ｐｃｕｒに到達または追い越している場合には（ステップＳ４３）、演奏フラグＦｐｌａｙの状態を判定し（ステップＳ４４）、演奏フラグＦｐｌａｙ＝０すなわち演奏停止中を示している場合には図４の待機状態に遷移し、演奏フラグＦｐｌａｙ＝１すなわち演奏中を示している場合には次のプレイ状態に遷移する。
【００２７】
図４の待機状態においてプレイスイッチ５１が押された場合には、図６に示す演奏のプレイ処理が行われる。このプレイ処理では、演奏の進行に伴って上述した変数の現在位置Ｐｃｕｒとアップデート位置Ｐｕｐを更新していく処理を行う。まず、現在位置Ｐｃｕｒに対応する１単位時間分の演奏再生（図示しない処理フローで行っている）が行われたら、現在位置Ｐｃｕｒを１単位時間だけインクリメントし（ステップＳ３２）、同時にアップデート位置Ｐｕｐを１単位時間だけインクリメントする（ステップＳ３３）。この後、位置変更用のスイッチ５３〜５６が操作されたか否かを調べ（ステップＳ３４〜３７）、スイッチ５３〜５６が操作されたときには前述の図５の位置変更処理フローを実行する。ストップスイッチ５２が操作されたときには（ステップＳ３８）、演奏フラグＦｐｌａｙを演奏停止を示す“０”にして（ステップＳ４０）、図４の待機状態に遷移する。これらのスイッチ５２〜５６のいずれも操作されていない時には１単位時間待って（ステップＳ３９）、ステップＳ３１に戻り、同じ処理を繰り返す。
【００２８】
なお、この演奏再生時においては、ノートデータは、ノート・トラックから、現在位置Ｐｃｕｒに対応する位置のノート・データを直接に読み出して、音源７でそのノートの発音処理を行う。この場合、曲の途中から演奏が開始されたり演奏位置が途中で変更された場合でも、ノート・トラックを先頭から検索することはせずに、常に現在の現在位置Ｐｃｕｒに対応する位置のノート・データを読み出して演奏データとして用いるので、この検索に要する時間はわずかである。
【００２９】
以上の実施例では、記憶手段（ＲＡＭ）の各トラックにノート・データ、制御データ、テンポ・データ、ビート・データ等が分けられて予め格納されているものとして説明を行ったが、本発明はこれに限られるものではなく、外部記憶媒体（例えばフロッピィ・ディスク）等からの演奏データやリアルタイム演奏の演奏データなどのような上記各データが混在している演奏データが自動演奏装置にロードされる際に、その演奏データの内容を調査して上記のような各データに分類し、それぞれ別々のトラックに書き込むようにしたものであってもよい。
【００３０】
また、メモリに上記のように各データ毎にトラックを分けて記憶されている演奏データを、外部記憶媒体などにセーブする際には、その分けられているノートデータと制御データ等を再び時間順に組み立てて混合し、一つの演奏データにしてセーブするようにしてもよい。このような機構を備えるようにすると、本発明を用いていない他の自動演奏装置との間で演奏データの共通性が得られる。
【００３１】
【発明の効果】
以上に説明したように、本発明によれば、演奏を曲の途中から開始したり曲の演奏途中で再生位置を変更した場合でも、その開始・変更位置での演奏に必要な音色等の制御データを検索時間を短縮して速やかに得ることができるので、曲の開始や再生位置変更を速やかに行うことができる。また同様に、演奏を曲の途中から開始したり曲の演奏途中で再生位置を変更した場合でも、その開始・変更位置に対応するテンポ、拍数、小節数などを直ちに視覚表示することができるので、実際に演奏が始まる前に演奏者に必要な情報を速やかに知らせて演奏の準備のための時間を与えることができ、これにより軽快な操作感を得ることができる。また、制御データのアップデート処理中にさらに位置変更操作を行った場合でも、その操作内容が直ちにアップデート処理に反映されるので、ユーザの行った操作を無駄にすることなくユーザの意図を的確に演奏に反映させることができ、軽快な操作感を得ることができる。
【図面の簡単な説明】
【図１】本発明に係る一実施例としての演奏データ更新装置を搭載した自動演奏装置のハードウェア構成を示す図である。
【図２】実施例装置のパネル上における本発明に係わる表示器と操作子の配置を示す図である。
【図３】実施例装置におけるＲＡＭの演奏データの記憶形式を説明する図である。
【図４】実施例装置における立上げ後の待機状態での待機処理フローを示すフローチャートである。
【図５】実施例装置における演奏開始位置の設定／変更操作や演奏中に再生位置の位置変更操作があった場合の位置変更処理フローを示すフローチャートである。
【図６】実施例装置における自動演奏の再生時のプレイ処理フローを示すフローチャートである。
【図７】実施例装置における制御データをアップデート（更新）する時のアップデート処理フローを示すフローチャートである。
【符号の説明】
１ ＣＰＵ（中央処理装置）
２ ＲＡＭ（ランダム・アクセス・メモリ）
３ ＲＯＭ（リード・オンリー・メモリ）
４ テンポクロック源
５ 操作子群
６ 表示器
７ 音源
８ 増幅器
９ スピーカ
５１ プレイスイッチ
５２ ストップスイッチ
５３〜５６ 位置変更用のスイッチ
６１ 小節数表示器
６２ ビート（拍数）表示器
６３ テンポ表示器
【図１】
0003853054.tif 000002
【図２】
0003853054.tif 000003
【図３】
0003853054.tif 000004
【図４】
0003853054.tif 000005
【図５】
0003853054.tif 000006
【図６】
0003853054.tif 000007
【図７】
0003853054.tif 000008