JP2004280001A - 演奏データ列変換プログラム - Google Patents
演奏データ列変換プログラム Download PDFInfo
- Publication number
- JP2004280001A JP2004280001A JP2003074864A JP2003074864A JP2004280001A JP 2004280001 A JP2004280001 A JP 2004280001A JP 2003074864 A JP2003074864 A JP 2003074864A JP 2003074864 A JP2003074864 A JP 2003074864A JP 2004280001 A JP2004280001 A JP 2004280001A
- Authority
- JP
- Japan
- Prior art keywords
- data
- control data
- mode control
- generation mode
- performance data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Abstract
【課題】演奏データ列の逆再生を簡単に可能にする演奏データ列変換プログラムを実現し、かつ演奏データ列への変換処理を簡単かつ短時間で行なう。
【解決手段】ステップS16の処理より、元演奏データ列エリア内の演奏データを先頭から順次読み出して、加工処理して逆再生バッファエリアに順次書き込む。この加工処理においては、ノートオンおよびノートオフデータは、それぞれノートオフおよびノートオンデータに変換される。楽音の発生態様制御データに関しては、現在値配列エリア内の同種の発生態様制御データに変更される。同ステップS16の処理により、現在値配列エリア内の発生態様制御データは前記読み出した発生態様制御データで順次更新される。演奏データ列の読み出し終了後、ステップS20の処理により、現在値配列エリアに残っている発生態様制御データは、逆再生バッファエリアの演奏データ列の最後に付加される。
【選択図】 図2
【解決手段】ステップS16の処理より、元演奏データ列エリア内の演奏データを先頭から順次読み出して、加工処理して逆再生バッファエリアに順次書き込む。この加工処理においては、ノートオンおよびノートオフデータは、それぞれノートオフおよびノートオンデータに変換される。楽音の発生態様制御データに関しては、現在値配列エリア内の同種の発生態様制御データに変更される。同ステップS16の処理により、現在値配列エリア内の発生態様制御データは前記読み出した発生態様制御データで順次更新される。演奏データ列の読み出し終了後、ステップS20の処理により、現在値配列エリアに残っている発生態様制御データは、逆再生バッファエリアの演奏データ列の最後に付加される。
【選択図】 図2
Description
【0001】
【発明の属する技術分野】
本発明は、楽音の発生を制御するための元の演奏データ列を、逆再生用の演奏データ列に変換する演奏データ列変換プログラムに関する。
【0002】
【従来の技術】
従来から、演奏データ列を楽曲の進行とは逆方向に時間経過に従って読み出し、楽音の発生を制御するための楽音発生制御データ中の楽音の発生終了を指示するキーオフデータを楽音の発生開始を指示するキーオンデータに変換するとともに、同楽音制御データ中のキーオンデータをキーオフデータに変換して楽音信号発生回路に供給して、演奏データ列を逆再生した演奏音を発生させるリアルタイム逆再生技術は知られている(特許文献1参照)。
【0003】
また、この場合、音色を選択または変更制御するためのプログラムチェンジデータ、各種制御操作子(メインボリューム、バランスコントロール、トレモロデプス、ポルタメント、ソフトペダルなどの操作子)に関するコントロールチェンジデータ、ピッチベンドを制御するピッチベンドデータなど、楽音の発生態様を制御するための発生態様制御データに関しては、現在位置よりも先頭方向のデータを検索し、同検索された発生態様制御データを楽音信号発生回路に供給して、楽音の発生態様を制御するようにしていた。これは、発生態様制御データは、楽音の発生態様を変更するタイミングでのみ用いられて、楽音の発生態様が以前と同一に維持される範囲内では登場しないものであり、発生態様制御データの制御下におかれる楽音発生制御データ(キーオンデータおよびキーオフデータ)が演奏データ列を順方向に読み出した場合と同じ条件に置かれるようにするためである。
【0004】
【特許文献1】
特許第2616656号公報
【0005】
【発明が解決しようとする課題】
しかし、上記従来の技術は、演奏データ列をリアルタイムで逆方向から読み出して、楽曲の逆再生をリアルタイムで実現するもので、上記特許文献1には、元の演奏データ列を逆再生用の演奏データ列に変換することが開示されていない。したがって、演奏データ列により表された楽曲を逆再生するためには、上記機能を実現するための特殊なプログラムが必ず必要となる。また、元の演奏データ列を逆再生用の演奏データ列に変換しようとする場合、逆再生用の演奏データ列を再生する際における発生態様制御データの初期値の設定が問題となる。また、上記従来の技術にあっては、発生態様制御データが登場するたびに、演奏データ列の先頭方向に同種の発生態様制御データを検索する必要があり、前記プログラムの処理が複雑になるとともに、処理時間が多く必要となるという問題もあった。
【0006】
【発明の概要】
本発明は、上記問題に対処するためになされたもので、その目的は、元の演奏データ列を逆再生用の演奏データ列に的確かつ迅速に変換することにより、特殊な逆再生プログラムを必要とすることもなく演奏データ列の逆再生を簡単かつ適正に可能にする演奏データ列変換プログラムを提供することにある。
【0007】
上記目的を達成するために、本発明の構成上の特徴は、楽音の発生を制御するための楽音発生制御データおよび楽音の発生態様を制御するための発生態様制御データを楽曲の進行に従って時系列で配列した元演奏データ列を、同元演奏データ列の楽曲の進行に従った順方向の読み出しに基づく一連の演奏音を逆再生した一連の演奏音を表す逆再生用演奏データ列に変換する演奏データ列変換プログラムであって、元演奏データ列を順方向に読み出し、発生態様制御データが読み出されるごとに同種の発生態様制御データを順次更新記憶する更新記憶ステップと、演奏データ列の読み出しが終了した時点で、前記更新記憶されている発生態様制御データを初期の発生態様制御データとして前記逆再生用演奏データ列に組み込む初期発生態様制御データ設定ステップとを含むことにある。
【0008】
この場合、発生態様制御データとは、楽音の発生態様を変更するタイミングでのみ用いられて、楽音の発生態様が同じに維持される範囲内では登場しない制御データであり、例えば、MIDI規格におけるプログラムチェンジデータ、コントロールチェンジデータ、ピッチベンドデータなどである。
【0009】
これによれば、特殊な逆再生プログラムを必要とすることもなく、逆再生用演奏データ列を、元演奏データ列の通常の再生方向とは逆方向に時間経過に従って読み出すだけで、元演奏データ列によって表された楽曲の逆再生が実現される。したがって、本発明の特徴によれば、元演奏データ列によって表された楽曲の逆再生を簡単に行なえるようになる。また、逆再生用演奏データ列の先頭に、適切な発生態様制御データを簡単に設定できる。
【0010】
また、本発明の他の特徴は、さらに、演奏データ列の順方向への読み出し中、発生態様制御データが読み出されたとき、更新記憶ステップの処理により以前に更新記憶されている同種の発生態様制御データが存在する場合には前記読み出された発生態様制御データを前記更新記憶されている同種の発生態様制御データに変換し、更新記憶ステップの処理により以前に更新記憶されている同種の発生態様制御データが存在しない場合には前記読み出された発生態様制御データを予め決められた初期データに変換する発生態様制御データ変換ステップを含むことにある。
【0011】
これによれば、楽曲の途中で登場する発生態様制御データに関して、演奏データ列の先頭方向への発生態様制御データの検索を必要としなくなる。したがって、本発明の他の特徴によれば、楽曲の途中で登場する発生態様制御データを、簡単かつ短時間の処理により適切に変換することができるようになる。
【0012】
【発明の実施の形態】
以下、本発明の一実施形態に係る演奏データ列変換プログラムについて説明すると、図1は、この演奏データ変換プログラムの適用される電子音楽装置を概略的に示すブロック図である。この電子音楽装置としては、鍵盤型電子楽器、非鍵盤型電子楽器(タッチプレート、押しボタン、弦などを演奏操作子として有する電子楽器)、シーケンサ装置、パーソナルコンピュータなどが挙げられる。
【0013】
この電子音楽装置は、入力操作子群11、表示器12および楽音信号発生回路13を有する。入力操作子群11は、この電子音楽装置の動作を指示するための複数の操作子からなり、これらの複数の操作子の操作はバス20に接続された検出回路14によって検出される。なお、これらの複数の操作子は、スイッチ操作子、ボリューム操作子、マウスなどを含んでおり、鍵盤型電子楽器においては白鍵および黒鍵も含む。表示器12は、液晶ディスプレイ、CRTなどで構成され、文字、数字、図形などを表示する。この表示器12の表示態様は、バス20に接続された表示制御回路15によって制御される。
【0014】
楽音信号発生回路13は、バス20に接続されていて後述するCPU31の制御のもとに供給される演奏データに基づいて楽音信号を形成して、同楽音信号をサウンドシステム16に出力する。サウンドシステム16は、スピーカ、アンプなどを含んでいて、楽音信号発生回路13からの楽音信号に対応した楽音を発音する。
【0015】
また、この電子音楽装置は、バス20にそれぞれ接続されてマイクロコンピュータ本体部を構成するCPU31、タイマ32、ROM33、RAM34を備えているとともに、外部記憶装置35および通信インターフェース回路36も備えている。外部記憶装置35は、この電子音楽装置に予め組み込まれているハードディスクHD、同電子音楽装置に装着可能なコンパクトディスクCD、フレキシブルディスクFDなどの種々の記録媒体と、同各記録媒体に対するドライブユニットを含むものであり、大量のデータ及びプログラムを記憶及び読み出し可能にしている。本実施形態の場合、ハードディスクHDには、図2の逆再生用演奏データ変換プログラムを含む各種プログラム、および同プログラムの実行時に利用される複数組の曲データなどが記憶されている。これらのプログラムおよび曲データは、予めハードディスクHDに記憶されていたり、コンパクトディスクCD、フレキシブルディスクFDなどからハードディスクHDに供給されたり、後述する外部機器41又は通信ネットワーク42を介した外部からハードディスクHDに供給されるものである。
【0016】
一組の曲データは、例えばMIDIデータによって構成されており、図3に元演奏データ列エリアのデータとして示すように、ノートオンデータ、ノートオフデータ、プログラムチェンジデータ、コントロールチェンジデータ、エンドデータなどからなる。ノートオンデータおよびノートオフデータは、楽音の発生を制御するための楽音発生制御データに属する。ノートオンデータは、楽音の発生開始を指示するもので、ノートオンであることを示す識別データ、および発生される楽音の音名(周波数)を表すノート番号データからなる。ノートオフデータは、楽音の発生終了を指示するもので、ノートオフであることを示す識別データ、および発生されている楽音の音名(周波数)を表すノート番号データからなる。なお、発生される楽音がリズムパートに関するものであれば、前記ノート番号データは、打楽器の種類を表す楽器名データに対応付けられている。
【0017】
プログラムチェンジデータは、音色を選択または変更制御するためのデータである。コントロールチェンジデータは、各種制御操作子(メインボリューム、バランスコントロール、トレモロデプス、ポルタメント、ソフトペダルなどの操作子)に関連して、音量、効果などの楽音の発生態様を選択または変更制御するものである。また、図示してはいないが、発生態様制御データには、発生楽音のピッチベンドを制御するピッチベンドデータなども含まれる。エンドデータは、一楽曲に関する曲データの終了を示す。
【0018】
これらの各演奏データには、タイミングデータが付随している。タイミングデータは、例えば曲の先頭からの小節の数、小節内の先頭からの拍の数、拍内のクロック数(拍内のクロックタイミング)などにより、各演奏データによる制御タイミングを表す。そして、ノートオンデータ、ノートオフデータなどの楽音発生制御データは楽音の発生制御の各制御タイミングごとに用意されていて、それらに付随したタイミングデータは楽音発生制御の各制御タイミングをそれぞれ表している。一方、プログラムチェンジデータ、コントロールチェンジデータなどの発生態様制御データは楽音の発生態様の初期の選択およびその変更時にのみ用意されていて、楽音の発生態様が同一に維持される範囲内では登場しないものであり、それらに付随したタイミングデータは楽音の発生態様の初期の選択およびその変更制御タイミングをそれぞれ表している。
【0019】
通信インターフェース回路36は、他の電子楽器、パーソナルコンピュータなどの外部機器41に接続可能となっていて、この電子音楽装置が外部機器41と各種プログラム及びデータを交信可能となっている。また、通信インターフェース回路36は、インターネットなどの通信ネットワーク42を介して外部との接続も可能となっていて、この電子音楽装置が外部と各種プログラム及びデータを交信可能にしている。
【0020】
次に、上記のように構成した実施形態において、元演奏データ列を逆再生用演奏データ列に変換する動作を説明する。まず、ユーザは、入力操作子群11を操作して逆再生用演奏データ列変換プログラムをCPU31に実行させる。このプログラムの実行は、図2のステップS10にて開始され、ステップS12にてユーザに曲データを選択させる。この選択においては、ユーザは、表示器12の表示を見ながら入力操作子群11を操作して、外部記憶装置35のハードディスクHD内に記憶されている複数組の曲データの中から1組の曲データを指定する。これにより、指定された1組の曲データは、ハードディスクHDから読み出されて、RAM34の元演奏データ列エリア(図3参照)に書き込まれる。
【0021】
また、演奏者が所望とする曲データがハードディスクHDに記憶されていない場合には、他の曲データを記憶したコンパクトディスクCD、フレキシブルディスクFDから所望の曲データを読み込んで、元演奏データ列エリアに書き込んでもよい。また、通信インターフェース回路36を介して外部機器41から所望の曲データを読み込み、または通信インターフェース回路36および通信ネットワーク42を介して外部から所望の曲データを読み込んで、元演奏データ列エリアに書き込んでもよい。
【0022】
次に、CPU31は、ステップS14にて、RAM34内に設けた初期値配列エリア(図3参照)に、プログラムチェンジデータ、コントロールチェンジデータなどの発生態様制御データのための初期値としてそれぞれ予め用意された種々の値をプログラムチェンジデータI、コントロールチェンジデータIなどとして書き込む。また、同ステップS14においては、図3に示すように、RAM34内に前記各種発生態様制御データに対応した欄を有する現在値配列エリアを用意して、各欄の変化フラグを“0”に設定しておく。この変化フラグは、“1”によって演奏データ列中に発生態様制御データが存在したことを表し、“0”によって演奏データ列中に発生態様制御データが存在しなかったことを表す。
【0023】
前記ステップS14の処理後、ステップS16,S18の処理により、元演奏データ列エリアの先頭から順に演奏データを読み出し、同読み出した演奏データを加工してRAM34内に設けた逆再生バッファエリア(図3参照)に順次書き込む。この加工においては、ノートオンデータはノートオフデータに変更され、またノートオフデータはノートオンデータに変更される。具体的には、元演奏データがノートオンデータであれば、ノート番号データはそのままに維持されるが、ノートオンデータ中の識別データはノートオフを表す識別データに変更される。また、元演奏データがノートオフデータであれば、ノート番号データはそのままに維持されるが、ノートオフデータ中の識別データはノートオンを表す識別データに変更される。また、ノートオンデータおよびノートオフデータのタイミングデータに関しては、エンドデータのタイミングデータ値から元演奏データのノートオンデータおよびノートオフデータに付随するタイミングデータ値を減算した値に変更される。
【0024】
プログラムチェンジデータ、コントロールチェンジデータなどの発生態様制御データに関しては、現在値配列エリア内の欄であって前記読み出した発生態様制御データと同種の発生態様制御データを記憶すべき欄の変化フラグが“1”であるか“0”であるかを調べる。変化フラグが“1”であれば、前記読み出した発生態様制御データは、現在値配列エリアの前記欄に記憶されている発生態様制御データに変更される。変化フラグが“0”であれば、前記読み出した発生態様制御データは、初期値配列エリア内に記憶されている発生態様制御データであって、前記読み出した発生態様制御データと同種の発生態様制御データに変更される。また、この発音態様制御データに関しても、それに付随するタイミングデータは、エンドデータのタイミングデータ値から元演奏データの発音態様制御データに付随するタイミングデータ値を減算した値に変更される。
【0025】
また、前記ステップS16の処理においては、発生態様制御データが読み出された場合には、現在値配列エリア内に記憶されている発生態様制御データであって、前記読み出された発生態様制御データと同種の発生態様制御データを、前記読み出した発生態様制御データに更新するとともに、その変化フラグを“1”に設定しておく。言い換えれば、現在値配列エリア内の欄であって前記読み出された発生態様制御データと同種の発生態様制御データを記憶すべき欄に、前記読み出された発生態様制御データを書き込むとともに、その欄の変化フラグを“1”に設定しておく。
【0026】
このステップS16,S18の循環処理により、エンドデータが読み出されると、ステップS18にて「Yes」と判定して、ステップS20に進む。ステップS20においては、現在値配列エリア内にある発生態様制御データであって、変化フラグが“1”である発生態様制御データを逆再生バッファエリアの最後に書き込む。そして、この発生態様制御データに付随するタイミングデータは、演奏開始前のタイミングであることを表す値、例えば「0」に設定しておく。次に、ステップS22にて逆再生バッファエリアの最後(図3の再生方向矢印の先端側)に、元演奏データのエンドデータとそれに付随するタイミングデータを書き込んでおく。
【0027】
次に、ステップS24にて、逆再生バッファエリア内の演奏データを前記書き込んだ方向と逆方向(図3の再生方向)に順次読み出して、読み出した順にRAM34の別エリアに先頭から書き込む。また、前記RAM34の別エリアに書き込んだ演奏データをハードディスクなどの外部記憶装置35にも書き込んでおく。そして、ステップS26にて、この逆再生用演奏データ列変換プログラムの実行を終了する。
【0028】
このようにして形成された逆再生用演奏データを再生するには、演奏データを読み出すためのタイミングカウンタを用いて時間を計測させて、同タイミングカウントのカウント値を用いて、前記RAM34の別エリアに書き込んだ演奏データをその先頭から順次読み出して再生するようにするとよい。すなわち、タイミングカウント値と一致するタイミングデータを見つけたとき、同タイミングデータに伴う演奏データを楽音信号発生回路13に供給して、楽音の発生を制御する。これによれば、元演奏データ列の逆再生が簡単に実現される。このような再生処理は、通常の再生処理として広く知られている。
【0029】
上記説明からも理解できるとおり、上記実施形態によれば、特殊な逆再生プログラムを必要とすることもなく、簡単に元演奏データ列によって表された楽曲の逆再生が実現される。また、現在値配列エリア内の発生態様制御データを更新するステップS16の処理、および同現在値配列エリア内の発生態様制御データを逆再生バッファエリアへ最後に書き込むステップS22の処理により、適切な発生態様制御データを逆再生用演奏データ列の先頭に簡単に設定できる。また、ステップS16における前記現在値配列エリア内の発生態様制御データを更新する処理、および現在値配列エリア内に記憶されている以前の発生態様制御データを用いた演奏データ読み出し中の発生態様制御データの加工処理により、楽曲の途中で登場する発生態様制御データを、簡単かつ短時間の処理により適切に変換することができるようになる。
【0030】
さらに、本発明の実施にあたっては、上記実施形態及びその変形例に限定されるものではなく、本発明の目的を逸脱しない限りにおいて種々の変更が可能である。
【0031】
例えば、上記実施形態では、RAM34内に初期値配列エリアと現在値配列エリアとを独立させてそれぞれ設けたが、RAM34内に現在値配列エリアのみを設けるようにしてもよい。この場合、ステップS14の初期値書き込み処理において、各発生態様制御データの初期値を現在値配列記憶エリアにそれぞれ書き込むとともに、その変化フラグを全て“0”に設定しておく。そして、ステップS16の発生制御データの加工処理においては、現在値配列記憶エリア内の発生態様制御データを用いて、元演奏データ配列エリアから読み出した発生態様制御データを変化フラグとは無関係に加工する。なお、前記読み出した発生態様制御データで現在値配列エリア内の発生態様制御データを更新する処理については、上記実施形態の場合と同様である。
【0032】
また、上記実施形態ではステップS24の処理により、図3の逆再生バッファエリア内の演奏データ列をその先頭と末尾を反対にすることによって新たな演奏データ列を生成し、同生成した演奏データ列を、RAM34、ハードディスクなどの外部記憶装置35に記憶し直した。しかし、このステップS24の処理のうち、演奏データ列をその先頭と末尾を反対にする処理を省略して、図3の逆再生バッファエリア内の演奏データ列をそのまま逆再生に利用したり、ハードディスクなどの外部記憶装置35に記憶しておくようにしたりしてもよい。この場合、演奏データ列の逆再生処理において、アドレスカウンタをダウンカウントさせながら演奏データ列を読み出すようにするとよい。
【0033】
さらに、上記実施形態では、逆再生用演奏データ列のタイミングデータとして絶対的なタイミングを表すデータを用いたが、同タイミングデータとして前の演奏データとの相対時間を表すデータを用いるようにしてもよい。この場合、元演奏データの各タイミングデータが前の演奏データからの相対時間を表していれば、逆再生バッファエリアに書き込まれるタイミングデータは、元演奏データの次の演奏データに付随するタイミングデータとなる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係る逆再生用演奏データ列変換プログラムが適用される電子音楽装置の全体ブロック図である。
【図2】前記逆再生用演奏データ列変換プログラムのフローチャートである。
【図3】演奏データ列の変換動作を説明するためのデータフォーマット図である。
【符号の説明】
11…入力操作子群、13…楽音信号発生回路、31…CPU,33…ROM,34…RAM、35…外部記憶装置、36…通信インターフェース回路。
【発明の属する技術分野】
本発明は、楽音の発生を制御するための元の演奏データ列を、逆再生用の演奏データ列に変換する演奏データ列変換プログラムに関する。
【0002】
【従来の技術】
従来から、演奏データ列を楽曲の進行とは逆方向に時間経過に従って読み出し、楽音の発生を制御するための楽音発生制御データ中の楽音の発生終了を指示するキーオフデータを楽音の発生開始を指示するキーオンデータに変換するとともに、同楽音制御データ中のキーオンデータをキーオフデータに変換して楽音信号発生回路に供給して、演奏データ列を逆再生した演奏音を発生させるリアルタイム逆再生技術は知られている(特許文献1参照)。
【0003】
また、この場合、音色を選択または変更制御するためのプログラムチェンジデータ、各種制御操作子(メインボリューム、バランスコントロール、トレモロデプス、ポルタメント、ソフトペダルなどの操作子)に関するコントロールチェンジデータ、ピッチベンドを制御するピッチベンドデータなど、楽音の発生態様を制御するための発生態様制御データに関しては、現在位置よりも先頭方向のデータを検索し、同検索された発生態様制御データを楽音信号発生回路に供給して、楽音の発生態様を制御するようにしていた。これは、発生態様制御データは、楽音の発生態様を変更するタイミングでのみ用いられて、楽音の発生態様が以前と同一に維持される範囲内では登場しないものであり、発生態様制御データの制御下におかれる楽音発生制御データ(キーオンデータおよびキーオフデータ)が演奏データ列を順方向に読み出した場合と同じ条件に置かれるようにするためである。
【0004】
【特許文献1】
特許第2616656号公報
【0005】
【発明が解決しようとする課題】
しかし、上記従来の技術は、演奏データ列をリアルタイムで逆方向から読み出して、楽曲の逆再生をリアルタイムで実現するもので、上記特許文献1には、元の演奏データ列を逆再生用の演奏データ列に変換することが開示されていない。したがって、演奏データ列により表された楽曲を逆再生するためには、上記機能を実現するための特殊なプログラムが必ず必要となる。また、元の演奏データ列を逆再生用の演奏データ列に変換しようとする場合、逆再生用の演奏データ列を再生する際における発生態様制御データの初期値の設定が問題となる。また、上記従来の技術にあっては、発生態様制御データが登場するたびに、演奏データ列の先頭方向に同種の発生態様制御データを検索する必要があり、前記プログラムの処理が複雑になるとともに、処理時間が多く必要となるという問題もあった。
【0006】
【発明の概要】
本発明は、上記問題に対処するためになされたもので、その目的は、元の演奏データ列を逆再生用の演奏データ列に的確かつ迅速に変換することにより、特殊な逆再生プログラムを必要とすることもなく演奏データ列の逆再生を簡単かつ適正に可能にする演奏データ列変換プログラムを提供することにある。
【0007】
上記目的を達成するために、本発明の構成上の特徴は、楽音の発生を制御するための楽音発生制御データおよび楽音の発生態様を制御するための発生態様制御データを楽曲の進行に従って時系列で配列した元演奏データ列を、同元演奏データ列の楽曲の進行に従った順方向の読み出しに基づく一連の演奏音を逆再生した一連の演奏音を表す逆再生用演奏データ列に変換する演奏データ列変換プログラムであって、元演奏データ列を順方向に読み出し、発生態様制御データが読み出されるごとに同種の発生態様制御データを順次更新記憶する更新記憶ステップと、演奏データ列の読み出しが終了した時点で、前記更新記憶されている発生態様制御データを初期の発生態様制御データとして前記逆再生用演奏データ列に組み込む初期発生態様制御データ設定ステップとを含むことにある。
【0008】
この場合、発生態様制御データとは、楽音の発生態様を変更するタイミングでのみ用いられて、楽音の発生態様が同じに維持される範囲内では登場しない制御データであり、例えば、MIDI規格におけるプログラムチェンジデータ、コントロールチェンジデータ、ピッチベンドデータなどである。
【0009】
これによれば、特殊な逆再生プログラムを必要とすることもなく、逆再生用演奏データ列を、元演奏データ列の通常の再生方向とは逆方向に時間経過に従って読み出すだけで、元演奏データ列によって表された楽曲の逆再生が実現される。したがって、本発明の特徴によれば、元演奏データ列によって表された楽曲の逆再生を簡単に行なえるようになる。また、逆再生用演奏データ列の先頭に、適切な発生態様制御データを簡単に設定できる。
【0010】
また、本発明の他の特徴は、さらに、演奏データ列の順方向への読み出し中、発生態様制御データが読み出されたとき、更新記憶ステップの処理により以前に更新記憶されている同種の発生態様制御データが存在する場合には前記読み出された発生態様制御データを前記更新記憶されている同種の発生態様制御データに変換し、更新記憶ステップの処理により以前に更新記憶されている同種の発生態様制御データが存在しない場合には前記読み出された発生態様制御データを予め決められた初期データに変換する発生態様制御データ変換ステップを含むことにある。
【0011】
これによれば、楽曲の途中で登場する発生態様制御データに関して、演奏データ列の先頭方向への発生態様制御データの検索を必要としなくなる。したがって、本発明の他の特徴によれば、楽曲の途中で登場する発生態様制御データを、簡単かつ短時間の処理により適切に変換することができるようになる。
【0012】
【発明の実施の形態】
以下、本発明の一実施形態に係る演奏データ列変換プログラムについて説明すると、図1は、この演奏データ変換プログラムの適用される電子音楽装置を概略的に示すブロック図である。この電子音楽装置としては、鍵盤型電子楽器、非鍵盤型電子楽器(タッチプレート、押しボタン、弦などを演奏操作子として有する電子楽器)、シーケンサ装置、パーソナルコンピュータなどが挙げられる。
【0013】
この電子音楽装置は、入力操作子群11、表示器12および楽音信号発生回路13を有する。入力操作子群11は、この電子音楽装置の動作を指示するための複数の操作子からなり、これらの複数の操作子の操作はバス20に接続された検出回路14によって検出される。なお、これらの複数の操作子は、スイッチ操作子、ボリューム操作子、マウスなどを含んでおり、鍵盤型電子楽器においては白鍵および黒鍵も含む。表示器12は、液晶ディスプレイ、CRTなどで構成され、文字、数字、図形などを表示する。この表示器12の表示態様は、バス20に接続された表示制御回路15によって制御される。
【0014】
楽音信号発生回路13は、バス20に接続されていて後述するCPU31の制御のもとに供給される演奏データに基づいて楽音信号を形成して、同楽音信号をサウンドシステム16に出力する。サウンドシステム16は、スピーカ、アンプなどを含んでいて、楽音信号発生回路13からの楽音信号に対応した楽音を発音する。
【0015】
また、この電子音楽装置は、バス20にそれぞれ接続されてマイクロコンピュータ本体部を構成するCPU31、タイマ32、ROM33、RAM34を備えているとともに、外部記憶装置35および通信インターフェース回路36も備えている。外部記憶装置35は、この電子音楽装置に予め組み込まれているハードディスクHD、同電子音楽装置に装着可能なコンパクトディスクCD、フレキシブルディスクFDなどの種々の記録媒体と、同各記録媒体に対するドライブユニットを含むものであり、大量のデータ及びプログラムを記憶及び読み出し可能にしている。本実施形態の場合、ハードディスクHDには、図2の逆再生用演奏データ変換プログラムを含む各種プログラム、および同プログラムの実行時に利用される複数組の曲データなどが記憶されている。これらのプログラムおよび曲データは、予めハードディスクHDに記憶されていたり、コンパクトディスクCD、フレキシブルディスクFDなどからハードディスクHDに供給されたり、後述する外部機器41又は通信ネットワーク42を介した外部からハードディスクHDに供給されるものである。
【0016】
一組の曲データは、例えばMIDIデータによって構成されており、図3に元演奏データ列エリアのデータとして示すように、ノートオンデータ、ノートオフデータ、プログラムチェンジデータ、コントロールチェンジデータ、エンドデータなどからなる。ノートオンデータおよびノートオフデータは、楽音の発生を制御するための楽音発生制御データに属する。ノートオンデータは、楽音の発生開始を指示するもので、ノートオンであることを示す識別データ、および発生される楽音の音名(周波数)を表すノート番号データからなる。ノートオフデータは、楽音の発生終了を指示するもので、ノートオフであることを示す識別データ、および発生されている楽音の音名(周波数)を表すノート番号データからなる。なお、発生される楽音がリズムパートに関するものであれば、前記ノート番号データは、打楽器の種類を表す楽器名データに対応付けられている。
【0017】
プログラムチェンジデータは、音色を選択または変更制御するためのデータである。コントロールチェンジデータは、各種制御操作子(メインボリューム、バランスコントロール、トレモロデプス、ポルタメント、ソフトペダルなどの操作子)に関連して、音量、効果などの楽音の発生態様を選択または変更制御するものである。また、図示してはいないが、発生態様制御データには、発生楽音のピッチベンドを制御するピッチベンドデータなども含まれる。エンドデータは、一楽曲に関する曲データの終了を示す。
【0018】
これらの各演奏データには、タイミングデータが付随している。タイミングデータは、例えば曲の先頭からの小節の数、小節内の先頭からの拍の数、拍内のクロック数(拍内のクロックタイミング)などにより、各演奏データによる制御タイミングを表す。そして、ノートオンデータ、ノートオフデータなどの楽音発生制御データは楽音の発生制御の各制御タイミングごとに用意されていて、それらに付随したタイミングデータは楽音発生制御の各制御タイミングをそれぞれ表している。一方、プログラムチェンジデータ、コントロールチェンジデータなどの発生態様制御データは楽音の発生態様の初期の選択およびその変更時にのみ用意されていて、楽音の発生態様が同一に維持される範囲内では登場しないものであり、それらに付随したタイミングデータは楽音の発生態様の初期の選択およびその変更制御タイミングをそれぞれ表している。
【0019】
通信インターフェース回路36は、他の電子楽器、パーソナルコンピュータなどの外部機器41に接続可能となっていて、この電子音楽装置が外部機器41と各種プログラム及びデータを交信可能となっている。また、通信インターフェース回路36は、インターネットなどの通信ネットワーク42を介して外部との接続も可能となっていて、この電子音楽装置が外部と各種プログラム及びデータを交信可能にしている。
【0020】
次に、上記のように構成した実施形態において、元演奏データ列を逆再生用演奏データ列に変換する動作を説明する。まず、ユーザは、入力操作子群11を操作して逆再生用演奏データ列変換プログラムをCPU31に実行させる。このプログラムの実行は、図2のステップS10にて開始され、ステップS12にてユーザに曲データを選択させる。この選択においては、ユーザは、表示器12の表示を見ながら入力操作子群11を操作して、外部記憶装置35のハードディスクHD内に記憶されている複数組の曲データの中から1組の曲データを指定する。これにより、指定された1組の曲データは、ハードディスクHDから読み出されて、RAM34の元演奏データ列エリア(図3参照)に書き込まれる。
【0021】
また、演奏者が所望とする曲データがハードディスクHDに記憶されていない場合には、他の曲データを記憶したコンパクトディスクCD、フレキシブルディスクFDから所望の曲データを読み込んで、元演奏データ列エリアに書き込んでもよい。また、通信インターフェース回路36を介して外部機器41から所望の曲データを読み込み、または通信インターフェース回路36および通信ネットワーク42を介して外部から所望の曲データを読み込んで、元演奏データ列エリアに書き込んでもよい。
【0022】
次に、CPU31は、ステップS14にて、RAM34内に設けた初期値配列エリア(図3参照)に、プログラムチェンジデータ、コントロールチェンジデータなどの発生態様制御データのための初期値としてそれぞれ予め用意された種々の値をプログラムチェンジデータI、コントロールチェンジデータIなどとして書き込む。また、同ステップS14においては、図3に示すように、RAM34内に前記各種発生態様制御データに対応した欄を有する現在値配列エリアを用意して、各欄の変化フラグを“0”に設定しておく。この変化フラグは、“1”によって演奏データ列中に発生態様制御データが存在したことを表し、“0”によって演奏データ列中に発生態様制御データが存在しなかったことを表す。
【0023】
前記ステップS14の処理後、ステップS16,S18の処理により、元演奏データ列エリアの先頭から順に演奏データを読み出し、同読み出した演奏データを加工してRAM34内に設けた逆再生バッファエリア(図3参照)に順次書き込む。この加工においては、ノートオンデータはノートオフデータに変更され、またノートオフデータはノートオンデータに変更される。具体的には、元演奏データがノートオンデータであれば、ノート番号データはそのままに維持されるが、ノートオンデータ中の識別データはノートオフを表す識別データに変更される。また、元演奏データがノートオフデータであれば、ノート番号データはそのままに維持されるが、ノートオフデータ中の識別データはノートオンを表す識別データに変更される。また、ノートオンデータおよびノートオフデータのタイミングデータに関しては、エンドデータのタイミングデータ値から元演奏データのノートオンデータおよびノートオフデータに付随するタイミングデータ値を減算した値に変更される。
【0024】
プログラムチェンジデータ、コントロールチェンジデータなどの発生態様制御データに関しては、現在値配列エリア内の欄であって前記読み出した発生態様制御データと同種の発生態様制御データを記憶すべき欄の変化フラグが“1”であるか“0”であるかを調べる。変化フラグが“1”であれば、前記読み出した発生態様制御データは、現在値配列エリアの前記欄に記憶されている発生態様制御データに変更される。変化フラグが“0”であれば、前記読み出した発生態様制御データは、初期値配列エリア内に記憶されている発生態様制御データであって、前記読み出した発生態様制御データと同種の発生態様制御データに変更される。また、この発音態様制御データに関しても、それに付随するタイミングデータは、エンドデータのタイミングデータ値から元演奏データの発音態様制御データに付随するタイミングデータ値を減算した値に変更される。
【0025】
また、前記ステップS16の処理においては、発生態様制御データが読み出された場合には、現在値配列エリア内に記憶されている発生態様制御データであって、前記読み出された発生態様制御データと同種の発生態様制御データを、前記読み出した発生態様制御データに更新するとともに、その変化フラグを“1”に設定しておく。言い換えれば、現在値配列エリア内の欄であって前記読み出された発生態様制御データと同種の発生態様制御データを記憶すべき欄に、前記読み出された発生態様制御データを書き込むとともに、その欄の変化フラグを“1”に設定しておく。
【0026】
このステップS16,S18の循環処理により、エンドデータが読み出されると、ステップS18にて「Yes」と判定して、ステップS20に進む。ステップS20においては、現在値配列エリア内にある発生態様制御データであって、変化フラグが“1”である発生態様制御データを逆再生バッファエリアの最後に書き込む。そして、この発生態様制御データに付随するタイミングデータは、演奏開始前のタイミングであることを表す値、例えば「0」に設定しておく。次に、ステップS22にて逆再生バッファエリアの最後(図3の再生方向矢印の先端側)に、元演奏データのエンドデータとそれに付随するタイミングデータを書き込んでおく。
【0027】
次に、ステップS24にて、逆再生バッファエリア内の演奏データを前記書き込んだ方向と逆方向(図3の再生方向)に順次読み出して、読み出した順にRAM34の別エリアに先頭から書き込む。また、前記RAM34の別エリアに書き込んだ演奏データをハードディスクなどの外部記憶装置35にも書き込んでおく。そして、ステップS26にて、この逆再生用演奏データ列変換プログラムの実行を終了する。
【0028】
このようにして形成された逆再生用演奏データを再生するには、演奏データを読み出すためのタイミングカウンタを用いて時間を計測させて、同タイミングカウントのカウント値を用いて、前記RAM34の別エリアに書き込んだ演奏データをその先頭から順次読み出して再生するようにするとよい。すなわち、タイミングカウント値と一致するタイミングデータを見つけたとき、同タイミングデータに伴う演奏データを楽音信号発生回路13に供給して、楽音の発生を制御する。これによれば、元演奏データ列の逆再生が簡単に実現される。このような再生処理は、通常の再生処理として広く知られている。
【0029】
上記説明からも理解できるとおり、上記実施形態によれば、特殊な逆再生プログラムを必要とすることもなく、簡単に元演奏データ列によって表された楽曲の逆再生が実現される。また、現在値配列エリア内の発生態様制御データを更新するステップS16の処理、および同現在値配列エリア内の発生態様制御データを逆再生バッファエリアへ最後に書き込むステップS22の処理により、適切な発生態様制御データを逆再生用演奏データ列の先頭に簡単に設定できる。また、ステップS16における前記現在値配列エリア内の発生態様制御データを更新する処理、および現在値配列エリア内に記憶されている以前の発生態様制御データを用いた演奏データ読み出し中の発生態様制御データの加工処理により、楽曲の途中で登場する発生態様制御データを、簡単かつ短時間の処理により適切に変換することができるようになる。
【0030】
さらに、本発明の実施にあたっては、上記実施形態及びその変形例に限定されるものではなく、本発明の目的を逸脱しない限りにおいて種々の変更が可能である。
【0031】
例えば、上記実施形態では、RAM34内に初期値配列エリアと現在値配列エリアとを独立させてそれぞれ設けたが、RAM34内に現在値配列エリアのみを設けるようにしてもよい。この場合、ステップS14の初期値書き込み処理において、各発生態様制御データの初期値を現在値配列記憶エリアにそれぞれ書き込むとともに、その変化フラグを全て“0”に設定しておく。そして、ステップS16の発生制御データの加工処理においては、現在値配列記憶エリア内の発生態様制御データを用いて、元演奏データ配列エリアから読み出した発生態様制御データを変化フラグとは無関係に加工する。なお、前記読み出した発生態様制御データで現在値配列エリア内の発生態様制御データを更新する処理については、上記実施形態の場合と同様である。
【0032】
また、上記実施形態ではステップS24の処理により、図3の逆再生バッファエリア内の演奏データ列をその先頭と末尾を反対にすることによって新たな演奏データ列を生成し、同生成した演奏データ列を、RAM34、ハードディスクなどの外部記憶装置35に記憶し直した。しかし、このステップS24の処理のうち、演奏データ列をその先頭と末尾を反対にする処理を省略して、図3の逆再生バッファエリア内の演奏データ列をそのまま逆再生に利用したり、ハードディスクなどの外部記憶装置35に記憶しておくようにしたりしてもよい。この場合、演奏データ列の逆再生処理において、アドレスカウンタをダウンカウントさせながら演奏データ列を読み出すようにするとよい。
【0033】
さらに、上記実施形態では、逆再生用演奏データ列のタイミングデータとして絶対的なタイミングを表すデータを用いたが、同タイミングデータとして前の演奏データとの相対時間を表すデータを用いるようにしてもよい。この場合、元演奏データの各タイミングデータが前の演奏データからの相対時間を表していれば、逆再生バッファエリアに書き込まれるタイミングデータは、元演奏データの次の演奏データに付随するタイミングデータとなる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係る逆再生用演奏データ列変換プログラムが適用される電子音楽装置の全体ブロック図である。
【図2】前記逆再生用演奏データ列変換プログラムのフローチャートである。
【図3】演奏データ列の変換動作を説明するためのデータフォーマット図である。
【符号の説明】
11…入力操作子群、13…楽音信号発生回路、31…CPU,33…ROM,34…RAM、35…外部記憶装置、36…通信インターフェース回路。
Claims (2)
- 楽音の発生を制御するための楽音発生制御データおよび前記楽音の発生態様を制御するための発生態様制御データを楽曲の進行に従って時系列で配列した元演奏データ列を、同元演奏データ列の楽曲の進行に従った順方向の読み出しに基づく一連の演奏音を逆再生した一連の演奏音を表す逆再生用演奏データ列に変換する演奏データ列変換プログラムであって、
前記元演奏データ列を順方向に読み出し、前記発生態様制御データが読み出されるごとに同種の発生態様制御データを順次更新記憶する更新記憶ステップと、
前記演奏データ列の読み出しが終了した時点で、前記更新記憶されている発生態様制御データを初期の発生態様制御データとして前記逆再生用演奏データ列に組み込む初期発生態様制御データ設定ステップと
を含むことを特徴とする演奏データ列変換プログラム。 - 前記請求項1に記載した演奏データ列変換プログラムにおいて、さらに、
前記演奏データ列の順方向への読み出し中、前記発生態様制御データが読み出されたとき、前記更新記憶ステップの処理により以前に更新記憶されている同種の発生態様制御データが存在する場合には前記読み出された発生態様制御データを前記更新記憶されている同種の発生態様制御データに変換し、前記更新記憶ステップの処理により以前に更新記憶されている同種の発生態様制御データが存在しない場合には前記読み出された発生態様制御データを予め決められた初期データに変換する発生態様制御データ変換ステップを含むことを特徴とする演奏データ列変換プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003074864A JP2004280001A (ja) | 2003-03-19 | 2003-03-19 | 演奏データ列変換プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003074864A JP2004280001A (ja) | 2003-03-19 | 2003-03-19 | 演奏データ列変換プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004280001A true JP2004280001A (ja) | 2004-10-07 |
Family
ID=33290327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003074864A Pending JP2004280001A (ja) | 2003-03-19 | 2003-03-19 | 演奏データ列変換プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004280001A (ja) |
-
2003
- 2003-03-19 JP JP2003074864A patent/JP2004280001A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3684892B2 (ja) | 和音提示装置および記憶媒体 | |
JP4049014B2 (ja) | 楽譜表示装置および楽譜表示コンピュータプログラム | |
JP3915807B2 (ja) | 奏法自動判定装置及びプログラム | |
JP2006126710A (ja) | 奏法決定装置及びプログラム | |
JP3671788B2 (ja) | 音色設定装置および音色設定方法並びに音色設定プログラムを記録したコンピュータで読み取り可能な記録媒体 | |
JP3632536B2 (ja) | パート選択装置 | |
JP4802947B2 (ja) | 奏法決定装置及びプログラム | |
JP2004280001A (ja) | 演奏データ列変換プログラム | |
JP2005099330A (ja) | 演奏データ処理装置及びプログラム | |
JPH01179087A (ja) | 自動演奏装置 | |
JP3620396B2 (ja) | 情報修正装置及び情報修正プログラムを記録した媒体 | |
JP7425558B2 (ja) | コード検出装置及びコード検出プログラム | |
JP2004280002A (ja) | データ列変換プログラム | |
JP3747802B2 (ja) | 演奏データ編集装置及び方法並びに記憶媒体 | |
JP2004258467A (ja) | 演奏データ列変換プログラム | |
JP4648177B2 (ja) | 電子楽器及びコンピュータプログラム | |
JP3757664B2 (ja) | 演奏情報再生装置および演奏情報再生プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP4315116B2 (ja) | 電子音楽装置 | |
JP3797180B2 (ja) | 楽譜表示装置及び楽譜表示プログラム | |
JP3755468B2 (ja) | 楽曲データの表情付け装置及びプログラム | |
JP3407563B2 (ja) | 自動演奏装置及び自動演奏方法 | |
JP3709820B2 (ja) | 楽曲情報編集装置及び楽曲情報編集プログラム | |
JP3637782B2 (ja) | データ生成装置と記録媒体 | |
JP3642028B2 (ja) | 演奏データ処理装置及び方法並びに記憶媒体 | |
JP3788396B2 (ja) | 電子音楽装置および電子音楽装置用コンピュータプログラム |