(57)【特許請求の範囲】
【請求項１】
オーディオ波形の波形データを記憶する記憶手段と、
再生位置として指定された該オーディオ波形の時間軸上の位置に対応する波形データを再生する再生手段と、
該再生位置を歩進する量である再生速度を入力する再生速度入力手段と、
ユーザが手動操作した動きの動き量を入力する動き量入力手段と、
該再生手段の再生モードを第１モードと第２モードとに切り替えるモード切替え手段と、
該モード切替え手段により該第１モードに切り替えられた時には、該再生手段が該再生速度に基づき該再生位置を更新しつつ波形再生をするよう制御し、該第２モードに切り替えられた時には、該再生速度に基づく該再生位置の更新を停止して、代わりに該動き量入力手段で入力した動き量に基づき該再生位置を更新しつつ波形再生するよう制御する制御手段と、
該モード切替え手段で該第１モードから該第２モードへ切り替えたときの該再生速度に基づく再生位置の更新を、該再生位置が所定の位置に到着したら瞬間変化ではなく時間経過とともに変化する所定の変化特性で停止するように制御する停止特性制御手段とを備えたオーディオ波形再生装置。
【請求項２】
オーディオ波形の波形データを記憶する記憶手段と、
再生位置として指定された該オーディオ波形の時間軸上の位置に対応する波形データを再生する再生手段と、
該再生位置を歩進する量である再生速度を入力する再生速度入力手段と、
ユーザが手動操作した動きの動き量を入力する動き量入力手段と、
該再生手段の再生モードを第１モードと第２モードとに切り替えるモード切替え手段と、
該モード切替え手段により該第１モードに切り替えられた時には、該再生手段が該再生速度に基づき該再生位置を更新しつつ波形再生をするよう制御し、該第２モードに切り替えられた時には、該再生速度に基づく該再生位置の更新を停止して、代わりに該動き量入力手段で入力した動き量に基づき該再生位置を更新しつつ波形再生するよう制御する制御手段と、
該モード切替え手段で該第２モードから該第１モードへ切り替えたときの該再生位置の更新を、瞬間変化ではなく時間経過とともに変化する所定の変化特性で該再生速度に基づく元の更新態様に復帰するように制御する復帰特性制御手段を備えたオーディオ波形再生装置。
【請求項３】
該オーディオ波形の時間軸上の任意の箇所に１以上の停止位置を予め設定しておき、該モード切替え手段で該第１モードから該第２モードに切り替えた時の該再生速度に基づく該再生位置の更新の停止を、該停止位置に基づいて行うように構成した請求項１記載のオーディオ波形再生装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、フレーズなどのオーディオ波形をタイムストレッチしつつ再生できるオーディオ波形再生装置に関するものである。
【０００２】
予めメモリに記憶しておいたオーディオ波形信号を時間軸圧縮伸長技術を利用してタイムストレッチしつつ再生する種々の波形再生装置が提案されている。具体的には、例えば特開平１１−５２９５４号公報に開示されるように、フレーズ等の一連のオ一ディオ波形信号を記憶しておき、その再生速度をピッチを変えずに速く（時間軸圧縮）あるいは遅く（時間軸伸長）して再生したり、停止したり、あるいは逆方向に再生したりできる波形再生装置が提案されている。通常、この再生速度は、ユーザが操作子で数値入力などすることで設定している。
【０００３】
【発明が解決しようとする課題】
しかしながら、上記した波形再生装置ように、ユーザが再生速度を数値入力等で設定することによって、記憶されたオーディオ波形の再生を制御するやり方は、ユーザにとって感覚的に分かりづらく、必ずしも使い勝手がよいといえる方法ではなかった。
【０００４】
本発明はかかる問題点に鑑みてなされたものであり、記憶されたオーディオ波形の再生位置をユーザが直接的に指定することで、オーディオ波形信号を所望の態様でタイムストレッチしつつ再生できるようにすることを目的とする。
さらに、設定した再生速度による波形の再生モードとユーザーが再生位置を直接指定する波形の再生モードの切換えがスムーズに行われるように予め定めた所望の特性に従って切換えできるようにすることを目的とする。
【０００５】
【課題を解決するための手段および作用】
上述の課題を解決するために、本発明に係るオーディオ波形再生装置は、一つの形態として、オーディオ波形の波形データを記憶する記憶手段と、再生位置として指定されたオーディオ波形の時間軸上の位置に対応する波形データを再生する再生手段と、再生位置を歩進する量である再生速度を入力する再生速度入力手段と、ユーザが手動操作した動きの動き量を入力する動き量入力手段と、再生手段の再生モードを第１モードと第２モードとに切り替えるモード切替え手段と、モード切替え手段により第１モードに切り替えられた時には、再生手段が再生速度に基づき再生位置を更新しつつ波形再生をするよう制御し、第２モードに切り替えられた時には、再生速度に基づく再生位置の更新を停止して、代わりに動き量入力手段で入力した動き量に基づき再生位置を更新しつつ波形再生するよう制御する制御手段と、モード切替え手段で第１モードから第２モードへ切り替えたときの再生速度に基づく再生位置の更新を、該再生位置が所定の位置に到着したら瞬間変化ではなく時間経過とともに変化する所定の変化特性で停止するように制御する停止特性制御手段とを備えている。上記の動き量入力手段としては、ユーザがプレート上で指などを擦り動かした時の移動距離を動き量として入力するもの、直線型スライド操作子のノブを前後に動かした時の移動距離を動き量として入力するもの、あるいはホイールやレバーなどの回転量を動き量として入力するものなどが利用可能である。また、上記のモード切替え手段としては、ユーザがプレートを指などでタッチしていることを検出してモード切替えを行うものや、スイッチ類などでモード切替えを指示するものなどが利用可能である。また、上記の停止特性制御手段の変化特性としては、例えば所定の指数関数曲線あるいは一次関数特性などで再生速度が０に収束していくような変化特性などが利用可能である。同様に、上記の復帰特性制御手段の変化特性としては、例えば所定の指数関数曲線あるいは一次関数特性などで再生速度が元の状態に収束していくような変化特性などが利用可能である。このオーディオ波形再生装置では、モード切替え手段により第１モードに切り替えられている時には、再生手段は、記憶手段に記憶されているオーディオ波形について、再生速度入力手段で入力した再生速度に基づき再生位置を更新しつつ、その再生位置に対応する波形データを再生する。一方、モード切替え手段により第１モードから第２モードに切り替えられた時には、制御手段により、再生速度に基づく再生位置の更新を停止して、代わりに動き量入力手段で入力した動き量に基づき再生位置を更新しつつ波形再生するよう制御する。その際に、停止特性制御手段により、再生速度に基づく再生位置の更新を、瞬間変化ではなく時間経過とともに変化する所定の変化特性で停止するように制御する。これにより、波形再生の再生モードの切替えを、所定の特性に基づいてスムーズに行うことができる。
【０００６】
上述のオーディオ波形再生装置は、上述の停止特性制御手段と共に、あるいはそれに代えて、モード切替え手段で第２モードから第１モードへ切り替えたときの再生位置の更新を、瞬間変化ではなく時間経過とともに変化する所定の変化特性で再生速度に基づく元の更新態様に復帰するように制御する復帰特性制御手段を備えるように構成してもよい。
モード切替え手段により第２モードから第１モードに切り替えられた時には、制御手段により、動き量入力手段で入力した動き量に基づき再生位置を更新から、再生速度に基づく再生位置の更新に切り替えるが、この際、復帰特性制御手段により、再生位置の更新を、瞬間変化ではなく時間経過とともに変化する所定の変化特性で再生速度に基づく元の更新態様に復帰するように制御する。
これにより、波形再生の再生モードの切替えを、所定の特性に基づいてスムーズに行うことができる。
【０００７】
また、上述のオーディオ波形再生装置は、オーディオ波形の時間軸上の任意の箇所に１以上の停止位置を予め設定しておき、モード切替え手段で第１モードから第２モードに切り替えた時の再生速度に基づく再生位置の更新の停止を、停止位置に基づいて（例えば再生位置が停止位置に達するなどしたら）行うように構成してもよい。この停止位置としては、例えばオーディオ波形の再生を動き量に応じて行うようにした場合に特殊な効果が演出できると期待できるような箇所や、再生位置を停止等した場合に不自然さがないような箇所などを予め選定して設定しておくとよい。これにより、再生位置の更新を再生速度から動き量に基づいて行うようにする切替えを、演出効果が高いと考えられるオーディオ波形上の位置や、聴感上、不自然に感じない位置で行うことが可能となる。
【０００８】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
図１には本発明の一実施例としてのオーディオ波形再生装置のハードウェア構成が示される。図１において、ＣＰＵ１は装置全体の制御を司る中央処理装置であって、ＲＯＭ２に記憶されたプログラムに従って動作して、操作子群４の各操作子の操作状態を検出したり、ＤＳＰ７との間で各種情報をやり取りして制御したりする。
【０００９】
ＲＯＭ２は、リード・オンリー・メモリであって、ＣＰＵ１、ＤＳＰ７の処理ブログラムが記憶されている。なお、ＤＳＰ７のプログラムはＣＰＵ１を介してＤＳＰ７に転送される。また、ＲＡＭ３は、ランダム・アクセス・メモリであって、ＣＰＵ１の処理に使用される作業用のワークメモリなどとして用いられる。
【００１０】
波形メモリ８は、本実施例装置で再生するオーディオ波形信号の波形データを記憶しているメモリであり、この波形データをＤＳＰ７に供給する。この波形データのデータ構成を図２に示す。図示するように、オーディオ波形信号の波形データは、波形データの本体となるＰＣＭ（パスル符号変調）波形データと、このＰＣＭ波形データが格納されているアドレス範囲などを示す波形関連データとから構成されている。
【００１１】
ＰＣＭ波形データは、例えば図４に示すように、一連のオーディオ波形信号（例えば１フレーズ分のオーディオ波形信号）を所定のサンプリング周波数Ｆs にて周期的にサンプリングした振幅値データ（ＰＣＭデータ）の時系列からなり、これらの振幅値データの時系列は波形メモリの連続アドレス領域にシーケンシャルなアドレスで格納される。
【００１２】
また、上記の波形関連データとしては、一纏まり分（例えば１フレーズ分）のＰＣＭ波形データが記憶されているアドレス領域の範囲を示すための情報として、オーディオ波形の先頭の振幅値データが格納されている先頭アドレスwavestart と最後尾の振幅値データが格納されている最終アドレスwaveend があり、また、その他の関連情報として、サンプリングしたオーディオ波形の元々のピッチ（オリジナル・ピッチ）や、停止マークmark(i) がある。
【００１３】
この停止マークmark(i) は、詳しくは後述するが、本発明によりオーディオ波形の再生位置を停止する際に、オーディオ波形上のより高い演出効果が得られる箇所（例えばタイムストレッチすると面白い音の部分、あるいは音の切れ目など）などを予めアドレス値にて指定したものであり、オーディオ波形の時間軸に沿う複数の位置に停止マークmark(i) が設定されており、それら各位置はパラメータｉにて指定される。このパラメータｉは、０≦ｉ≦ｎであり、ｎはオーディオ波形中に設定する停止マークの総数である。
【００１４】
操作子群４は、時間圧伸量設定用の操作子を含む操作子群である。この時間圧伸量設定操作子はオーディオ波形信号を再生するときの時間軸上の時間圧縮／伸長量（以下、時間圧伸量と称する）を設定する操作子であり、この時間圧伸量設定操作子の操作量に応じて時間圧伸量としての再生速度tcomp を設定する。
【００１５】
この再生速度tcomp は、オーディオ波形データ中の再生せんとする位置（再生位置sphase）の値を歩進するための歩進値であり、再生位置sphaseはアドレス値で表されるから、この再生速度tcomp は再生位置sphaseの値を更新していくアドレスの数となる。
【００１６】
この再生速度tcomp の値に応じて、以下のような態様でオーディオ波形が再生される。
▲１▼再生速度tcomp ＞ｌのときは、ＰＣＭ波形データの時系列が時間圧縮されて生成されるので、オリジナル波形よりも速い速度でオーディオ波形信号が再生される．
再生速度tcomp ＜ｌのときは、ＰＣＭ波形データの時系列が時間伸長されて生成されるので、オリジナル波形よりも遅い速度でオーディオ波形信号が再生される．
再生速度tcomp ＝ｌのときは、オリジナルのオーディオ波形を時間軸圧縮伸長せずに元の速度で再生する。
なお、再生速度tcomp は初期設定時は１であり、また、常に、tcomp ＞０である。
【００１７】
鍵盤５は、この実施例装置を電子楽器として機能させた時には、通常の楽音入力用の鍵盤として用いる。これと共に、本発明では、押鍵／離鍵によってオーディオ波形信号の再生開始／再生終了を指示すると共に、その押鍵した鍵により再生するオーディオ波形（楽音）の音高を指示するために用いる。この音高情報は、具体的には予め定められた基準音高（例えばＣ４）から当該押鍵された鍵の音高までの音程に基づくピッチシフト量pitch である。なお、複数の鍵が押鍵されているときには、それらの複数の押鍵のうちの最も高い音高に基づいてピッチシフト量pitch を設定する。
【００１８】
リボンコントローラ６は、本発明による位置情報で再生位置を直接指定する再生モードの時に、オーディオ波形を再生する位置の情報を入力するための操作子であり、細長いプレートを有した機器からなり、このプレート上を指で左右に擦り動かすことで、そのタッチして動かした移動量に応じた位置情報（移動量shift ）を生成する。この移動量shift は一次元情報（すなわちＸ軸方向のみの位置情報）であり、リボンコントローラ６のプレート（以下、単にリボンコントローラ６という）を指でタッチすると、タッチセンサによりそのタッチ「ＯＮ」が検出され、リボンコントローラ６から指を離せばそのタッチ「ＯＦＦ」が検出される。移動量shift は、上記のタッチ「ＯＮ」した箇所を原点（０点）として、そのタッチ箇所から左側に向けて擦り動かせばその動いた距離に応じたマイナスの値となり、右側に向けて擦り動かせばその動いた距離に応じたプラスの値となる。
【００１９】
ＤＳＰ７は、波形メモリ８に記憶されている波形データを再生するための演算処理を行うディジタル・シグナル・プロセッサである。図３にその概略的な構成が機能ブロック図の形態で示される。図示するように、ＣＰＵ１側からの各種信号を格納するＤＳＰレジスタ群７１と、それらのレジスタの各情報に基づいて位置情報の算出を行う位置情報算出手段７２と、位置情報算出手段７２で算出した位置情報（再生位置sphase）に基づいて波形データの再生演算を行って波形再生をする再生波形演算手段７３などを含み構成される。ここで、ＤＳＰレジスタ群７１に入力される各種情報としては、ピッチシフト量pitch 、移動量shift 、再生速度tcomp 、発音フラグgate、タッチフラグr.touch などがあるが、これについての詳細は後述する。
【００２０】
Ｄ／Ａ変換器９は、ＤＳＰ７で算出されたディスク値の再生波形データをアナログ信号に変換する回路である。再生されたアナログ・オーディオ波形信号は、図示しない増幅器で増幅されてからスピーカ１０から放音される。
【００２１】
以下、この実施例装置の動作を説明する。
まず、この実施例装置の動作を概略的に説明する。図４には、この実施例装置で再生するオーディオ波形データ（波形メモリ８に記憶されたＰＣＭ波形データ）と再生位置sphaseとの関係が示される。図中、縦方向に振幅値が取られ、横方向にオーディオ波形データの時間軸が取られている。この時間軸は波形の再生位置sphaseで表され、この再生位置sphaseは振幅値データを格納するアドレスで表される。従って、オーディオ波形の先頭に相当する再生位置sphaseは開始アドレスwavestart となり、最後尾に相当する再生位置sphaseは最終アドレスwaveend となる。
【００２２】
この実施例装置では、現在の再生位置sphaseに対応する波形区間を適宜繰り返しつつ再生する。この波形区間は一連のオーディオ波形中の１ないし２周期分程度の波形の区間からなる。現在の再生位置が図中を右側に向けて順次に移動すれば、オーディオ波形を通常の時間順に再生することになるが、反対に、この再生位置を左側に向けて順次に移動すれば、オーディオ波形を時間を逆戻りさせつつ再生することになる。但し、再生している各波形区間の中では再生方向は常に時間軸の順方向である。この再生速度をオリジナル波形のものよりも遅くすると、上記波形区間を適宜に繰り返して再生することになり、また再生速度をオリジナル波形のものよりも速くすると、波形区間を適宜に飛び越しつつ再生することになる。また、現在の再生位置が１箇所で停止されると、それに対応する同じ波形区間を繰り返し続けて再生することになり、時間的に進みも戻りもしない状態となる。
【００２３】
このような再生方法によれば、ピッチを変化させずに再生速度（時間圧縮伸長量）を変えて波形再生を行うことができる。
【００２４】
図５はリボンコントローラ６のタッチＯＮ／ＯＦＦ操作による再生速度の変化と、その変化に応じた現在再生している波形データの位置情報（再生位置sphase）の変化とを例で示した図である。この例は、ユーザがリボンコントローラ６を指でタッチし、その後は指を左右に擦り動かすことなく止めておき、しばらくしてから指を離した場合のものである。
【００２５】
図５中の（１）は、波形データの再生位置sphaseと時間との関係を示し、また（２）は波形データを再生する現在の再生速度（カレント再生速度w.tcomp という）と時間との関係を示している。ここで、再生速度tcomp は時間圧伸量設定操作子で設定する再生速度の値である。この再生速度tcomp はタイムストレッチを行っていないオリジナル波形では再生速度tcomp ＝１であり、この図５の例では再生速度をこのオリジナル波形のtcomp ＝１として示している。カレント再生速度w.tcomp は、通常の再生時には
カレント再生速度w.tcomp ＝再生速度tcomp
となるが、本発明による位置指定で波形再生を行う時には、後述するように、カレント再生速度w.tcomp は「０」に向かって変化して再生速度tcomp と一致しなくなる。
【００２６】
図５において、ユーザがリボンコントローラ６を指でタッチすると、タッチセンサによりタッチ「ＯＮ」が検出される。このタッチ「ＯＮ」をした時のオーディオ波形の再生位置sphaseから、その再生位置sphaseより時間的に後ろにある最初の停止マークmark(i) の位置までは、通常どうりの波形再生（この例ではカレント再生速度w.tcomp ＝１の波形再生）が行われる。
【００２７】
再生位置sphaseが停止マークmark(i) の位置まで来ると、この停止マークmark(i) の再生位置sphaseでカレント再生速度w.tcomp が「０」に向けて減衰を開始する。この時の減衰特性は「１」から瞬間的に「０」に変化するのではなく、指数関数曲線的に減衰していく特性曲線となるようにする。カレント再生速度w.tcomp が「０」に減衰後は、再生位置sphaseは更新されないため変化しなくなり、再生位置対時間の特性は図５（１）に示すように水平線となる。この水平線の区間では、オーディオ波形はある一点（一つの同じ波形区間）が繰り返して再生され続けていて、時間的に進みも戻りもしない状態となる。
【００２８】
ユーザがリボンコントローラ６から指を離すと、タッチセンサによりタッチ「ＯＦＦ」が検出され、これによりカレント再生速度w.tcomp は図５（２）に示すように指数関数曲線的に通常時（オリジナル）の再生速度tcomp である「１」に復帰していく。このとき、再生位置sphaseも、図５（１）に示すように、時間の経過と共に再生速度tcompaに向かって変化していく特性〔図５（１）中の実線〕を描く。なお、この通常に戻った以降は、カレント再生速度w.tcomp は再生速度tcomp となる。
【００２９】
次に、図６は、図５同様に、リボンコントローラ６の操作によるカレント再生速度w.tcomp の変化と、その変化に応じた再生位置sphaseの変化の例を示した図であるが、この図６の例は、ユーザは、リボンコントローラ６を指でタッチし、少し間をおいてから指を右側に擦り動かし、次いで折り返して左側に擦り動かし、そして最初のタッチ位置に戻らないうちに指を離す動作をした場合のものである。
【００３０】
ユーザがリボンコントローラ６を指でタッチすることによりタッチ「ＯＮ」となり、その後の最初の停止マークmark(i) の位置から再生速度tcomp が指数関数曲線的な減衰特性で「０」に減衰していってオーディオ波形中のある一点を繰り返して再生し続けることは上述の図５と同じである。ここで、ユーザがリボンコントローラ６上で指を右側に擦り動かすと、その擦り動かした距離に応じた大きさだけ再生位置sphaseが値を増大していき、その移動中においては、リボンコントローラ６上の擦り動かしている位置に対応した再生位置sphaseの波形区間が再生される。また、指を左側に向けて擦り動かすようにすると、同じくその擦り動かしているリボンコントローラ６上の位置に対応した再生位置sphaseの波形区間が再生されるが、この場合には、オーディオ波形の時間軸上を逆戻りさせつつ各波形区間を取り出して再生するようになる。これにより、特殊な効果を演出しつつオーディオ波形を再生することができる。なお、各波形区間内では、時間軸を順方向にのみ波形再生している。
【００３１】
ユーザがリボンコントローラ６から指を離せば、上述の図５の例と同様に、タッチ「ＯＦＦ」が検出されて、カレント再生速度w.tcomp は図６（２）に示すように指数関数曲線的な特性曲線で、操作子設定による再生速度tcomp （この例ではオリジナル波形に相当する再生速度tcomp ＝１）に復帰していく。
【００３２】
以下、上述の動作態様を実現するための実施例装置の動作の詳細を図７〜図１４に示すフローチャートを参照つつ説明する。
【００３３】
図７はＣＰＵ１のメイン処理を表わしたフローチャートである。実施例装置が電源ＯＮされると、このＣＰＵメイン処理が起動されて、ＲＡＭ３やＤＳＰ７の初期設定を行い（ステップＡ）、以降は電源ＯＮの期間中、ステップＢ，Ｃ，ＤをループしつつこのＣＰＵメイン処理を繰り返す。なお、上記の初期設定としては、図３に示すＤＳＰ７内のレジスタ群７１をリセットしたり、その他の各種フラグやレジスタをリセットする処理が行われる。
【００３４】
初期設定が終わると、まず操作子群４の操作の検出処理（図８参照）を行い（ステップＢ）、次いで鍵盤５の操作検出処理（図９参照）を行い（ステップＣ）、さらにリボンコントローラ６の操作検出処理（図１０参照）を行い（ステップＥ）、これをループして繰り返し続ける。
【００３５】
図８は上記の操作子群４の操作検出処理ルーチンを表わしたフローチャートである。なお、この操作検出処理では、時間圧伸量設定操作子の操作を検出する処理のみを示しており、他の操作子は本発明とは直接関係ないので省略している。
【００３６】
ＣＰＵメイン処理にてこの操作子群６の操作検出処理ルーチンが起動されると、操作子群６に何らかの操作があったかどうかを判定する（ステップＢ１）。操作子群４に操作がなかった時には、ＣＰＵメイン処理にリターンする。いずれかの操作子の操作があったことが検出されたら、その操作があった操作子が時間圧伸量設定操作子か否か、すなわち時間圧伸量の変更があったか否かを判断する（ステップＢ２）。時間圧伸量設定操作子により時間圧伸量の変更があったと判断されたら、その時間圧伸量設定操作子の操作量に基づいて再生速度tcomp の値を変更する（ステップＢ３）。なお、この再生速度tcomp の値に基づく再生態様は前述したとおりである。この後、ＣＰＵメイン処理にリターンする。
【００３７】
図９は上記の鍵盤５の操作検出処理ルーチンを表わしたフローチャートである。この実施例装置では、鍵盤５のいずれかの鍵を最初に押鍵したタイミングでオーディオ波形信号の再生を開始し、押鍵された鍵がすべて離鍵された時点でオーディオ波形信号の再生を終了する。これに応じて、オーディオ波形信号再生中の発音状態か否かを示す発音フラグgateを備えており、この発音フラグgateが「０」であればオーディオ波形信号の発音をしていない状態を表し、「１」であればオーディオ波形信号を発音中である状態を表す。
【００３８】
ＣＰＵメイン処理にてこの鍵盤５の操作検出処理ルーチンが起動されると、鍵盤５のいずれかの鍵の鍵操作（押鍵または離鍵の操作）があったかを判定する（ステップＣ１）。鍵操作がなければ、速やかにＣＰＵメイン処理にリターンする。鍵操作があったならば、その鍵操作が押鍵の操作であったか否かを判定する（ステップＣ２）。
【００３９】
押鍵操作であった場合には、以下の押鍵処理を行う。まず、その押鍵が新規の押鍵の操作であったか、つまり鍵盤５の全鍵が押されていない状態からいずれかの鍵を初めて押鍵した操作であったか否かを判定する（ステップＣ５）。新規の押鍵であれば、上述したように、この最初に押鍵したタイミングでオーディオ波形信号の再生を開始するので、発音フラグgateに発音中の状態を表す「１」を設定する（ステップＣ６）。
【００４０】
そして、押鍵した鍵の音高に基づいた音高情報をピッチシフト量pitch としてレジスタに設定して（ステップＣ７）、ＣＰＵメイン処理にリターンする。前述したように、このピッチシフト量pitch に設定する音高情報は、具体的には予め定められた基準音高（例えばＣ４）から押鍵された鍵の音高までの音程に基づくピッチシフト量である。この音高情報の設定にあたっては、押鍵されている鍵が一つの場合はその押鍵されている鍵の音高に基づく音高情報をピッチシフト量pitch に設定するが、押鍵されている鍵が複数あった場合にはそのうちの最高の高音に基づいて音高情報を設定する。これは、本実施例装置は発音できるボイスが１ボイスのみであるので、複数の鍵が押された場合には、高音側優先でボイスを発音するよう決められているためである。
【００４１】
一方、鍵操作が押鍵の操作でなかった場合には（ステップＣ２）、その鍵操作は離鍵の操作と判定され、その場合には、押鍵されていた鍵がすべて離鍵されたものであるか否かを判定する（ステップＣ３）。この全鍵の離鍵であった場合には、オーディオ波形信号の再生を停止することになるので、発音フラグgateに発音していない状態であることを示す「０」を設定し（ステップＣ４）、ＣＰＵメイン処理にリターンする。また、全鍵の離鍵でない場合には（ステップＣ３）、なんら特別に処理が行われるものでないから、そのまま何もせずにＣＰＵメイン処理にリターンする。
【００４２】
図１０は上記のリボンコントローラ６の操作検出処理ルーチンを表わしたフローチャートである。前述したように、この実施例装置では、ユーザがリボンコントローラ６に指を触れた時点で、リボンコントローラ６のタッチセンサがタッチ「ＯＮ」になり、オーディオ波形信号の再生位置の再生速度tcomp に基づく変化（進行）を前記所定の減衰特性に従って停止する。リボンコントローラ６から指を離すと、リボンコントローラ６のタッチセンサがタッチ「ＯＦＦ」になり、停止していたオーディオ波形信号の再生位置の再生速度tcomp に基づく変化（進行）を所定の復帰特性に従って元に戻して波形再生をする。この制御を行うため、タッチフラグr.touch を用意し、タッチセンサがタッチ「ＯＦＦ」の時にはタッチフラグr.touch に「０」を、またタッチ「ＯＮ」の時には「１」を設定するようにしている。
なお、このタッチフラグr.touch が「０」の時の再生モードが本発明の第１モードに、また「１」の時の再生モードが本発明の第２モードに相当することになる。
【００４３】
ＣＰＵメイン処理にて上述のリボンコントローラ６の操作検出処理ルーチンが起動されると、まず、リボンコントローラ６を指でタッチする操作（ＯＮ／ＯＦＦ操作）があったか否かを判定する（ステップＤ１）。タッチ操作がなければ、そのまま本ルーチンを終了してＣＰＵメイン処理にリターンする。タッチ操作があった場合には、そのタッチ操作は指でリボンコントローラ６を触れた操作（タッチＯＮ操作）であるか、あるいは指を離した操作（タッチＯＦＦ操作）であるかを判定する（ステップＤ２）。
【００４４】
指でリボンコントローラ６を触れるタッチＯＮ操作であった場合には、タッチフラグr.touch に「１」を設定し（ステップＤ３）、次いで、リボンコントローラ６の操作量（指を擦り動かした移動量）を移動量shift としてレジスタに設定する。前述したように、この移動量shift は、初めにプレートを触れた位置を原点（０点）とし、この原点から右側に擦り動かせばその距離（原点からの距離）に応じた正の値となり、原点から左側に擦り動かせばその距離（原点からの距離）に応じた負の値となる。この移動量shift に従って、オーディオ波形データを再生する位置を制御することになる。
【００４５】
タッチ操作が指をリボンコントローラ６から離すタッチＯＦＦ操作であった場合には（ステップＤ２）、リボンコントローラ６がタッチされていない状態であることを表す「０」をタッチフラグr.touch に設定する（ステップＤ５）。さらに、このタッチ「ＯＦＦ」の場合には、リボンコントローラ６の移動量shift は意味がないので、移動量shift を「０」にリセットし（ステップＤ６）、このルーチンを終了してＣＰＵメイン処理にリターンする。
【００４６】
図１１はＤＳＰ７のメイン処理を示すフローチャートである。ＤＳＰ７は、図３に示すように、ＣＰＵ１から各種情報（ピッチシフト量pitch 、移動量shift 、再生速度tcomp 、発音フラグgate、タッチフラグr.touch など）を受け渡され、これらの情報をＤＳＰレジスタ群７１に記憶し、これらの情報に基づいて位置情報算出手段７２でオーディオ波形信号の再生位置sphaseを算出し、この算出した再生位置sphaseやピッチシフト量pitch 等に基づいて再生波形演算手段７３にて波形メモリ８からオーディオ波形データを読み出しつつその再生位置やピッチ、時間圧伸量（再生速度）などを制御して波形再生を行う。そして、このＤＳＰメイン処理は、サンプリング周期毎に発生する割込みにて周期的に起動され、実行されて波形再生を行う。
【００４７】
サンプリング周期で割込みがかけられると、図１１のＤＳＰメイン処理が起動され、まず、位置情報発生処理ルーチンが実行される（ステップＥ）。この位置情報発生処理ルーチンは、図３の機能ブロック構成の位置情報算出手段７２に相当するものであり、波形メモリ８に記憶されている波形データについて、再生せんとする時間軸上の位置情報（再生位置sphase）を逐次に発生する処理である。その詳細動作は後述する。
【００４８】
次いで、この位置情報発生処理ルーチンで再生された再生位置sphaseに基づいて、再生波形演算処理ルーチンが実行される（ステップＦ）。この再生波形演算処理ルーチンは図３の機能ブロック構成の再生波形演算手段７３に相当するものであり、オーディオ波形データの時間軸上における再生位置sphaseによって示される位置の波形区間を、外部から指示された発音開始／終了情報（発音フラグgate）と音高情報（ピッチシフト量pitch ）に基づいて再生した再生波形データを生成する処理である。このような波形再生方法は、例えば特開平１１−５２９５４号公報に開示されているように一般的な公知技術であるので、ここでは詳細な説明は省略している。
【００４９】
図１２〜図１４は、上記の位置情報発生処理ルーチン０の処理手順を表わしたフローチャートである。
【００５０】
ＤＳＰメイン処理にてこの位置情報発生処理ルーチンが起動されると、まず発音フラグgateの状態を判定する（ステップＥ１）。発音フラグgateは発音／無発音の状態を示すフラグであり、「０」ならば発音していない状態であり、その場合には直ちにこのルーチンを終了して、ＤＳＰメイン処理にリターンする。
【００５１】
一方、発音フラグgateが「１」ならば、現在、オーディオ波形信号の発音が行われている状態であるので、次には、現時点が発音フラグgateの立上がり、つまりオーディオ波形信号の発音が開始された時点かどうかを検出する（ステップＥ２）。開始時点であれば、オーディオ波形信号を再生するための初期準備を行う（ステップＥ３、Ｅ４）。すなわち、波形メモリ８に記憶している波形データ（ＰＣＭ振幅値データ）を再生する時間軸上の位置（アドレス）を表わす再生位置sphaseを、波形の先頭位置である先頭アドレスwavestart に初期化する（ステップＥ３）。次いで、ＤＳＰ７の演算で使用される現在の再生速度（すなわちカレント再生速度w.tcomp ）を時間圧伸量設定操作子で設定された再生速度tcomp に初期化する（ステップＥ４）。
【００５２】
この処理が終了した後、あるいは既にオーディオ波形信号の再生が行われている途中である場合には（ステップＥ２）、タッチフラグr.touch の状態を判定する（ステップＥ５）。タッチフラグr.touch が「１」、すなわちリボンコントローラ６がタッチされている状態を表わしていれば、再生せんとする波形データの時間軸上の位置を表わす再生位置sphaseが、その再生位置sphaseより時間的に後ろで最初にある停止マークmark(i) に到達したか否かを判定する（ステップＥ８）。
【００５３】
判定結果が「肯定」、すなわち、
再生位置sphase≧停止マークmark(i)
であれば、減衰フラグtts を「１」に設定する（ステップＥ９）。この減衰フラグtts の「１」への変化は、カレント再生速度w.tcomp を目標値offset（本実施例では減衰時に「０」あるいは復帰時に「１」が設定される）に向かって減衰させることを指示するものである。よって、減衰フラグtts がカレント再生速度w.tcomp の減衰を示す「１」であることを条件にして（ステップＥ１０）、目標値offsetに「０」を設定する。これにより、停止マークmark(i) 以降はカレント再生速度w.tcomp は「０」に向かって減衰し、これにより時間圧伸量設定操作子で設定した値（再生速度tcomp ）に基づく再生位置sphaseの変化（進行）は停止する。
そして、この場合には、リボンコントローラ６の操作で変化する再生位置sphaseに基づいて、その再生位置sphaseに対応するオーディオ波形信号の波形区間が逐次に波形再生されることになる。
【００５４】
ステップＥ８の判定結果が「否定」、すなわち、
再生位置sphase＜停止マークmark(i)
であれば、現在の再生位置sphaseはまだ進行方向最初の停止マークmark(i) にまで達していないので、通常どおりの波形再生を続けることになり、この場合には減衰フラグtts の設定は行わない。
【００５５】
一方、ステップＥ５の判定結果が、タッチフラグr.touch が「０」すなわちリボンコントローラ６から指を離す操作（タッチＯＦＦ）をしたことを示している場合には、減衰フラグtts を「０」に設定する（ステップＥ６）。この減衰フラグtts の「０」への変化は、減衰させたカレント再生速度w.tcomp を元の値（時間圧伸量設定操作子で設定した再生速度tcomp ）に復帰させる指示であり、よってその復帰先の値である目標値offsetに、時間圧伸量設定操作子で設定した再生速度である再生速度tcomp を設定する（ステップＥ７）。これにより、これ以降は、サンプリング周期毎に、カレント再生速度w.tcomp は再生速度tcomp に向かって指数関数曲線的に復帰していき、再生速度tcomp に到達後は通常どおりの波形再生が行われるようになる。
【００５６】
次に続くステップＥ１２では、タッチ「ＯＮ」によるカレント再生速度w.tcomp の減衰特性、タッチＯＦＦ操作によるカレント再生速度w.tcomp の復帰特性を決めるための、カレント再生速度w.tcomp の計算を次の計算式、
w.tcomp ←w.tcomp ＋ｋ×（offset−w.tcomp ）
（但し、ｋは任意の係数）
に従って演算することにより、現在のカレント再生速度w.tcomp をサンプリング周期毎に更新する。この更新式は、図５および図６に示すように、停止マークmark(i) の時間位置からカレント再生速度w.tcomp を０に向けて指数関数的曲線で滅衰させたり、あるいはリボンコントローラ６のタッチＯＦＦ操作でカレント再生速度w.tcomp を指数関数的曲線で所定の値（再生速度tcomp ）に戻す振る舞いをさせるものである。
【００５７】
この更新式は、タッチＯＮ操作によるカレント再生速度の減衰時であれば、目標値offsetが「０」になり、よって、現在のカレント再生速度w.tcomp は、サンプリング周期毎に、ｋ×w.tcomp ずつ減少していく減衰特性（すなわち指数関数曲線的な特性）を描くことになる。また、タッチＯＦＦ操作によるカレント再生速度の復帰時であれば、目標値offsetは再生速度tcomp （例えば「１」）となり、よって、現在のカレント再生速度w.tcomp は、サンプリング周期毎に、ｋ×（１−w.tcomp ）ずつ増加していく復帰特性（すなわち指数関数曲線的な特性）を描くことになる。
【００５８】
このカレント再生速度w.tcomp の更新ステップＥ１２に続くステップＥ１３では、カレント再生速度w.tcomp が再生速度tcomp に一致しているか、すなわち、「w.tcomp ＝tcomp 」かを判定する。もし、一致していなければ、カレント再生速度w.tcomp は現在「０」であるか変化中であり、一致していれば、減衰開始前（つまり停止マークmark(i) 以前）または元の値に復帰済である。
【００５９】
前者の一致していない場合には、タッチフラグr.touch が「１」でかつカレント再生速度w.tcomp が「０」近傍（w.tcomp ≒０）かを判定し、判定結果が「肯定」であれば、カレント再生速度w.tcomp の減衰は十分に「０」に近づいたので「０」と見なし、カレント再生速度w.tcomp を強制的に「０」に設定する（ステップＥ１５）。
【００６０】
カレント再生速度w.tcomp が「０」となった後は、操作子で設定した再生速度による波形の再生モードからユーサーがリボンコントローラ６で再生位置を直接指定する波形の再生モードに切り替わる。これにより、波形再生は時間圧伸量設定操作子で設定した値（再生速度tcomp ）に基づいては行われず、代わりに、リボンコントローラ６を指で左右に擦り動かした移動量に基づいて波形再生位置を決めつつ行われるようになる。
【００６１】
すなわち、現在の再生位置sphaseを次の更新式に従って更新する（ステップＥ１６）。
sphase＝sphase＋ａ×shift
（但し、a は任意の係数）
つまり、リボンコントローラ６の操作量に基づく移動量shift に所定の係数ａを乗じたものを、現在再生している波形データの時間軸上の位置を表わす再生位置sphaseに加算し、それを新たな再生位置sphaseとする。したがってリボンコントローラ６で変化させられる移動量shift の値に応じて波形の再生位置を制御することができる。なお、上述の更新式からも分かるように、係数ａはいわばリボンコントローラ６の操作感度に相当するものとなる。
【００６２】
ステップＥ１４の判定結果が「否定」であれば、次には、タッチフラグr.touch が「０」であり、かつ現在のカレント再生速度w.tcomp が再生位置sphase近傍の値であるかを判定する（ステップＥ１７）。これは、タッチ「ＯＦＦ」操作があったことでカレント再生速度w.tcomp が「０」から再生速度tcomp 近傍の値にまで復帰したかを判定するもので、判定結果が「肯定」であれば、現在のカレント再生速度w.tcomp を強制的に、時間圧伸量設定操作子で設定された再生速度tcomp の値に設定し（ステップＥ１８）、再生速度「０」の状態から完全に元に復帰した状態にする。
【００６３】
次いで、再生位置sphaseの更新を次の更新式に従って行う。
sphase←sphase＋w.tcomp
この更新式は、現在再生している波形データの時間軸上の位置を表わす再生位置sphaseに、現在のカレント再生速度w.tcomp を加算して新たな再生位置sphaseとするもので、この新たに更新した再生位置sphaseに基づいて波形再生が行われる。
【００６４】
そして、この新たに更新した再生位置sphaseが、現在の停止マークmark(i) の位置を超えたか否かを判定し、超えていたら、現在の停止マークmark(i) を更に後ろにある停止マークmark(i+1) に置き換えることで、新たな停止マークに更新すべく、次式
ｉ←ｉ＋１
（但し、０≦ｉ≦ｎであり、ｎは停止マークの総数で、ｉの初期値は０）
に従って更新処理をする。
【００６５】
この後、再生位置sphaseがオーディオ波形の先頭の開始アドレスwavestart よりも前に戻ったり、最後尾の最終アドレスwaveend よりも更に後ろに進んだりしないように、次のステップＥ２２〜Ｅ２５で再生位置sphaseを、オーディオ波形データのアドレス範囲内に限定させる処理を行う。
【００６６】
すなわち、現在再生している波形データの時間軸上の位置を表わす再生位置sphaseが先頭アドレスwavestart よりも小さいか否か判定し（ステップＥ２２）、もし小さくなったら、現在の再生位置sphaseとして波形の先頭アドレスwavestart を設定し（ステップＥ２３）、再生位置sphaseを先頭アドレスwavestart に固定してそれよりも小さくならないようにする。
【００６７】
また、現在再生している波形データの時間軸上の位置を表わす再生位置sphaseが最終アドレスwaveend より大きくなったか否かを判定し（ステップＥ２４）、もし大きくなったら、現在の再生位置sphaseとして波形の最終アドレスwaveend を設定し（ステップＥ２５）、再生位置sphaseを最終アドレスwaveend に固定してそれよりも大きくならないようにする。
【００６８】
上記の制限処理を行ったら、あるいは現在の再生位置sphaseがオーディオ波形データのアドレス範囲内にある時には、この位置情報発生処理ルーチンを終了してＤＳＰメイン処理ルーチンにリターンする。
【００６９】
本発明の実施にあたっては、種々の変形形態が可能である。例えば上述の実施例では、リボンコントローラのＯＮ／ＯＦＦ操作で、再生速度を
カレント再生速度w.tcomp ←現在のカレント再生速度w.tcomp
十ｋ×〔目標再生速度Offset−現在のカレント再生速度w.tcomp 〕
という特性にしたがって制御しているが、特性はこれに限られるものではなく、例えば１次関数曲線でそれぞれ目標再生速度（Offset) に変化していくものなどであってもよく、要は瞬間変化ではなく時間経過とともに変化する変化特性で変化することで、再生モードの切替時にユーザに違和感を与えないものであればよい。
【００７０】
また、上述の実施例では、再生する波形位置を位置情報により直接指定する操作子としてリボンコントローラを挙げているが、本発明はこれに限られるものではなく、例えば、円盤または円状の操作子を回転させることによってその回転量に基づいて再生する波形位置を指定するようなものであってもよい。例えばターンテーブルに回転位置を検出するセンサを設けたものやロータリーエンコーダなどのようなものなどが考えられる。あるいは、直線形スライド抵抗操作子やいわゆるホイール操作子などでその動かした動き量に応じて再生する波形位置を指定するものであってもよい。または同心円上に配置された操作子を操作することによって再生する波形位置を指定してもよい。要は、ユーザが手動操作して動かした動き量を位置情報として発生できる操作子であればよい。
【００７１】
また、上述の実施例では、リボンコントローラのタッチセンサによりタッチ「ＯＮ」、タッチ「ＯＦＦ」を検出して再生モードの切替えを行っているが、本発明はこれに限られるものではなく、例えばリボンコントローラのタッチセンサの代わりに、ペダルのＯＮ／ＯＦＦ操作などで再生モードの切替えを行ってもよい。あるいはジョイステイックのような操作子でもよく、このジョイスティックを動かした動き量で位置情報を入力することもできる。
【００７２】
以上の実施例の説明では、本発明をオーディオ波形再生装置という一つの用途からなるハードウェア装置に適用して実現した場合について述べたが、本発明はこれに限られるものではなく、例えばパーソナルコンピュータに前記した各処理ルーチンを含む電子楽器などのプログラムをインストールしてすることでも実現できる。この場合、かかるプログラムをＣＤ−ＲＯＭやフロッピィディスクなどの各種記録媒体（コンピュータを前記各機能実現手段として機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体）に格納して市場に流通することができる。
【００７３】
【発明の効果】
以上に説明したように、本発明によれば、記憶されたオーディオ波形の再生位置をユーザが直接的に指定することで、オーディオ波形信号を所望の態様でタイムストレッチしつつ再生でき、しかも、予め定めた所望の特性に従って切替えできるようにしているので、操作子設定した再生速度による波形の再生モードとユーザが再生位置を直接指定する波形の再生モードとの切換えがスムーズに行われるようになる。
【図面の簡単な説明】
【図１】本発明に係る一実施例としてのオーディオ波形再生装置のブロック構成を示す図である。
【図２】実施例装置における波形メモリに記憶した波形データのデータ構成を示す図である。
【図３】実施例装置におけるＤＳＰの概略構成を機能ブロック図の形で表現した図である。
【図４】実施例装置における再生波形演算処理で再生する波形データの例を示したものである。
【図５】実施例装置における波形データの位置情報の変化の例（その１）を示した図である。
【図６】実施例装置における波形データの位置情報の変化の例（その２）を示した図である。
【図７】実施例装置におけるＣＰＵで実行されるＣＰＵメイン処理の手順を示したフローチャートである。
【図８】実施例装置のＣＰＵメイン処理における操作子群の操作検出処理ルーチンの手順を示したフローチャートである。
【図９】実施例装置のＣＰＵメイン処理における鍵盤の操作検出処理ルーチンの手順を示したフローチャートである。
【図１０】実施例装置のＣＰＵメイン処理におけるリボンコントローラの操作検出処理ルーチンの手順を示したフローチャートである。
【図１１】実施例装置におけるＤＳＰで実行されるＤＳＰメイン処理の手順を示したフローチャートである。
【図１２】実施例装置のＤＳＰメイン処理における位置情報発生処理ルーチンの手順を示したフローチャート（１／３）である。
【図１３】実施例装置のＤＳＰメイン処理における位置情報発生処理ルーチンの手順を示したフローチャート（２／３）である。
【図１４】実施例装置のＤＳＰメイン処理における位置情報発生処理ルーチンの手順を示したフローチャート（３／３）である。
【符号の説明】
１  ＣＰＵ（中央処理装置）
２  ＲＯＭ（リード・オンリー・メモリ）
３  ＲＡＭ（ランダム・アクセス・メモリ）
４  操作子群
５  鍵盤
６  リボンコントローラ
７  ＤＳＰ（ディジタル・シグナル・プロセッサ）
８  波形メモリ
９  Ｄ／Ａ（ディジタル／アナログ）変換器
１０  スピーカ
【図１】
0004191348.tif 000002
【図２】
0004191348.tif 000003
【図３】
0004191348.tif 000004
【図４】
0004191348.tif 000005
【図５】
0004191348.tif 000006
【図６】
0004191348.tif 000007
【図７】
0004191348.tif 000008
【図８】
0004191348.tif 000009
【図９】
0004191348.tif 000010
【図１０】
0004191348.tif 000011
【図１１】
0004191348.tif 000012
【図１２】
0004191348.tif 000013
【図１３】
0004191348.tif 000014
【図１４】
0004191348.tif 000015