(57)【要約】【課題】演奏データ列の逆再生を簡単に可能にする演奏データ列変換プログラムを実現し、かつ演奏データ列の変換処理を的確に行う。【解決手段】ステップＳ１６，Ｓ１８の処理より、元演奏データ列を順方向に読み出して現在値配列エリア内の発生態様制御データを順次更新し、演奏データ列の読み出し終了後、ステップＳ２０の処理により、現在値配列エリアに残っている発生態様制御データを逆再生バッファエリアの先頭に書き込む。次に、ステップ２２，２４の処理により、元演奏データ列を逆方向に読み出して、加工処理して逆再生バッファエリアに順次書き込む。この加工処理においては、ノートオンおよびノートオフデータは、それぞれノートオフおよびノートオンデータに変換される。楽音の発生態様制御データに関しては、元演奏データ列の先頭方向への検索値に変換される。検索されない場合には、初期値に変換される。【選択図】  図２
2004280002.tif 000002
【特許請求の範囲】
【請求項１】
複数の配列された作動制御データからなって各作動制御データの時間経過に従った読み出し時に制御対象を作動制御するための元データ列であって、複数の作動制御データを時間経過に従って順方向に読み出した際に後続の作動制御データによって作動制御される制御対象の作動態様を制御するための作動態様制御データを適宜箇所に含ませた元データ列を、時間経過に従った読み出し時に制御対象を逆作動させる逆再生用データ列に変換するデータ列変換プログラムにおいて、
前記元データ列を先頭から末尾まで順方向に順次読み出して、前記作動態様制御データが読み出されるごとに同種の作動態様制御データを順次更新記憶する更新記憶ステップと、
前記元データ列の順方向の読み出しが終了した時点で、前記更新記憶ステップの処理により更新記憶された最後の作動態様制御データを前記逆再生用データ列の先頭に配置する初期配置ステップと
を含むことを特徴とするデータ列変換プログラム。
【請求項２】
前記請求項１に記載したデータ列変換プログラムにおいて、さらに、
前記初期配置ステップの処理後、前記元データ列を末尾から先頭方向に向かって逆方向に順次読み出し、前記作動態様制御データが読み出されたときには前記元データ列の先頭方向に同種の作動態様制御データを検索して、同種の作動態様制御データが検索された場合には前記読み出した作動態様制御データを前記検索された作動態様制御データに変換して逆再生用データ列に組み込み、かつ同種の作動態様制御データが検索されない場合には前記読み出した作動態様制御データを予め用意された初期値に変換して逆再生用データ列に組み込む変換ステップを含むデータ列変換プログラム。
【請求項３】
前記請求項２に記載したデータ列変換プログラムにおいて、
前記作動制御データは楽音の発生を制御するための楽音発生制御データであり、かつ前記作動態様制御データは前記楽音発制御データによって発生される楽音の発生態様を制御するための発生態様制御データであるデータ列変換プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の配列された制御データからなって各制御データの時間経過に従った読み出し時に制御対象を作動制御するための元データ列を、時間経過に従った読み出し時に制御対象を逆作動させる逆再生用データ列に変換するデータ列変換プログラムに関する。
【０００２】
【従来の技術】
従来から、演奏データ列を楽曲の進行とは逆方向に時間経過に従って読み出し、楽音の発生を制御するための楽音発生制御データ中の楽音の発生終了を指示するキーオフデータを楽音の発生開始を指示するキーオンデータに変換するとともに、同楽音発生制御データ中のキーオンデータをキーオフデータに変換して楽音信号発生回路に供給して、演奏データ列を逆再生した演奏音を発生させるリアルタイム逆再生技術は知られている（特許文献１参照）。
【０００３】
また、この場合、音色を選択または変更制御するためのプログラムチェンジデータ、各種制御操作子（メインボリューム、バランスコントロール、トレモロデプス、ポルタメント、ソフトペダルなどの操作子）に関するコントロールチェンジデータ、ピッチベンドを制御するピッチベンドデータなど、楽音の発生態様を制御するための発生態様制御データに関しては、前記逆方向の時間経過に従った読み出し時に、現在位置よりも先頭方向の発生態様制御データを検索し、同検索された発生態様制御データを楽音信号発生回路に供給して、楽音の発生態様を制御するようにしていた。これは、発生態様制御データは、楽音の発生態様を変更するタイミングでのみ用いられて、楽音の発生態様が以前と同一に維持される範囲内では登場しないものであり、発生態様制御データの制御下におかれる楽音発生制御データ（キーオンデータおよびキーオフデータ）が演奏データ列を順方向に読み出した場合と同じ条件に置かれるようにするためである。
【０００４】
【特許文献１】
特許第２６１６６５６号公報
【０００５】
【発明が解決しようとする課題】
しかし、上記従来の技術は、演奏データ列をリアルタイムで逆方向から読み出して、楽曲の逆再生をリアルタイムで実現するもので、上記特許文献１には、元の演奏データ列を逆再生用の演奏データ列に変換することが開示されていない。したがって、演奏データ列により表された楽曲を逆再生するためには、上記機能を実現するための特殊なプログラムが必ず必要となる。また、元の演奏データ列を逆再生用の演奏データ列に変換しようとする場合、逆再生用の演奏データ列を時間経過に従って先頭から順次再生しようとすると、発生態様制御データの初期値の設定が問題となる。また、この種の問題は、演奏データ列を逆再生するための逆再生演奏データの変換に限らず、種々のシーケンシャルファイルの制御データ列を逆再生するための逆再生データ列を作成する場合にも、広く問題となることである。
【０００６】
【発明の概要】
本発明は、上記問題に対処するためになされたもので、その目的は、元の制御データ列を逆再生用の制御データ列に的確に変換することにより、特殊な逆再生プログラムを必要とすることもなく制御データ列の逆再生を簡単かつ適正に可能にするデータ列変換プログラムを提供することにある。
【０００７】
上記目的を達成するために、本発明の構成上の特徴は、複数の配列された作動制御データからなって各作動制御データの時間経過に従った読み出し時に制御対象を作動制御するための元データ列であって、複数の作動制御データを時間経過に従って順方向に読み出した際に後続の作動制御データによって作動制御される制御対象の作動態様を制御するための作動態様制御データを適宜箇所に含ませた元データ列を、時間経過に従った読み出し時に制御対象を逆作動させる逆再生用データ列に変換するデータ列変換プログラムにおいて、元データ列を先頭から末尾まで順方向に順次読み出して、作動態様制御データが読み出されるごとに同種の作動態様制御データを順次更新記憶する更新記憶ステップと、元データ列の順方向の読み出しが終了した時点で、更新記憶ステップの処理により更新記憶された最後の作動態様制御データを逆再生用データ列の先頭に配置する初期配置ステップとを含むことにある。
【０００８】
これによれば、特殊な逆再生プログラムを必要とすることもなく、逆再生用データ列を通常に再生するのみで、元のデータ列によって表された楽曲の逆再生が実現される。したがって、本発明の特徴によれば、元演奏データ列によって表された楽曲の逆再生を簡単に行なえるようになる。また、このように構成した本発明の特徴においては、順方向に読出した最後の作動態様制御データが逆再生用データ列の先頭に配置されるので、逆再生用データ列を再生した際の作動態様制御データの初期値が的確に設定される。
【０００９】
また、本発明の他の特徴に係るデータ列変換プログラムは、さらに、前記初期配置ステップの処理後、前記元データ列を末尾から先頭方向に向かって逆方向に順次読み出し、前記作動態様制御データが読み出されたときには前記元データ列の先頭方向に同種の作動態様制御データを検索して、同種の作動態様制御データが検索された場合には前記読み出した作動態様制御データを前記検索された作動態様制御データに変換して逆再生用データ列に組み込み、かつ同種の作動態様制御データが検索されない場合には前記読み出した作動態様制御データを予め用意された初期値に変換して逆再生用データ列に組み込む変換ステップを含むことにある。
【００１０】
この場合、前記作動制御データは、例えば、楽音の発生を制御するための楽音発生制御データであり、かつ前記作動態様制御データは前記楽音発制御データによって発生される楽音の発生態様を制御するための発生態様制御データである。また、発生態様制御データとは、楽音の発生態様を変更するタイミングでのみ用いられて、楽音の発生態様が同じに維持される範囲内では登場しない制御データであり、例えば、ＭＩＤＩ規格におけるプログラムチェンジデータ、コントロールチェンジデータ、ピッチベンドデータなどである。
【００１１】
これによれば、前記本発明の特徴による効果に加えて、逆再生用制御データ列を再生した際、再生途中に現われる作動態様制御データ（例えば、楽音の発生態様を制御するための発生態様制御データ）に関しても適切な値に設定される。
【００１２】
【発明の実施の形態】
以下、本発明の一実施形態に係るデータ列変換プログラムについて説明すると、図１は、このデータ変換プログラムの適用される電子音楽装置を概略的に示すブロック図である。この電子音楽装置としては、鍵盤型電子楽器、非鍵盤型電子楽器（タッチプレート、押しボタン、弦などを演奏操作子として有する電子楽器）、シーケンサ装置、パーソナルコンピュータなどが挙げられる。
【００１３】
この電子音楽装置は、入力操作子群１１、表示器１２および楽音信号発生回路１３を有する。入力操作子群１１は、この電子音楽装置の作動を指示するための複数の操作子からなり、これらの複数の操作子の操作はバス２０に接続された検出回路１４によって検出される。なお、これらの複数の操作子は、スイッチ操作子、ボリューム操作子、マウスなどを含んでおり、鍵盤型電子楽器においては白鍵および黒鍵も含む。表示器１２は、液晶ディスプレイ、ＣＲＴなどで構成され、文字、数字、図形などを表示する。この表示器１２の表示態様は、バス２０に接続された表示制御回路１５によって制御される。
【００１４】
楽音信号発生回路１３は、バス２０に接続されていて後述するＣＰＵ３１の制御のもとに供給される演奏データに基づいて楽音信号を形成して、同楽音信号をサウンドシステム１６に出力する。サウンドシステム１６は、スピーカ、アンプなどを含んでいて、楽音信号発生回路１３からの楽音信号に対応した楽音を発音する。
【００１５】
また、この電子音楽装置は、バス２０にそれぞれ接続されてマイクロコンピュータ本体部を構成するＣＰＵ３１、タイマ３２、ＲＯＭ３３、ＲＡＭ３４を備えているとともに、外部記憶装置３５および通信インターフェース回路３６も備えている。外部記憶装置３５は、この電子音楽装置に予め組み込まれているハードディスクＨＤ、同電子音楽装置に装着可能なコンパクトディスクＣＤ、フレキシブルディスクＦＤなどの種々の記録媒体と、同各記録媒体に対するドライブユニットを含むものであり、大量のデータ及びプログラムを記憶及び読み出し可能にしている。本実施形態の場合、ハードディスクＨＤには、図２の逆再生用演奏データ変換プログラムを含む各種プログラム、および同プログラムの実行時に利用される複数組の曲データなどが記憶されている。これらのプログラムおよび曲データは、予めハードディスクＨＤに記憶されていたり、コンパクトディスクＣＤ、フレキシブルディスクＦＤなどからハードディスクＨＤに供給されたり、後述する外部機器４１又は通信ネットワーク４２を介した外部からハードディスクＨＤに供給されるものである。
【００１６】
一組の曲データは、例えばＭＩＤＩデータによって構成されており、図３に元演奏データ列エリアのデータとして示すように、ノートオンデータ、ノートオフデータ、プログラムチェンジデータ、コントロールチェンジデータ、エンドデータなどからなる。ノートオンデータおよびノートオフデータは、楽音の発生を制御するための楽音発生制御データに属する。ノートオンデータは、楽音の発生開始を指示するもので、ノートオンであることを示す識別データ、および発生される楽音の音名（周波数）を表すノート番号データからなる。ノートオフデータは、楽音の発生終了を指示するもので、ノートオフであることを示す識別データ、および発生されている楽音の音名（周波数）を表すノート番号データからなる。なお、発生される楽音がリズムパートに関するものであれば、前記ノート番号データは、打楽器の種類を表す楽器名データに対応付けられている。
【００１７】
プログラムチェンジデータは、音色を選択または変更制御するためのデータである。コントロールチェンジデータは、各種制御操作子（メインボリューム、バランスコントロール、トレモロデプス、ポルタメント、ソフトペダルなどの操作子）に関連して、音量、効果などの楽音の発生態様を選択または変更制御するものである。また、図示してはいないが、発生態様制御データには、発生楽音のピッチベンドを制御するピッチベンドデータなども含まれる。エンドデータは、一楽曲に関する曲データの終了を示す。
【００１８】
これらの各演奏データには、タイミングデータが付随している。タイミングデータは、例えば曲の先頭からの小節の数、小節内の先頭からの拍の数、拍内のクロック数（拍内のクロックタイミング）などにより、各演奏データによる制御タイミングを表す。そして、ノートオンデータ、ノートオフデータなどの楽音発生制御データは楽音の発生制御の各制御タイミングごとに用意されていて、それらに付随したタイミングデータは楽音発生制御の各制御タイミングをそれぞれ表している。一方、プログラムチェンジデータ、コントロールチェンジデータなどの発生態様制御データは楽音の発生態様の初期の選択およびその変更時にのみ用意されていて、楽音の発生態様が同一に維持される範囲内では登場しないものであり、それらに付随したタイミングデータは楽音の発生態様の初期の選択およびその変更制御タイミングをそれぞれ表している。
【００１９】
通信インターフェース回路３６は、他の電子楽器、パーソナルコンピュータなどの外部機器４１に接続可能となっていて、この電子音楽装置が外部機器４１と各種プログラム及びデータを交信可能となっている。また、通信インターフェース回路３６は、インターネットなどの通信ネットワーク４２を介して外部との接続も可能となっていて、この電子音楽装置が外部と各種プログラム及びデータを交信可能としている。
【００２０】
次に、上記のように構成した実施形態において、元演奏データ列を逆再生用演奏データ列に変換する動作を説明する。まず、ユーザは、入力操作子群１１を操作して逆再生用演奏データ列変換プログラムをＣＰＵ３１に実行させる。このプログラムの実行は、図２のステップＳ１０にて開始され、ステップＳ１２にてユーザに曲データを選択させる。この選択においては、ユーザは、表示器１２の表示を見ながら入力操作子群１１を操作して、外部記憶装置３５のハードディスクＨＤ内に記憶されている複数組の曲データの中から１組の曲データを指定する。これにより、指定された１組の曲データは、ハードディスクＨＤから読み出されて、ＲＡＭ３４の元演奏データ列エリア（図３参照）に書き込まれる。
【００２１】
また、演奏者が所望とする曲データがハードディスクＨＤに記憶されていない場合には、他の曲データを記憶したコンパクトディスクＣＤ、フレキシブルディスクＦＤから所望の曲データを読み込んで、元演奏データ列エリアに書き込んでもよい。また、通信インターフェース回路３６を介して外部機器４１から所望の曲データを読み込み、または通信インターフェース回路３６および通信ネットワーク４２を介して外部から所望の曲データを読み込んで、元演奏データ列エリアに書き込んでもよい。
【００２２】
次に、ＣＰＵ３１は、ステップＳ１４にて、ＲＡＭ３４内に設けた初期値配列エリアおよび現在値配列エリア（図３参照）に、プログラムチェンジデータ、コントロールチェンジデータなどの発生態様制御データのための初期値としてそれぞれ予め用意された種々の値をプログラムチェンジデータＩ、コントロールチェンジデータＩなどとして書き込む。
【００２３】
前記ステップＳ１４の処理後、ステップＳ１６，Ｓ１８の処理により、元演奏データ列エリアの先頭から順方向に演奏データを順次読み出し、発生態様制御データが読み出された場合には、現在値配列エリア内に記憶されている発生態様制御データであって、前記読み出された発生態様制御データと同種の発生態様制御データを、前記読み出した発生態様制御データに更新する。そして、ステップＳ１６，Ｓ１８の循環処理中、エンドデータが読み出されると、ステップＳ１８にて「Ｙｅｓ」と判定して、ステップＳ２０に進む。
【００２４】
ステップＳ２０においては、現在値配列エリア内の各発生態様制御データと初期値配列エリアの同種の発生態様制御データとを比較し、現在値配列エリアから初期値配列エリア内の同種の発生態様制御データとは異なる発生態様制御データを読み出して、逆再生バッファエリアの先頭に書き込む。そして、この発生態様制御データに付随するタイミングデータは、演奏開始前のタイミングであることを表す値、例えば「０」に設定しておく。
【００２５】
次に、ステップＳ２２，Ｓ２４の処理により、元演奏データ列エリアの末尾から逆方向に順に演奏データを順次読み出し、同読み出した演奏データを加工して逆再生バッファエリアに、前記ステップＳ２０の処理により書き込んだ発生態様制御データの次から順次書き込む。なお、この演奏データの書き込み方向は、逆再生バッファエリアの再生方向として示す方向である。前記加工においては、ノートオンデータはノートオフデータに変更され、またノートオフデータはノートオンデータに変更される。具体的には、元演奏データがノートオンデータであれば、ノート番号データはそのままに維持されるが、ノートオンデータ中の識別データはノートオフを表す識別データに変更される。また、元演奏データがノートオフデータであれば、ノート番号データはそのままに維持されるが、ノートオフデータ中の識別データはノートオンを表す識別データに変更される。また、ノートオンデータおよびノートオフデータのタイミングデータに関しては、エンドデータのタイミングデータ値から元演奏データのノートオンデータおよびノートオフデータに付随するタイミングデータ値を減算した値に変更される。
【００２６】
プログラムチェンジデータ、コントロールチェンジデータなどの発生態様制御データが読み出されたときには、元演奏データ列の先頭方向に同種の発生態様制御データを検索する。そして、同種の発生態様制御データが検索された場合には、前記読み出した発生態様制御データを前記検索された発生態様制御データに変換して逆再生バッファエリアに書き込む。また、同種の発生態様制御データが検索されない場合には、前記読み出した発生態様制御データを初期値配列エリアに記憶されている同種の発生態様制御データに変換して逆再生バッファエリアに書き込む。また、この発音態様制御データに関しても、それに付随するタイミングデータは、エンドデータのタイミングデータ値から元演奏データの発音態様制御データに付随するタイミングデータ値を減算した値に変更される。
【００２７】
このステップＳ２２，Ｓ２４の循環処理により、全ての演奏データが読み出されると、ステップＳ２４にて「Ｙｅｓ」と判定して、ステップＳ２６に進む。ステップＳ２６においては、逆再生バッファエリアの最後に元演奏データのエンドデータとそれに付随するタイミングデータを書き込んでおく。そして、ステップＳ２８にて、逆再生バッファエリア内の演奏データをそのままＲＡＭ３４の別エリアに先頭から書き込む。また、前記ＲＡＭ３４の別エリアに書き込んだ演奏データをハードディスクなどの外部記憶装置３５にも書き込んでおく。そして、ステップＳ３０にて、この逆再生用演奏データ列変換プログラムの実行を終了する。
【００２８】
このようにして形成された逆再生用演奏データを再生するには、演奏データを読み出すためのタイミングカウンタを用いて時間を計測させて、同タイミングカウントのカウント値を用いて、前記ＲＡＭ３４の別エリアに書き込んだ演奏データをその先頭から順次読み出して再生するようにするとよい。すなわち、タイミングカウント値と一致するタイミングデータを見つけたとき、同タイミングデータに伴う演奏データを楽音信号発生回路１３に供給して、楽音の発生を制御する。これによれば、元演奏データ列の逆再生が簡単に実現される。このような再生処理は、通常の再生処理として広く知られている。
【００２９】
上記説明からも理解できるとおり、上記実施形態によれば、特殊な逆再生プログラムを必要とすることもなく、元演奏データ列によって表された楽曲の逆再生が簡単に実現される。また、現在値配列エリア内の発生態様制御データを更新するステップＳ１６の処理、および同現在値配列エリア内の発生態様制御データを逆再生バッファエリアの先頭に書き込むステップＳ２０の処理により、適切な発生態様制御データを逆再生用演奏データ列の先頭に簡単に設定できる。さらに、ステップＳ２２における元演奏データ列の先頭方向への検索処理を伴う発生態様制御データの加工処理により、楽曲の途中で登場する発生態様制御データを、簡単かつ短時間の処理により適切に変換することができるようになる。
【００３０】
さらに、本発明の実施にあたっては、上記実施形態及びその変形例に限定されるものではなく、本発明の目的を逸脱しない限りにおいて種々の変更が可能である。
【００３１】
例えば、上記実施形態では、逆再生用演奏データ列のタイミングデータとして絶対的なタイミングを表すデータを用いたが、同タイミングデータとして前の演奏データとの相対時間を表すデータを用いるようにしてもよい。この場合、元演奏データの各タイミングデータが前の演奏データからの相対時間を表していれば、逆再生バッファエリアに書き込まれるタイミングデータは、元演奏データの次の演奏データに付随するタイミングデータとなる。
【００３２】
また、上記実施形態においては、本発明を楽音の発生を制御するための演奏データ列の逆変換処理に適用したが、本発明は、複数の配列された作動制御データからなって各作動制御データの時間経過に従った読み出し時に制御対象を作動制御するための元データ列であって、複数の作動制御データを順方向に読み出した際に後続の作動制御データによって作動制御される制御対象の作動態様を制御するための作動態様制御データを適宜箇所に含ませたシーケンシャルデータ列であれば、他のシーケンシャルデータ列にも適用できる。例えば、ＭＭＬ（Ｍｕｓｉｃａｌ  Ｍａｃｒｏ  Ｌａｎｇｕａｇｅ）に関するデータ列、連長圧縮法を用いて圧縮された文字列を表すデータ列などにも適用可能である。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る逆再生用データ列変換プログラムが適用される電子音楽装置の全体ブロック図である。
【図２】前記逆再生用演奏データ列変換プログラムのフローチャートである。
【図３】演奏データ列の変換動作を説明するためのデータフォーマット図である。
【符号の説明】
１１…入力操作子群、１３…楽音信号発生回路、３１…ＣＰＵ，３３…ＲＯＭ，３４…ＲＡＭ、３５…外部記憶装置、３６…通信インターフェース回路。
【図１】
2004280002.tif 000003
【図２】
2004280002.tif 000004
【図３】
2004280002.tif 000005