(57)【特許請求の範囲】
【請求項１】
波形データの時間軸上の任意の位置に設けられ、当該波形データの時間軸上の位置を示す複数のマーク情報を記憶するマーク情報記憶手段と、
前記マーク情報記憶手段に記憶されたマーク情報を表示する表示手段と、
前記表示手段により表示されたマーク情報の位置を変更するマーク情報位置変更手段と、
所定のマーク情報からその直後のマーク情報までの区間について、前記マーク情報位置変更手段によって変更される前のそれぞれのマーク情報の位置に応じた変更前の前記区間の区間長と、前記マーク情報位置変更手段によって変更されたマーク情報の位置に応じた変更後の前記区間長とに基づいて、前記波形データを時間軸上で圧縮または伸長するための時間軸圧縮伸長情報を演算する演算手段と、
前記所定のマーク情報の変更後のタイミングで、前記演算手段によって演算した時間軸圧縮伸長情報に基づいて前記波形データを時間軸上で圧縮または伸長する演奏情報を生成する演奏情報生成手段とを有する演奏情報生成装置。
【請求項２】
一連の演奏に対応した演奏情報をそれぞれ所定のタイミングに対応付けた自動演奏データとして記憶する記憶手段を有し、前記記憶手段に記憶された自動演奏データに基づいて前記演奏情報を前記所定のタイミングに従って出力する自動演奏装置において、
波形データの時間軸上の任意の位置に設けられ、当該波形データの時間軸上の位置を示す複数のマーク情報を記憶するマーク情報記憶手段と、
前記マーク情報記憶手段に記憶されたマーク情報を表示する表示手段と、
前記表示手段により表示されたマーク情報の位置を変更するマーク情報位置変更手段と、
所定のマーク情報からその直後のマーク情報までの区間について、前記マーク情報位置変更手段によって変更される前のそれぞれのマーク情報の位置に応じた変更前の前記区間の区間長と、前記マーク情報位置変更手段によって変更されたマーク情報の位置に応じた変更後の前記区間長とに基づいて、前記波形データを時間軸上で圧縮または伸長するための時間軸圧縮伸長情報を演算する演算手段と、
前記演算手段によって演算した時間軸圧縮伸長情報に基づいて前記波形データを時間軸上で圧縮または伸長する演奏情報を生成する演奏情報生成手段と、
前記演奏情報生成手段によって生成された演奏情報を前記所定のマーク情報の変更後のタイミングに対応付けた自動演奏データとして記憶する記憶手段と、
前記記憶手段に記憶された前記自動演奏データに従って演奏情報を前記所定のマーク情報の変更後のタイミングで出力する出力手段と
を有する自動演奏装置。
【請求項３】
請求項２に記載の自動演奏装置において、前記自動演奏装置は、ＭＩＤＩ規格により動作する自動演奏装置であり、前記出力手段は、時間軸圧縮伸長情報をＭＩＤＩデータとして出力するものである自動演奏装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、演奏情報生成装置および自動演奏装置に関し、さらに詳細には、波形データを時間軸上で圧縮または伸長することのできる音源を制御する際に用いて好適な演奏情報生成装置および自動演奏装置に関する。
【０００２】
【発明の背景】
本願出願人は、特願平９−３００４０３号「波形データの時間軸圧縮伸長装置」として、波形データを時間軸上で圧縮または伸長することのできる音源（以下、「オーディオ・フレーズ音源」と称する。）に関する発明を出願している。
【０００３】
この特願平９−３００４０３号に開示されたオーディオ・フレーズ音源においては、デジタル・シグナル・プロセッサ（ＤＳＰ）に中央処理装置（ＣＰＵ）から必要なパラメータとして「時間圧伸量情報」（「時間圧伸量情報」の詳細については後述する。）および「音高情報」（「音高情報」の詳細については後述する。）が供給され、ＣＰＵから供給された時間圧伸量情報および音高情報に基づいて、ＤＳＰにおいてソフトウェアによって波形データの時間軸上での圧縮処理ならびに伸長処理が行われるようになされている。
【０００４】
図１には、特願平９−３００４０３号に開示されたオーディオ・フレーズ音源の概念的なブロック構成図が示されており、ＤＳＰにより記憶手段と波形発生手段とが構成され、ＣＰＵから波形発生手段に必要なパラメータとして時間圧伸量情報および音高情報が供給されるようになされている。
【０００５】
特願平９−３００４０３号に開示されたオーディオ・フレーズ音源により行われる処理として、波形データが時間軸上で圧縮または伸長されて再生される際の波形データの音高（以下、「再生音高」と称する。）が、圧縮または伸長される前の波形データ（以下、「原波形データ」と称する。）の音高と同じ音高の場合に関して、図２は波形データを時間軸上で伸長する場合の処理を示し、図３は波形データを時間軸上で圧縮する場合の処理を示している。
【０００６】
また、図４は、再生音高が原波形データの音高より高い音高であって、時間軸上での圧縮または伸長はしないように設定した場合の処理を示している。
【０００７】
そして、上記したように、図２乃至図４に示す処理を制御するパラメータとして、波形データの時間軸上での圧縮量／伸長量を表す時間圧伸量情報がＣＰＵからＤＳＰに供給されるとともに、時間軸上で圧縮または伸長された波形データを再生する際の音高、即ち、再生音高を制御する音高情報がＣＰＵからＤＳＰに供給されることになる。
【０００８】
ここで、時間圧伸量情報については、時間軸の圧縮量／伸長量を設定する操作子の操作状態や変調信号に従ってＣＰＵは時間圧伸量情報を演算し、ＣＰＵは演算した時間圧伸量情報をＤＳＰに転送するものである。
【０００９】
また、音高情報については、キーボード（鍵盤）の演奏操作により押鍵された鍵に従ってＣＰＵが音高情報を演算し、ＣＰＵは演算した音高情報をＤＳＰに転送するものである。
【００１０】
次に、図２乃至図４を参照しながら、図２乃至図４に関するそれぞれの処理の概要を説明するが、まず、各処理において用いる用語について説明しておく。
【００１１】
（１）波形データ
ＤＳＰの記憶手段に記憶されている波形データを意味する。なお、ＤＳＰの記憶手段には、図２乃至図４に示されているような波形データとともに、ｃｓａ１、ｃｓａ２、ｃｓａ３・・・で示されるような、波形データを切り出すときに使用する切り出し開始アドレスも記憶されている。
【００１２】
（２）時間情報ＰＰ
波形データのアドレスを示して、波形データの時間軸上の位置を示す情報である。ＣＰＵから転送された時間圧伸量情報をＤＳＰにおいて所望の周期（例えば、サンプリング周期）で累算して算出する。従って、時間情報ＰＰは時間圧伸量情報の値に対応した変化速度で変化することになる。
【００１３】
ところで、ＤＳＰにおいては第１処理系と第２処理系との２つの信号処理系による処理が行われ、それぞれ図２乃至図４に示すような波形信号を生成する。
【００１４】
ここで、第１処理系においては、ＣＰＵより供給される音高情報に対応する再生音高の周期の２倍の周期に、切り出し開始アドレスの更新と窓関数の周期が設定される。
【００１５】
そこで、再生音高の周期の２倍の周期毎に、時間情報ＰＰが示す位置（波形データのアドレス）に対応した切り出し開始アドレスから波形データを読み出す。そして、切り出した波形データの切り出し始めと切り出し終わりの部分で、前後の波形データと不連続に繋がることを防止する目的で、読み出した波形データに再生音高の周期の２倍の周期の三角波の窓関数で振幅変調している。
【００１６】
一方、第２処理系においては、ＣＰＵより供給される音高情報に対応する再生音高の周期の２倍の周期に、切り出し開始アドレスの更新と窓関数の周期とが設定される。
【００１７】
この第２処理系においては、第１処理系と再生音高の周期だけ位相がずれて、再生音高の周期の２倍の周期毎に、時間情報ＰＰが示す位置（波形データのアドレス）に対応した切り出し開始アドレスから波形データを読み出す。そして、切り出した波形データの切り出し始めと切り出し終わりの部分で、前後の波形データと不連続に繋がることを防止する目的で、読み出した波形データに再生音高の周期の２倍の周期の三角波の窓関数で振幅変調している。
【００１８】
次に、図２を参照しながら、波形データを時間軸上で伸長する場合の処理について説明するが、図２に示す例はＣＰＵから転送される時間圧伸量情報が１より小さな値の場合である。ただし、再生音高が原波形データの音高と同じ音高となるように、音高情報を供給しているものとする。
【００１９】
この場合には、時間情報ＰＰがサンプリング周期毎に１より小さな値で進むことになる。従って、再生音高の周期毎である時間ｔ0、ｔ1、ｔ2、ｔ3、・・・での時間情報ＰＰ（０）、ＰＰ（１）、ＰＰ（２）、ＰＰ（３）、・・・の変化は、図２に示すように波形データの原波形信号より遅く進む。即ち、ＰＰ（０）はｃｓａ１、ＰＰ（１）はｃｓａ１とｃｓａ２との間、ＰＰ（２）はｃｓａ２とｃｓａ３との間、ＰＰ（３）はｃｓａ３とｃｓａ４との間、ＰＰ（４）はｃｓａ４とｃｓａ５との間、ＰＰ（５）はｃｓａ５、・・・と変化する。
【００２０】
そして、第１処理系は、各時間ｔ0、ｔ2、ｔ4、・・・毎に各時間情報の示すＰＰ（０）、ＰＰ（２）、ＰＰ（４）、・・・より前で最も近い切り出し開始アドレスｃｓａ１、ｃｓａ２、ｃｓａ４・・・から波形データの読み出しを開始している。
【００２１】
また、第２処理系は、各時間ｔ1、ｔ3、ｔ5・・・毎に各時間情報の示すＰＰ（１）、ＰＰ（３）、ＰＰ（５）・・・より前で最も近い切り出し開始アドレスｃｓａ１、ｃｓａ３、ｃｓａ５・・・から波形データの読み出しを開始している。
【００２２】
そして、第１処理系および第２処理系においては、読み出した波形データに窓関数を付与して、それぞれ第１処理系および第２処理系に示されるような波形データを生成する。
【００２３】
こうして、ＤＳＰは、第１処理系および第２処理系の２つの処理系の波形データを加算して出力することになる。
【００２４】
以上の処理によって、Ｔ0の長さの波形データをＴsの長さとして、時間軸上で伸長して再生することができる。
【００２５】
次に、図３を参照しながら、波形データを時間軸上で圧縮する場合の処理について説明するが、図３に示す例はＣＰＵから転送される時間圧伸量情報が１より大きな値の場合である。ただし、再生音高が原波形データの音高と同じ音高となるように、音高情報を供給しているものとする。
【００２６】
この場合には、時間情報ＰＰがサンプリング周期毎に１より大きな値で進むことになる。従って、再生音高の周期毎である時間ｔ0、ｔ1、ｔ2、ｔ3、・・・での時間情報ＰＰ（０）、ＰＰ（１）、ＰＰ（２）、ＰＰ（３）・・・の変化は、図３に示すように波形データの原波形信号より速く進む。即ち、ＰＰ（０）はｃｓａ１、ＰＰ（１）はｃｓａ２とｃｓａ３との間、ＰＰ（２）はｃｓａ３とｃｓａ４との間、ＰＰ（３）はｃｓａ４とｃｓａ５との間、ＰＰ（４）はｃｓａ５とｃｓａ６との間、ＰＰ（５）はｃｓａ７、・・・と変化する。
【００２７】
そして、第１処理系は、各時間ｔ0、ｔ2、ｔ4、・・・毎に各時間情報の示すＰＰ（０）、ＰＰ（２）、ＰＰ（４）、・・・より前で最も近い切り出し開始アドレスｃｓａ１、ｃｓａ３、ｃｓａ５・・・から波形データの読み出しを開始している。
【００２８】
また、第２処理系は、各時間ｔ1、ｔ3、ｔ5・・・毎に各時間情報の示すＰＰ（１）、ＰＰ（３）、ＰＰ（５）・・・より前で最も近い切り出し開始アドレスｃｓａ２、ｃｓａ４、ｃｓａ７、・・・から波形データの読み出しを開始している。
【００２９】
そして、第１処理系および第２処理系においては、読み出した波形データに窓関数を付与して、それぞれ第１処理系および第２処理系に示されるような波形データを生成する。
【００３０】
こうして、ＤＳＰは、第１処理系および第２処理系の２つの処理系の波形データを加算して出力することになる。
【００３１】
以上の処理によって、Ｔ0の長さの波形データをＴcの長さとして、時間軸を圧縮して再生することができる。
【００３２】
次に、図４を参照しながら、波形データの時間軸上での圧縮または伸長は行わずに、再生音高を原波形データの音高より高くする場合の処理について説明する。即ち、原波形データの音高より高い音高で再生するように、音高情報を供給する場合について説明するものであり、ＣＰＵから転送される時間圧伸量情報は１として、波形データの時間軸での圧縮または伸長は行わないものとする。
【００３３】
この場合には、時間情報ＰＰがサンプリング周期毎に１で進むことになる。従って、再生音高の周期毎である時間ｔ0、ｔ1、ｔ2、ｔ3、・・・での時間情報ＰＰ（０）、ＰＰ（１）、ＰＰ（２）、ＰＰ（３）・・・の変化は、図４に示すように原波形データと同じ速さで進む。即ち、ＰＰ（０）はｃｓａ１、ＰＰ（１）はｃｓａ１とｃｓａ２との間、ＰＰ（２）はｃｓａ２とｃｓａ３との間、ＰＰ（３）はｃｓａ３とｃｓａ４との間、ＰＰ（４）はｃｓａ４とｃｓａ５との間、ＰＰ（５）はｃｓａ５、・・・と変化する。
【００３４】
そして、第１処理系は、各時間ｔ0、ｔ2、ｔ4、・・・毎に各時間情報の示すＰＰ（０）、ＰＰ（２）、ＰＰ（４）、・・・より前で最も近い切り出し開始アドレスｃｓａ１、ｃｓａ２、ｃｓａ４・・・から波形データの読み出しを開始している。
【００３５】
また、第２処理系は、各時間ｔ1、ｔ3、ｔ5・・・毎に各時間情報の示すＰＰ（１）、ＰＰ（３）、ＰＰ（５）・・・より前で最も近い切り出し開始アドレスｃｓａ１、ｃｓａ３、ｃｓａ５、・・・から波形データの読み出しを開始している。
【００３６】
そして、第１処理系および第２処理系においては、読み出した波形データに窓関数を付与して、それぞれ第１処理系および第２処理系に示されるような波形データを生成する。
【００３７】
さらに、ＤＳＰは、第１処理系および第２処理系の２つの処理系の波形データを加算して出力することになる。
【００３８】
以上の処理によって、Ｔ0の長さの波形データをＴnの長さとして、波形単位で見れば多少の誤差はあるが、波形データを時間軸上では圧縮も伸長もせずに、再生音高のみを原波形データより高い音高で再生することができる。
【００３９】
以上において説明したように、時間圧伸量情報ならびに音高情報をリアルタイムで供給することによって、記憶手段に記憶されている波形データを時間軸上でリアルタイムで任意に圧縮または伸長することができるとともに、音高をリアルタイムで任意に制御することができる波形発生装置たるオーディオ・フレーズ音源を実現することができる。
【００４０】
そして、このオーディオ・フレーズ音源によれば、波形データのフォルマントを維持したままで、再生音高のみを変化させることもできるものである。
【００４１】
さらに、このオーディオ・フレーズ音源によれば、波形データの読み出し速度を変化させることによって、フォルマントを高域側あるいは低域側にシフトすることも可能である。
【００４２】
ところで、上記したオーディオ・フレーズ音源においては、波形データの時間軸上での圧縮または伸長の制御ならびに再生音高の制御をリアルタイムで任意に行うことは可能であったが、こうしたオーディオ・フレーズ音源を制御するための演奏情報を生成する演奏情報生成装置や、こうしたオーディオ・フレーズ音源へ自動演奏データを出力する自動演奏装置はなく、その種の演奏情報生成装置や自動演奏装置の案出が望まれていた。
【００４３】
【発明が解決しようとする課題】
本発明は、上記したような従来からの要望に鑑みてなされたものであり、その目的とするところは、波形データを時間軸上で圧縮または伸長することのできる音源、即ち、オーディオ・フレーズ音源を制御するための演奏情報生成装置および自動演奏装置を提供しようとするものである。
【００４４】
【課題を解決するための手段】
上記目的を達成するために、本発明のうち請求項１に記載の発明は、波形データの時間軸上の任意の位置に設けられ、当該波形データの時間軸上の位置を示す複数のマーク情報を記憶するマーク情報記憶手段と、上記マーク情報記憶手段に記憶されたマーク情報を表示する表示手段と、上記表示手段により表示されたマーク情報の位置を変更するマーク情報位置変更手段と、所定のマーク情報からその直後のマーク情報までの区間について、上記マーク情報位置変更手段によって変更される前のそれぞれのマーク情報の位置に応じた変更前の上記区間の区間長と、上記マーク情報位置変更手段によって変更されたマーク情報の位置に応じた変更後の上記区間長とに基づいて、上記波形データを時間軸上で圧縮または伸長するための時間軸圧縮伸長情報を演算する演算手段と、上記所定のマーク情報の変更後のタイミングで、上記演算手段によって演算した時間軸圧縮伸長情報に基づいて上記波形データを時間軸上で圧縮または伸長する演奏情報を生成する演奏情報生成手段とを有するようにしたものである。
【００４５】
従って、本発明のうち請求項１に記載の発明の発明によれば、表示手段に表示されたマーク情報の位置を視認しながら、マーク情報位置変更手段によってマーク情報の位置を任意に変化させることができ、演算手段によってマーク情報の位置に応じて時間軸圧縮伸長情報が演算され、演奏情報生成手段によって演算された時間軸圧縮伸長情報が演奏情報として生成されるものである。こうして生成された演奏情報によって、オーディオ・フレーズ音源を制御することができる。
【００４６】
なお、後述する実施の形態における「マーカー」がマーク情報に相当し、後述する実施の形態における「時間軸変調率」が時間軸圧縮伸長情報に相当する。
【００４７】
また、本発明のうち請求項２に記載の発明は、一連の演奏に対応した演奏情報をそれぞれ所定のタイミングに対応付けた自動演奏データとして記憶する記憶手段を有し、上記記憶手段に記憶された自動演奏データに基づいて上記演奏情報を上記所定のタイミングに従って出力する自動演奏装置において、波形データの時間軸上の任意の位置に設けられ、当該波形データの時間軸上の位置を示す複数のマーク情報を記憶するマーク情報記憶手段と、上記マーク情報記憶手段に記憶されたマーク情報を表示する表示手段と、上記表示手段により表示されたマーク情報の位置を変更するマーク情報位置変更手段と、所定のマーク情報からその直後のマーク情報までの区間について、上記マーク情報位置変更手段によって変更される前のそれぞれのマーク情報の位置に応じた変更前の前記上記区間の区間長と、上記マーク情報位置変更手段によって変更されたマーク情報の位置に応じた変更後の上記区間長とに基づいて、上記波形データを時間軸上で圧縮または伸長するための時間軸圧縮伸長情報を演算する演算手段と、上記演算手段によって演算した時間軸圧縮伸長情報に基づいて上記波形データを時間軸上で圧縮または伸長する演奏情報を生成する演奏情報生成手段と、上記演奏情報生成手段によって生成された演奏情報を上記所定のマーク情報の変更後のタイミングに対応付けた自動演奏データとして記憶する記憶手段と、上記記憶手段に記憶された上記自動演奏データに従って演奏情報を上記所定のマーク情報の変更後のタイミングで出力する出力手段とを有するようにしたものである。
【００４８】
従って、本発明のうち請求項２に記載の発明によれば、出力手段によって時間軸圧縮伸長情報に基づいて生成された演奏情報を所定のマーク情報の変更後のタイミングに対応付けられて記憶された自動演奏データに従って所定のマーク情報の変更後のタイミングで出力されることになる。こうして出力された演奏情報によって、オーディオ・フレーズ音源を制御することができる。
【００４９】
なお、後述する実施の形態における「時間軸変調率」が時間軸圧縮伸長情報に相当する。
【００５０】
ここで、例えば、本発明のうち請求項３に記載の発明のように、本発明のうち請求項２に記載の発明において、上記自動演奏装置は、ＭＩＤＩ規格により動作する自動演奏装置であり、上記出力手段は、時間軸圧縮伸長情報をＭＩＤＩデータとして出力するものとしてもよい。
【００５１】
【発明の実施の形態】
以下、添付の図面を参照しながら、本発明による演奏情報生成装置および自動演奏装置の実施の形態の一例を詳細に説明する。
【００５２】
図５には、本発明による演奏情報生成装置および自動演奏装置を備えた電子楽器のソフトウェアのシステム構成図が示されている。
【００５３】
この電子楽器１０は、ＭＩＤＩ規格により動作する自動演奏装置（以下、「ＭＩＤＩシーケンサー」と称する。）１２に、ＭＩＤＩを経由して、例えば、電子リズム音源、シンセサイザー、電子ピアノあるいは電子オルガンなどのＭＩＤＩ規格により動作する従来より公知の音源（以下、「従来型ＭＩＤＩ音源」と称する。）１４と、「発明の背景」の項において説明した特願平９−３００４０３号において開示されたオーディオ・フレーズ音源と同等のオーディオ・フレーズ音源１６とが接続され、ＭＩＤＩシーケンサー１２からのＭＩＤＩ情報に従ってそれぞれ発音するようになされている。
【００５４】
なお、この実施の形態においては、ＭＩＤＩシーケンサー１２とオーディオ・フレーズ音源１６とは、上記したように一つのシステムの中に備えられているとともに、共通のハードウェアとして一体的に構成されて動作するようになされている。
【００５５】
また、以下の説明においては、ＭＩＤＩシーケンサー１２ならびに従来型ＭＩＤＩ音源１４は公知のものであるため、その構成ならびに動作や作用効果などの詳細な説明は省略するものとする。
【００５６】
次に、ＭＩＤＩシーケンサー１２とオーディオ・フレーズ音源１６とを構成するためのハードウェア構成について説明するが、この実施の形態においては当該ハードウェア構成は図６に示すものとする
【００５７】
即ち、ＭＩＤＩシーケンサー１２とオーディオ・フレーズ音源１６とを構成するためのハードウェアは、その全体の動作の制御をＣＰＵ１００を用いて制御するように構成されており、ＣＰＵ１００は、リード・オンリ・メモリ（ＲＯＭ）１０４に格納されたプログラムを実行して、後述するフローチャートに示す処理の制御を行うものである。
【００５８】
そして、ＣＰＵ１００には、バス（ＢＵＳ）１０２を介して、上記した全体の動作の制御のための所定のプログラムなどが格納されたＲＯＭ１０４と、ＣＰＵ１００のプログラムなどの実行において使用される各種変数などを格納するためのワーキング・エリアとしてのランダム・アクセス・メモリ（ＲＡＭ）１０６と、後述する各種スイッチからなるスイッチ群１０８を制御するためのスイッチ制御回路１１０と、記憶媒体としてのハード・ディスク１１２を制御するためのハード・ディスク制御回路１１４と、表示装置としてのＬＣＤ１１６のインターフェース回路たるＬＣＤ Ｉ／Ｆ回路１１８と、従来型ＭＩＤＩ音源１４などのような各種のＭＩＤＩ機器のインターフェース回路たるＭＩＤＩ Ｉ／Ｆ回路１２０と、オーディオ・フレーズ音源１６の機能を実現するためのオーディオ・フレーズ音源回路１２２とが接続されている。
【００５９】
そして、オーディオ・フレーズ音源回路１２２には、デジタル・アナログ変換器（Ｄ／Ａ）１２４が接続され、Ｄ／Ａ１２４には増幅回路１２６が接続されている。
【００６０】
なお、上記したことから明らかなように、スイッチ制御回路１１０にはスイッチ群１０８が接続され、ハード・ディスク制御回路１１４にはハード・ディスク１１２が接続され、ＬＣＤ  Ｉ／Ｆ回路１１８にはＬＣＤ１１６が接続されている。
【００６１】
このように、ソフトウェアのシステム構成ではＭＩＤＩシーケンサー１２の部分とオーディオ・フレーズ音源１６の部分とに別れているが、ハードウェアでは両者は共通の構成を備えており、ＬＣＤ１１６などの表示回路ならびにＲＯＭ１０４、ＲＡＭ１０６、ハード・ディスク１１２などの記憶媒体などは共有している。
【００６２】
次に、オーディオ・フレーズ音源回路１２２に内蔵された記憶手段に記憶されているオーディオ・フレーズ・データのファイル・フォーマットについて説明する。
【００６３】
図７には、オーディオ・フレーズ・データのファイル・フォーマットが示されている。図７に示されるように、オーディオ・フレーズ・データの中身は、１６ビット直線などの波形データと各種のパラメータから構成されている。そして、各種のパラメータとしては、波形データの再生の条件たる波形データのサンプルに関する情報を示すヘッダ情報と、波形データの時間軸上における位置を示すマーカー（Ｍａｒｋｅｒ）（図１０参照）に関する情報を示すマーカー情報とが設定されている。
【００６４】
ここで、波形データは、単にサンプルごとにデータを並べているだけであり、本発明の特徴ではないのでその詳細な説明は省略する。
【００６５】
本発明の特徴をなすのはヘッダ情報とマーカー情報であり、ヘッダ情報はサンプリング周波数ならびに総サンプル数などからなる情報であって、マーカー情報はマーカー自体の属性を示すマーカー・タイプおよび対応する波形データの位置をサンプルで示すマーカー・アドレスからなる情報である。
【００６６】
図８には、マーカー情報の一例が示されており、マーカー情報は、マーカーの番号（マーカー・ナンバー）毎にマーカー・タイプとマーカー・アドレスとが対になって記憶されている。
【００６７】
なお、波形データに対してマーカーを付する時間軸上の位置は任意であるが、理解を容易にするために、この実施の形態においては、マーカー・タイプがマーカー自体の属性としてマーカーの付される位置を示すものとし、ある波形データ中の音節や複数の連続した音節のブロックなど、コントロールしたい単位の先頭に付けられるものをマーカー・タイプが「１」であるとし、ある波形データの末尾に付けられるものをマーカー・タイプが「２」であるものとして扱う。
【００６８】
また、オーディオ・フレーズ・データには、ＭＩＤＩシーケンサー１２部分とオーディオ・フレーズ音源１６部分との双方で使用するものと、一方でしか使用しないものとがあるが、その区分については図９に示す通りである。即ち、ＭＩＤＩシーケンサー１２部分で使用するものは、ヘッダ情報およびマーカー情報であり、オーディオ・フレーズ音源１６部分で使用するものは、波形データおよびヘッダ情報である。
【００６９】
次に、図１０を参照しながら、ユーザー・インターフェースとして、スイッチ群１０８ならびにＬＣＤ１１６を備えた操作パネル２００について説明する。
【００７０】
まず、ＬＣＤ１１６部分は、図１０上左側に位置する波形表示部分と、図１０右側に位置するイベント・リスト（Ｅｖｅｎｔ  Ｌｉｓｔ）表示部分とより構成される。
【００７１】
ここで、波形表示部分には、波形データに従って実際に波形を縮小したものが表示され、イベント・リスト表示部分にはマーカーの位置に関する情報としてイベント・リストが表示されるようになっている。
【００７２】
波形表示部分における各マーカー（図１０においては、マーカー１（Ｍａｒｋｅｒ１）、マーカー２（Ｍａｒｋｅｒ２）、マーカー３（Ｍａｒｋｅｒ３）およびマーカー４（Ｍａｒｋｅｒ４）の４個のマーカーが示されている。）およびイベント・リスト表示部分の各コラムには、後述するカーソル移動指示手段を用いてカーソルを自由に移動することができる。なお、図１０に示す例においては、カーソルがイベント・リストの最上段のコラムに位置されている状態が示されている。
【００７３】
また、後述するスイッチ群１０８の回転式増減指示部分および数値入力指示部分を用いて、波形表示部分におけるマーカー位置ならびにイベント・リスト表示部分におけるイベント・リストの数値などを自由に変更することができるようになされている。そして、この波形表示部分におけるマーカー位置とイベント・リスト表示部分におけるイベント・リストの数値とは相互に連携動作しており、片方で行った変更は実時間で他方に反映されるようになされている。これにより、ユーザーは必要に応じて最適な手段を用いて、波形データの時間軸上におけるマーカーの位置の設定操作を行うことができる。
【００７４】
ここで、イベント・リスト表示部分の各コラムにおける表示内容を説明しておくと、上記したように各コラムにはマーカーの位置に関する情報が表示されているものであり、具体的には、「小節数：拍数：ティック数：マーカー・ナンバー」を表している。ここで、「ティック」とは、音楽的時間の拍よりも短い単位であり、実際の長さはテンポに応じて変化するが、テンポの基準は４分音符であるので、
６０秒／テンポ＝９６０ティックの時間
となり、
１ティックの時間＝｛（６０／テンポ）／９６０｝秒
となる。
【００７５】
従って、図１０においてカーソルが位置しているイベント・リストの最上段のコラムたる「１：１：１：Ｍａｒｋｅｒ１」は、「マーカー１は第１小節の第１拍の第１ティックに位置している。」ことを意味している。
【００７６】
次に、スイッチ群１０８について説明するが、まず、回転式増減指示部分は、具体的にはロータリー・エンコーダー２００により構成される。
【００７７】
そして、カーソルが波形表示部分にあってかつマーカーを指定している場合には、ロータリー・エンコーダー２００を回転することで、マーカーの位置を前後に移動することができる。さらに、カーソルがイベント・リストにある場合には、ロータリー・エンコーダー２００を回転することで、コラムにおける小節数、拍数、ティック数の値を増減することが出来る。
【００７８】
次に、カーソル移動指示部分について説明すると、このカーソル移動指示部分は、具体的にはカーソル・キー２０２により構成され、カーソル・キー２０２を押すことで上下左右にカーソルを移動することができる。カーソルが波形表示部分にある場合には、カーソル・キー２０２の左右方向のキーで前後のマーカーを指定することができる。また、カーソルがイベント・リストにある場合には、カーソル・キー２０２の上下左右のキーで任意のコラムの任意の位置を指定することができる。
【００７９】
次に、数値入力指示部分について説明すると、この数値入力指示部分は、具体的にはテン・キー２０４、マイナス・キー２０６、プラス・キー２０８、リターン・キー２１０、インサート・キー２１２およびデリート・キー２１４により構成され、カーソルがある位置でテン・キー２０４により数値を入力することで、直接的に値を指定することができる。また、インサート・キー２１２ならびにデリート・キー２１４を使用することで、マーカーやイベントを自由に追加したり削除したりすることができる。
【００８０】
次に、シーケンサー制御部分について説明すると、このシーケンサー制御部分はＭＩＤＩシーケンサー１２を制御するためのスイッチ群であり、具体的にはスタート・キー２１６、ストップ・キー２１８およびリワインド・キー２２０により構成され、スタート・キー２１６を操作することにより自動演奏データの再生を開始させることができ、ストップ・キー２１８を操作することにより自動演奏データの再生を停止させることができ、リワインド・キー２２０を操作することにより自動演奏データの巻き戻しを行うことができる。
【００８１】
なお、この実施の形態においては、ＭＩＤＩシーケンサー１０が停止中の場合はいつでもエディット（編集）できるエディット・モードとされるため、ストップ・キー２１８はエディット・モードへの切り替えスイッチも兼ねている。
【００８２】
以上の構成において、この電子楽器において実行される処理内容について、添付のフローチャートを参照しながら説明する。
【００８３】
まず、図１１には、メイン・ルーチンのフローチャートが示されているが、この電子楽器においては、電源が投入されて初期設定の処理が終了されると、このメイン・ルーチンのフローチャートが起動されるものである。
【００８４】
このメイン・ルーチンにおいては、まずステップＳ１１０２において、ＭＩＤＩシーケンサー１２が停止中であるか否かが判断される。
【００８５】
そして、ステップＳ１１０２において、ＭＩＤＩシーケンサー１２が停止中でないと判断された場合には、ステップＳ１１０４へ進み、このメイン・ルーチンのサブ・ルーチンとしてプレイ・モード・ルーチンの処理を実行し、プレイ・モード・ルーチンの処理の実行を終了すると、ステップＳ１１０２へ戻って処理を繰り返すものである。
【００８６】
ここで、プレイ・モード・ルーチンにおける処理とは、シーケンサー制御部分を構成するスタート・キー２１６、ストップ・キー２１８およびリワインド・キー２２０の操作に応じて、自動演奏データを再生したり、自動演奏データの再生を停止したり、自動演奏データの巻き戻しをしたりする処理である。なお、こうしたプレイ・モード・ルーチンの処理は、自動演奏の技術分野においては公知の技術であるため、その詳細な説明を省略するものとする。
【００８７】
一方、ステップＳ１１０２において、ＭＩＤＩシーケンサー１２が停止中であると判断された場合には、ステップＳ１１０６へ進み、このメイン・ルーチンのサブ・ルーチンとしてエディット・モード・ルーチンの処理を実行し、エディット・モード・ルーチンの処理の実行を終了すると、ステップＳ１１０２へ戻って処理を繰り返すものである。
【００８８】
次に、図１２に示すエディット・モード・ルーチンのフローチャートを参照しながら、エディット・モード・ルーチンの処理について説明する。
【００８９】
このエディット・モード・ルーチンにおいては、まずステップＳ１２０２において、エディット・モード・ルーチンにおける初期設定が行われる。
【００９０】
ステップＳ１２０２の処理を終了すると、ステップＳ１２０４へ進み、マーカーの移動操作やイベント・リスト上における数値入力などによりイベント（Ｅｖｅｎｔ）が編集されたか否かを判断する。
【００９１】
ステップＳ１２０４において、イベントが編集されなかったと判断された場合には、ステップＳ１２０８へ進み、編集は終了したか否かを判断する。
【００９２】
一方、ステップＳ１２０４において、イベントが編集されたと判断された場合には、ステップＳ１２０６へ進み、このエディット・モード・ルーチンのサブ・ルーチンとして編集処理ルーチンを実行する。なお、この編集処理ルーチンについては、図１３のフローチャートを参照しながら後述する。
【００９３】
そして、ステップＳ１２０６の処理を終了すると、ステップＳ１２０８へ進み、編集は終了したか否かを判断する。
【００９４】
ステップＳ１２０８において、編集は終了していないと判断された場合には、ステップＳ１２０４へ戻って処理を繰り返す。
【００９５】
一方、ステップＳ１２０８において、編集は終了したと判断された場合には、このエディット・モード・ルーチンを終了してメイン・ルーチンへリターンする。
【００９６】
次に、図１３に示す編集処理ルーチンのフローチャートを参照しながら、編集処理ルーチンの処理について説明する。
【００９７】
この編集処理ルーチンにおいては、まずステップＳ１３０２において、編集処理ルーチンにおける初期設定が行われる。
【００９８】
ステップＳ１３０２の処理を終了すると、ステップＳ１３０４へ進み、マーカーのイベント編集前の区間長の計算を行う。なお、このステップＳ１３０４の処理の詳細については、図１４乃至図１６を参照しながら具体例を挙げながら後述する。
【００９９】
ステップＳ１３０４の処理を終了すると、ステップＳ１３０６へ進み、マーカーのイベント編集後の区間長の計算を行う。なお、このステップＳ１３０６の処理の詳細については、図１４乃至図１６を参照しながら具体例を挙げながら後述する。
【０１００】
ステップＳ１３０６の処理を終了すると、ステップＳ１３０８へ進み、波形データを時間軸上で圧縮または伸長するための時間情報たる時間軸変調率の計算を行う。こうして、時間軸変調率を演奏情報として生成することができる。なお、このステップＳ１３０８の処理の詳細については、図１４乃至図１６を参照しながら具体例を挙げながら後述する。
【０１０１】
ステップＳ１３０８の処理を終了すると、ステップＳ１３１０へ進み、時間軸変調率をシーケンサーのイベントとしてＭＩＤＩシーケンサー１２の記憶手段に書き込む。
【０１０２】
なお、ＭＩＤＩシーケンサー１２の記憶手段とは、具体的にはＲＡＭ１０６が使用されているが、そのイベント・データは自動演奏をするための演奏データとして、ハード・ディスク１１２に転送して記憶しておくこともできる。
【０１０３】
そして、ステップＳ１３１０の処理を終了すると、この編集処理ルーチンを終了してエディット・モード・ルーチンへリターンする。
【０１０４】
次に、図１４乃至図１６を参照しながら、ステップＳ１３０４、ステップＳ１３０６ならびにステップＳ１３０８の処理について具体的に説明する。
【０１０５】
図１４（ａ）（ｂ）には、ＬＣＤ１１６の波形表示部分の拡大図が示されているが、（ａ）はマーカーのイベント編集前の状態を示し、（ｂ）はマーカーのイベント編集後の状態を示している。即ち、図１４（ａ）に示す波形データを、図１４（ｂ）に示すように時間軸上で圧縮または伸長する場合を例にして説明する。
【０１０６】
波形データの圧縮または伸長を実現するためには、各マーカーが編集前と編集後とでどのような位置関係にあるかを演算して時間軸変調率を得て、この時間軸変調率を適切なタイミングでオーディオ・フレーズ音源１２２へ出力する必要がある。
【０１０７】
図１５（ａ）（ｂ）には、図１４（ａ）（ｂ）にそれぞれ対応したイベント・リストが示されており、図１５（ａ）に示すイベント・リストは図１４（ａ）に示す波形データの時間軸上におけるマーカーの位置を示し、図１５（ｂ）に示すイベント・リストは図１４（ｂ）に示す波形データの時間軸上におけるマーカーの位置を示している。
【０１０８】
図１５（ａ）（ｂ）に示されるイベント・リストから明らかなように、マーカー２（Ｍａｒｋｅｒ２）、マーカー３（Ｍａｒｋｅｒ３）、マーカー・エンド（Ｍａｒｋｅｒ  Ｅｎｄ）の位置が、編集前と編集後とで変化している。このため、各マーカーの位置において圧縮または伸長に対応するための時間軸変調率を生成する必要があることになる。なお、以下においては、マーカー１（Ｍａｒｋｅｒ１）を例にして説明する。
【０１０９】
マーカー１（Ｍａｒｋｅｒ１）の時点での時間軸変調率を計算するためには、まず、マーカー１（Ｍａｒｋｅｒ１）からマーカー２（Ｍａｒｋｅｒ２）までの区間長が編集前と編集後とでどのように変化したかという変化率を計算すればよい。即ち、まず、マーカー１（Ｍａｒｋｅｒ１）からマーカー２（Ｍａｒｋｅｒ２）までの編集前の区間長を計算し（ステップＳ１３０４）、次に、マーカー１（Ｍａｒｋｅｒ１）からマーカー２（Ｍａｒｋｅｒ２）までの編集後の区間長を計算し（ステップＳ１３０６）、それから計算したマーカー１（Ｍａｒｋｅｒ１）からマーカー２（Ｍａｒｋｅｒ２）までの編集前の区間長と編集後の区間長とに基づいて時間軸変調率を計算すればよい（ステップＳ１３０８）。
【０１１０】
具体的には、この実施の形態においては、４分音符あたり９６０ティックという分解能としているので、次の演算式を実行することにより、マーカーの編集前の区間長ならびに編集後の区間長を計算し（ステップＳ１３０４、ステップＳ１３０６）、それから時間変調率を計算すればよい（ステップＳ０８）。
【０１１１】
区間長＝｛（Ｂａｒ［Ｍａｒｋｅｒ（ｎ＋１）］−Ｂａｒ［Ｍａｒｋｅｒ（ｎ）］）×９６０×４｝＋｛（Ｂｅａｔ［Ｍａｒｋｅｒ（ｎ＋１）］−Ｂｅａｔ［Ｍａｒｋｅｒ（ｎ）］）×９６０｝＋｛Ｔｉｃｋ［Ｍａｒｋｅｒ（ｎ＋１）］−Ｔｉｃｋ［Ｍａｒｋｅｒ（ｎ）］｝
なお、上記演算式において、「Ｂａｒ」は「小節」を表し、「Ｂｅａｔ」は「拍」を表し、「Ｔｉｃｋ」は「ティック」を表す。
【０１１２】
図１５（ａ）（ｂ）に示された数値を代入すると、
編集前の区間長＝｛（１−１）×９６０×４｝＋｛（２−１）×９６０｝＋｛２５１−１｝＝１２１０（Ｔｉｃｋ）
編集後の区間長＝｛（１−１）×９６０×４｝＋｛（２−１）×９６０｝＋｛ｌ−１｝＝９６０（Ｔｉｃｋ）
となり、これらの結果から時間軸変調率は、
時間軸変調率＝９６０／１２１０＝０．７９３（小数点第４位で四捨五入）となる。
【０１１３】
この時間軸変調率（Ｔｉｍｅ  Ｒａｔｅ）を付加したＭＩＤＩデータを、イベント・リストとして表したものが図１６である。
【０１１４】
こうして図１６に示すイベント・リストが得られた後は、時間軸変調率の付加された自動演奏データをＭＩＤＩシーケンサー１０で再生すれば、マーカーの編集後のタイミングで各波形データが再生されることになる。
【０１１５】
なお、上記した計算後に再度マーカーの位置を変更した場合には、時間軸変調率を再計算して更新することにより、次にＭＩＤＩシーケンサー１０が再生する際には変更に対応できることになる。
【０１１６】
なお、上記した実施の形態は、以下の変形例１ならびに変形例２に示すように変形することができる。
【０１１７】
（１）変形例１
上記した実施の形態は、時間軸変調率を直接にオーディオ・フレーズ音源１６に伝達するという例を示したが、これはＭＩＤＩシーケンサー１２とオーディオ・フレーズ音源１６とでハードウェアを共有しているから可能になるものである。しかしながら、ＭＩＤＩシーケンサー１２とオーディオ・フレーズ音源１６とが別々のハードウェアになっている場合でも、同様にして必要な情報をＭＩＤＩで送信することが可能であることは勿論である。
【０１１８】
ここで、ＭＩＤＩでこうした情報を送信する場合にはいくつかの手段が考えられるが、一般的なものとしては、コントロール・チェンジ（Ｃｏｎｔｒｏｌ  Ｃｈａｎｇｅ）やシステム・エクスクルーシブ・メッセージ（Ｓｙｓｔｅｍ  Ｅｘｃｌｕｓｉｖｅ  Ｍｅｓｓａｇｅ）を使用する方法である。
【０１１９】
ここで、例えば、コントロール・チェンジを使用する方法を示すと、コントロール・チェンジは７ビットのデータ長であるため、上記した計算式によって求めた時間軸変調率を７ビットで表す必要がある。このため、例えば、図１７に示すような関係を定義する。なお、図１７に示す表に示されていない値については、同様にして求められる離散値である。
【０１２０】
ＭＩＤＩシーケンサー１２が再生時に時間軸変調率をコントロール・チェンジに変換して出力することにより、通常のＭＩＤＩを用いてオーディオ・フレーズ音源１６を制御することができる。
【０１２１】
勿論のことであるが、用途によっては７ビットでは精度が不足する場合も考えられる。そうした場合にはシステム・エクスクルーシブ・メッセージを用いて任意のデータ長を利用することができる。ただし、この場合には、コントロール・チェンジを用いる場合と比較して、１つのデータを送信するのに時間がかかる。どちらを使用するのかは、目的に応じて適切な方法を選択すればよい。
【０１２２】
また、同様にして、オーディオ・フレーズ音源１６側からマーカー情報をＭＩＤＩシーケンサー１２に対して送信することができる。この場合には、音源側のパラメータを収めたメモリの内容のうち、必要な部分をシステム・エクスクルーシブ・メッセージとして送信してしまえばよい。これにより、ＭＩＤＩシーケンサー１２とオーディオ・フレーズ音源１６とは、ＭＩＤＩで双方向に接続するだけで同一のハードウェア上で動作している場合と同等の動作をすることが可能になる。
【０１２３】
（２）変形例２
上記した実施の形態においては、マーカーの時間軸上の位置を音楽的な単位（小節、拍およびティック）で制御するために用いたが、同様にしてピッチ（Ｐｉｔｃｈ）、即ち、音高を制御する際にマーカーを設けることも可能である。これにより、オーディオ・フレーズに任意の単位（例えば、音節や音符など。）でマーカーを設けておけば、ＭＩＤＩシーケンサー１２側から簡単にピッチを制御することも可能になる。
【０１２４】
【発明の効果】
本発明は、以上説明したように構成されているので、波形データを時間軸上で圧縮または伸長することのできる音源、即ち、オーディオ・フレーズ音源を制御するための演奏情報生成装置および自動演奏装置を提供することができるという優れた効果を奏する。
【図面の簡単な説明】
【図１】特願平９−３００４０３号に開示されたオーディオ・フレーズ音源の概念的なブロック構成図である。
【図２】特願平９−３００４０３号に開示されたオーディオ・フレーズ音源による、波形データを時間軸上で伸長する場合の処理を示す波形説明図である。
【図３】特願平９−３００４０３号に開示されたオーディオ・フレーズ音源による、波形データを時間軸上で圧縮する場合の処理を示す波形説明図である。
【図４】特願平９−３００４０３号に開示されたオーディオ・フレーズ音源による、再生音高が原波形データの音高より高い音高であって、時間軸上での圧縮または伸長はしないように設定した場合の処理を示す波形説明図である。
【図５】本発明による演奏情報生成装置および自動演奏装置を備えた電子楽器のソフトウェアのシステム構成図である。
【図６】ＭＩＤＩシーケンサーとオーディオ・フレーズ音源とを構成するためのハードウェア構成についてブロック構成説明図である。
【図７】オーディオ・フレーズ・データのファイル・フォーマットを示す説明図である。
【図８】マーカー情報の一例を示す説明図である。
【図９】オーディオ・フレーズ・データを構成する波形データ、ヘッダ情報ならびにマーカー情報の使用先を示す説明図である。
【図１０】スイッチ群ならびにＬＣＤを備えた操作パネルの説明図である。
【図１１】メイン・ルーチンのフローチャートである。
【図１２】エディット・モード・ルーチンのフローチャートである。
【図１３】編集処理ルーチンのフローチャートである。
【図１４】ＬＣＤの波形表示部分の拡大図であり、（ａ）はマーカーのイベント編集前の状態を示し、（ｂ）はマーカーのイベント編集前の状態を示す。
【図１５】（ａ）（ｂ）は、図１４（ａ）（ｂ）にそれぞれ対応したイベント・リストを示し、（ａ）に示すイベント・リストは図１４（ａ）に示す波形データの時間軸上におけるマーカーの位置を示し、（ｂ）に示すイベント・リストは図１４（ｂ）に示す波形データの時間軸上におけるマーカーの位置を示す。
【図１６】時間軸変調率（Ｔｉｍｅ  Ｒａｔｅ）を付加したＭＩＤＩデータを示すイベント・リストである。
【図１７】コントロール・チェンジと時間軸変調率との関係を示す説明図である。
【符号の説明】
１０      電子楽器
１２      ＭＩＤＩシーケンサー
１４      従来型リズム音源
１６      オーディオ・フレーズ音源
１００      ＣＰＵ
１０２      バス（ＢＵＳ）
１０４      リード・オンリ・メモリ（ＲＯＭ）
１０６      ランダム・アクセス・メモリ（ＲＡＭ）
１０８      スイッチ群
１１０      スイッチ制御回路
１１２      ハード・ディスク
１１４      ハード・ディスク制御回路
１１６      ＬＣＤ
１１８      ＬＣＤ  Ｉ／Ｆ回路
１２０      ＭＩＤＩ  Ｉ／Ｆ回路
１２２      オーディオ・フレーズ音源
１２４      デジタル／シグナル変換器
１２６      増幅回路
【図１】
0004162766.tif 000002
【図２】
0004162766.tif 000003
【図３】
0004162766.tif 000004
【図４】
0004162766.tif 000005
【図５】
0004162766.tif 000006
【図６】
0004162766.tif 000007
【図７】
0004162766.tif 000008
【図８】
0004162766.tif 000009
【図９】
0004162766.tif 000010
【図１０】
0004162766.tif 000011
【図１１】
0004162766.tif 000012
【図１２】
0004162766.tif 000013
【図１３】
0004162766.tif 000014
【図１４】
0004162766.tif 000015
【図１５】
0004162766.tif 000016
【図１６】
0004162766.tif 000017
【図１７】
0004162766.tif 000018