(57)【特許請求の範囲】
【請求項１】
オーディオ波形を表す波形データを記憶する記憶手段と、
該オーディオ波形を再生するときのテンポを表す再生テンポ情報を入力する再生テンポ情報入力手段と、
共通の軸上のそれぞれの位置を表す第１の情報（ＴＰ）と第２の情報（ＰＰ）であって、
該再生テンポ情報に基づいた時間関数である該第１の情報（ＴＰ）を生成する第１の時間関数生成手段と、
前記波形データのサンプリング周波数と時間軸圧縮伸長情報（ＴＲ）とに基づいた時間関数である該第２の情報（ＰＰ）を生成する第２の時間関数生成手段と、
該第１の情報と該第２の情報とを比較し、第１の情報の時間変化に第２の情報の時間変化が一致する方向に該時間軸圧縮伸長情報（ＴＲ）を演算する時間軸圧縮伸長情報生成手段と、
該時間軸圧縮伸長情報（ＴＲ）に基づき該オーディオ波形を時間軸圧縮伸長処理して再生オーディオ波形を生成する時間軸圧縮伸長処理手段とを備えたオーディオ波形再生装置。
【請求項２】
該記憶手段の波形データは、該オーディオ波形をサンプリング録音した振幅値データの時系列であるＰＣＭデータであって、
該時間軸圧縮伸長処理手段は、該ＰＣＭデータを時間軸圧縮伸長情報（ＴＲ）に基づいて時間軸圧縮伸長処理して再生オーディオ波形を生成するものである請求項１記載のオーディオ波形再生装置。
【請求項３】
該共通の軸上とは、該ＰＣＭデータのアドレス上の位置を表すものである請求項２記載のオーディオ波形再生装置。
【請求項４】
該記憶手段は、該オーディオ波形を録音するときのテンポを表すオリジナルテンポ情報を更に記憶するものであり、
該再生テンポ情報は、該オーディオ波形を再生するときのテンポに対応して発生するテンポクロックの周期を示すものであり、
該第１の時間関数生成手段は、該オリジナルテンポ情報に基づいて該再生テンポ情報の１周期あたりのアドレスの変化量を算出し、該テンポクロックが入力される毎に逐次に該変化量ずつ歩進される該ＰＣＭデータ上の位置を表す時間関数である第１の情報（ＴＰ）を生成するもので、
該第２の時間関数生成手段は、再生サンプリング周期毎に逐次に該時間軸圧縮伸長情報（ＴＲ）ずつ歩進される該ＰＣＭデータ上の位置を表す時間関数である第２の情報（ＰＰ）を生成するもので、
該時間軸圧縮伸長情報生成手段は、該再生テンポ情報毎に該第１の情報（ＴＰ）と第２の情報（ＰＰ）とを比較して該第１の情報に第２の情報が一致する方向の歩進量である該時間軸圧縮伸長情報（ＴＲ）を演算するものである請求項３記載のオーディオ波形再生装置。
【請求項５】
該記憶手段の波形データは、該オーディオ波形を分析しそのオーディオ波形を表す分析データであって、
該時間軸圧縮伸長処理手段は、該分析データを該時間軸圧縮伸長情報（ＴＲ）に基づいて時間軸圧縮伸長処理して再生オーディオ波形を生成するものである請求項１記載のオーディオ波形再生装置。
【請求項６】
該共通の軸上とは、該オーディオ波形の時間軸を表す仮想アドレス上の位置を表すものである請求項５記載のオーディオ波形再生装置。
【請求項７】
該記憶手段は、該オーディオ波形を録音するときのテンポを表すオリジナルテンポ情報を更に記憶するものであり、
該再生テンポ情報は、該オーディオ波形を再生するときのテンポに対応して発生するテンポクロックの周期を示すものであり、
該第１の時間関数生成手段は、該オリジナルテンポ情報に基づいて該再生テンポ情報の１周期あたりのアドレスの変化量を算出し、該テンポクロックが入力される毎に逐次に該変化量ずつ歩進される該仮想アドレス上の位置を表す時間関数である第１の情報（ＴＰ）を生成するもので、
該第２の時間関数生成手段は、再生サンプリング周期毎に逐次に該時間軸圧縮伸長情報（ＴＲ）ずつ歩進される該仮想アドレス上の位置を表す時間関数である第２の情報（ＰＰ）を生成するもので、
該時間軸圧縮伸長情報生成手段は、該再生テンポ情報毎に該第１の情報（ＴＰ）と第２の情報（ＰＰ）とを比較して該第１の情報に第２の情報が一致する方向の歩進量である該時間軸圧縮伸長情報（ＴＲ）を演算するものである請求項６記載のオーディオ波形再生装置。
【請求項８】
該時間軸圧縮伸長処理手段において生成されるオーディオ波形は、該再生テンポに基づく所定の繰返し周期毎に、オーディオ波形の先頭位置から生成を繰り返すように構成した請求項１〜７のいずれかに記載のオーディオ波形再生装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、固有のテンポを持つオーディオ波形をサンプリング録音などで記憶しておき、このオーディオ波形を、再生時に任意に指定した再生テンポにテンポを変更して再生するオーディオ波形再生装置に関するものである。
【０００２】
この再生テンポは外部から入力されたテンポ情報（例えばＭＩＤＩ信号の場合はＦ８で表わされるシステム・リアルタイム・メッセージのタイミング・クロックなど）あるいは装置内部で設定した内部テンポ情報のいずれでもよく、本装置ではこれらのテンポ情報に応じた再生速度で波形再生を行うことができる。
【０００３】
【従来の技術】
従来、サンプリング録音したオーディオ波形を再生するにあたり、ピッチを変えずにその再生速度を変化させる時間軸圧縮伸長技術が種々知られており、オーディオ波形を再生するにあたりその元のテンポ（録音時のテンポ）を任意のテンポに変える場合にもこの時間軸圧縮伸長技術が利用される。
【０００４】
例えば、特開平７−２９５５８９号公報に開示されている発明では、サンプリング録音したオーディオ波形を、その録音時のテンポから所望の再生テンポに変更するよう時間軸圧縮伸長して再生する場合には、オーディオ波形のオリジナルのテンポ（録音時のテンポ）と再生しようとするテンポとの比を求めて、その比を時間軸圧縮伸長量とすることで、オーディオ波形の時間軸を圧縮／伸長して、元のオーディオ波形を再生テンポの再生速度で再生している。
【０００５】
【発明が解決しようとする課題】
しかしながら、上記の方法は、オーディオ波形の再生にあたり、まず初めに時間軸圧縮伸長処理の量を求めてそれを予め設定し、波形再生している間にわたりその時間軸圧縮伸長処理の量を維持するものである。一方、音楽は通常、時間経過に従ってテンポがある程度変化するものであり、このため、オーディオ波形の再生の進行に従って、設定したテンポ比に誤差が生じてくることになり、その誤差が蓄積してテンポが外れてしまうので、テンポの時間変化に追従したオーディオ波形の再生が難しかった。また、再生中に再生速度の変更（例えばリタルダンドやアッチェレランドなどのような速度標語による変更など）があったりした場合にも、再生テンポに追従したオーディオ波形の再生ができない。
【０００６】
本発明は上述の問題点に鑑みてなされたものであり、録音したオーディオ波形を、録音時のテンポとは異なる任意のテンポで再生するときにも、テンポを外すことなく再生することを目的とする。また、オーディオ波形を、テンポの時間的な変化に対しても正確に追従して再生することを目的とするものであり、特に、リアルタイムの処理においても、テンポ情報の時間的な変化に正確に追従できるものである。
【０００７】
【課題を解決するための手段および作用】
上述の課題を解決するために、請求項１記載のオーディオ波形再生装置は、オーディオ波形を表す波形データを記憶する記憶手段と、該オーディオ波形を再生するときのテンポを表す再生テンポ情報を入力する再生テンポ情報入力手段と、共通の軸上のそれぞれの位置を表す第１の情報（ＴＰ）と第２の情報（ＰＰ）であって、該再生テンポ情報に基づいた時間関数である該第１の情報（ＴＰ）を生成する第１の時間関数生成手段と、前記波形データのサンプリング周波数と時間軸圧縮伸長情報（ＴＲ）とに基づいた時間関数である該第２の情報（ＰＰ）を生成する第２の時間関数生成手段と、該第１の情報と該第２の情報とを比較し、第１の情報の時間変化に第２の情報の時間変化が一致する方向に該時間軸圧縮伸長情報（ＴＲ）を演算する時間軸圧縮伸長情報生成手段と、該時間軸圧縮伸長情報（ＴＲ）に基づき該オーディオ波形を時間軸圧縮伸長処理して再生オーディオ波形を生成する時間軸圧縮伸長処理手段とを備えている。
【０００８】
このオーディオ波形再生装置は、録音したオーディオ波形を再生する再生テンポの時間的な変化に対しても正確に追従する時間軸圧縮伸長情報を生成し、その時間軸圧縮伸長情報に従って、録音したオーディオ波形に時間軸圧縮伸長処理を施すというものであり、再生テンポ情報の時間的な変化に対しても正確に追従してオーディオ波形を再生することができる。すなわち、記憶手段に、オーディオ波形を表す波形データとオーディオ波形の録音時のテンポであるオリジナルテンポ情報とを予め記憶しておく。再生テンポ情報入力手段によって、オーディオ波形を再生するときのテンポを表す再生テンポ情報を入力する。第１の時間関数生成手段は、再生テンポ情報に基づいた時間関数である第１の情報（ＴＰ）を生成し、第２の時間関数生成手段は、波形データのサンプリング周波数と時間軸圧縮伸長情報（ＴＲ）とに基づいた時間関数である第２の情報（ＰＰ）を生成する。時間軸圧縮伸長情報生成手段は、第１の情報と第２の情報とを比較し、第１の情報の時間変化に第２の情報の時間変化が一致する方向に時間軸圧縮伸長情報（ＴＲ）を演算する。このように時間軸圧縮伸長情報（ＴＲ）を逐次に演算することで、時間軸圧縮伸長処理手段は、この時間軸圧縮伸長情報に基づきオーディオ波形を時間軸圧縮伸長処理して、録音したオーディオ波形を再生テンポ情報の時間的な変化に対しても正確に追従して再生することができる。
【０００９】
請求項２記載のオーディオ波形再生装置は、請求項１記載のオーディオ波形再生装置において、該記憶手段の波形データは、該オーディオ波形をサンプリング録音した振幅値データの時系列であるＰＣＭデータであって、該時間軸圧縮伸長処理手段は、該ＰＣＭデータを時間軸圧縮伸長情報（ＴＲ）に基づいて時間軸圧縮伸長処理して再生オーディオ波形を生成するものである。
【００１０】
請求項３記載のオーディオ波形再生装置は、請求項２記載のオーディオ波形再生装置において、該共通の軸上とは、該ＰＣＭデータのアドレス上の位置を表すものである。
【００１１】
【００１２】
請求項４記載のオーディオ波形再生装置は、請求項３記載のオーディオ波形再生装置において、該記憶手段は、該オーディオ波形を録音するときのテンポを表すオリジナルテンポ情報を更に記憶するものであり、該再生テンポ情報は、該オーディオ波形を再生するときのテンポに対応して発生するテンポクロックの周期を示すものであり、該第１の時間関数生成手段は、該オリジナルテンポ情報に基づいて該再生テンポ情報の１周期あたりのアドレスの変化量を算出し、該テンポクロックが入力される毎に逐次に該変化量ずつ歩進される該ＰＣＭデータ上の位置を表す時間関数である第１の情報（ＴＰ）を生成するもので、該第２の時間関数生成手段は、再生サンプリング周期毎に逐次に該時間軸圧縮伸長情報（ＴＲ）ずつ歩進される該ＰＣＭデータ上の位置を表す時間関数である第２の情報（ＰＰ）を生成するもので、該時間軸圧縮伸長情報生成手段は、該再生テンポ情報毎に該第１の情報（ＴＰ）と第２の情報（ＰＰ）とを比較して該第１の情報に第２の情報が一致する方向の歩進量である該時間軸圧縮伸長情報（ＴＲ）を演算するものである。
【００１３】
請求項５記載のオーディオ波形再生装置は、請求項１記載のオーディオ波形再生装置において、該記憶手段の波形データは、該オーディオ波形を分析しそのオーディオ波形を表す分析データであって、該時間軸圧縮伸長処理手段は、該分析データを該時間軸圧縮伸長情報（ＴＲ）に基づいて時間軸圧縮伸長処理して再生オーディオ波形を生成するものである。
【００１４】
請求項６記載のオーディオ波形再生装置は、請求項５記載のオーディオ波形再生装置において、該共通の軸上とは、該オーディオ波形の時間軸を表す仮想アドレス上の位置を表すものである。
【００１５】
【００１６】
請求項７記載のオーディオ波形再生装置は、請求項６記載のオーディオ波形再生装置において、該記憶手段は、該オーディオ波形を録音するときのテンポを表すオリジナルテンポ情報を更に記憶するものであり、該再生テンポ情報は、該オーディオ波形を再生するときのテンポに対応して発生するテンポクロックの周期を示すものであり、該第１の時間関数生成手段は、該オリジナルテンポ情報に基づいて該再生テンポ情報の１周期あたりのアドレスの変化量を算出し、該テンポクロックが入力される毎に逐次に該変化量ずつ歩進される該仮想アドレス上の位置を表す時間関数である第１の情報（ＴＰ）を生成するもので、該第２の時間関数生成手段は、再生サンプリング周期毎に逐次に該時間軸圧縮伸長情報（ＴＲ）ずつ歩進される該仮想アドレス上の位置を表す時間関数である第２の情報（ＰＰ）を生成するもので、該時間軸圧縮伸長情報生成手段は、該再生テンポ情報毎に該第１の情報（ＴＰ）と第２の情報（ＰＰ）とを比較して該第１の情報に第２の情報が一致する方向の歩進量である該時間軸圧縮伸長情報（ＴＲ）を演算するものである。
【００１７】
請求項８記載のオーディオ波形再生装置は、請求項１〜７のいずれかに記載のオーディオ波形再生装置において、該時間軸圧縮伸長処理手段において生成されるオーディオ波形は、該再生テンポに基づく所定の繰返し周期毎に、オーディオ波形の先頭位置から生成を繰り返すように構成したものである。
【００１８】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を説明する。図１には本発明の一実施例としてのオーディオ波形再生装置が示される。この実施例は鍵盤型の電子楽器に本発明に係る装置を搭載したものである。
【００１９】
図１において、ＣＰＵ１はセントラル・プロセッシング・ユニットであり、ＲＯＭ２に記憶した制御プログラムに従って動作し、装置全体の制御を司る。例えば、後述する鍵盤４、操作子群５の操作状態を検出したり、ＭＩＤＩインタフェース６、ＤＳＰ７などを制御する。ＲＯＭ２はリード・オンリー・メモリであり、ＣＰＵ１やＤＳＰ７の制御プログラムを記憶する。なお、このＤＳＰ７の制御プログラムはＣＰＵ１を介してＤＳＰ７に転送される。ＲＡＭ３はランダム・アクセス・メモリであり、ＣＰＵ１の処理に使用する作業用のワークメモリなどとして利用される。また、予めサンプリング録音したオーディオ波形の波形データを複数種類格納する。
【００２０】
４は鍵盤であり、通常はユーザが演奏操作を行う際などに演奏情報を入力するために用いるものであるが、本発明に係わるオーディオ波形再生を行う際には、この鍵盤４のいずれかの鍵を押鍵（キーオン）することで波形再生（発音開始）を指示し、全ての鍵を離鍵（キーオフ）することで波形再生の停止（発音停止）を指示するようにしている。その際、その押鍵された鍵のノートナンバー（複数の押鍵があるときは最高音のノートナンバー）は、再生するオーディオ波形の音高情報として利用される。
【００２１】
５は操作子群であり、各種の設定を行ったりする各種操作子からなる。本発明に係わるものとしては、例えば再生テンポ（再生時のテンポ）を設定するためのテンポ設定操作子、再生テンポに対応して発生するテンポクロックをテンポ設定操作子による内部発生とするかＭＩＤＩ信号などによる外部入力とするかを選択するための演奏テンポ選択スイッチ、ＲＡＭ３中の任意の波形データを再生のために選択するオーディオ波形選択スイッチなどがある。この操作子群５には設定状態等を表示する表示器も含む。
【００２２】
６はＭＩＤＩインタフェースであり、ＭＩＤＩ信号を入力／出力するインタフェースとなる。本実施例では、このＭＩＤＩインタフェース６を介してＭｌＤＩ信号のタイミング・クロックが外部からのテンポ情報として入力される。
【００２３】
波形メモリ８はＲＡＭからなり、楽器音や人声などのオーディオ波形をサンプリング録音（ＰＣＭ録音）して生成したＰＣＭ波形データ列を再生のために波形データとして記憶する。このオーディオ波形は、あるテンポ（オリジナルテンポという）を持って演奏された一連の楽曲（フレーズ）などからなる。この波形メモリ８には、ユーザがオーディオ波形選択スイッチで任意に選択したオーディオ波形の波形データがＲＡＭ３から転送されて格納される。
【００２４】
図３にはこの波形メモリ８に格納される波形データのデータ構造が示される。図示するように、一つのオーディオ波形に対して、波形関連情報、オリジナルテンポ、スタートアドレス、エンドアドレスなどの波形付属情報とともに、波形データ本体としてのＰＣＭ波形データ列が、波形データとして記憶される。
【００２５】
オリジナルテンポはサンプリング録音した元のオーディオ波形の本来のテンポ（サンプリング速度と同じ速度で再生した場合のテンポ) である。元のオーディオ波形のサンプリングはサンプリング周波数４４．１ｋＨｚによるＰＣＭ録音により行われ、各サンプリング点ごとの振幅値（瞬時値）がＰＣＭ波形データとして逐次に取得されてその時系列がＰＣＭ波形データ列を形成する。このＰＣＭ波形データ列の個々のＰＣＭ波形データに対しアドレス（以下、波形アドレスと称する）がシーケンシャルに付与されて、波形メモリ８にＰＣＭ波形データ列として格納される。したがって、この波形アドレスの時系列（すなわちサンプリング点の時系列）がオーディオ波形の時間軸を形成しているといえる。
【００２６】
スタートアドレスはこのＰＣＭ波形データ列の先頭データのアドレスであり、エンドアドレスは最後尾データのアドレスである。なお、波形関連情報は、例えば後述の方式で時間軸圧縮伸長する際に用いられるものとして、切出し開始アドレス(ｓａｄｒｓ１、ｓａｄｒｓ２・・) 、ピッチデータ(ｓｐｉｔｃｈ０、ｓｐｉｔｃｈ１・・・) などがあるが、これについては時間軸圧縮伸長処理を説明する際に詳細に説明する。
【００２７】
ＤＳＰ７はディジタル・シグナル・プロセッサであり、波形メモリ８に記憶されている波形データに基づいてオーディオ波形を再生するための演算処理を行う。このＤＳＰ７にはＣＰＵ１から音高情報、キーフラグＫｅｙ  Ｆｌｇ（キーオン／オフ情報）、テンポクロック（再生速度を決めるテンポ情報）が供給される。なお、本実施例では、音高情報による処理は本発明に直接関係しないので詳しい説明は省略する。
【００２８】
図２にはこのＤＳＰ７の構成概念が機能ブロックの形で示される。図示するように、大まかにはサンプリングクロック割込み処理部７１とテンポクロック割込み処理部７２とからなる。このサンプリングクロック割込み処理部７１は再生位置発生手段７３と時間軸圧縮伸長処理手段７４などからなり、テンポクロック割込み処理部７２はテンポ位置発生手段７５と歩進値発生手段（時間軸圧縮伸長情報発生手段）７６などからなる。
【００２９】
この構成において、テンポ位置発生手段７５はテンポアドレス長ＴＡやＣＰＵ１から再生テンポ情報として供給されるテンポクロックなどに基づいてテンポ位置ＴＰを発生し、再生位置発生手段７３はサンプリングクロックや歩進値ＴＲなどに基づいて再生位置ＰＰ（ＰＣＭ波形データ列の再生位置アドレス）を発生し、歩進値発生手段７６はこれらテンポクロック、テンポ位置ＴＰ、再生位置ＰＰなどに基づいて歩進値ＴＲを発生する。時間軸圧縮伸長処理手段７４はこの歩進値ＴＲなどに基づいて波形メモリ８のＰＣＭ波形データ列を時間軸圧縮伸長処理しつつ再生して出力する。なお、上記の各パラメータの詳細については後述する。
【００３０】
この構成により、ＣＰＵ１側から供給されるテンポクロックに対応した歩進値ＴＲ（時間軸圧縮伸長情報）を生成して時間軸圧縮伸長処理手段７４を制御することが、この発明のポイント部分となる。
【００３１】
以下、フローチャートを参照しつつ本実施例装置の動作を説明する。まず、概要的な動作を説明する。ＣＰＵ１は、操作子群５の操作状態を監視しており、そのうちの演奏テンポ選択スイッチの設定状態に基づいて、再生のために用いるテンポクロックを内部発生とするか、外部から到来するＭＩＤＩ信号のタイミング・クロックに基づく外部発生とするかを決めて、その選択結果に基づきテンポクロックを発生し、ＤＳＰ７に供給する。
【００３２】
また、波形再生／再生停止を指示するために、鍵盤４の押鍵／離鍵状態を検出し、押鍵開始時と離鍵完了時（全鍵離鍵時）にそのキーオン／オフ情報を後述するキーフラグＫｅｙ  Ｆｌｇの形でＤＳＰ７に送出する。
【００３３】
ＤＳＰ７は、テンポアドレス長ＴＡ、テンポ位置ＴＰ、歩進値ＴＲなどを演算して、これらに基づいて波形メモリ８からＰＣＭ波形データを読み出すための読出しアドレスを逐次に生成し、この読出しアドレスによってＰＣＭ波形データを逐次に読み出してオーディオ波形の再生を行う。
【００３４】
図８はこのＤＳＰ７で行う歩進値ＴＲ（時間軸圧縮伸長情報）の演算処理の概要を機能ブロックの形態で示している。図示するように、機能ブロック的には、テンポ位置ＴＰをカウントするためのテンポ位置カウンタ７５１、再生位置ＰＰをカウントするための再生位置カウンタ７３１、テンポ位置ＴＰと再生位置ＰＰとの差分を求める差分器７６１、歩進値ＴＲを生成するためのループフィルタ７６２、歩進値ＴＲを更に圧縮伸長した修正歩進値ＴＲ´を生成する歩進値修正部７６３などからなる。この図８のブロック構成は、再生位置カウンタ７３１を可変発振器と考えると、テンポ位置カウンタ７５１に再生位置カウンタ７３１を同期させるＰＬＬ（位相同期ループ）と同様な動作をしているものと見ることができる。
【００３５】
ここで、再生位置ＰＰはオーディオ波形の時間軸（波形アドレスの時系列）上におけるＰＣＭ波形データの再生（読出し）を行う読出しアドレスで示す。その再生位置アドレスの更新周期はサンプリング周期と同じであり、サンプリング周波数４４．１ｋHzに応じた周期である。また、上記のテンポアドレス長ＴＡは元のオーディオ波形のオリジナルテンポに対応したテンポクロックの１周期の長さを波形アドレス数換算で示したもの、テンポ位置ＴＰはオーディオ波形の時間軸上において再生テンポに対応したテンポクロックに従った再生位置変化を波形アドレス数換算で示したもの、歩進値ＴＲは１サンプリング周期毎に更新される再生位置ＰＰ（再生位置アドレス）を歩進する量である。この実施例装置では、この歩進値ＴＲを逐次（テンポクロックの発生周期毎）にフィールドバック制御で修正・更新することによって、固有のオリジナルテンポを持つ元のオーディオ波形を再生テンポに合わせて再生できるようにしている。
【００３６】
以下、この実施例装置の詳細動作を説明する。はじめに、ＣＰＵ１で行う各種処理について説明する。図４はＣＰＵ１で実行される操作子検出処理のフローチャートである。この操作子検出処理は定期的に割込み処理で実行されて、操作子群６の各操作子の操作状態を検出する。この割込みはサンプリング周期より長い周期で、かつタイミング・クロックの取り得る最小周期より短い適当な周期で定期的に発生される。なお、図４では本発明に関係する操作子のみを示している。
【００３７】
割込みがあると、まず演奏テンポ選択スイッチに変化があるかを判定する（ステップＡ１）。この演奏テンポ選択スイッチは、再生に用いるテンポクロックを内部発生とするか外部入力とするかを選択するためのスイッチである。演奏テンポ選択スイッチが操作されている場合には、その操作で外部入力が選択されているか否か判定する（ステップＡ２）。
【００３８】
外部入力である場合には、再生時の演奏テンポ（すなわち再生テンポ）を外部（ＭＩＤＩ信号のタイミング・クロック）から得ることになるので、内部テンポクロック発生処理を停止し、外部入力テンポクロック発生処理を行って、外部からＭＩＤＩ信号のタイミングクロックが入力される毎にテンポクロックを発生し、これをＤＳＰ７に供給する動作モードに設定する（ステップＡ３）。
【００３９】
一方、演奏テンポ選択スイッチが内部発生を選択している場合には、外部入力テンポクロック発生処理を禁止し、内部テンポクロック発生処理を実行して、操作子群５の「テンポ設定操作子」の設定状態を定期的に検出し、その設定状態に対応したテンポクロックを内部発生して、ＤＳＰ７に供給する動作モードに設定する（ステップＡ４）。
【００４０】
図５はＣＰＵ１で実行される鍵操作検出処理のフローチャートである。この鍵操作検出処理は、図４の操作子検出処理と同様に定期的な割込み処理で実行されて、鍵盤４の鍵の操作状態を検出し、そのキーオン／キーオフに応じてキーフラグKey Flg のＯＮ／ＯＦＦを設定する。ここで、キーオンは鍵盤４のうちの少なくとも１つの鍵が押鍵されていればよく、一方、キーオフは全鍵が離鍵されることが必要である。また、複数の鍵がキーオンされている時には、そのキーオン中の鍵のうちの最高音が音高情報として取得される。
【００４１】
割込みが発生したら、鍵盤４の各鍵の押鍵／離鍵の鍵操作状態をスキャンし（ステップＢ１）、鍵盤４の鍵操作が新たにあるか否かを判定し（ステップＢ２）、鍵操作がなければ（前回スキャンした状態と変化がない場合）、この鍵操作検出処理をそのまま終了する。
【００４２】
新たな鍵操作があれば、それが押鍵操作か離鍵操作かを判定する（ステップＢ３）。押鍵操作であれば、全鍵が離鍵状態からの押鍵か、すなわち既に押鍵中の鍵があったか否かを判定する（ステップＢ４）。全鍵離鍵状態からの押鍵であった場合、すなわちそれまで一鍵も押鍵していなかった場合には、キーフラグＫｅｙ  ＦｌｇをＯＮに設定して発音中の表示をするとともに（ステップＢ５）、その押鍵した鍵の音高情報も取得する( ステップＢ６）。一方、既に１以上の鍵の押鍵があった場合には、それら押鍵中の鍵のうちの最高音の音高情報を取得してＤＳＰ７に出力する（ステップＢ７）。
【００４３】
ステップＢ３の判定にて、離鍵操作であれば、その離鍵操作で全鍵が離鍵状態になったかを判定し（ステップＢ８）、全鍵が離鍵状態になっていない場合、すなわち少なくとも一鍵以上の押鍵がまだある場合には、それら押鍵中の鍵のうちの最高音の音高情報を取得してＤＳＰ７に出力する（ステップＢ７）。全鍵が離鍵状態となった場合には、キーフラグＫｅｙ  ＦｌｇをＯＦＦに設定して、発音中でないことの表示をする（ステップＢ９）。
【００４４】
ここで、上記テンポアドレス長ＴＡ、テンポ位置ＴＰ、再生位置ＰＰについて説明する。
〔テンポアドレス長ＴＡ〕まず、テンポアドレス長ＴＡは、元のオーディオ波形の本来のテンポ（オリジナルテンポ）に対応したテンポクロックの周期を該波形アドレス数（すなわちサンプリング点の数）換算で表したものである。図９にこの概念を示す。波形メモリ８から読み込んだオリジナルテンポに基づいて、そのオリジナルテンポのテンポクロック１周期分の時間に相当するテンポアドレス長ＴＡをあらかじめ計算しておく。
【００４５】
例えば元のオーディオ波形がオリジナルテンポ１２０ＢＰＭ（ビート／分）のオーディオ波形で、テンポクロックが４分音符あたり２４個発生するものとすると、テンポクロック１周期分の時間は
（６０／１２０）／２４＝０．２０８３３３［秒］
となり、サンプリング周波数が４４．ｌｋHzであるから、テンポアドレス長ＴＡは
４４１００×０．２０８３３３＝９１８．７５
個のサンプリング数（すなわち波形アドレスの数）となる。
【００４６】
〔テンポ位置ＴＰ〕テンポ位置ＴＰは、目標となる再生位置の変化を示すもので、各テンポクロック毎にオーディオ波形の時間軸上で再生位置（波形アドレス数換算の位置）を示すパラメータである。このテンポ位置ＴＰは、テンポクロックに従ってオーディオ波形が再生開始された後に、再生テンポに基づくテンポクロックの発生毎に前記テンポアドレス長ＴＡずつ増加されていく。図１０はこのテンポ位置ＴＰがテンポクロック毎に増加していく様子を示している。
【００４７】
〔再生位置ＰＰ〕再生位置ＰＰは、オーディオ波形の時間軸上においてＰＣＭ波形データを読み出して再生している位置（すなわち、波形メモリ８のアドレス）を示すパラメータである。この再生位置ＰＰは、図１０に示すように、波形のサンプリング周波数（４４．１ｋHz）の周期毎に歩進値ＴＲ（時間軸圧縮伸長情報に相当するもの）ずつ増加するように演算される。この歩進値ＴＲは、オーディオ波形をそのオリジナルテンポを再生テンポに変えて再生するように、再生テンポに応じたテンポクロックの発生周期毎に修正演算されて更新されるものであるが、詳細は後述する。
【００４８】
次に、ＤＳＰ７で行われる各種処理について詳細に説明する。このＤＳＰ７では、ＣＰＵ１からテンポクロックが入力される毎に実行されるテンポクロック割込み処理（図６）と、サンプリングクロックの発生周期毎に実行されるサンプリングクロック割込み処理（図７）とがある。
【００４９】
図６はテンポクロック割込み処理の処理手順を示すフローチャートである。このテンポクロック割込み処理は、テンポクロックが入力される毎に、再生位置ＰＰを逐次進めていくための歩進値ＴＲを演算するとともに、テンポ位置ＴＰを更新するよう演算する。また、鍵盤４の鍵操作状態に応じた発音開始／発音停止の指示を発生したり、波形リセット信号を生成したりする。
【００５０】
上記の波形リセット信号は、オーディオ波形を所定の長さ（後述する繰返し周期値Ｒckであり、テンポクロックの数で表現される）を単位にして繰り返して再生するためのものであり、オーディオ波形をその先頭から繰返し周期値Ｒckの長さまで再生したら、波形リセット信号が生成されてその再生位置ＰＰをオーディオ波形の先頭に戻すものである。この繰返し周期値Ｒckは、例えば、１拍につき２４テンポクロックを発生するとして、４／４拍子１小節分のオーディオ波形を繰り返す場合には、２４×４＝９６に設定される。また、上記の処理を行うために、図６のフローチャートでは、入力したテンポクロックの数をカウントするためのテンポクロック数カウンタＣckがパラメータとして用意される。
【００５１】
図６のテンポクロック割込み処理において、テンポクロックの入力があると、この処理ルーチンを割込みにて実行する。まず、キーフラグＫｅｙ  Ｆｌｇが立下りか否か、すなわちキーフラグＫｅｙ  ＦｌｇがＯＦＦに設定された直後であるか否かを判断する（ステップＣ１）。「ＹＥＳ」すなわちＯＦＦ設定直後であったら、発音停止指示を生成して時間軸圧縮伸長処理手段７４に供給する（ステップＣ２）。この発音停止指示により、発音中のオーディオ波形の再生が停止される。
【００５２】
一方、ステップＣ１にて「ＮＯ」すなわちＯＦＦ設定直後でなければ、次には、キーフラグＫｅｙ  Ｆｌｇが立上りか否か、すなわちキーフラグＫｅｙ  ＦｌｇがＯＮに設定された直後であるか否かを判断する（ステップＣ３）。「ＹＥＳ」すなわちＯＮ設定直後であれば、発音開始指示を生成して時間軸圧縮伸長処理手段７４に供給する（ステップＣ４）。この発音開始指示により、後述するように、オーディオ波形の再生がその先頭位置から開始される。
【００５３】
このように、テンポクロックに同期したキーフラグＫｅｙ  Ｆｌｇの立上りと立下りの判断処理により、発音開始／発音停止の指示による時間軸圧縮伸長処理手段７４への指示がテンポクロックに同期して行われるようになる。従って、オーディオ波形の発音開始と発音停止とは、テンポクロックに同期して行われることになる。
【００５４】
一方、ステップＣ３にて、「ＮＯ」すなわちキーフラグＫｅｙ  ＦｌｇがＯＮ設定直後でなければ、現在、オーディオ波形を再生中あるいは発音停止中であることになる。この場合には、テンポクロック数をカウントするテンポクロック数カウンタＣｃｋが前記の所定の繰返し周期値Ｒｃｋ以上になったか否か、すなわち
Ｃｃｋ≧Ｒｃｋ
か否かを判断する（ステップＣ７）。
【００５５】
このステップＣ７の判断が「ＹＥＳ」の場合、オーディオ波形の再生が繰返し周期値Ｒckで示される再生位置まで達したことを意味するので、オーディオ波形の再生位置をその先頭位置に戻すために、波形リセット信号を生成して時間軸圧縮伸長処理手段７４に出力し（ステップＣ８）、テンポクロック数カウンタＣｃｋを０にリセットし、再生位置ＰＰとテンポ位置ＴＰにオーディオ波形の先頭位置であるスタートアドレスを設定する（ステップＣ６）。これにより、オーディオ波形はその再生位置が先頭位置に戻されて再生される。
【００５６】
なお、ステップＣ７以降の処理は、再生中も発音停止中も同じ処理を行っているが、発音停止中は時間軸圧縮伸長処理手段に発音停止情報を出力して発音を停止しているため、ステップＣ７以降の処理による影響は現れない。
【００５７】
一方、ステップＣ７の判断が「ＮＯ」の場合、オーディオ波形の再生が繰返し周期値Ｒckで示される再生位置まで達していないことを意味するので、この場合には、オーディオ波形の再生を現在の再生位置から引き続き進めていくことになり、今回のテンポクロックの入力に対して、テンポクロック数カウンタＣｃｋを１つインクリメントし（ステップＣ９）、テンポ位置ＴＰをテンポアドレス長ＴＡ分だけ加算して更新する（ステップＣ１０）。
【００５８】
次いで、このテンポ位置ＴＰの更新の結果として、そのテンポ位置ＴＰがオーディオ波形の最後尾位置であるエンドアドレスを超えたか否かを判断する（ステップＣ１１）。エンドアドレスを超えていれば、再生位置ＰＰをこのエンドアドレスを超えて進めることはできないので、現在のテンポ位置ＴＰをエンドアドレスとすることで、再生位置がこのテンポ位置ＴＰ（＝エンドアドレス）を超えて進まないようにする（ステップＣ１２）。
【００５９】
なお、図６には記載していないが、ステップＣ３からステップＣ９にジャンプして、ステップＣ７の判断を無効にすることができるようにしておけば、上述の繰返し再生を行わない再生も行うことができる。
【００６０】
この後に、歩進値ＴＲの更新を行う。この歩進値ＴＲの更新では、図１０に示されるように、サンプリング周期毎に歩進値ＴＲずつ更新される再生位置ＰＰとテンポクロック周期毎に更新されるテンポ位置ＴＰが、テンポクロックの発生タイミングでその誤差が無くなるような値に、歩進値ＴＲを修正するものである。
【００６１】
具体的には、下記の演算を行う図８のループフィルタ７６２に、上記テンポ位置ＴＰと再生位置ＰＰの誤差（ＴＰ−ＰＰ）を通すことによって、歩進値ＴＲを得る。
ＬＩ←（ＴＰ−ＰＰ）×ＴＢＰＭ×ＧＸ
ＬＰ←（ＬＩ−ＬＰ）×ＦＣ×ＬＰ
ＴＲ←  ＬＩ×ＬＣ＋ＬＰ
ここで、ＴＢＰＭはオリジナルテンポの値、ＧＸはループゲインの調整値で、例えばＧＸ＝１００／（２の２０乗）、ＬＩはループフィルタの入力値、ＦＣはループフィルタのカットオフ周波数を決定する係数で、例えばＦＣ＝０．１２５のもの、ＬＣはループフィルタの最低ゲインを決定する係数で、例えばＬＣ＝０．１２５のもの、ＬＰはループフィルタのローパス成分である。
【００６２】
図７は再生位置ＰＰを更新する演算を行うサンプリングクロック割込み処理を示すフローチャートである。この演算処理は割込みにより定期的に実行されるものであり、この割込みはサンプリングクロックの周期（サンプリング周波数）で発生する。すなわち、再生位置ＰＰはサンプリングクロックに同期して前記歩進値ＴＲずつ増加するよう更新される。
【００６３】
図７において、サンプリングクロック毎の割込みが発生すると、現在の再生位置ＰＰに歩進値ＴＲを加算して新たな再生位置ＰＰとして更新する（ステップＤ１）。そして、その更新後の再生位置ＰＰがオーディオ波形のエンドアドレスを超えたかを判定し（ステップＤ２）、超えていれば、それ以上再生位置ＰＰを進めることはできないので、再生位置ＰＰをエンドアドレスに固定する（ステップＤ３）。超えていなければ、更新した再生位置ＰＰを歩進値発生手段（時間軸圧縮伸長情報発生手段）７６に出力する（ステップＤ４）。これにより、図６のテンポクロック割込処理の時間軸圧縮伸長情報発生処理部において歩進値（時間軸圧縮伸長情報）ＴＲが生成される。そして、時間軸圧縮伸長処理手段７４に相当する以下の処理では、この歩進値（時間軸圧縮伸長情報）ＴＲに基づいて波形メモリ８からＰＣＭ波形データ列を読み出しつつ時間軸圧縮伸長処理を行う（ステップＤ５）。
【００６４】
上記の実施例では、録音したオーディオ波形のオリジナルテンポ情報として波形メモリ８にオリジナルテンポ値そのものを記憶しておくようにしたが、本発明はこれに限られるものではなく、例えば、オリジナルテンポの値に基づいて求められるテンポアドレス長ＴＡを逐次に積算して求めた数値列（すなわち前述のテンポ位置ＴＰの時系列に相当するもの）を予め求めておいて、この数値列をオーディオテンポ情報として波形メモリ８に予め記憶しておき、これを再生テンポクロックの発生タイミング毎に順次に読み出してテンポ位置ＴＰとして用いるようにしてもよい。
【００６５】
なお、入力されるテンポクロック（テンポ情報）に対して何パーセントか速く再生したり、あるいは遅く再生したい場合には、出力する歩進値ＴＲに所望の係数ＴＸを乗算して修正した修正歩進値ＴＲ´を歩進値修正部７６３（図８参照）で求めて、この修正歩進値ＴＲ´を歩進値ＴＲに代えて時間軸圧縮伸長処理手段７４に供給すればよい。
【００６６】
以上のようにして求めた歩進値（時間軸圧縮伸長情報）ＴＲを時間軸圧縮伸長処理手段７４に供給して、波形メモリ８からＰＣＭ波形データを読み出して波形再生を行う。その際、再生速度情報としてテンポクロックが与えられる度に、更新されたテンポ位置ＴＰと再生位置ＰＰとを比較しており、再生位置ＰＰの値が進んでいれば時間圧伸量が小さくなるように、また再生位置ＰＰの値が遅れていれば時間圧伸量が大きくなるように、時間軸圧縮伸長情報としての歩進値ＴＲを変更する。これにより、オリジナルテンポで録音された元のオーディオ波形を、所望の再生テンポ（ＭＩＤＩ信号により外部入力したテンポまたはテンポ設定操作子で内部発生したテンポ）の再生速度で波形再生を行うことができる。
【００６７】
次に、時間軸圧縮伸長処理手段７４の詳細な動作例を説明する。この時間軸圧縮伸長処理手段７４は、入力される歩進値ＴＲ（時間軸圧縮伸長情報）に基づいて、波形メモリ８に記憶されたオーディオ波形（ＰＣＭ波形データ列）の時間軸を圧縮または伸長処理して再生する手段であり、時間軸圧縮伸長制御と再生音高の制御とが独立に制御されるものであり、これにより時間軸圧縮伸長により音高が変化することがないようにしている。
【００６８】
図１１は、この時間軸圧縮伸長処理手段７４の詳細な構成を機能ブロック図の形で表わす。また、図１４〜図１９はそれぞれ、この時間軸圧縮伸長処理手段７４による時間軸圧縮伸長処理を説明するための、各条件下での各部信号の波形図である。
【００６９】
図１１に示すように、時間軸圧縮伸長処理手段７４は、入力した時間軸圧縮伸長情報（歩進値）ＴＲなどに基づき位置情報ｓｐｈａｓｅを発生する位置情報発生手段７４１、入力した音高情報などに基づきピッチ周期信号ｓｐ１，ｓｐ２を発生するピッチ周期発生手段７４２、入力した音高情報などに基づき窓信号ｗｉｎｄｏｗ１，ｗｉｎｄｏｗ２やゲート信号ｇａｔｅを発生する窓信号発生手段７４３、入力した位置情報ｓｐｈａｓｅやピッチ周期信号ｓｐ１，ｓｐ２に基づき読出しアドレスａｄｒｓ１，ａｄｒｓ２を発生するアドレス発生手段７４５、入力した読出しアドレスａｄｒｓ１，ａｄｒｓ２に基づき波形メモリ８からＰＣＭ波形データを読み出す読出し手段７４６、読み出したＰＣＭ波形データｄａｔａ１，ｄａｔａ２に窓を付与して合成する窓付与手段７４７、合成した波形データにゲートを付与するゲート付与手段７４８などを含み構成される。
【００７０】
この時間軸圧縮伸長処理手段７４は、波形メモリ８のＰＣＭ波形データ列から逐次に切出し波形（位置情報ｓｐｈａｓｅで指定される位置近傍の１ないし２ピッチ分程度のオーディオ波形の周期区間）を切り出し、その切出し波形のホルマントの特徴をほぼ保ったまま、所望の再生音高に対応したピッチ（再生ピッチ）でその切出し波形を再生することで、元のオーディオ波形のホルマント特性を保ったまま再生ピッチのオーディオ波形を生成することができるものであり、この再生ピッチは鍵盤の押鍵した鍵の音高に応じて変更されるが、波形再生の速度すなわち再生テンポは再生ピッチの大きさに影響されずに時間軸圧縮伸長情報としての歩進値ＴＲによって制御されるので、両者を独立に制御することができる。
【００７１】
具体的には、波形メモリ８のＰＣＭ波形データ列から、再生速度を決める歩進値ＴＲ（時間軸圧縮伸長情報）により求める位置情報ｓｐｈａｓｅで指定される位置近傍の切出し波形を、時間経過に従って順次に切り出して、その切り出した切出し波形を、元のオーディオ波形とは異なるピッチおよびホルマントで再生する。その際、この切出し波形の再生を２つの処理系で並行して行い、それぞれの処理系では再生ピッチの２倍長の周期でかつ互いが半周期（＝再生ピッチの周期）ずれるようにして切出し波形を再生し、これらを合成して、再生ピッチの周期のオーディオ波形を再生するとともに、時間軸圧縮伸長情報としての歩進値ＴＲに基づく時間軸圧縮伸長も行っている。
【００７２】
この時間軸圧縮伸長処理を行うためには、サンプリング録音したオーディオ波形について、図１２に示すように、オーディオ波形の各周期の先頭のアドレスｓａｄｒｓ０，ｓａｄｒｓ１・・・とその周期ｓｐｉｔｃｈ０，ｓｐｉｔｃｈ１・・・を予め求めておいて、図１３に示すように、これらを波形関連情報として波形メモリ８に記憶しておく。この波形メモリ８には、前述したように、ＰＣＭ波形データ以外に、ＰＣＭ波形データ列のスタートアドレス（先頭アドレス）とエンドアドレス（最後尾アドレス）を記憶してある。
【００７３】
なお、前述のように波形メモリにはオリジナルテンポも記憶しているが、時間軸圧縮伸長処理手段７４自体の動作説明には直接関係しないので、図１３では省略している。
【００７４】
以下、この時間軸圧縮伸長処理手段７４の各部ブロックの詳細な動作について説明する。
（位置情報発生手段７４１）位置情報発生手段７４１は、入力した歩進値ＴＲに基づいて、図１２のオーディオ波形の再生位置を示す位置情報ｓｐｈａｓｅを演算する。この位置情報ｓｐｈａｓｅはオーディオ波形中における再生せんとする位置のＰＣＭ波形データの波形アドレスを表わしている。
【００７５】
ここで、歩進値ＴＲ（時間軸圧縮伸長情報）は、下記のような値をとるものとする。
１．時間軸の圧縮も伸長もしない場合、ＴＲ＝１とする。この場合、再生位置（位置情報ｓｐｈａｓｅ）の進行が１サンプリング周期毎に１アドレスずつ進むため、元のオーディオ波形を時間軸圧縮せずにそのまま（すなわちオリジナルテンポのまま）再生する。
【００７６】
２．時間軸を圧縮する場合、ＴＲ＞１とする。この場合、再生位置の進行が１サンプリング周期毎に１より大きなアドレスずつ進むため、元のオーディオ波形を時間軸圧縮して再生する。
【００７７】
３．時間軸を伸長する場合、ＴＲ＜１とする。この場合、再生位置の進行が１サンプリング周期毎に１より小さなアドレスずつ進むため、元のオーディオ波形を時間軸伸長して再生する。
【００７８】
位置情報発生手段７４１では、サンプリング周期毎に歩進値ＴＲを累算する演算を行って位置情報ｓｐｈａｓｅを算出する。この位置情報ｓｐｈａｓｅは、発音開始／発音停止情報の発音開始指示でスタートアドレスに設定される。さらに、位置情報ｓｐｈａｓｅは、波形リセット信号の入力に応じてもスタートアドレスに設定され、再生位置をＰＣＭ波形データ列の先頭にするように制御する。
【００７９】
（ピッチ周期発生手段７４２）ピッチ周期発生手段７４２は、図１４〜１９の（Ｃ）にその出力信号であるピッチ周期信号ｓｐ１とｓｐ２を示すように、入力した音高情報に従って再生オーディオ波形の音高の周期に対応した周期のピッチ周期信号ｓｐ１とｓｐ２とを発生する。このピッチ周期発生手段７４２は、発音開始／発音停止情報の発音開始指示に同期してピッチ周期信号ｓｐ１とｓｐ２の発生が開始する。
【００８０】
このピッチ周期信号ｓｐ１が発生されてピッチ周期信号ｓｐ２が発生されるまでの周期、およびピッチ周期信号ｓｐ２が発生されてピッチ周期信号ｓｐ１が発生されるまでの周期が再生オーディオ波形の音高の周期となる。従って、ピッチ周期信号ｓｐ１とｓｐ２それぞれの信号のみに注目すると、再生音高の周期の２倍の長さの周期で信号が発生されている。
【００８１】
（アドレス発生手段７４５）アドレス発生手段７４５は、ピッチ周期発生手段７４２から出力されるピッチ周期信号sp１とsp２とでそれぞれリセットされ、かつ、サンプリング周期毎に１ずつインクリメントされる２つのカウンタｐｐｈ１とｐｐｈ２を備えている。このカウンタｐｐｈ１とｐｐｈ２の出力値の例を図１４〜１９の（Ｄ）に示す。このカウンタｐｐｈ１とｐｐｈ２の出力値は、前述の切出し波形を読み出すときの波形アドレスとして用いられる。
【００８２】
さらに、このアドレス発生手段７４５は、そのカウンタｐｐｈ１とｐｐｈ２の出力値にホルマント係数ｆｖｒを乗算して歩進量を変更することができる。具体的には（ｐｐｈ１×ｆｖｒ）と（ｐｐｈ２×ｆｖｒ）の演算をする。ここで、ｆｖｒはホルマントの変化量を設定する係数であり、ホルマントを変化させたい場合は、この係数を制御する。例えば、操作子群の１つとしてホルマント用の操作子を設けておき、ＣＰＵでその操作を検出してホルマント係数ｆｖｒとしてＤＳＰへ供給し、
１．ｆｖｒ＝１の場合、ホルマントを変更しない、
２．ｆｖｒ＞１の場合、ホルマントを高い周波数領域側ヘシフトする、
３．ｆｖｒ＜１の場合、ホルマントを低い周波数領域側へシフトする、
となるよう制御する。なお、これらの制御は本発明に直接関係が無いので、ＣＰＵでの詳しい処理は省略する。
【００８３】
アドレス発生手段７４５は、ピッチ周期発生手段７４２から出力されるピッチ周期信号sp１とsp２が入力される毎に、位置情報ｓｐｈａｓｅが示す波形周期区間（すなわち切出し波形）の先頭アドレスｓａｄｒｓ０，ｓａｄｒｓ１・・・をそれぞれのレジスタｒｅｇ１とｒｅｇ２に保持する（図１４〜１９の（Ｂ）参照）。そして、前述の（ｐｐｈ１×ｆｖｒ）とレジスタｒｅｇ１の値との加算値を読出しアドレスａｄｒｓ１として、また前述の（ｐｐｈ２×ｆｖｒ）とレジスタｒｅｇ２の値との加算値を読出しアドレスａｄｒｓ２として、それぞれを読出し手段７４６へ出力する。
【００８４】
（読出し手段７４６）読出し手段７４６は、アドレス発生手段７４５から供給される読出しアドレスａｄｒｓ１、ａｄｒｓ２に基づいて波形メモリ８からＰＣＭ波形データdata１とdata２をそれぞれ読み出す。ここで、読出しアドレスａｄｒｓ１、ａｄｒｓ２は小数点表現のアドレスのため、この読出し手段７４６においてＰＣＭ波形データを補間して小数点アドレスに対応したＰＣＭ波形データｄａｔａ１とｄａｔａ２としている。この波形メモリ８から読み出されるＰＣＭ波形データｄａｔａ１とｄａｔａ２の例を図１４〜１９の（Ｅ）に示す。
【００８５】
（窓信号発生手段７４３）窓信号発生手段７４３は、入力した音高情報と発音開始／発音停止情報に基づいてゲート信号ｇａｔｅと窓信号ｗｉｎｄｏｗ１，ｗｉｎｄｏｗ２を生成し出力する。ゲート信号ｇａｔｅは、図１４の（Ｇ）に例示するように、発音開始／発音停止情報に従って立上りと立下りに傾きを持たせた信号である。このゲート信号は発音開始と発音停止時に、再生するオーディオ波形が急激なレベル変化をしてノイズが発生することを防止するためのものであり、ゲート付与手段７４８にて、最終的に出力されるオーディオ波形に付与（乗算）される。
【００８６】
窓信号ｗｉｎｄｏｗ１，ｗｉｎｄｏｗ２は、図１４〜１９の（Ｆ）に例示するように、読出し手段７４６から読み出したＰＣＭ波形データｄａｔａ１とｄａｔａ２は、それらをそのまま合成しようとすると、レベルが互いに不連続となるため、その不連続部分のレベルを小さくするためのものであり、三角形状の窓信号ｗｉｎｄｏｗ１，ｗｉｎｄｏｗ２をＰＣＭ波形データｄａｔａ１とｄａｔａ２に付与（乗算）して上記不連続部分のレベルを下げている。窓信号発生手段７４３は、再生音高に対応した周期（再生音高の周期の２倍の周期）の窓信号ｗｉｎｄｏｗ１，ｗｉｎｄｏｗ２を、再生音高の周期だけ位相をずらして発生させている。
【００８７】
（窓付与手段７４７）窓付与手段７４７は、読出し手段７４６から読み出したＰＣＭ波形データｄａｔａ１とｄａｔａ２に窓信号ｗｉｎｄｏｗ１，ｗｉｎｄｏｗ２を付与（乗算）し、その結果値を互いに加算することによって再生オーディオ波形を生成する。
【００８８】
（ゲート付与手段７４８）ゲート付与手段７４８は、窓付与手段７４７で生成した再生オーディオ波形に、ゲート信号ｇａｔｅを付与し、発音開始や停止時の急激な音量変化でノイズが発生することを防止する。
【００８９】
図１４は、時間軸およびホルマントは変化させずに再生ピッチのみ上げる場合の処理の波形図である。この場合は、元のオーディオ波形よりも再生音高が高くなっているため、同じ切出し波形（例えば（Ｂ）や（Ｅ）などに示されるｓａｄｒｓ０からの切出し波形の波形データ）が適宜に繰り返されることになる。
【００９０】
図１５は、時間軸およびホルマントは変化させずに再生ピッチのみ下げる場合の処理の波形図である。この場合は、元のオーディオ波形より再生音高が低くなっているため、同じ切出し波形（例えば（Ｂ）や（Ｅ）などに示されるｓａｄｒｓ８からの切出し波形の波形データ）が適宜に間引かれることになる。
【００９１】
図１６は、時間軸および再生ピッチを変化させずにホルマントのみ上げる場合の処理の波形図である。（Ｅ）に示すように、読み出した波形データが時間軸方向に圧縮されている。
【００９２】
図１７は、時間軸および再生ピッチを変化させずにホルマントのみ下げる場合の処理の波形図である。（Ｅ）に示すように、読み出した波形データが時間軸方向に伸長されている。
【００９３】
図１８は、再生ピッチおよびホルマントは変化させずに時間軸のみ伸長する場合の処理の波形図である。（Ａ）に示すように再生位置を表わす位置情報ｓｐｈａｓｅの変化が時間軸方向に伸長されている。それにともなって、（Ｅ）に示すように、同じ波形データ（ｓａｄｒｓ０とｓａｄｒｓ８からの切出し波形データ）が繰り返されることになる。
【００９４】
図１９は、再生ピッチおよびホルマントは変化させずに時間軸のみ圧縮する場合の処理の波形図である。（Ａ）に示すように再生位置を表わす位置情報ｓｐｈａｓｅの変化が時間軸方向に圧縮されている。それにともなって、（Ｅ）に示すように、波形データ（ｓａｄｒｓ９からの切出し波形デ一夕）が間引かれることになる。
【００９５】
本発明の実施にあたっては、種々の変形形態が可能である。例えば、上述の実施例では、オーディオ波形の波形データとして振幅値をサンプリングしたＰＣＭ波形データ列を用いて時間軸圧縮伸長処理を実現する方式を時間軸圧縮伸長処理手段７４において用いたが、本発明はこれに限られるものではなく、時間軸圧縮伸長処理手段７４において例えば位相ボコーダ(Ｐｈａｓｅ  Ｖｏｃｏｄｅｒ)方式を用いて時間軸圧縮伸長処理を行うことも可能であり、この場合には、振幅値＋周波数情報、あるいは振幅値＋位相情報などが波形データとして予め記録されることになる。以下、この位相ボコーダ方式について説明する。
【００９６】
この位相ボコーダ方式では、波形メモリ８に記憶される波形データは元のオーディオ波形を分析処理して得た分析データとなり、その時間軸としては、元のオーディオ波形を実際には存在しないＰＣＭ波形データとして記憶したときのアドレス（仮想アドレス）が、ＰＣＭ波形データの場合と同様に使用される。
【００９７】
すなわち、位相ボコーダ方式は、おおまかには分析系と合成系からなる。分析系では、原音のオーディオ波形を帯域フィルタを用いて複数の周波数帯域（バンド）に分割し、各帯域のバンド成分をそれぞれ分析してその出力振幅と位相を特徴パラメータとして抽出して保持しておき、合成系では、各帯域についてその出力振幅と位相を用いて元のバンド成分を再生し、それら各帯域のバンド成分を加算合成して、元のオーディオ波形を復元する。
【００９８】
図２３はこの位相ボコーダ方式の分析系の構成概念を説明する。図示するように、オーディオ波形Ｘ(n)を複数の分析部７７１に入力する。この例では、分析部７７１はオーディオ波形の周波数を１００に帯域分割した各帯域対応に分析フィルタを有しており、各周波数帯域毎に分析して瞬間周波数情報と振幅値情報を生成する。具体的には、分析部７７１は、オーディオ波形の各帯域成分の基本周波数をそれぞれ中心周波数とするバンド０〜９９（図２５を参照）の分析フィルタを持つ。
【００９９】
図２４にバンドｋの分析フィルタの構成例が示される。図示するように、この分析フィルタは、入力したオーディオ信号波形Ｘ(n)をその中心の複素周波数sin(ωｋ  n）、cos(ωｋ  n)にて乗算（同期検波）して、分析フィルタのインパルス応答であるｗ(n)で切り出し、振幅値と瞬間周波数に分析展開するものである。この作用はｗ(n)の窓で切り出す短区間フリーエ変換と同等である。瞬間周波数の情報は、まずバンドｋの出力振幅値を得て、その検波出力の位相値を微分等して得る。この瞬間周波数は、各時点（波形の時間軸上の各位置）における単位時間あたりの位相の変化量（微分値）であり、中心周波数からの周波数偏差を示す情報である。
【０１００】
分析系にて求めたオーディオ波形Ｘ(n)の各バンドの波形データ（出力振幅と瞬間周波数）は波形メモリ８に格納される（図２２（ａ）を参照）。波形メモリ６への波形データ格納の態様は、オーディオ波形Ｘ(n)の時間軸上の各アドレス（前述の仮想アドレス）に対して、各バンド０〜９９毎に、振幅データと瞬間周波数データとが格納されるものである。
【０１０１】
図２０は合成系の装置構成を示すブロック図である。制御部７７２は、
・歩進値ＴＲ（時間軸圧縮伸長情報）を入力して、前述（図１１）のｓｐｈａｓｅに相当する位置情報を算出する機能、
・音高情報を入力して周波数変換比を算出する機能、
・発音開始停止情報を入力して、図１４（Ｇ）に相当するゲート信号ｇａｔｅを生成する機能を有している。
【０１０２】
１００帯域の時間周波数変換処理部７７３の各々は、波形メモリ８に記憶されている分析データを位置情報に従って補間し、時間軸圧縮伸長するとともに（図２２参照）、瞬間周波数情報に周波数変換比を乗算して、再合成するオーディオ波形の周波数成分をシフトしている。
【０１０３】
余弦発振器７７５と乗算器７７４は、時間周波数変換処理部７７３で時間軸圧縮伸長された瞬間周波数情報と振幅値とをそれぞれ余弦発振器７７５と乗算器７７４に入力して、時間軸圧縮伸長された各周波数帯域のオーディオ波形を再合成している。それら各帯域のオーディオ波形は互いに合成されることによって、時間軸圧縮伸長した再生オーディオ波形が合成される。その信号はゲート付与手段７７６に入力されて、発音開始や終了時でのノイズ発生を防ぐためにゲート信号ｇａｔｅで振幅制御される。
【０１０４】
図２１は時間周波数変換処理部７７３の詳細なブロック構成を示す。読出し手段７７３１、補間手段７７３２，７７３３、加算器７７３４、乗算器７７３５などからなる。この時間周波数変換処理部７７３は、読出し手段７７３１が位置情報に対応した分析データ（振幅値情報と瞬間周波数情報）を波形メモリ８から読み出し、補間手段７７３２、７７３４が実際には存在しない情報を補間して得る処理を行う。これにより、位置情報の変化に対応した分析データ（振幅値情報と瞬間周波数情報）を算出する。
【０１０５】
すなわち、出力振幅値に対しては、補間手段７７３２で、時間軸圧縮伸長比に応じてサンプル点を飛越し／追加補間してその振幅エンベロープ（振幅値の経時的変化を示すエンベロープ）を圧縮／伸長した振幅値を出力する。瞬間周波数値に対しては、補間手段７７３３で、時間軸圧縮伸長比に応じてサンプル点を飛越し／追加補間してその周波数エンベロープを圧縮／伸長した瞬間周波数値を出力する。この瞬間周波数値に対しては、加算器７７３４にて、その瞬間周波数値に中心の角周波数ωkを加算するとともに、ピッチ変換を行う場合には、乗算器７７３５にて、この瞬間周波数値に周波数変換比（ピッチシフトの度合いに応じた比）を乗算する。
【０１０６】
図２２はこの振幅値と瞬間周波数の補間処理の様子を示す図である。時間伸長する場合には、図２２（ｂ）に示すように、図２２（ａ）に示す元の振幅エンベロープと周波数エンベロープをともに引き伸ばして、時間軸を伸長した振幅値と瞬間周波数とを生成する。また、時間圧縮する場合には、図２２（ｃ）に示すように、元の振幅エンベロープと周波数エンベロープをともに縮めて、時間軸を圧縮した振幅値と瞬間周波数とを生成する。この補間処理により、元のオーディオ信号波形の時間軸を任意に圧縮／伸長することができる。
【０１０７】
時間周波数変換処理部７７３で処理された瞬間周波数値（適宜、時間軸圧縮伸長処理されたもの）は余弦発振器７７４に供給され、それにより余弦発振器７７４はそのバンドの周波数の余弦波を発生し、その余弦波に、時間周波数変換処理部７７３で処理された振幅エンベロープを付加して出力する。これにより、当該バンドの成分が再生される。さらに、これら各バンド０〜９９のバンド成分を加算合成することで、元のオーディオ信号波形を復元できる。
【０１０８】
以上に述べた実施例はいずれも、本発明に係るオーディオ波形再生装置を電子楽器などの専用ハードウェアに搭載するものとして説明したが、本発明はこれに限られるものではなく、例えば前記に説明した各機能を制御プログラムで実現し、これらの制御プログラムを記録媒体に格納して、この記録媒体からパーソナルコンピュータなどにその制御プログラムをインストールすることで、そのパーソナルコンピュータをオーディオ波形再生装置として機能させることによっても実現できる。すなわち、記録媒体には、パーソナルコンピュータを前記した各機能実現手段として機能させるためのプログラムを格納する。もちろん、これらの制御プログラムをパーソナルコンピュータに通信回線を介して配信してインストールすることでも、本発明に係るオーディオ波形再生装置を実現できる。
【０１０９】
【発明の効果】
以上に説明したように、本願のオーディオ波形再生装置によれば、オーディオ波形を、再生時にユーザが内部設定または外部入力で指定したテンポで、テンポを外さずに再生することができるという効果がある。また、再生途中でそのテンポを変更したような場合にも、その変更したテンポを速やかに追従することができるという効果がある。
【図面の簡単な説明】
【図１】本発明の一実施例としてのオーディオ波形再生装置を搭載した電子楽器の全体構成を示す図である。
【図２】実施例装置におけるＤＳＰの構成概念を機能ブロックで示した図である。
【図３】実施例装置における波形メモリに格納される波形データのデータ構造を示す図である。
【図４】実施例装置のＣＰＵによって実行される操作子検出処理ルーチンを示すフローチャートである。
【図５】実施例装置のＣＰＵによって実行される鍵検出処理ルーチンを示すフローチャートである。
【図６】実施例装置のＤＳＰによって実行されるテンポクロック割込み処理ルーチンを示すフローチャートである。
【図７】実施例装置のＤＳＰによって実行されるサンプリングクロック割込み処理ルーチンを示すフローチャートである。
【図８】実施例装置のＤＳＰにおける歩進値（時間軸圧縮伸長情報）発生手段の構成概念を機能ブロックの形態で示した図である。
【図９】実施例装置におけるテンポアドレス長、テンポクロック、再生位置など概念を説明するための図である。
【図１０】実施例装置におけるサンプリングクロック毎に更新される再生位置ＰＰとテンポクロック毎に更新されるテンポ位置ＴＰとの関係を説明するための図である。
【図１１】実施例装置のＤＳＰにより実現される時間軸圧縮伸長処理手段７４の構成概念を機能ブロックの形態で示した図である。
【図１２】実施例装置におけるホルマント方式の時間軸圧縮伸長手段７４で用いる波形データの波形関連情報の説明するための図である。
【図１３】実施例装置における波形メモリ８に記憶する波形データの構造を説明する図である。
【図１４】実施例装置の時間軸圧縮伸長手段７４における、時間軸およびホルマントは変化させずに再生ピッチのみ上げる場合の処理の波形図である。
【図１５】実施例装置の時間軸圧縮伸長手段７４における、時間軸およびホルマントは変化させずに再生ピッチのみ下げる場合の処理の波形図である。
【図１６】実施例装置の時間軸圧縮伸長手段７４における、時間軸および再生ピッチを変化させずにホルマントのみ上げる場合の処理の波形図である。
【図１７】実施例装置の時間軸圧縮伸長手段７４における、時間軸および再生ピッチを変化させずにホルマントのみ下げる場合の処理の波形図である。
【図１８】実施例装置の時間軸圧縮伸長手段７４における、再生ピッチおよびホルマントは変化させずに時間軸のみ伸長する場合の処理の波形図である。
【図１９】実施例装置の時間軸圧縮伸長手段７４における、再生ピッチおよびホルマントは変化させずに時間軸のみ圧縮する場合の処理の波形図である。
【図２０】他の実施例としての、位相ボコーダ方式の時間軸圧縮伸長処理手段の合成系の構成を機能ブロックの形態で示した図である。
【図２１】他の実施例としての、位相ボコーダ方式の時間軸圧縮伸長処理手段の合成系の時間周波数変換処理部の構成を機能ブロックの形態で示した図である。
【図２２】他の実施例としての位相ボコーダ方式の時間軸圧縮伸長処理手段の動作を説明するための波形図である。
【図２３】他の実施例としての、位相ボコーダ方式の時間軸圧縮伸長処理手段の分析系の構成を機能ブロックの形態で示した図である。
【図２４】他の実施例としての、位相ボコーダ方式の時間軸圧縮伸長処理手段の分析系の各バンド分析フィルタの構成を機能ブロックの形態で示した図である。
【図２５】他の実施例としての、位相ボコーダ方式の時間軸圧縮伸長処理手段における各周波数帯域（バンド）の概念を説明する図である。
【符号の説明】
１  ＣＰＵ（セントラル・プロセッシング・ユニット）
２  ＲＯＭ（リード・オンリー・メモリ）
３  ＲＡＭ（ランダム・アクセス・メモリ）
４  鍵盤
５  操作子群
６  ＭＩＤＩインタフェース
７  ＤＳＰ（ディジタル・シグナル・プロセッサ）
８  波形メモリ
７１  サンプリングクロック割込み処理部
７２  テンポクロック割込み処理部
７３  再生位置（ＰＰ）発生手段
７４  時間軸圧縮伸長処理手段
７４  テンポ位置（ＴＰ）発生手段
７６  歩進値（時間軸圧縮伸長情報）ＴＲ発生手段
【図１】
0004293712.tif 000002
【図２】
0004293712.tif 000003
【図３】
0004293712.tif 000004
【図４】
0004293712.tif 000005
【図５】
0004293712.tif 000006
【図６】
0004293712.tif 000007
【図７】
0004293712.tif 000008
【図８】
0004293712.tif 000009
【図９】
0004293712.tif 000010
【図１０】
0004293712.tif 000011
【図１１】
0004293712.tif 000012
【図１２】
0004293712.tif 000013
【図１３】
0004293712.tif 000014
【図１４】
0004293712.tif 000015
【図１５】
0004293712.tif 000016
【図１６】
0004293712.tif 000017
【図１７】
0004293712.tif 000018
【図１８】
0004293712.tif 000019
【図１９】
0004293712.tif 000020
【図２０】
0004293712.tif 000021
【図２１】
0004293712.tif 000022
【図２２】
0004293712.tif 000023
【図２３】
0004293712.tif 000024
【図２４】
0004293712.tif 000025
【図２５】
0004293712.tif 000026