(57)【要約】【課題】自動演奏装置及び電子楽器に組み込まれたコンピュータで実行する自動演奏プログラムにおいて、演奏情報が出力される時刻の変更を容易にし、演奏の多様化を達成する。【解決手段】ハードディスク装置３には、演奏情報およびタイムレートが複数、離散的な時間に配置され記憶している。タイムレート設定操作子４ｄにより指定されたタイムレート値に基いて、演奏情報に付された時刻を書き換える。各演奏情報はこの書き換えられた後の時刻に楽音生成部２に送られて、楽音生成部２では書き換え後の時刻にその演奏情報に基づく楽音を再生する。【選択図】　　　　図１
2004053835.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ内で実行されることにより、該コンピュータに、
時間を計時するステップと、
時間情報が付された演奏情報を記憶する記憶手段から前記計時ステップが計時する時間に応じて演奏情報を読み出して出力する演奏ステップと、
前記演奏ステップによる演奏中の任意の時刻にタイムレートが入力されるステップと、
前記入力ステップによりタイムレートを入力した場合、その時刻以降に出力する演奏情報の出力時刻を、前記入力したタイムレートに基づき変更するステップとを実行させることを特徴とする自動演奏プログラム。
【請求項２】
コンピュータ内で実行されることにより、該コンピュータに、
時間を計時するステップと、
時間情報が付された複数トラックからなる演奏情報を記憶する記憶手段から前記計時ステップが計時する時間に応じて演奏情報を読み出して出力する演奏ステップと、
前記演奏ステップによる演奏中の任意の時刻にタイムレートが入力されるステップと、
複数のトラックのうち任意のトラックを指定するステップと、
前記入力ステップによりタイムレートを入力した場合、前記トラック指定ステップにより指定されたトラックについて、タイムレートを入力した時刻以降に出力する演奏情報の出力時刻を、前記入力したタイムレートに基づき変更するステップとを実行させることを特徴とする自動演奏プログラム。
【請求項３】
コンピュータ内で実行されることにより、該コンピュータに、
テンポ値に基いて時間を計時するステップと、
時間情報が付された演奏情報と所定の時間位置にタイムレートを記憶する記憶手段から前記計時ステップが計時する時間に応じて演奏情報を読み出して出力する演奏ステップと、
前記演奏ステップによる演奏中の任意の時刻にタイムレートが入力されるステップと、前記入力ステップによりタイムレートを入力した場合、前記記憶手段に記憶され、その入力した時刻以降の時間に記憶されてるタイムレートの値を、入力したタイムレートに変更するとともに、その変更されたタイムレートに従って演奏情報の出力時刻を変更するステップとを実行させることを特徴とする自動演奏プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータまたは自動演奏装置及び電子楽器等に組み込まれたコンピュータで実行される自動演奏プログラムであって、演奏情報が出力される時刻を変更するものに関する。
【０００２】
【従来の技術】
従来、この種の自動演奏装置及び電子楽器、又はコンピュータでは、各演奏情報を、それらの演奏情報に付された出力時刻に読み出して音源に送り、音源が、送られてきた演奏情報に基づいて楽音を生成する自動演奏が行われている。ここで演奏情報に付された時刻とは、テンポ値により規定される周期のクロックをカウントすることで求められる。
【０００３】
この自動演奏において、演奏情報を出力する実際の時刻を変更する方法としては、テンポ値を変更する、または演奏情報に予め付されている時刻を直接変更する方法が知られている。
【０００４】
【発明が解決しようとする課題】
しかしながら、上記従来例では、各演奏情報に付された時刻の変更が出来るものの、次の不都合がある。
【０００５】
テンポ値を変更する従来の自動演奏装置では、複数のトラックそれぞれに各パートの演奏情報が記憶されている場合に、一つのクロックで全トラックの時刻をカウントしているため、テンポ値を変更すれば、全てのトラックの時刻が変化する。換言すれば、特定のトラックの演奏情報に付された時刻のみを変化させて、そのトラックのみ実際の時刻を変更させることが出来ない。
【０００６】
また、演奏情報に付された時刻を直接変更する例では、自動演奏中に即時的に時刻を変更できない。したがって、実際の時刻も即時的に変更できない。
【０００７】
本発明は、上記事情に鑑み、実際の時刻（再生時刻）の変更が容易にした自動演奏プログラムの提供を目的としている。
【０００８】
【課題を解決するための手段】
上記目的を達成する自動演奏プログラムは、コンピュータ内で実行されることにより、そのコンピュータに、時間を計時するステップと、時間情報が付された演奏情報を記憶する記憶手段から前記計時ステップが計時する時間に応じて演奏情報を読み出して出力する演奏ステップと、前記演奏ステップによる演奏中の任意の時刻にタイムレートが入力されるステップと、前記入力ステップによりタイムレートを入力した場合、その時刻以降に出力する演奏情報の出力時刻を、前記入力したタイムレートに基づき変更するステップとを実行させることを特徴としている。上記した本発明の自動演奏プログラムでは、演奏情報に付された時刻情報の変更を、所定のタイミングで受け付け、次に出力する演奏情報に付された時刻情報を変更している。この場合、特定の演奏情報が変更されて、変更後の時刻情報より表わされる時刻での再生が容易に出来るようになる。また、再生速度の変更が間引かれて、演奏情報に付された時刻情報の変更の演算量が低減し、その処理負担が軽減される。
【０００９】
また、上記目的を達成する自動演奏プログラムは、コンピュータ内で実行されることにより、そのコンピュータに、時間を計時するステップと、
時間情報が付された複数トラックからなる演奏情報を記憶する記憶手段から前記計時ステップが計時する時間に応じて演奏情報を読み出して出力する演奏ステップと、前記演奏ステップによる演奏中の任意の時刻にタイムレートが入力されるステップと、複数のトラックのうち任意のトラックを指定するステップと、前記入力ステップによりタイムレートを入力した場合、前記トラック指定ステップにより指定されたトラックについて、タイムレートを入力した時刻以降に出力する演奏情報の出力時刻を、前記入力したタイムレートに基づき変更するステップとを実行させるものであり、複数トラックのうち、任意のトラックのみについて、タイムレートの変更を行うことができる。
【００１０】
【発明の実施の形態】
以下、本発明の一実施形態について説明する。
【００１１】
（実施形態の構成及び各部の動作）
図１は、本発明の一実施形態における自動演奏プログラムを実行する事により自動演奏を行う自動演奏装置の構成例を示すブロック図である。
【００１２】
図１を参照すると、この自動演奏装置は、その各部を制御する制御部１が設けられている。この制御部１では演奏情報に付された出力する時刻をカウントするクロック信号を発生している。ただし、このクロック信号は、この自動演奏装置内で発生することに代わり、この自動演奏装置に、外部との間で情報を入出力するインターフェースを設け、クロック信号は外部装置からそのインターフェースを介してこの自動演奏装置に入力されてもよい。
【００１３】
さらに、図１に示す自動演奏装置には、楽音を生成する楽音生成部２と、多種の楽音情報を格納するハードディスク装置（ＨＤＤ）３、及びこの後で説明する複数の操作子及び表示器などを備えた操作パネル４とを備えている。これらの各部は、バスラインに接続されている。
【００１４】
制御部１は、本装置の各部の制御を行なうＣＰＵ１ａ、自動演奏プログラムを含む制御プログラムが記憶されているＲＯＭ１ｂ及びワーキング処理用のＲＡＭ１ｃからなる。
【００１５】
楽音生成部２は、時間軸圧縮伸長処理が可能な波形再生音源であり、テンポとタイムレートにしたがって時間軸圧縮処理を行う。楽音生成部２には、ここで生成された楽音を放音する発音器２ａと、楽音波形を記憶するメモリ５とが接続されている。
【００１６】
図２は操作パネル４の外観構成例を示す正面図である。
【００１７】
図２を参照すると、操作パネル４には、各種設定を表示する表示器４ａと、演奏開始操作子４ｂ及び演奏終了操作子４ｃが配置されている。さらに、この操作パネル４には、タイムレートを変更する、ボリュームを備えたタイムレート設定操作子４ｄと、テンポ値を変更するためのテンポ値設定操作子４ｅおよびトラック選択操作子４ｆが配置されている。
【００１８】
表示器４ａは、各種情報を表示する。演奏開始操作子４ｂは、演奏者などの操作指示に基づいた自動演奏の開始を指示する。また、演奏終了操作子４ｃは、演奏者などの操作指示に基づいた自動演奏の終了を指示する。
【００１９】
タイムレート設定操作子４ｄは、トラック選択操作子４ｆにより選択されたトラックのタイムレート、すなわち、テンポ値に対する演奏の進行速度を演奏中に変更するものであり、「タイムレートＸが１．０」の場合、自動演奏のテンポ値に応じた演奏速度で演奏を行う。また、「Ｘ＞１．０」では、自動演奏のテンポ値に応じた演奏速度よりも速く、その演奏が行なわれる。この逆に「Ｘ＜１．０」では、自動演奏のテンポ値に応じた演奏速度よりも遅く、その演奏が行なわれる。
【００２０】
テンポ値設定操作子４ｅは、テンポ値を変更するものであり、このテンポ値設定操作子４ｅを右に回転させると、速いテンポで演奏され、また、この逆にテンポ値設定操作子４ｅを左に回転させると、遅いテンポで演奏が行なわれる。トラック選択操作子４ｆは、タイムレートを変更するトラックを選択する操作子であり、このスイッチを押すたびに１，２・・ｎ、１のようにトラックが選択され、選択されたトラック番号が表示器４ａに表示される。
【００２１】
以上が実施形態の構成及び各部の動作である。
【００２２】
以下、この実施形態の全体動作について説明する。
【００２３】
図３は、ハードディスク装置３から読み出されてＲＡＭ１ｃに記憶した演奏情報とタイムレートを時刻と共に示す図で、また図４は、タイムレート変更後の演奏情報とタイムレートを時刻と共に示すとともに、タイムレート設定操作子による操作値との対応関係を示す図である。
【００２４】
図３を参照すると、ここには次の情報が示されている。
（ａ）時刻
この例では、その時刻が０〜１３６となっている。時刻の単位はティックであり、ティックは、１拍の時間を所定の数（例えば９６）で除した値であり、１ティックあたりの時間の長さは設定されているテンポ値により変化する。
（ｂ）楽音再生の開始終了を規定するノート情報（Ｎｏｔｅ　Ｏｎ、Ｎｏｔｅ　Ｏｆｆ）
このノート情報の例では、Ｎｏｔｅ番号［６４（ｈａ）］、［６６（ｒｅ）］、［６７（ｒｕ）］となっている。
（ｃ）該当する演奏情報の再生音量情報
この例は、Ｖｏｌｕｍｅ［１００］、［０５０］の値となっている。
（ｄ）タイムレート（ＴｉｍｅＲａｔｅ）
この例では、タイムレートが２４ティック毎に記憶され、その全ての値が［１．０］となっている。
（ｅ）エンド（ｅｎｄ）は自動演奏処理の終了を指示する情報。
【００２５】
図４を参照すると、ここには次の情報が示されている。
（ａ）タイムレート設定操作子の操作値
この「タイムレート設定操作子の操作値」は、図２に示すタイムレート設定操作子４ｄが演奏中に操作された場合の値である。この例では、操作値［０．７］，［０．５］，…，［２．０］，…の値となっている。
（ｂ）タイムレート値の変更
演奏中にタイムレート設定操作子４ｄが操作され、操作値が検出されると２４ティック毎に記憶されているタイムレートが、設定されている時刻になった時点のタイムレート値に変更される。図に示すように、例えば時刻８にタイムレート［０．７］，　時刻１７にタイムレート［０．５］が検出され、時刻２４にタイムレートが記憶されて入る場合は、直前のタイムレート値である［０．５］に書き換える。
（ｃ）演奏情報の時刻の変更
（ｂ）において書き換えたタイムレートの値に基いて、以降の演奏情報の時刻を書き換える。
【００２６】
以下、図３から図４に変換する処理を説明する。
【００２７】
図５は、このメイン処理のフローチャートである。
【００２８】
ここで使用するフラグには、演奏中フラグがある。この演奏中フラグは、自動演奏中か否かを規定するものであり、「１」の場合は自動演奏中であり、「０」の場合は自動演奏が停止している。
【００２９】
このメイン処理は、電源投入から切断までの間、実行される。
ステップＳ１では、電源投入時における各部の初期設定、例えば、演奏中フラグが「０」に設定される。
【００３０】
次に、ステップＳ２で演奏開始操作子４ｂが操作されたか否かが判定される。この判定で操作されたことを判定した場合（Ｙｅｓ）、演奏中フラグに「１」が設定され、さらに、ステップＳ３で演奏に用いる設定情報が初期化される。この初期化は次の設定である。
・現在時刻ｔを「−１」に設定。
・演奏情報、又はタイムレートを示す出力ポインタｉを「１」に設定。詳細には、選択されているトラックの自動演奏データの先頭アドレスに設定する。各アドレスには、時刻に対応して演奏情報またはタイムレートが記憶されている。
・次に出力するタイムレートの変更前の時刻ｔｐｎを「０」に設定。
・タイムレートの現在値ｔｒｃを「タイムレート設定操作子４ｄの操作値」　に
設定する。
・テンポ設定操作子４ｅで設定されたテンポに応じたティック周期で自動演奏処
理ルーチンを起動するためタイムインタラプトが発生するよう設定する。
【００３１】
次に、ステップＳ４で演奏終了操作子４ｃが操作されたか否かが判定される。この判定で演奏終了操作子４ｃが操作されたと判定された場合（Ｙｅｓ）、ステップＳ５に進み、演奏中フラグに「０」が設定される。
【００３２】
ステップＳ６では、トラック選択操作子４ｆが操作されると、操作の度にトラック番号が歩進され、トラック番号が最大値の次は、トラック番号１に戻る。
次に、ステップＳ７で演奏中フラグが「０」であれば、ティック間隔のタイマインタラプトが発生しないように設定し、その他の処理を行った後に、ステップＳ２に戻る。
【００３３】
また、ステップＳ４で演奏終了操作子４ｃが操作されなかった場合（Ｎｏ）も、ステップＳ６、ステップＳ７の処理を行なった後に、ステップＳ２に戻る。
【００３４】
図６は、メイン処理で設定されたティック間隔で発生されるタイマインタラプトにより起動される自動演奏処理のフローチャートである。
この自動演奏処理においては、タイムレートが変更されると、その次の時刻に出力される演奏情報またはタイムレートの時刻を変更されたタイムレートで変更し、その変更された時刻に達すると、また次の演奏情報またはタイムレートの時刻を変更するという手順で、順次時刻が変更される。
【００３５】
この処理で使用される変数は、
Ｔｉ：出力ポインタｉが示す時刻
ｔｐ：変更前の出力時刻
ｔｃ：タイムレートを変更した時刻
ｔｒｐ：変更前のタイムレート
ｔｒｃ：変更後（現在）のタイムレート
先ず、ステップＳ２１で時刻ｔを歩進（カウントアップ）する。
【００３６】
次に、ステップＳ２２で、この現在時刻ｔが、ポインタｉが示す情報の時刻Ｔｉに一致したか否かが判定される。ここで、ポインタｉが示す情報の時刻Ｔｉと歩進後の時刻が不一致の場合（Ｎｏ）、今回の起動による自動演奏処理を終了する。
【００３７】
ステップＳ２２で現在時刻ｔが、出力ポインタｉが示す情報の時刻Ｔｉに一致した場合（Ｙｅｓ）は、ステップＳ２３で出力ポインタｉが示す情報が「タイムレート」か否かが判定され、「タイムレート」が設定されていない場合（Ｎｏ）、ステップＳ２４に進み、その情報が「ｅｎｄ」か否かが判定される。
【００３８】
この判定で、「ｅｎｄ」でない場合（Ｎｏ）、ステップＳ２５で、ｉが示すノート情報又は音量情報の演奏情報を楽音生成部２に出力し、ステップＳ３１に進む。また、演奏情報が「ｅｎｄ」の場合（Ｙｅｓ）、ステップＳ２６に進み演奏中フラグに「０」を設定し、この自動演奏処理を終了する。
【００３９】
ステップＳ２３でｉの示す情報が「タイムレート」の場合、ステップＳ２７でｔｒｐにｉの示すタイムレート値を設定し、ステップＳ２８でタイムレート設定操作子４ｄの操作値とｉの示すタイムレートの値とが等しいか否かを判断し、異なる場合（Ｎｏ）は、ステップＳ２９でｉの示すタイムレートの値を操作子４ｄの操作値に書き換えた後にステップＳ３０に進む。
【００４０】
ステップＳ３０ではｉの示すタイムレートを楽音生成部２に出力するとともに、ｔｒｃにｉの示すタイムレートを設定し、ｔｐにｔｐｎを設定し、ｔｃにｔを設定する。本実施形態では、このタイムレートを楽音生成部２に送ることで、波形再生の時間軸の圧縮、伸長が行なわれる。
【００４１】
このステップＳ３０の処理後、あるいは上述したステップＳ２５の処理後に、ステップＳ３１で出力ポインタｉをｉ＋１に更新する。
【００４２】
次に、ステップＳ３２において、出力ポインタｉが示す情報が、タイムレートか否かを判断する。ここでタイムレートの場合（Ｙｅｓ）、ステップＳ３３に進み、ｔｐｎにＴｉを設定する。次にステップＳ３４に進み、Ｔｉを書き換える。ここで変更されたＴｉは、変更前のＴｉから変更前タイムレート時刻ｔｐを減算し、その値を、タイムレートの現在値ｔｒｃを変更前のタイムレートの値ｔｒｐで除算した値で除算し、変更後タイムレート時刻ｔｃを加算することにより得られるものである。このステップＳ３４の処理後は次の演奏情報に対する処理のためステップＳ２２に戻る。
【００４３】
このようにして、図４に示す「時刻」が順次求められる。
【００４４】
ここで、上記実施形態において、楽音生成部２では、時間軸圧縮伸長処理が行なわれるが、この楽音生成部２は、時間軸圧縮伸長処理をしない音源であってもよい。
【００４５】
また、上記実施形態では、「タイムレート」をタイムレート設定操作子４ｄにより入力したが、外部機器よりタイムレートを入力するインターフェースを備えてもよい。
【００４６】
また、上記実施形態では、演奏情報あるいはタイムレートを出力した時に、次に出力する演奏情報あるいはタイムレートに付されている「時刻」を変更すようにしているが、タイムレートを出力した時に、その次に出力するタイムレート迄の全ての演奏情報および次に出力するタイムレートについてそれらに付されている「時刻」を変更するようにしてもよい。
【００４７】
また、自動演奏情報の記録方式としては、上記実施形態では、各演奏情報およびタイムレートの出力時刻を、自動演奏処理の開始からの時刻としているが、直前に出力した演奏情報及びタイムレートからの経過時間（直前のイベントからの相対時間）としてもよい。また、ノート情報については、ノートオンの時刻とノートオンからノートオフまでの時間を記録する記録方式でもよい。これらの記録方式であっても本発明を容易に適用できる。
【００４８】
また、上記実施形態では、タイムレートを２４ティック間隔で記憶しているが、他の間隔でもよい（例えば４８）。さらに、間隔が常に同じである必要も無い。
【００４９】
【発明の効果】
以上、説明したように、本発明の自動演奏プログラムによれば、再生時刻の変更が容易になるとともに、その処理負担が軽減されて、演奏の多様化が達成できるという効果がある。
【図面の簡単な説明】
【図１】本発明の実施形態における自動演奏装置及び電子楽器の構成例を示すブロック図である。
【図２】図１中の操作パネルの概略構成例を示す図である。
【図３】実施形態にあって記憶した演奏情報及びタイムレートを示す図である。
【図４】タイムレート設定操作子４ｄの操作値と、演奏情報及びタイムレートの出力する時刻との関係を示す図である。
【図５】実施形態のメイン処理のフローチャートである。
【図６】実施形態における自動演奏処理のフローチャートである。
【符号の説明】
１　　制御部
１ａ　　ＣＰＵ
１ｃ　　ＲＡＭ
２　　楽音生成部
３　　ハードディスク装置
４　　操作パネル
４ｂ　　演奏開始操作子
４ｃ　　演奏終了操作子
４ｄ　　タイムレート設定操作子
４ｅ　　テンポ値設定操作子
５　　メモリ
【図１】
2004053835.tif 000003
【図２】
2004053835.tif 000004
【図３】
2004053835.tif 000005
【図４】
2004053835.tif 000006
【図５】
2004053835.tif 000007
【図６】
2004053835.tif 000008