(57)【特許請求の範囲】
【請求項１】
自動演奏情報の再生を開始する過程と、
波形データの記録を開始する過程と、
前記自動演奏情報と前記波形データとのタイミングの関係を示す同期制御データを記録しつつ、前記波形データを記録する過程と、
前記波形データのエンベロープレベルを求める過程と、
前記自動演奏情報と、前記同期制御データと、前記エンベロープレベルとに基づいて、前記波形データの区切り位置を求める区切り位置検出過程と
を有することを特徴とする波形データ解析方法。
【請求項２】
前記区切り位置検出過程は、
前記自動演奏情報と前記同期制御データとに基づいて、前記波形データの推定区切り位置を決定する推定過程と、
該推定区切り位置に対応した所定の範囲内において、前記波形データの一ないし複数の立ち上がり位置を検出する検出過程と、
検出された前記一ないし複数の立ち上がり位置の何れかを区切り位置として抽出する抽出過程と
を有することを特徴とする請求項１記載の波形データ解析方法。
【請求項３】
前記所定の範囲は、第１および第２の所定範囲から構成され、
前記抽出過程は、前記第１の所定範囲に属する立ち上がり位置についてはこれら立ち上がり位置に各々対応するレベル値が所定の第１の閾値を超えることを条件として、該立ち上がり位置を前記区切り位置として抽出するとともに、前記第２の所定範囲に属する立ち上がり位置についてはこれら立ち上がり位置に各々対応するレベル値が前記第１の閾値よりも低い第２の閾値を超えることを条件として、該立ち上がり位置を前記区切り位置として抽出する過程であること
を特徴とする請求項２記載の波形データ解析方法。
【請求項４】
前記推定過程は、前記自動演奏情報の拍タイミング、ノートオンタイミングまたはノートオフタイミングに基づいて、前記波形データの推定区切り位置を決定することを特徴とする請求項２記載の波形データ解析方法。
【請求項５】
前記抽出過程は、検出された立ち上がり位置の強度に基づいて、何れかの立ち上がり位置を前記区切り位置として抽出することを特徴とする請求項２記載の波形データ解析方法。
【請求項６】
自動演奏情報の再生を開始する過程と、
波形データの記録を開始する過程と、
前記自動演奏情報と前記波形データとのタイミングの関係を示す同期制御データを記録しつつ、前記波形データを記録する過程と、
前記自動演奏情報の拍タイミングと前記同期制御データとに基づいて推定拍位置を決定する過程と、
前記推定拍位置に基づいて前記波形データの区切り位置を求める区切り位置決定過程と
を有することを特徴とする波形データ解析方法。
【請求項７】
自動演奏情報の再生を開始する過程と、
波形データの記録を開始する過程と、
前記自動演奏情報と前記波形データとのタイミングの関係を示す同期制御データを記録しつつ、前記波形データを記録する過程と、
前記自動演奏情報のノートオンタイミングと前記同期制御データとに基づいて推定立ち上がり位置を決定する過程と、
該推定立ち上がり位置に基づいて前記波形データの区切り位置を求める区切り位置決定過程と
を有することを特徴とする波形データ解析方法。
【請求項８】
自動演奏情報の再生を開始する過程と、
波形データの記録を開始する過程と、
前記自動演奏情報と前記波形データとのタイミングの関係を示す同期制御データを記録しつつ、前記波形データを記録する過程と、
前記自動演奏情報と前記同期制御データとに基づいて推定区切り位置を決定する過程と、
前記波形データ中の前記推定区切り位置近傍の部分を分析する分析過程と、
該分析結果に基づいて前記波形データ全体の区切り位置を求める区切り位置決定過程と
を有することを特徴とする波形データ解析方法。
【請求項９】
前記分析過程は、前記波形データのエンベロープを分析することにより立ち上がり位置を検出する過程であることを特徴とする請求項８記載の波形データ解析方法。
【請求項１０】
前記区切り位置決定過程は、前記分析結果に含まれる複数の立ち上がり位置に基づいて、各推定区切り位置毎に一つの区切り位置を決定することを特徴とする請求項８記載の波形データ解析方法。
【請求項１１】
前記自動演奏情報を再生する自動演奏のテンポクロックと前記波形データのサンプリング周期は同期しており、
前記同期制御データは、前記波形データの録音開始タイミングを示すタイミングデータを含む
ことを特徴とする請求項１ないし１０の何れかに記載の波形データ解析方法。
【請求項１２】
前記同期制御データは、前記波形データの録音開始タイミングを示すタイミングデータと、前記自動演奏のテンポクロックと前記波形データのサンプリング周期を同期させるための同期データとを含む
ことを特徴とする請求項１ないし１０の何れかに記載の波形データ解析方法。
【請求項１３】
請求項１ないし１２の何れかに記載の波形データ解析方法を実行することを特徴とする波形データ解析装置。
【請求項１４】
請求項１ないし１２の何れかに記載の波形データ解析方法をコンピュータに実行させるプログラムを記憶したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、パーソナルコンピュータ、電子楽器、アミューズメント機器等における自動演奏、特に自動伴奏に用いて好適な、波形データ解析方法、波形データ解析装置および記録媒体に関する。
【０００２】
【従来の技術】
従来より、ある程度の長さの自然楽器音等を録音し、これを設定されたテンポに応じた速度で自動的に繰返し再生する技術が知られている。この技術はリズム音等の自動伴奏等に使用されているが、設定されるテンポに応じて原波形を圧縮あるいは伸張させる必要がある。かかる処理を実行するために、従来より以下のような装置またはソフトウエアが知られている。
【０００３】
(１)サンプラ
サンプラは、アナログ波形をサンプリングしてデジタルの波形データに変換するものであり、単音波形を記録するものと、複音から成るフレーズ波形を記録するものとが知られている。後者を特にフレーズサンプラという。
【０００４】
(２)スライサ
スライサは、区切られた波形データに対して先頭から順番にノートナンバを割り当てるとともに、割り当てたノートナンバとタイミング（区切り位置）からなる自動演奏情報、すなわち区切られた波形データをドライブするためのシーケンスデータを生成して記憶する。この自動演奏情報に基づき、記録時のテンポで自動演奏し、再生されたノートオンイベントによって区切られた波形データをトリガすると、元の波形データ（区切る前の波形データ）が再生される。ここで、テンポを変更すると、そのテンポに応じてノートオンイベントのタイミングが変化し、全体として波形データが時間軸方向に伸縮される。
【０００５】
(３)シーケンサ
シーケンサは、上記シーケンスデータを再生するものである。但し、シーケンスデータをそのままの形で再生するばかりではなく、再生速度を適宜増減することによって所望のテンポでシーケンスデータを再生することができる。なお、シーケンスデータを予め編集しておくことにより、各単位波形データの再生タイミングを独自に変更しておくことも勿論可能である。このシーケンスデータを適当な音源に供給すると、再生シーケンスデータに基づいた楽音波形が再生されることになる。
【０００６】
次に、再生される楽音波形の状態について、図２(a)，(b)を流用しさらに詳細に説明する。
同図(a)は、自然楽器音等をステレオ録音した原波形データである。この原波形データを、エンベロープの立上り部分（図上の破線部分、以下「制御ポイント」という）で区切ると、例えば同図(b)に示すように、原波形データを複数の区画（オリジナルセクションという）１ｒ〜１２ｒに区切ることができる。この原波形データを用いて自動リズム伴奏等を行う際、原波形データの録音時のテンポと同一のテンポで再生するのであれば、原波形データを特に加工することなく繰返し再生するとよい。
【０００７】
また、再生時のテンポが録音時よりも速くなる場合は、各オリジナルセクション１ｒ〜１２ｒの再生部分を短くする必要がある。このためには、各区画の終端部分を一定の割合でカットすればよい。例えば、録音時のテンポが「１００」、再生時のテンポが「１２５」であったとすると、各オリジナルセクション１ｒ〜１２ｒの終端部分を２０％づつカットし、残りの波形データを再生するとよい。
【０００８】
一方、再生時のテンポが録音時のテンポよりも遅くなる場合には問題が生じる。すなわち、再生時のテンポに合せて各区画の再生開始タイミングを単に遅らせたのでは、各区画の隙間に無音区間が生じ、耳障りになる。そこで、この各区画の隙間は、直前の区画の波形データを必要な長さだけ継ぎ足して再生することが一般的である。その際、継ぎ足される部分の振幅の初期値は、その直前の部分の振幅と一致するように設定される。
【０００９】
【発明が解決しようとする課題】
ここで、自動演奏情報等、元々存在するなんらかのシーケンスデータ（元シーケンスデータ）に対して新たなトラックを追加し、上記技術によって得たシーケンスデータ（追加シーケンスデータ）をこの追加したトラックに書き込み、両者のアンサンブルのシーケンスデータ（合成シーケンスデータ）を作成する場合を想定してみる。
【００１０】
ここで、元シーケンスデータと追加シーケンスデータとは、関連なく記録されているために、単に追加シーケンスデータを新たなトラックに書き込んだのでは、両者のタイミングがずれるという問題が生じる。このため、両者のタイミング合わせを慎重に行う必要があり、きわめて煩雑であった。特に、元シーケンスデータのテンポが途中で変化している場合等においては、タイミング合わせを楽曲の随所で行う必要があった。また、従来は、波形データのエンベロープを分析して得られた区切り位置のみに基づいて波形データを分割していたため、区切り位置が誤検出されたり、音楽的に適切でない位置で分割される場合もあった。
【００１１】
この発明は上述した事情に鑑みてなされたものであり、元シーケンスデータに関連付けて波形データを記録することができる波形データ解析方法、波形データ解析装置および記録媒体を提供することを目的としている。
【００１２】
【課題を解決するための手段】
上記課題を解決するため本発明にあっては、下記構成を具備することを特徴とする。なお、括弧内は例示である。
請求項１記載の波形データ解析方法にあっては、自動演奏情報の再生を開始する過程と、波形データの記録を開始する過程と、前記自動演奏情報と前記波形データとのタイミングの関係を示す同期制御データを記録しつつ、前記波形データを記録する過程と、前記波形データのエンベロープレベルを求める過程と、前記自動演奏情報と、前記同期制御データと、前記エンベロープレベルとに基づいて、前記波形データの区切り位置（制御ポイント）を求める区切り位置検出過程（ステップＳＰ１０６〜ＳＰ１１８）とを有することを特徴とする。
さらに、請求項２記載の構成にあっては、請求項１記載の波形データ解析方法において、前記区切り位置検出過程（ステップＳＰ１０６〜ＳＰ１１８）は、前記自動演奏情報と前記同期制御データとに基づいて、前記波形データの推定区切り位置（基準位置）を決定する推定過程と、該推定区切り位置に対応した所定の範囲内において、前記波形データの一ないし複数の立ち上がり位置を検出する検出過程と、検出された前記一ないし複数の立ち上がり位置の何れかを区切り位置として抽出する抽出過程とを有することを特徴とする。
さらに、請求項３記載の構成にあっては、請求項２記載の波形データ解析方法において、前記所定の範囲（検出窓）は、第１および第２の所定範囲から構成され、前記抽出過程は、前記第１の所定範囲に属する立ち上がり位置についてはこれら立ち上がり位置に各々対応するレベル値（ピークレベル）が所定の第１の閾値（閾値Ｔh1）を超えることを条件として、該立ち上がり位置を前記区切り位置として抽出するとともに、前記第２の所定範囲に属する立ち上がり位置についてはこれら立ち上がり位置に各々対応するレベル値（ピークレベル）が前記第１の閾値（閾値Ｔh1）よりも低い第２の閾値（閾値Ｔh2）を超えることを条件として、該立ち上がり位置を前記区切り位置として抽出する過程であることを特徴とする。
さらに、請求項４記載の構成にあっては、請求項２記載の波形データ解析方法において、前記推定過程は、前記自動演奏情報の拍タイミング、ノートオンタイミングまたはノートオフタイミングに基づいて、前記波形データの推定区切り位置を決定することを特徴とする。
さらに、請求項５記載の構成にあっては、請求項２記載の波形データ解析方法において、前記抽出過程は、検出された立ち上がり位置の強度に基づいて、何れかの立ち上がり位置を前記区切り位置として抽出することを特徴とする。
また、請求項６記載の波形データ解析方法にあっては、自動演奏情報の再生を開始する過程と、波形データの記録を開始する過程と、前記自動演奏情報と前記波形データとのタイミングの関係を示す同期制御データを記録しつつ、前記波形データを記録する過程と、前記自動演奏情報の拍タイミングと前記同期制御データとに基づいて推定拍位置を決定する過程と、前記推定拍位置に基づいて前記波形データの区切り位置を求める区切り位置決定過程とを有することを特徴とする。
また、請求項７記載の波形データ解析方法にあっては、自動演奏情報の再生を開始する過程と、波形データの記録を開始する過程と、前記自動演奏情報と前記波形データとのタイミングの関係を示す同期制御データを記録しつつ、前記波形データを記録する過程と、前記自動演奏情報のノートオンタイミングと前記同期制御データとに基づいて推定立ち上がり位置を決定する過程と、該推定立ち上がり位置に基づいて前記波形データの区切り位置を求める区切り位置決定過程とを有することを特徴とする。
また、請求項８記載の波形データ解析方法にあっては、自動演奏情報の再生を開始する過程と、波形データの記録を開始する過程と、前記自動演奏情報と前記波形データとのタイミングの関係を示す同期制御データを記録しつつ、前記波形データを記録する過程と、前記自動演奏情報と前記同期制御データとに基づいて推定区切り位置を決定する過程と、前記波形データ中の前記推定区切り位置近傍の部分を分析する分析過程と、該分析結果に基づいて前記波形データ全体の区切り位置を求める区切り位置決定過程とを有することを特徴とする。
さらに、請求項９記載の構成にあっては、請求項８記載の波形データ解析方法において、前記分析過程は、前記波形データのエンベロープを分析することにより立ち上がり位置を検出する過程であることを特徴とする。
さらに、請求項１０記載の構成にあっては、請求項８記載の波形データ解析方法において、前記区切り位置決定過程は、前記分析結果に含まれる複数の立ち上がり位置に基づいて、各推定区切り位置毎に一つの区切り位置を決定することを特徴とする。
さらに、請求項１１記載の構成にあっては、請求項１ないし１０の何れかに記載の波形データ解析方法において、前記自動演奏情報を再生する自動演奏のテンポクロックと前記波形データのサンプリング周期は同期しており、前記同期制御データは、前記波形データの録音開始タイミングを示すタイミングデータを含むことを特徴とする。
さらに、請求項１２記載の構成にあっては、請求項１ないし１０の何れかに記載の波形データ解析方法において、前記同期制御データは、前記波形データの録音開始タイミングを示すタイミングデータと、前記自動演奏のテンポクロックと前記波形データのサンプリング周期を同期させるための同期データとを含むことを特徴とする。
また、請求項１３記載の波形データ解析装置にあっては、請求項１ないし１２の何れかに記載の波形データ解析方法を実行することを特徴とする。
また、請求項１４記載のコンピュータ読み取り可能な記録媒体にあっては、請求項１ないし１２の何れかに記載の波形データ解析方法をコンピュータに実行させるプログラムを記憶したことを特徴とする。
【００１３】
【発明の実施の形態】
１．実施形態のハードウエア構成
次に、本発明の一実施形態の波形編集システムのハードウエア構成を図１を参照し説明する。なお、本波形編集システムは、汎用パーソナルコンピュータ上で動作するアプリケーションプログラムおよびドライバ等によって構成されている。
【００１４】
図において１０２は表示器であり、ユーザに対して各種情報を表示する。１０４は操作子であり、キーボード、マウス等から構成されている。１０６はマイクロフォンであり、自然楽器等の楽音信号（アナログ波形）を検出する。１０８はＡＤコンバータであり、該アナログ波形をサンプリングしてデジタル信号に変換する。１１０は録音回路であり、ハードディスク１１２にダイレクトにアクセスし（ＤＭＡ動作を行ない）、該デジタル信号を波形データとしてハードディスク１１２に記憶させる。なお、ハードディスク１１２には、これら波形データの他、汎用パーソナルコンピュータのオペレーティングシステム、後述する波形編集のアプリケーションプログラム等が格納される。
【００１５】
１１４は再生回路であり、ハードディスク１１２にダイレクトにアクセスして（ＤＭＡ動作を行ない）、再生対象となる波形データを読出し、ミキサ１１６に供給する。１２２は音源であり、バスライン１３６を介して供給された演奏情報に基づいて楽音信号を合成し、合成した楽音信号をミキサ１１６に供給する。ミキサ１１６においては、再生回路１１４および音源１２２から供給された波形データおよび楽音信号が合成される。
【００１６】
１１８はＤＡコンバータであり、ミキサ１１６のミキシング結果をアナログ信号に変換する。１２０はサウンドシステムであり、該アナログ信号を増幅して発音する。１２４はＭＩＤＩインターフェースであり、外部のＭＩＤＩ機器との間でＭＩＤＩ信号をやりとりする。１２６はその他のインタフェースであり、外部機器との間で波形データ等のやりとりを行う。１２８はタイマであり、所定時間毎にタイマ割込みを発生させる。
【００１７】
１３０はＣＰＵであり、後述するプログラムに基づいて、バスライン１３６を介して波形編集システムの各部を制御する。１３２はＲＯＭであり、イニシャルプログラムローダ等が格納されている。１３４はＲＡＭであり、ＣＰＵ１３０によって読み書きされる。
【００１８】
２．実施形態の動作
２．１．原波形データの録音処理
次に、本実施形態の動作を説明する。
まず、パーソナルコンピュータの電源が投入されると、ＲＯＭ１３２に格納されたイニシャルプログラムローダが実行され、オペレーティングシステムが立上る。このオペレーティングシステムにおいて所定の操作を行うと、本実施形態の波形編集アプリケーションプログラムが起動される。このアプリケーションプログラムにおいて所定の操作を行うと、図２０に示す自動演奏＆波形録音処理ルーチンが起動される。
【００１９】
図２０において処理がステップＳＰ２０２に進むと、自動演奏および波形録音に係る準備処理が行われる。そして、表示器２上に図２１に示す波形録音制御ウィンドウ１５０が表示される。波形録音制御ウィンドウ１５０の内部において１５１は自動演奏ファイルテキストボックスであり、自動演奏ファイル名を指定するために設けられている。１５２は自動演奏スタートボタンであり、指定された自動演奏ファイルの再生開始を指示するために設けられている。また、１５４は自動演奏ストップボタンであり、該自動演奏ファイルの再生停止を指示するために設けられている。
【００２０】
また、１５６は波形録音スタートボタンであり、ＡＤコンバータ１０８、録音回路１１０を介しての波形録音の開始を指示するために設けられている。また、１５８は波形録音ストップボタンであり、該波形録音の停止を指示するために設けられている。１５９はキャンセルボタンであり、全処理の中止を指示するために設けられている。初期状態においては、上記波形録音制御ウィンドウ１５０内の各要素のうち自動演奏ファイルテキストボックス１５１のみがアクティブ（操作可能）状態に設定され、ボタン１５２〜１５９はインアクティブ（操作禁止）状態に設定される。
【００２１】
ここで、ユーザが自動演奏ファイル（例えばＳＭＦ：スタンダードＭＩＤＩフォーマットのファイル）の適切なファイル名を自動演奏ファイルテキストボックス１５１に入力すると、自動演奏スタートボタン１５２とキャンセルボタン１５９とがアクティブ状態に設定され、他の要素がインアクティブ状態に設定される。
【００２２】
次に、処理がステップＳＰ２０４に進むと、波形録音制御ウィンドウ１５０においてアクティブ状態である各要素の操作イベントが検出される。次に、処理がステップＳＰ２０６に進むと、ステップＳＰ２０４の検出結果に基づいて処理が分岐される。まず、なんら操作イベントが検出されなかった時は処理はステップＳＰ２０４に戻り、操作イベントの検出が続行される。また、波形録音制御ウィンドウ１５０においてキャンセルボタン１５９がマウスでクリックされると、直ちに本アプリケーションプログラムの処理が終了する。
【００２３】
一方、波形録音制御ウィンドウ１５０において自動演奏スタートボタン１５２がマウスでクリックされると、処理はステップＳＰ２０８に進む。ここでは、先に指定された自動演奏ファイルの再生が開始される。さらにステップＳＰ２０８においては、自動演奏ストップボタン１５４および波形録音スタートボタン１５６がアクティブ状態に設定され、他の要素がインアクティブ状態に設定される。
【００２４】
次に、処理がステップＳＰ２１０に進むと、波形録音制御ウィンドウ１５０においてアクティブ状態である各要素の操作イベントが検出される。次に、処理がステップＳＰ２１２に進むと、ステップＳＰ２１０の検出結果に基づいて処理が分岐される。まず、なんら操作イベントが検出されなかった時は処理はステップＳＰ２１０に戻り、操作イベントの検出が続行される。また、自動演奏ストップボタン１５４がマウスでクリックされると、自動演奏ファイルの再生処理が停止されるとともに、直ちに本アプリケーションプログラムの処理が終了する。
【００２５】
一方、波形録音制御ウィンドウ１５０において波形録音スタートボタン１５６がマウスでクリックされると、処理はステップＳＰ２１４に進む。ここでは、マイクロフォン６、ＡＤコンバータ８および録音回路１０を順次介して得られた波形データの録音が開始される。すなわち、ＤＡコンバータ１１８および録音回路１１０を順次介して、該波形データがハードディスク１１２に録音されてゆく。さらに、ステップＳＰ２１４においては、自動演奏ストップボタン１５４と波形録音ストップボタン１５８とがアクティブ状態に設定され、他の要素がインアクティブ状態に設定される。
【００２６】
ここで、波形録音処理の詳細をさらに図１６を参照し説明する。
同図(a)は自動演奏情報の楽譜であり、「↑」印を付したタイミングが拍タイミングになる。同図(b)は録音されるフレーズ波形（原波形データ）であり、同図(a)の対応するタイミングに合せて表示されている。また、同図(c)はハードディスク１１２上に録音された波形データ（原波形データ）と、自動演奏情報との関係を示す図である。
【００２７】
同図(c)において２０２，２０４は自動演奏トラックであり、元々の自動演奏情報（元シーケンスデータ）に含まれていたものである。２２４は波形データトラックであり、録音された原波形データが記録される。また、２２２は波形タイミングトラックであり、自動演奏トラック２０２，２０４と波形データトラック２２４とを同期させるための同期制御データが記録される。ここで、同期制御データとしては、録音の開始タイミングや後述する同期データ等のデータである。これら波形タイミングトラック２２２および波形データトラック２２４は、上記録音処理を行うに際して自動演奏情報に追加されたトラックである。
【００２８】
ステップＳＰ２１４までの処理内容から明らかなように、波形録音が開始された時は、既に自動演奏は開始されている。従って、図１６(a)，(b)に示すように、波形録音の開始タイミングは、自動演奏の演奏情報上におけるタイミング（例えば自動演奏が開始された後のタイミングクロック数）によって特定される。この特定された開始タイミングが波形タイミングトラック２２２に記録される。
【００２９】
その後、波形録音処理と自動演奏処理が続行されるが、双方の処理は相互に同期した状態で実行される。具体的には、次のような方法が採られる。
(１)波形データのサンプリング周波数と自動演奏のテンポクロックとを同期させる。この場合、後述する同期データを記憶する必要はない。
(２)波形データのサンプリングを行ないながら、同期データを自動演奏データの所定のトラック（図１６の例では波形タイミングトラック２２２）に記録する。
【００３０】
上記(２)の方法においては、記録される同期データに応じて、さらに以下のようなバリエーションが考えられる。なお、自動演奏処理と波形録音処理との同期を確保する方法はここに挙げるものに限られないことは言うまでもない。
(２−１)所定数のテンポクロック毎に、その時点における波形データのサンプル番号を記録する。
(２−２)各拍タイミング（例えば図１６(a)において「↑」印を付したタイミング）における波形データのサンプル番号を記録する。
(２−３)波形データの所定数のサンプル毎（例えば１０００サンプル毎）のシーケンス位置を記録する。
【００３１】
図２０に戻り、次に処理がステップＳＰ２１６に進むと、波形録音制御ウィンドウ１５０においてアクティブ状態である各要素の操作イベントが検出される。次に、処理がステップＳＰ２１８に進むと、ステップＳＰ２１６の検出結果に基づいて処理が分岐される。まず、なんら操作イベントが検出されなかった時は処理はステップＳＰ２１６に戻り、操作イベントの検出が続行される。また、自動演奏ストップボタン１５４がマウスでクリックされると、処理はステップＳＰ２２２に進み、自動演奏ファイルの再生処理が停止される。一方、波形録音ストップボタン１５８がマウスでクリックされると、処理はステップＳＰ２２０に進み、波形データの録音処理が停止される。
【００３２】
何れの場合においても、次に処理はステップＳＰ２２４に進み、自動演奏および波形録音の両方が停止されているか否かが判定される。ここで、少なくとも一方の処理が続行中であれば「ＮＯ」と判定され、処理はステップＳＰ２１６に戻り、操作イベントの検出が続行される。そして、自動演奏と波形録音の双方が停止されると、次に処理がステップＳＰ２２４に進んだ際に「ＹＥＳ」と判定され、本ルーチンの処理は終了する。
【００３３】
以上の処理により、録音された波形データ（原波形データ）は、同期制御データによって自動演奏情報のタイミングに対応付けられつつ記録されることが解る。但し、ここまでの処理内容においては、波形データトラック２２４には一連の原波形データがそのまま記録されているため、自動演奏のテンポの増減等には対応できない。そこで、原波形データを複数のオリジナルセクションに分割する等の処理が必要になるため、かかる処理の内容を以下詳述する。
【００３４】
２．２．再生用波形データ生成処理
２．２．１．トリミング処理（ＳＰ２，ＳＰ４）
上記波形録音処理によって原波形データが取得された後、所定の操作が行われると、波形編集アプリケーションプログラムにおいて図４に示すプログラムが起動される。まず、原波形データには、その開始部分および終了部分に無音区間が存在する場合がある。そこで、処理がステップＳＰ２に進むと、両無音区間が自動的にトリミング（削除）される。
【００３５】
但し、原波形データに雑音が含まれていた場合等においては、必ずしも適切な位置でトリミングされない場合もある。そこで、処理がステップＳＰ４に進むと、ユーザは、この自動的に決定されたデフォルトのトリミング位置を任意に修正することが可能である。
【００３６】
２．２．２．パラメータ設定（ＳＰ６）
次に、処理がステップＳＰ６に進むと、ユーザによって、制御ポイント検出のための各種パラメータが指定される。指定されるパラメータには、以下のようなものがある。
(１)波形タイプ：このパラメータは、例えば波形データの種別を指定するものであり、「パーカッション系」、「持続系」等に大別され、さらに様々な楽器の原波形データに適した複数のバリエーションに分類されている。この波形タイプに基づいて、閾値等、後述する他のパラメータのデフォルト値が決定される。
【００３７】
ところで、この「波形タイプ」の選択は以下のように行われる。すなわち、表示器１０２に図１９に示すようなパーカッション系選択ボタン８０および持続系選択ボタン８２が表示され、ユーザが何れかのボタンをマウスでクリックすると、対応する波形タイプが選択される。上述した「パーカッション系」は単にパーカッション系の波形データに用いて好適なだけではなく、他系統の断続的な波形データに適用しても望ましい。同図に示すように、パーカッション系選択ボタン８０には断続的な波形が描画され、持続系選択ボタン８２には持続的な波形が描画されているから、ユーザは望ましい波形タイプを一見して判断することができる。
【００３８】
(２)分解能：このパラメータは、強拍および弱拍の制御ポイントを検出するために１小節あたりどの程度の分解能で波形データを検索するかを指定するパラメータである。例えば、「拍子」が「４／４」であるとき、「分解能」は「４分」、「４分＋３」、「８分」、「８分＋３」、「１６分」、「１６分＋３」または「３２分」の何れかを指定可能である（但し、「＋３」は３連符への分割を示す）。ここで、「４分」は１小節を４分するタイミング（４分音符のタイミング）、「４分＋３」は１２分するタイミング、「８分」は８分するタイミング（８分音符のタイミング）、「８分＋３」は２４分するタイミング、「１６分」は１６分するタイミング、「１６分＋３」は４８分するタイミング、「３２分」は３２分するタイミングにおいて、波形データが検索されることになる。なお、分解能を設定するにあたり、「拍子」を特定しておく必要があるが、これは自動演奏情報のパラメータとして元々含まれているため、該パラメータの値が使用される。
【００３９】
２．２．３．不要帯域除去フィルタ処理（ＳＰ８）
トリミングされた波形データには様々な周波数成分が含まれているが、この中には制御ポイント検出のために障害になる成分（不要帯域）も含まれている。そこで、次に処理がステップＳＰ８に進むと、これら不要帯域を除去するためにフィルタ処理が施される。このフィルタ処理は、バンドカット処理およびハイパス処理の２種類に大別されるが、不要帯域が分布している態様は楽曲や楽器に応じて異なるため、フィルタ処理の内容は上記「波形タイプ」に応じて決定すると好適である。すなわち、波形タイプに応じて、バンドカット処理およびハイパス処理の双方あるいは何れか一方のみが実行され、フィルタ処理のパラメータも波形タイプに応じて決定される。
【００４０】
ここで、フィルタ処理におけるパラメータの設定例を述べておく。
まず、波形データの中、メロディ等の音程を持った成分は、制御ポイントの検出に際して障害になる可能性が高い。各種の楽曲を解析した結果、このような成分すなわちボーカルやベース等の持続部分の成分は「８０Ｈz〜８kＨz」の帯域に多く現れ、特に「１００Ｈz〜３００Ｈz」の帯域に多く現れる。そこで、バンドカット処理においては、「８０Ｈz〜８kＨz」の帯域を減衰させ、特に「１００Ｈz〜３００Ｈz」の帯域を強く減衰させるようなフィルタ処理が行われる。なお、ボーカルやベース等のアタック部（子音やアタックノイズ等）は、当該帯域以外にも広がっているため、フィルタ処理を行ったとしても、制御ポイントは検出可能である。
【００４１】
また、バンド演奏等においては、シンバル等の高域音が規則正しく刻まれている場合が多い。かかる場合には、この規則正しい高域成分のみを抽出するハイパス処理を行うと好適である。なお、バンドカット処理およびハイパス処理の何れにおいても急峻なフィルタ特性は不要であるため、ハイパス処理においては１次のフィルタ、バンドカット処理においては２次のフィルタを用いれば実用上充分である。この不要帯域除去フィルタ処理の結果の一例として、図５(a)にトリミング後の波形データ、同図(b)にフィルタ処理の波形を示す。なお、この波形データの例においては、小節数は「２小節」、拍子は「４／４拍子」、分解能は「８分」である。
【００４２】
２．２．４．デフォルトの制御ポイント決定（ＳＰ１２）
次に、処理がステップＳＰ１２に進むと、録音時に再生されていた自動演奏情報の拍タイミングに基づいて、デフォルトの制御ポイントが自動的に決定される。拍タイミングは自動演奏情報の拍子によって決定されるため、４分音符あるいは８分音符等の間隔で発生する。なお、自動演奏の途中でテンポが変化した場合には、変化後のテンポに応じて拍タイミングが変化する。
【００４３】
一方、波形データに対しては、音量エンベロープの立上がり開始位置、ピーク位置等が検出され、これらの検出結果と拍タイミングとの関係に基づいてデフォルトの制御ポイントが設定される。このように決定されたデフォルトの制御ポイントは、波形データとともにディスプレイ８に表示される。その表示例を図２(a)に示す。図において波形データはステレオ録音されたものであり、左（上側）および右（下側）の２系統示されている。制御ポイントは同図のウィンドウ上の縦破線によって示されており、両系統に対して共通である。以下、デフォルトの制御ポイントを決定する処理の詳細を図６を参照し説明する。
【００４４】
（１）ダウンサンプル処理（ＳＰ１０２）
図６において処理がステップＳＰ１０２に進むと、不要帯域が除去された波形データに対してダウンサンプル処理が施される。これは、制御ポイントを決定するために必要なサンプリング周波数は、鑑賞用のオーディオデータのサンプリング周波数と比較してはるかに低いため、その後の処理を高速化させるためにサンプリング周波数を低下させることが好適だからである。
（２）絶対値化処理（ＳＰ１０４）
次に、処理がステップＳＰ１０４に進むと、ダウンサンプルされた波形データの絶対値が求められる。なお、図５(b)の波形に対応して得られた絶対値の例を図７(a)に示す。
【００４５】
（３）エンベロープフォロア処理（ＳＰ１０６）
次に、処理がステップＳＰ１０６に進むと、図７(a)の絶対値波形に対して、エンベロープフォロア処理が行われる。これは、絶対値波形のエンベロープ波形を求める処理であるが、絶対値波形の立ち上がりに対してエンベロープ波形を急峻に立ち上げ、絶対値波形の立ち下がりに対してエンベロープ波形を徐々に立ち下げる点に特徴がある。ここで、エンベロープフォロア処理のアルゴリズムを等価な回路ブロックによって表現した例を図８に示す。これは、回路としては入力の上昇時と下降時で異なる係数を使用するようなローパスフィルタである。
【００４６】
図８において６０は遅延回路であり、１サンプリング周期（ダウンサンプル後の周期、以下同）前のエンベロープレベルを記憶する。６２は減算器であり、現サンプリング周期の絶対値波形レベルから１サンプリング周期前のエンベロープレベルを減算し、その結果を差分信号ｄとして出力する。６６，６８は乗算器であり、各々差分信号ｄが供給されると、これに対して係数ａ1，ａ2（但し、１＞ａ1＞ａ2＞０）を乗算し出力する。
【００４７】
６４はスイッチであり、差分信号ｄが「０」以上である場合は乗算器６６を選択し、また差分信号ｄが「０」未満である場合は乗算器６８を選択し、選択された側の乗算器に当該差分信号ｄを供給する。７０は加算器であり、選択された側の乗算器６６，６８の出力信号と、１サンプリング周期前のエンベロープレベルとの加算結果を現サンプリング周期におけるエンベロープレベルとして出力する。かかるエンベロープフォロア処理によって得られた波形を図７(b)に示す。この波形に対して細かい変動を取り除くため、ステップＳＰ１０６においてはさらにローパスフィルタ処理が施される。このローパスフィルタ処理の結果を同図(c)に示す。
【００４８】
（４）コンプレッサ処理（ＳＰ１０８）
図６において次に処理がステップＳＰ１０８に進むと、コンプレッサ処理が実行される。すなわち、エンベロープフォロア処理結果に基づくエンベロープレベルの平均値が算出され、その平均値よりも高いレベルは低く、また平均値よりも低いレベルは高くなるようにエンベロープレベルが修正される。かかる処理の結果を図７(d)に示す。
【００４９】
（５）エッジ検出フィルタ処理（ＳＰ１１０）
図６において次に処理がステップＳＰ１１０に進むと、エッジ検出フィルタ処理が実行される。これは、エンベロープレベルに対する立ち上がりおよび立下がりを強調する処理である。ここで、エッジ検出フィルタ処理のアルゴリズムを等価な回路ブロック（コムフィルタ）によって表現した例を図９(a)に示す。
【００５０】
図９(a)において７２は遅延回路であり、コンプレッサ処理の施されたエンベロープレベルを入力信号とし、これをｎサンプリング周期（ｎは２以上の自然数）遅延させて出力する。７４は減算器であり、現サンプリング周期の入力信号から、ｎサンプリング周期前の入力信号を減算し、その結果をエッジ検出フィルタ処理結果として出力する。同図(b)に入力信号例、同図(c)にこれをｎサンプリング周期遅延させ反転した信号例、同図(c)にフィルタ出力信号例（同図(b)，(c)の波形の減算結果）を示す。また、かかる処理を図７(d)の波形に施した結果を図１０(a)に示す。
【００５１】
（６）エッジ開始位置／ピーク位置検出処理（ＳＰ１１２）
図６において次に処理がステップＳＰ１１２に進むと、エッジ開始位置／ピーク位置検出処理が実行される。エッジ検出フィルタ処理結果を入力信号として、該入力信号の立ち上がりエッジとピーク位置とを検出する処理である。この処理の概要を図１１を参照し説明する。同図(a)は、入力信号の一部を時間軸上で拡大した図を示している。この図において、入力信号は所定の閾値Ｔhと比較され、入力信号が閾値Ｔhを超えた時刻をエッジ開始位置（時刻ｔ1）とする。
【００５２】
同図(b)に示す出力信号レベルは時刻ｔ1以前は「０」に設定され、時刻ｔ1において「−Ｍ」（Ｍは所定値）に設定される。さらに、入力信号のピーク位置において、出力信号は１サンプリング周期だけ該ピーク値に設定され、しかる後に再び「０」に立ち下げられる。図１０(a)の波形にかかる処理を施した結果を同図(b)に示す。
【００５３】
同図(b)の信号において、レベルが「−Ｍ」に立下がるタイミングが「エッジ開始位置」であり、「−Ｍ」のレベルが継続する時間はエッジ開始位置からピーク位置までの時間（立上り時間Ｔｔ）に等しい。さらにピークレベルはエッジ検出フィルタ処理結果（同図(a)）のピークレベルに等しい。なお、エッジ開始位置、立上り時間Ｔｔおよびピークレベルを総称して「エッジ情報」と呼ぶ。
【００５４】
（７）強拍抽出処理（ＳＰ１１４）
図６において次に処理がステップＳＰ１１４に進むと、強拍抽出処理が実行される。
まず、上述したように原波形データは、自動演奏情報の自動演奏トラック２０２，２０４に同期して記録されているため、この自動演奏情報の拍タイミングに応じて、検出窓が決定される。この検出窓は、拍子に応じて分割される１小節内の各区間（以下、推定強拍区間という）の先頭を基準位置とし、これら推定強拍区間の１／８〜１／２の幅を有する。なお、１／８〜１／２の範囲のうち具体的にどの値を採用するかは「波形タイプ」のパラメータに応じて決定される。
【００５５】
ここで、波形データの小節数を「２」、拍子を「４／４」ととし、窓幅を推定強拍区間の「１／６」とした場合の検出窓を、図１０(b)の波形に重ねて同図(c)に示す。この図において網掛けの施されている部分が検出窓であり、各検出窓の「１／３」（推定強拍区間幅の１／１８）の部分が基準位置よりも前に、「２／３」（推定強拍区間幅の２／１８）の部分が基準位置よりも後に位置するように設定されている。
【００５６】
次に、各検出窓にピーク位置が属するエッジ情報のうち、ピークレベルが所定の閾値Ｔh1を超えるものが抽出される。但し、一つの検出窓において複数のエッジ情報が存在する場合には、最大のピークレベルを有するエッジ情報のみが抽出される。図１０(c)の波形に対して、かかる抽出を行った結果を同図(d)に示す。同図(c)においては、最初の（左端の）検出窓には、閾値Ｔh1を超える２つのエッジ情報のピーク位置が存在するが、同図(d)を参照すると、そのうちピークレベルの高いエッジ情報のみが抽出されている。また、同図(c)において左端から６番目の検出窓には一応エッジ情報が存在するが、ピークレベルが閾値Ｔh1を超えていないため、同図(d)においては抽出されていない。
【００５７】
（８）弱拍抽出処理（ＳＰ１１６）
図６において次に処理がステップＳＰ１１６に進むと、弱拍抽出処理が実行される。
この処理においては、上述したパラメータ設定処理（ＳＰ６）において指定された「分解能」のパラメータに基づいて、各小節を分割する位置に検出窓の基準位置が設定される。但し、先のステップＳＰ１１４において既に強拍が検出された検出窓に対応する基準位置は、本ステップにおいては除かれる。
【００５８】
従って、上記ステップＳＰ１１４において各検出窓で強拍が検出されていた場合には、例えば自動演奏情報の４分の拍タイミング間にある８分の拍タイミングを各基準位置とする新たな検出窓が設けられることになる。一方、先に強拍が抽出されなかった検出窓（図１０(c)において左端から６番目の検出窓）については、本ステップにおいても、改めて弱拍抽出用の検出窓が同一の位置すなわち当該４分の拍タイミング位置に設定される。その結果、弱拍抽出用の検出窓は、図１２(a)の網掛け部分に示すように設定される。
【００５９】
この処理においても、各検出窓の「１／３」（推定強拍区間幅の１／１８）の部分が基準位置よりも前に、「２／３」（推定強拍区間幅の２／１８）の部分が基準位置よりも後に位置するように設定されている。次に、各検出窓にピーク位置が属するエッジ情報のうち、所定の閾値Ｔh2を超えるものが抽出される。但し、一つの検出窓において複数のエッジ情報が存在する場合には、最大のピークレベルを有するエッジ情報のみが抽出される。
【００６０】
ここで、閾値Ｔh2は閾値Ｔh1の「１／５」程度のレベルになるように設定され、閾値Ｔhは閾値Ｔh2よりもさらに小さい値に設定される。ここまでの処理によって抽出された強拍および弱拍の抽出結果を同図(b)に示す。同図(b)によれば、今回の抽出処理により、先の強拍抽出処理（ＳＰ１１４）においてピークレベルが足りなかったために抽出されなかったエッジ情報も抽出されている。上記ステップＳＰ１１４，ＳＰ１１６によって抽出されたエッジ情報のうち、エッジ開始位置は図２(a)において説明した制御ポイントに他ならない。
【００６１】
（９）制御ポイント強制設定処理（ＳＰ１１８）
次に、処理がステップＳＰ１１８に進むと、必要な場合には、これまでにエッジ情報が検出されなかった検出窓の基準位置に制御ポイントが強制的に設定される。「必要な場合に」とは、具体的には波形タイプとして「持続系」が指定されていた場合である。このような設定を行う理由は、「持続系」の波形のエンベロープは規則的に減衰している（単純減衰である）訳ではないので、立上がりが検出されなかった位置に関しても強制的に制御ポイントを設定した方が音楽的に適切な時間軸制御を行えるからである。
【００６２】
２．２．５．制御ポイント編集処理（ＳＰ１４）
次に、処理がステップＳＰ１４に進むと、このデフォルトの制御ポイントがユーザによって編集される。具体的には、上記ウィンドウ上で、必要に応じて制御ポイントが追加、削除または移動される。
【００６３】
２．２．６．挿入セクション１ｉ〜１２ｉの平坦化波形データの決定
上述したように、波形データの始点、終点および制御ポイントによって区切られた区間を、本明細書においては「オリジナルセクション」と呼ぶ。図２(a)のように制御ポイントが決定されたのであれば、同図(b)の上側の長方形列に示されるように、波形データは１２個のオリジナルセクション１ｒ〜１２ｒに分割されることになる。
【００６４】
次に、同図(b)の下側の長方形列に示されるように、各オリジナルセクションと同一の長さを有する１２個のセクション（挿入セクション１ｉ〜１２ｉ）が作成され、この挿入セクション１ｉ〜１２ｉに各オリジナルセクション１ｒ〜１２ｒに続くような波形データが記憶される。これにより、各オリジナルセクション１ｒ〜１２ｒと、対応する挿入セクション１ｉ〜１２ｉとを結合して、同図(c)に示すような結合セクション１ｔ〜１２ｔが得られる。そこで、以下、かかる処理の詳細を説明する。
【００６５】
図４に戻り、処理がステップＳＰ１６に進むと、ユーザにより、挿入セクション１ｉ〜１２ｉに設定される波形データ（エンベロープ調整前）として、
(１)図１３(a)に示すように、対応するオリジナルセクションｎｒ（但し、ｎ＝１〜１２）の次の波形データ（ｎ＋１）ｒをそのままコピーしたもの、あるいは、
(２)同図(b)に示すように対応するオリジナルセクションｎｒの波形データを時間軸上で反転した波形データ
のうち何れかが選択される。
ここで、デフォルトの状態では、波形タイプが「持続系」である場合は同図(a)，パーカッション系である場合は同図(b)の波形データが選択される。その理由について説明しておく。
【００６６】
＜持続系の音に対して＞
まず、持続系の音においては、オリジナルセクションｎｒと挿入セクションｎｉ＝（ｎ＋１）ｒとは元々連続したセクションであるため、オリジナルセクションｎｒから挿入セクション（ｎ＋１）ｒへの滑らかな接続が保証されている。ここで、該挿入セクション（ｎ＋１）ｒ以外のセクションを挿入セクションとして用いることも可能であるが、持続系の音ではアタックの無い部分（持続系の波形の途中）に制御ポイントが設定されることもある（ステップＳＰ１１８を参照）ため、考慮が必要である。すなわち、この場合、オリジナルセクションｎｒと該挿入セクションとの位相が合っていなかった場合には、耳障りなノイズが発生するため、両者間で位相合わせを行う必要が生じ、処理が煩雑になる。一方、上述した例のように、オリジナルセクションｎｒの次のセクション（ｎ＋１）ｒを挿入セクションとして用いれば、挿入セクションの波形データは、より安定した波形データに基づいて作成することができる。
【００６７】
また、持続系の音において、制御ポイントの直後に次の音のアタックがあった場合を想定してみる。この場合、一般的には、次の音のピッチは前の音のピッチとは異なっている。オリジナルセクションと挿入セクションのピッチが異なることは本来は望ましいことではないが、実験結果によれば、両者のピッチが異なっていたとしても、あまり目立たないことが判明した。これは、挿入セクションのエンベロープレベルが前のオリジナルセクションから継続してなめらかに減衰してゆくように制御されていることに起因すると考えられる。すなわち、新たに始まる音のアタック部で音色やピッチが変化すると目立つが、減衰している波形の途中で音色やピッチが変化した場合には、前のアタック部の印象が強いために比較的目立たないものと考えられる。
【００６８】
＜パーカッション系の音に対して＞
次に、パーカッション系の音においては、元々ノイズ的な成分が多いため、オリジナルセクションｎｒから挿入セクションｎｉへの接続部で目立ったノイズは発生しないことが多い。しかし、当該オリジナルセクションｎｒまたは次のオリジナルセクション（ｎ＋１）ｒ等をそのまま挿入セクションｎｉとして用いると、波形の先頭部分のアタックノイズが多少耳障りになる場合がある。そこで、オリジナルセクションｎｒの波形データを時間軸上で反転した波形データを挿入セクションｎｉとして用いることにより、かかる不具合を解消することができる。さらに、オリジナルセクションｎｒと挿入セクションｎｉの接続部分をクロスフェードすると、さらに両者を滑らかに接続することが可能になる。なお、反転した波形データを最後まで読み出すと、該反転波形データの終端部分にアタックノイズが再生され、多少耳障りになることがある。かかる場合は、反転波形データの途中のポイント（例えば先頭から２／３程度の長さのポイント）において、該反転波形データを折り返して（時間軸上でさらに反転させて）読み出すとよい。
【００６９】
挿入セクションは以上説明したデフォルトのものに限定されるわけではなく、各オリジナルセクション毎にユーザは所望の挿入セクションの生成態様を指定することができるため、聴感上で最も好ましいものを選択するとよい。また、ステップＳＰ１６においては、挿入セクションの波形データが選択されると、その波形データの各部のレベルが、該波形データのエンベロープレベルで除算される。これにより、挿入セクションの波形データは、エンベロープが平坦な波形データに変換される。
【００７０】
２．２．７．挿入セクション１ｉ〜１２ｉに対するエンベロープの付与
次に、処理がステップＳＰ１８に進むと、挿入セクション１ｉ〜１２ｉのエンベロープ波形が決定される。その決定方法を図１４を参照し説明する。図においてあるオリジナルセクションｎｒのエンベロープレベルの最大値をＬ１とし、オリジナルセクションｎｒの終端のエンベロープレベルをＬ２とし、この最大値Ｌ１が現れてからオリジナルセクションｎｒの終端までの時間をＴとする。この期間内においてエンベロープレベルの減衰率ｄｒは、
ｄｒ＝（Ｌ１／Ｌ２）1/T
によって求めることができる。
【００７１】
次に、オリジナルセクションｎｒに対応する挿入セクションｎｉのエンベロープレベルの初期値を上記Ｌ２とし、減衰率ｄｒが維持されるように挿入セクションｎｉのエンベロープが決定される。具体的には、挿入セクションｎｉの開始時刻ｔ＝０としたとき、挿入セクションｎｉ内の各部のエンベロープレベルは、Ｌ２／ｄｒtによって求められる。これにより、図１４に示すように、挿入セクションｎｉのエンベロープ特性は、オリジナルセクションｎｒに対して自然につながるように設定される。
【００７２】
但し、制御ポイントの決定時に単純決定モードが選択された場合等においては、オリジナルセクションｎｒの終端部においてエンベロープレベルが最大になることも考えられる。かかる場合には、図１５に示すように、挿入セクションｎｉのエンベロープレベルは、オリジナルセクションｎｒの終端時のレベルに制限される。具体的には、上記計算式により求めた減衰率ｄｒが１より小さくなる場合に、挿入セクションのエンベロープ値を求めるための減衰率ｄｒを強制的に１に設定し、あるいは、減衰率ｄｒに関して１より大きな下限値「ｄｒ_min」を決めておき、減衰率ｄｒが必ずそれより大きくなるように制御してもよい。
【００７３】
以上のように、各挿入セクションのエンベロープが決定されると、各挿入セクション１ｉ〜１２ｉの平坦化波形データの各部に対して、該決定されたエンベロープが乗算される。これにより、各挿入セクションの波形データは、この決定されたエンベロープを有するようになる。
【００７４】
このように、挿入セクション１ｉ〜１２ｉの波形データが決定されると、結合セクション１ｔ〜１２ｔの波形データが決定されたことに他ならない。これら結合セクション１ｔ〜１２ｔの波形データは、原波形データに代えて、自動演奏情報の波形データトラック２２４に書き込まれる。さらに、波形タイミングトラック２２２においては、各結合セクション１ｔ〜１２ｔの開始タイミング（タイミングクロック数）と、これら結合セクションの波形データの立上り時間Ｔｔとが書き込まれる。なお、立上り時間Ｔｔは必須ではないが、これを書き込んでおくことにより、一層好ましいタイミングで波形データを再生することが可能になる（後述する再生テンポ設定／変更処理参照）。
【００７５】
２．３．再生テンポ設定／変更処理
ユーザは、演奏処理の前に、あるいは演奏処理の途中で適宜再生テンポを設定／変更することができる。ここで、設定されたテンポが録音時のテンポに等しければ、波形タイミングトラック２２２（図１６参照）に記録されたクロック数をそのまま用いればよい。しかし、再生時のテンポが録音時のテンポとは異なる場合には、単に両者の比に応じて各区間の再生開始タイミングを制御すると、特に立ち上がりの遅い波形において「もたれ」が生じるという問題が生ずる。
【００７６】
その内容を図３(a)を参照し説明する。同図(a)において再生開始時刻（０）から波形の立ち上がりが開始されるまでの時間がエッジ開始時間Ｔｓであり、立ち上がりが開始された後、波形レベルがピークに達するまでの時間が立上り時間Ｔｔである。
【００７７】
同図(a)の実線は録音時のテンポで再生した波形データのエンベロープレベルを示している。人間の聴覚では、エンベロープレベルのピーク位置すなわち再生開始後「Ｔｓ＋Ｔｔ」の時間が経過したタイミングで拍が生じるように感じられる。次に、同図(a)の一点鎖線は、録音時のテンポをｎ倍に伸張して波形データを再生した例を示す。なお、図示の例では「ｎ＝２」の場合を想定して描画している。この場合、エッジ開始時間は録音時のｎ倍「ｎＴｓ」であるが、実際に人間の聴覚で拍を感じる時間は、録音時のｎ倍「ｎ（Ｔｓ＋Ｔｔ）」よりも短い「ｎＴｓ＋Ｔｔ」になる。
【００７８】
この結果、波形を伸張して再生すると、好ましいタイミングよりも速いタイミングに拍が生じるように感じられることになる。逆に、録音時よりもテンポを圧縮した場合は、好ましいタイミングよりも遅いタイミングに拍が生じるように感じられることになる。
【００７９】
そこで、本実施形態においては、再生テンポが設定または変更された際に、波形タイミングトラック２２２に記録されている各生成開始クロック数は、該クロック数に対応する時間（クロック数×クロック周期）が「ｎ（Ｔｓ＋Ｔｔ）−Ｔｔ」になるような（あるいは最も近くなるような）値に修正される。この結果、図３(b)に示すように、聴感上の拍すなわちピーク位置は、さらに立上り時間Ｔｔだけ経過したタイミングすなわち「ｎ（Ｔｓ＋Ｔｔ）」となる。なお、テンポに応じて生成開始クロック数を変更することに代えて、立上り時間Ｔｔに応じてクロック周期を増減するようにしてもよい。すなわち、テンポクロックが発生する毎に、次のテンポクロックまでの周期を適宜増減することにより、生成開始クロック数自体は一定に保ちつつ、テンポに応じたタイミング制御を行うことが可能になる。
【００８０】
２．４．演奏処理
次に、上述した波形タイミングトラック２２２および波形データトラック２２４を追加して成る自動演奏情報（合成シーケンスデータ）に基づいて、自動演奏処理を行う動作を説明する。まず、自動演奏の開始が指示されると、指定されたテンポに基づいて４分音符の「１／６４」の間隔でテンポクロックが生成される。そして、自動演奏時においては、テンポクロックが発生する毎に図１７に示すプログラムが実行される。
【００８１】
図１７において処理がステップＳＰ３２に進むと、変数tcountが「１」だけインクリメントされる。なお、変数tcountは、自動演奏開始時に「０」に初期設定されており、自動演奏開始から現在に至るまでのテンポクロック数をカウントする変数になる。次に、処理がステップＳＰ３４に進むと、該変数tcountの値に基づいて波形データ以外のイベントタイミングに達したか否かが判定される。
【００８２】
すなわち、自動演奏トラック２０２，２０４においては、ノートオン、ノートオフ等のイベントデータが発生順に記録されているが、これらのイベントデータには、当該イベントを発生させるべきテンポクロックに相当するタイミングデータが含まれている。従って、各トラックの先頭のイベントデータ内のタイミングデータを参照することにより、イベントタイミングに達したか否かが判断できる。
【００８３】
ステップＳＰ３４において「ＹＥＳ」と判定されると、処理はステップＳＰ３６に進み、当該イベントデータに対応するイベント処理が実行される。例えば、イベントデータがノートオンイベントであれば、ＣＰＵ１３０の指令に基づいて音源１２２において新たな発音チャンネルが割り当てられ、該発音チャンネルにおいて楽音信号が合成される。合成された楽音信号はミキサ１１６、ＤＡコンバータ１１８およびサウンドシステム１２０を順次介して発音される。また、該イベントデータがノートオフイベントであった場合は、対応する発音チャンネルにおいて消音処理が行われることになる。
【００８４】
一方、未だ次のイベントデータのイベントタイミングに達していなければ、ステップＳＰ３４において「ＮＯ」と判定され、処理はステップＳＰ３８に進む。ここでは、何れかの結合セクションの波形データの読出し開始タイミングに達したか否かが判定される。結合セクションの波形データについては、デフォルトの読出し開始タイミングが波形タイミングトラック２２２に記録されていることは上述した通りである。しかし、ここでいう読出し開始タイミングとは、立上り時間Ｔｔに基づく補正後のタイミング、すなわち上述した「ｎ（Ｔｓ＋Ｔｔ）−Ｔｔ」に相当するタイミングである。
【００８５】
ここで「ＹＥＳ」と判定されると、処理はステップＳＰ４０に進み、対応する波形データの読出しが開始される。ここで、この読出し速度は、後述するピッチシフト量の値に応じて制御される。ピッチシフト量が「０」である場合は、読出し速度が録音時の書込み速度と同じ速度とされ、ピッチシフト量が正の場合はそれより速い速度、ピッチシフト量が負の場合はそれより遅い速度とされる。よく知られているように、読み出された波形データのピッチは該読出し速度が速いほど高くなり、遅いほど低くなる。
【００８６】
対応する波形データの読出しが開始されることにより、この時点の直前まで別の波形データの読出し処理が行われていたとしても、ステップＳＰ４０においては、該別の波形データと交代する形で新たな波形データの読出しが開始されることになる。一方、ステップＳＰ３８において「ＮＯ」と判定されると、ステップＳＰ４０はスキップされ、読出し中の波形データが変更されることなく、本ルーチンの処理は終了する。
【００８７】
上記処理によれば、変数tcountが先頭の結合セクション１ｔの読出し開始タイミングに達すると、直ちに結合セクション１ｔの波形読出しが開始される。その後、変数tcountが次の結合セクション２ｔの読出し開始タイミングに達すると、結合セクション１ｔの波形データの読出しが中止され、結合セクション２ｔの波形データの読出しが開始される。結合セクション１ｔと結合セクション２ｔとを滑らかに接続するために、結合セクション１ｔの読出しを中止する部分の波形データと結合セクション２ｔの読出しを開始する部分の波形データをクロスフェード接続するようにしてもよい。以上の処理により、順次読み出される波形データは、再生回路１１４、ミキサ１１６、ＤＡコンバータ１１８およびサウンドシステム１２０を順次介して発音される。
【００８８】
以下同様に、変数tcountの増加に応じて結合セクション３ｔ以降の読出しが順次開始されてゆく。次に、かかる処理により、実際に生成される楽音波形を図１８を参照し説明する。同図(b)は、再生時および録音時のテンポ比を１.００に設定した場合に読み出されるセクションを示す。かかる場合は、各結合セクションの「１／２」すなわちオリジナルセクションの部分が全て読出された時に、次の結合セクションの読出しが開始される。これにより、再生される楽音波形は、原波形データと一致する。
【００８９】
また、同図(a)は、再生時および録音時のテンポ比を０.６７に設定した場合に読み出されるセクションを示す。かかる場合には、オリジナルセクションの長さを基準にすると約「６７％」再生された時点で次のセクションの読出しが開始される。なお、実際に次のセクションの読出しが開始されるタイミングは、該次のセクションの立上り時間Ｔｔに応じて異なることは上述した通りである。これにより、各オリジナルセクションの残りの部分（約３３％）および挿入セクションは再生されないことになる。
【００９０】
また、同図(c)は、再生時および録音時のテンポ比を１.６５に設定した場合に読み出されるセクションを示す。かかる場合には、オリジナルセクションの長さを基準にすると約「１６５％」再生された時点で次のセクションの読出しが開始される。これにより、各オリジナルセクションと、各挿入セクションの前半約６５％の部分が再生されることになる。
【００９１】
そして、再生時のテンポや再生に用いられる波形データは、ユーザが操作子１０４を介してリアルタイムに変更することができる。同様に、各セクションを読出す速度すなわちピッチシフト量も操作子１０４を介してリアルタイムに変更することが可能である。また、予め定めたシーケンスに基づいて、再生される波形データ、テンポ、あるいはピッチシフト量を自動的に変遷させるようにしてもよい。これにより、ユーザの操作あるいは予め定められたシーケンスに基づいて、多彩な態様で波形データが再生され発音される。
【００９２】
３．実施形態の効果
以上のように、本実施形態によれば、原波形データを波形データトラック２２４に記録する際に、自動演奏情報に対する同期データが波形タイミングトラック２２２に記録されるから、録音された原波形データおよびこれに基づいて生成された再生用波形データを、元々の自動演奏情報に自動的に同期させることができる。
【００９３】
さらに、本実施形態においては、オリジナルのエッジ開始時間Ｔｓおよび立上り時間Ｔｔと、再生時のテンポ（テンポの伸縮率ｎ）との関係に応じて、生成開始クロック数を補正することにより、「ｎ（Ｔｓ＋Ｔｔ）−Ｔｔ」のタイミングで各オリジナルセクションの再生を開始させることができるから、テンポの伸縮率ｎと聴感上の拍タイミングとの整合性を確保することができる。
【００９４】
４．変形例
本発明は上述した実施形態に限定されるものではなく、例えば以下のように種々の変形が可能である。
（１）上記実施形態はパーソナルコンピュータ上で動作するアプリケーションプログラムによって波形編集システムを実現したが、同様の機能を各種の電子楽器、携帯電話器、アミューズメント機器、その他楽音を発生する装置に使用してもよい。また、上記実施形態に用いられるソフトウエアをＣＤ−ＲＯＭ、フロッピーディスク等の記録媒体に格納して頒布し、あるいは伝送路を通じて頒布することもできる。
【００９５】
（２）上記実施形態においては、波形データ全体のエンベロープを分析したが、基準位置近傍の部分、例えば各検出窓に対応する部分のみ、エンベロープを分析するようにしてもよい。
【００９６】
（３）上記実施形態においては、各オリジナルセクションに対応して予め挿入セクションの波形データを生成したが、各挿入セクションの波形データを波形データ再生中に、ないし波形再生の指示を受けて波形データ再生を開始する直前に生成するようにしてもよい。これにより、波形データを格納しておくための記憶容量を削減することができる。
【００９７】
（４）原波形データに対する分割位置（制御ポイント）を決定する処理は上記実施形態のものに限定されないことは言うまでもない。例えば、上記実施形態においては、自動演奏情報の拍タイミングを検出窓の基準位置として制御ポイントを決定したが、拍タイミングに代えて、自動演奏情報の各ノートオンタイミング（図１６(a)における各音符のタイミング）またはノートオフタイミングを検出窓の基準位置としてもよい。
【００９８】
（５）また、上記実施形態においては、一旦原波形データを波形データトラック２２４に記録した後に制御ポイントを決定する処理を行ったが、ＣＰＵ１３０の処理能力が充分に高い場合には、原波形データを録音しながら同時に制御ポイントを決定するようにしてもよい。
【００９９】
（６）上記実施形態においては、制御ポイントを決定する際の分解能を原波形データの録音後に指定したが、分解能の指定は原波形データの録音前にしてもよく、録音後にしてもよい。
【０１００】
（７）上記実施形態のステップＳＰ８の不要帯域除去処理においては、ハイパス処理およびバンドカット処理によるフィルタ処理を行ったが、これらに代えて、あるいはこれらに加えて他の処理、例えば低域を減衰させる処理や高域をブーストする処理等を行ってもよい。
【０１０１】
（８）上記実施形態のステップＳＰ１１０においては、エッジ部分を検出するためにコムフィルタによるフィルタ処理を行ったが、これに代えて、エンベロープの傾きに対応した値を生成するような如何なるフィルタ処理でエッジ検出してもよい。例えば、単純にエンベロープレベルを微分するフィルタ処理でもよいし、さらに、この微分結果に対してローパスフィルタ処理を行ってもよい。
【０１０２】
（９）上記実施形態のステップＳＰ１１６においては、弱拍検出のための検出窓の基準位置は、各推定強拍区間を２分する位置、すなわち強拍検出のための基準位置間を２分する位置に設けられた。しかし、弱拍検出のための検出窓の位置はこれに限定されるものではない。すなわち、ステップＳＰ１１４において実際に抽出された強拍のエッジ開始位置同士あるいはピーク位置同士の間隔を２分する位置を求め、この求めた位置を弱拍検出のための検出窓の基準位置にしてもよい。
【０１０３】
（１０）上記実施形態のステップＳＰ１６においては、エンベロープ調整前の挿入セクションの波形データとして、対応するオリジナルセクションの波形データまたはこれを反転したものがそのまま用いられた。しかし、特に安定した音程成分を有するメロディパート等の波形データの場合には、オリジナルセクションの後半部分のピッチを検出し、このピッチ単位でオリジナルセクションの一部（部分波形）を繰り返えすことによって挿入セクションを生成してもよい。これにより、アタック部分特有の不安定さが挿入セクションに現れることを防止することができる。
【０１０４】
なお、部分波形のサイズは一定（ループ波形）であってもよく、ランダムな長さに設定してもよい。また、オリジナルセクションの後半部分で安定してピッチが検出された場合にはオリジナルセクションの一部を繰り返し、ピッチが検出されなかった場合にはオリジナルセクション全体（またはこれを反転したもの）をコピーして、挿入セクションのエンベロープ調整前の波形データに設定してもよい。
【０１０５】
（１１）また、上記実施形態においては、各挿入セクションは、その直前のオリジナルセクションの波形データ（またはこれを反転したもの）に基づいて作成されたが、次のオリジナルセクションの波形データに基づいて各挿入セクションを生成してもよい。例えば、挿入セクション１ｉは、オリジナルセクション２ｒの波形データに基づいて生成してもよい。
【０１０６】
（１２）また、上記実施形態においては、波形データの種別を「パーカッション系」と「持続系」の２種類に分けていたが、波形データを３種類以上の種別に別けてもよい。
【０１０７】
（１３）また、上記実施形態においては、拍子の設定に応じて強拍抽出用の検出窓を設定し、分解能の設定に応じて弱拍抽出用の検出窓を設定したが、これらを必ずしも拍子や分解能に応じて設定する必要はない。例えば、強拍抽出用の検出窓と弱拍抽出用の検出窓とをそれぞれ独立して指定するようにしてもよい。あるいは、設定された拍子に応じて、強拍抽出用の検出窓と弱拍抽出用の検出窓とをそれぞれ設定するようにしてもよい。さらに、前述したような録音時のメトロノームのタイミングに基づいて両検出窓を設定する方法もある。
【０１０８】
【発明の効果】
以上説明したように本発明によれば、自動演奏情報と波形データとのタイミングの関係を示す同期データを記録しつつ、波形データを記録するため、波形データを自動演奏情報に容易に同期させることができる。
さらに、該波形データのエンベロープレベルを求め、同期データと、エンベロープレベルとに基づいて、波形データの区切り位置を求める構成によれば、有効な立ち上がり位置を区切り位置として効率的に抽出ことができる。さらに、推定拍位置に対応して立ち上がり位置を抽出することにより、誤検出を防止し、安定して立ち上がり位置を検出することができる。換言すれば、本来区切ることが期待されている位置の付近で、かつ、音楽的により適切な位置を区切り位置とすることができ、区切り位置が誤検出されたり、音楽的に適切でない位置で分割されるような事態を未然に防止することができる。
【０１０９】
さらに、自動演奏情報の拍タイミング、ノートオンタイミングまたはノートオフタイミングに基づいて、推定拍位置を決定する構成によれば、自動演奏情報に元々含まれている情報を効率的に利用しつつ区切り位置を検出することができる。
さらに、上記拍タイミング、ノートオンタイミングまたはノートオフタイミングに基づく一つの所定の範囲に属する複数の立ち上がり位置のうち、一つの立ち上がり位置を選択して波形データの区切り位置として抽出する構成によれば、不要な立ち上がり位置を効率的に除去することが可能になる。
【図面の簡単な説明】
【図１】  本発明の一実施形態の波形編集システムのブロック図である。
【図２】  上記実施形態において挿入セクションおよび結合セクションを生成する処理の動作説明図である。
【図３】  従来例および上記実施形態における再生処理の動作説明図である。
【図４】  上記実施形態における再生用波形データ生成処理のフローチャートである。
【図５】  上記実施形態における不要帯域除去処理（ＳＰ８）の前後の波形図である。
【図６】  デフォルトの制御ポイント決定処理のフローチャートである。
【図７】  絶対値化処理（ＳＰ１０４）の出力波形図である。
【図８】  エンベロープフォロア処理（ＳＰ１０６）の等価回路図である。
【図９】  エッジ検出フィルタ処理の等価回路図およびその各部の波形図である。
【図１０】  エッジ検出フィルタ処理、エッジ開始位置／ピーク位置検出処理、および強拍抽出処理（ＳＰ１１０〜ＳＰ１１４）の出力波形図である。
【図１１】  エッジ開始位置／ピーク位置検出処理（ＳＰ１１２）の動作説明図である。
【図１２】  弱拍抽出処理（ＳＰ１１６）の動作説明図および出力波形図である。
【図１３】  挿入セクションｎｉにおける波形データの設定処理の動作説明図である。
【図１４】  挿入セクションｎｉにおけるエンベロープレベルの設定処理の動作説明図である。
【図１５】  挿入セクションｎｉにおけるエンベロープレベルの設定処理の動作説明図である。
【図１６】  自動演奏情報と原波形データとのタイミング関係を示す図である。
【図１７】  演奏処理ルーチンのフローチャートである。
【図１８】  再生される波形データの圧縮／伸張処理の説明図である。
【図１９】  パーカッション系選択ボタン８０および持続系選択ボタン８２を示す図である。
【図２０】  自動演奏＆波形録音処理ルーチンのフローチャートである。
【図２１】  波形録音制御ウィンドウ１５０の表示例を示す図である。
【符号の説明】
１ｉ〜１２ｉ……挿入セクション、１ｒ〜１２ｒ……オリジナルセクション、１ｔ〜１２ｔ……結合セクション、６０……遅延回路、６２……減算器、６４……スイッチ、６６，６８……乗算器、７０……加算器、７２……遅延回路、７４……減算器、８０……パーカッション系選択ボタン、８２……持続系選択ボタン、１０２……表示器、１０４……操作子、１０６……マイクロフォン、１０８……ＡＤコンバータ、１１０……録音回路、１１２……ハードディスク、１１４……再生回路、１１６……ミキサ、１１８……ＤＡコンバータ、１２０……サウンドシステム、１２２……音源、１２４……ＭＩＤＩインターフェース、１２６……インタフェース、１２８……タイマ、１３０……ＣＰＵ、１３２……ＲＯＭ、１３４……ＲＡＭ、１５０……波形録音制御ウィンドウ、１５１……自動演奏ファイルテキストボックス、１５２……自動演奏スタートボタン、１５４……自動演奏ストップボタン、１５６……波形録音スタートボタン、１５８……波形録音ストップボタン、１５９……キャンセルボタン、２０２，２０４……自動演奏トラック、２２２……波形タイミングトラック、２２４……波形データトラック。
【図１】
0003731476.tif 000002
【図２】
0003731476.tif 000003
【図３】
0003731476.tif 000004
【図４】
0003731476.tif 000005
【図５】
0003731476.tif 000006
【図６】
0003731476.tif 000007
【図７】
0003731476.tif 000008
【図８】
0003731476.tif 000009
【図９】
0003731476.tif 000010
【図１０】
0003731476.tif 000011
【図１１】
0003731476.tif 000012
【図１２】
0003731476.tif 000013
【図１３】
0003731476.tif 000014
【図１４】
0003731476.tif 000015
【図１５】
0003731476.tif 000016
【図１６】
0003731476.tif 000017
【図１７】
0003731476.tif 000018
【図１８】
0003731476.tif 000019
【図１９】
0003731476.tif 000020
【図２０】
0003731476.tif 000021
【図２１】
0003731476.tif 000022