(57)【特許請求の範囲】
【請求項１】
複数の波形区間からなる一連の波形を記憶する波形記憶手段と、
オン状態とオフ状態とがあり、オン状態の時に操作されている位置を出力する位置指定操作子と、
波形記憶手段に記憶されている波形上の位置を表す位置情報を出力する手段であって、前記位置指定操作子がオフ状態の時、位置情報を所定の速度で移動させ、前記位置指定操作子がオフ状態からオン状態に切り換わった時に操作された位置を基準位置とし、前記位置指定操作子がオン状態の時、位置情報を基準位置からの操作量に応じた位置に移動させる位置情報発生手段と、
位置情報が表す波形上の位置を含む波形区間を選択する波形区間選択手段と、
選択された波形区間の波形を所望の速度で繰り返し再生する再生手段とを備えたことを特徴とする波形再生装置。
【請求項２】
前記再生手段は、指定された音高に応じた速度で波形を再生するものであることを特徴とする請求項１記載の波形再生装置。
【請求項３】
前記再生手段は、前記位置指定操作子に対する操作の速度に応じた速度で波形を再生するものであることを特徴とする請求項１記載の波形再生装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、記憶している一連の波形を再生する波形再生装置に関する。
【０００２】
【従来の技術】
従来より、サンプラ等において、楽音などの一連の音をサンプリングした楽音信号といった形式で一連の波形を記憶し、その波形を再生する波形再生装置が知られている。
【０００３】
特開平１１−５２９５４には、サンプリングした楽音信号の再生時における音楽表現を豊かにするために、波形の再生速度を制御して波形を速くあるいは遅く再生することができ、再生速度を「０」に設定することによって波形上の再生位置を停止させて再生することもでき、更に、再生速度を負の速度に設定することによって波形の時間軸を溯る方向に再生することもできる波形再生装置が提案されている。
【０００４】
【発明が解決しようとする課題】
しかし、前期のように波形の再生速度を制御するのでは、演奏者の希望する波形位置を再生することは難しく、演奏操作が非常に難しいものになっていた。
【０００５】
そのため、サンプリングした楽音信号を音楽表現豊かに、容易な演奏操作で再生できる波形再生装置が望まれている。
【０００６】
本発明は、上記事情に鑑み、ユーザが波形上の再生位置を直接指定することができ、かつ、ユーザが望む豊かな音楽表現での楽音再生を容易な演奏操作で実現することができる波形再生装置を提供することを目的とする。
【０００７】
【課題を解決するための手段】
上記目的を達成する本発明の波形再生装置は、一連の波形を記憶している波形記憶手段と、
波形記憶手段に記憶されている波形上の位置を指定する、指定位置の連続変更が可能な位置指定操作子であって、位置指定が有効なオン状態と、位置指定が無効なオフ状態との間で切替自在な位置指定操作子と、
位置指定操作子がオン状態にある場合には、波形記憶手段に記憶されている一連の波形上の、位置指定操作子によって指定された位置を含む、その指定位置に応じて決まる再生範囲内の位置を再生するとともに、指定位置の連続変更に応じて再生範囲を変更し、位置指定操作子がオフ状態にある場合には、波形記憶手段に記憶されている一連の波形を、その一連の波形上における再生位置を所望の速度で進行させながら再生し、前記位置指定操作子がオフ状態からオン状態に切り替わった場合には、その再生位置の波形上での進行を停滞させ、その再生位置を指定位置とした波形再生に移行する波形再生手段とを備えたことを特徴とする。
【０００８】
ここで、位置指定操作子は、位置指定操作子自身の操作によってオン状態とオフ状態とが切り替えられるものであってもよく、位置指定操作子とは独立の操作子（例えばペダル操作子）の操作などによって切り替えられるものであってもよい。
【０００９】
また、波形再生手段は、オン状態にある場合に、再生範囲内を順次に再生するものであってもよく、あるいは、再生範囲内をランダムに再生するものであってもよい。更に、再生範囲は、指定位置のみを含むものであってもよい。
【００１０】
本発明の波形再生装置によれば、例えば楽音などといった一連の音がサンプリングされて波形記憶手段にあらかじめ記憶され、ユーザが位置指定操作子の状態をオフ状態にすると、記憶された一連の音が所望の速度で再生される。そして、その再生音を聴きながら、ユーザが位置指定操作子の状態をオン状態に切り替えて、その一連の音のうちの、所望の音色等を有する音の位置を直接的に指定すると、再生手段によって、指定位置の音が繰り返し再生される。また、ユーザが、位置指定操作子による指定位置を連続変更すると、その連続変更に応じて再生位置が連続変更される。
【００１１】
この結果、ユーザは、再生を希望する音の位置を波形上で容易に探し出して指定することができ、豊かな音楽表現での楽音再生を容易な演奏操作で実現することができる。
【００１２】
また、本発明の波形再生装置は、
上記波形再生手段が、分割波形を、音高を示す音高情報を取得し、その音高情報が示す音高で波形を再生するものであることが好適である。
【００１３】
このような好適な構成の波形再生装置によれば、例えば鍵盤や、ＭＩＤＩ信号の入力機器などを使った演奏等を行うことができる。
【００１４】
さらに、本発明の波形再生装置は、上記波形再生手段が、位置指定操作子による指定位置変更の速度に応じた音高で波形を再生するものであってもよい。
【００１５】
このような、指定位置変更の速度に応じた音高で波形を再生する波形再生手段を備えた波形再生装置によれば、アナログレコードを手で動かして演奏するいわゆるスクラッチのような、操作速度に対応して再生音の音高が変化する効果を得ることができる。
【００１６】
【発明の実施の形態】
以下、本発明の実施形態について説明する。
【００１７】
図１は、本発明の波形再生装置の一実施形態を示す図である。
【００１８】
この波形再生装置１０は電子楽器の一種であり、記憶している一連の波形上の位置を指定されて、その位置周辺の波形が表す音を演奏音として再生する装置である。また、ここでは、以下説明するように、波形を時間軸方向に圧縮伸長する時間軸圧縮伸長技術が利用されて、波形上の指定位置付近の波形が自然な音色で再生される。
【００１９】
この波形再生装置１０には、波形メモリ１１と、ＤＳＰ１２と、ＣＰＵ１３と、ＲＡＭ１４と、ＲＯＭ１５と、リボンコントローラ１６と、鍵盤１７と、操作子群１８と、Ｄ／Ａ変換器１９が備えられており、波形メモリ１１には一連の音がサンプリングされた一連の波形がＰＣＭ（Ｐｕｌｓｅ  Ｃｏｄｅ  Ｍｏｄｕｌａｔｉｏｎ）波形データとして記憶される。従って波形メモリ１１は本発明にいう波形記憶手段の一例である。また、ＣＰＵ１３によって、リボンコントローラ１６や鍵盤１７や操作子群１８の操作状態が検出され、検出結果に応じてＤＳＰ１２が制御される。そして、後述するように、波形メモリ１１に記憶されている波形がＤＳＰ１２によって再生される。つまり、ＤＳＰ１２およびＣＰＵ１３によって本発明にいう波形再生手段の一例が構成されている。
【００２０】
ＲＯＭ１５には、ＣＰＵ１３およびＤＳＰ１２の動作を表すプログラムが格納されており、ＤＳＰ１２の動作を表すプログラムはＣＰＵ１３によってＤＳＰ１２へと転送される。ＲＡＭ１４は、ＣＰＵ１３のワーキングメモリとして用いられるものである。
【００２１】
リボンコントローラ１６は、本発明にいう位置指定操作子の一例であり、波形メモリ１１に記憶されている波形上の位置を指定する。
【００２２】
鍵盤１７は、ＣＰＵ１３に対して波形再生の開始終了を指示する。また、押鍵された鍵に対応付けられている音高を示す音高情報をＣＰＵ１３に入力して、波形再生時の音高を指定する。そして、音高の指定は、演奏操作によって押鍵された鍵に対応付けられている音高と、あらかじめ定められている基準音高との音程に相当する音高のシフト量によって指定される。
【００２３】
操作子群１８は、ＣＰＵ１３に対して波形の圧縮伸長量などを指示するためのものであり、操作子群１８に含まれている操作子については後で適宜説明する。
【００２４】
Ｄ／Ａ変換器１９は、ＤＳＰ１２によって再生された波形に相当するディジタル信号をアナログ信号に変換し、そのアナログ信号に応じた音をスピーカ１９ａから放音させる。
【００２５】
図２は、リボンコントローラ１６を用いた位置指定操作の説明図である。
【００２６】
この図２の上段には、波形メモリ１１に記憶されている波形データが表す波形１１ａが示されており、下段には、リボンコントローラ１６が示されている。
【００２７】
ユーザの指Ｆがリボンコントローラ１６から離れているときには位置指定が無効であり、波形１１ａが所定の再生速度で再生される。そして、ユーザが指Ｆでリボンコントローラ１６に触れると、リボンコントローラ１６による位置指定が有効となり、リボンコントローラ１６上のどこに触れても、波形上１１ａの、指Ｆが触れたときに再生されていた位置Ｐが指定されたものとして取り扱われる。また、リボンコントローラ１６は、ユーザの指Ｆが触れている位置を検出することができ、指Ｆがリボンコントローラ１６に触れたままで、図に示すＡ１方向やＢ１方向に移動すると、波形１１ａ上の指定位置がＡ２方向やＢ２方向に連続移動する。
【００２８】
図３は、図１に示すＣＰＵ１３のメインルーチンのフローチャートである。
【００２９】
ＣＰＵ１３のメインルーチンが開始されると先ず初期設定が行われる（ステップＳ１０）。
【００３０】
そして、図１に示す操作子群１８の操作状態を検出して操作状態に応じた処理を行う操作子群処理ルーチンが実行され（ステップＳ１１）、鍵盤１７の操作状態を検出して操作状態に応じた処理を行う鍵盤処理ルーチンが実行され（ステップＳ１２）、リボンコントローラ１６の操作状態を検出して操作状態に応じた処理を行うリボンコントローラ処理ルーチンが実行される（ステップＳ１３）。
【００３１】
その後、ステップＳ１１〜ステップＳ１３が繰り返し実行される。
【００３２】
図４は、図３に示すメインルーチンのステップＳ１１で実行される操作子群処理ルーチンのフローチャートである。
【００３３】
この操作子群処理ルーチンでは、楽器や人の共鳴体としてのサイズを表すフォルマントボリュームの値や、波形の再生スピードが、図１に示す操作子群１８の操作に応じて設定される。操作子群１８には、フォルマントボリュームの値や再生スピードの値などを設定操作する操作子以外の操作子も含まれているが、ここでは説明を省略する。
【００３４】
この操作子群処理ルーチンが開始されると、図１に示す操作子群１８に含まれている一連の操作子が走査され（ステップＳ１１＿１）、一連の操作子のうちのいずれかの操作子に状態変化が生じたか否かが判定される（ステップＳ１１＿２）。
【００３５】
状態変化が全く生じていないと判定されるとそのまま操作子群処理が終了されて、図３に示すメインルーチンに戻る。一方、状態変化が生じたと判定されると、その状態変化が、楽器や人の共鳴体としてのサイズを表すフォルマントボリュームＦ＿ＶＲを指定する操作子の状態変化であるか否かが判定される（ステップＳ１１＿３）。そして、フォルマントボリュームＦ＿ＶＲを指定する操作子の状態変化であると判定された場合には、図１に示すＣＰＵ１３の、フォルマントボリュームＦ＿ＶＲを記憶するレジスタＦ＿ＶＲの値が更新される（ステップＳ１１＿４）とともに、更新された値が、ＤＳＰ１２の、フォルマントボリュームＦ＿ＶＲを記憶するレジスタｆ＿ｖｒに設定される（ステップＳ１１＿５）。
【００３６】
以下の説明では、数値を記憶するレジスタとレジスタに記憶されている数値とを区別せずに用いて、それらを互いに同一の記号で表す場合がある。また、特に断らない限り、ＣＰＵ１３用の数値やレジスタは大文字のアルファベット、ＤＳＰ１２用の数値やレジスタは小文字のアルファベットで表す。
【００３７】
フォルマントボリュームＦ＿ＶＲの変化検出や更新が終わると、次に、ステップＳ１１＿２で検出された状態変化が、波形の再生スピードを決める圧縮伸長量ＴＣＯＭＰを指定する操作子の状態変化であるか否かが判定される（ステップＳ１１＿６）。そして、圧縮伸長量ＴＣＯＭＰを指定する操作子の状態変化であると判定された場合には、図１に示すＣＰＵ１３の圧縮伸長量ＴＣＯＭＰを更新する（ステップＳ１１＿７）とともに、更新された値をＤＳＰ１２の圧縮伸長量ｔｃｏｍｐに設定する（ステップＳ１１＿８）。
【００３８】
その後、操作子群処理が終了されて、図３に示すメインルーチンに戻る。
【００３９】
図５は、図３に示すメインルーチンのステップＳ１２で実行される鍵盤処理ルーチンのフローチャートである。
【００４０】
この鍵盤処理ルーチンでは、図１に示す鍵盤１７の操作に応じて、再生音の発生消滅を表すゲートフラグｇａｔｅの値と、基準音高からの再生音高のシフト量ｐ＿ｓｈｉｆｔがＤＳＰ１２に設定される。
【００４１】
この鍵盤処理ルーチンが開始されると、鍵盤１７を構成する一連の鍵が走査され（ステップＳ１２＿１）、一連の鍵のうちのいずれかの鍵の操作状態に変化が生じたか否かが判定される（ステップＳ１２＿２）。
【００４２】
操作状態に全く変化が生じていないと判定された場合には、そのまま鍵盤処理ルーチンが終了されて、図３に示すメインルーチンに戻る。一方、操作状態に変化が生じたと判定されると、鍵盤１７の全鍵が離鍵状態になったか否かが判定される（ステップＳ１２＿３）。そして、全鍵が離鍵状態になったと判定された場合には、ゲートフラグＧＡＴＥに再生音の消滅を表す値「０」が代入され（ステップＳ１２＿１０）、ＣＰＵ１３のゲートフラグＧＡＴＥの値がゲートフラグｇａｔｅに設定されて（ステップＳ１２＿９）、図３に示すメインルーチンに戻る。
【００４３】
上述したステップＳ１２＿３において、いずれかの鍵が押鍵されていると判定された場合には、現在の操作状態が、全鍵が離鍵されている状態から新規に押鍵された状態であるか否かが判定され（ステップＳ１２＿４）、新規に押鍵された状態であると判定された場合には、ゲートフラグＧＡＴＥに再生音の発生を表す値「１」が代入される（ステップＳ１２＿５）。
【００４４】
その後、現在押鍵されている１つ以上の鍵それぞれに対応付けられている音高のうちの最高音の音高を表す音高データＫＥＹＰが鍵盤１７から得られ（ステップＳ１２＿６）、その音高データＫＥＹＰの値と、所定の基準音高を表すオリジナル音高データＯＲＧＰの値との比ＫＥＹＰ／ＯＲＧＰが、基準音高からの再生音高のシフト量Ｐ＿ＳＨＩＦＴとして代入される（ステップＳ１２＿７）。
【００４５】
そして、ＣＰＵ１３のシフト量Ｐ＿ＳＨＩＦＴの現在値がＤＳＰ１２のシフト量ｐ＿ｓｈｉｆｔに設定され（ステップＳ１２＿８）、ゲートフラグＧＡＴＥの値がゲートフラグｇａｔｅに設定されて（ステップＳ１２＿９）、図３に示すメインルーチンに戻る。
【００４６】
図６は、図３に示すメインルーチンのステップＳ１３で実行されるリボンコントローラ処理ルーチンのフローチャートである。
【００４７】
このリボンコントローラ処理ルーチンでは、図１に示すリボンコントローラ１６の操作に応じて、リボンコントローラ１６にタッチされているか否かを表すタッチフラグｒ＿ｔｏｕｃｈの値と、当初にタッチされた位置からの移動量に相当するオフセットｏｆｆｓｅｔの値がＤＳＰ１２に設定される。
【００４８】
このリボンコントローラ処理ルーチンが開始されると、リボンコントローラ１６が現在タッチされているか否かが判定され（ステップＳ１３＿１）、タッチされていないと判定されると、タッチフラグＲ＿ＴＯＵＣＨの値として、タッチされていないことを表す値「０」が代入され（ステップＳ１３＿９）、そのタッチフラグＲ＿ＴＯＵＣＨの値がＤＳＰ１２のタッチフラグｒ＿ｔｏｕｃｈに設定されて（ステップＳ１３＿８）、図３に示すメインルーチンに戻る。
【００４９】
上記ステップＳ１３＿１において、リボンコントローラ１６が現在タッチされていると判定されると、タッチフラグＲ＿ＴＯＵＣＨの値として、タッチされていることを表す値「１」が代入される（ステップＳ１３＿２）。そして、タッチフラグＲ＿ＴＯＵＣＨの値が「０」から「１」に立ち上がった直後である場合、即ち、リボンコントローラが新たにタッチされた直後である場合（ステップＳ１３＿３：Ｙ）には、現在のタッチ位置が検出され、そのタッチ位置を示す値が基準位置ＢＰＯＩＮＴに設定される（ステップＳ１３＿４）。また、新たにタッチされた直後であるか否かに関わらず、現在のタッチ位置が検出され、そのタッチ位置を示す値が現在位置ＰＯＩＮＴに設定される（ステップＳ１３＿５）。そして、現在位置ＰＯＩＮＴと基準位置ＢＰＯＩＮＴとの差ＰＯＩＮＴ−ＢＰＯＩＮＴがＣＰＵ１３のオフセットＯＦＦＳＥＴに代入され（ステップＳ１３＿６）、そのオフセットＯＦＦＳＥＴの値がＤＳＰ１２のオフセットｏｆｆｓｅｔに設定される（ステップＳ１３＿７）。
【００５０】
その後、現在のタッチフラグＲ＿ＴＯＵＣＨの値がＤＳＰ１２のタッチフラグｒ＿ｔｏｕｃｈに設定されて、図３に示すメインルーチンに戻る。
【００５１】
図７は、波形メモリに記憶されている波形の一例を示す波形図である。
【００５２】
この図７の横軸は波形メモリのアドレスを示している。
【００５３】
波形メモリに記憶されている波形は、予め波形の周期構造が解析され、波形が１周期分ごとに区切られた波形区間が設定されており、各波形区間の開始アドレスｓａｄｒｓ０，ｓａｄｒｓ１，ｓａｄｒｓ２，…と、各波形区間の長さに相当するピッチｓｐｉｔｃｈ０，ｓｐｉｔｃｈ１，ｓｐｉｔｃｈ２，…が求められている。これらの波形区間は、本発明にいう再生範囲の一例である。
【００５４】
図８は、図１に示す波形メモリ１１のデータ構造図である。
【００５５】
波形メモリは波形関連データ部１１ａと波形データ部１１ｂで構成されており、波形関連データ部１１ａには、波形データの先頭アドレスｗａｖｅｓｔａｒｔと最終アドレスｗａｖｅｅｎｄが記憶されてているとともに、波形データが表す波形が分割されてなる各波形区間の開始位置を表す開始アドレスｓａｄｒｓ０，ｓａｄｒｓ１，ｓａｄｒｓ２，…と、各波形区間のピッチｓｐｉｔｃｈ０，ｓｐｉｔｃｈ１，ｓｐｉｔｃｈ２，…が交互に記憶されている。また、波形データ部１１ｂにはＰＣＭ波形データが記憶されている。
【００５６】
図９は、図１に示すＤＳＰ１２の動作を表す等価回路図である。
【００５７】
この図９には、ＤＳＰ１２の動作を表す等価回路と、上述した波形メモリ１１が示されている。
【００５８】
この等価回路は、位置情報発生手段２０、開始アドレス発生手段２１、再生ピッチ周期発生手段２２、窓信号発生手段２３、アドレス変化信号発生手段２４、アドレス発生手段２５、読出手段２６、窓付与手段２７、およびエンベロープ付与手段２８で構成されている。また、この等価回路には、ＣＰＵ１３から圧縮伸長量ｔｃｏｍｐと、タッチフラグｒ＿ｔｏｕｃｈと、オフセットｏｆｆｓｅｔと、シフト量ｐ＿ｓｈｉｆｔと、ゲートフラグｇａｔｅと、フォルマントボリュームｆ＿ｖｒが入力される。
【００５９】
以下、等価回路の動作を概括説明し、その後、フローチャートを参照して詳細に説明する。
【００６０】
この等価回路には、２系統の再生チャンネルが存在し、波形メモリ１１からそれらの再生チャンネル用に交互に波形が断片的に読み出される。その後読み出された波形が２系統の再生チャンネルそれぞれで加工され、互いに合成されて再生波形が生成される。
【００６１】
位置情報発生手段２０は、波形上の位置を表す位置情報ｓｐｈａｓｅを発生する手段であり、ＣＰＵ１３から入力されたタッチフラグｒ＿ｔｏｕｃｈの値が「０」であるか「１」であるかに応じて、それぞれ、圧縮伸長量ｔｃｏｍｐあるいはオフセットｏｆｆｓｅｔを用いて位置情報ｓｐｈａｓｅの値を求める。また、この位置情報発生手段２０は、読出手段２６に波形データの先頭アドレスｗａｖｅｓｔａｒｔと最終アドレスｗａｖｅｅｎｄとを波形メモリ１１から読み出させて取得する。
【００６２】
開始アドレス発生手段２１は、読出手段２６に、各波形区間の開始アドレスｓａｄｒｓ０，ｓａｄｒｓ１，ｓａｄｒｓ２，…と、それらの波形区間のピッチｓｐｉｔｃｈ０，ｓｐｉｔｃｈ１，ｓｐｉｔｃｈ２，…とを波形メモリ１１から読み出させて取得し、位置情報発生手段２０によって発生された位置情報ｓｐｈａｓｅに応じた開始アドレスｓａｄｒｓを、ゲートフラグｇａｔｅの立ち上がりあるいはパルス信号ｓｐ１，ｓｐ２の入力を受けて選択出力するとともに、その開始アドレスｓａｄｒｓに対応するピッチｓｐｉｔｃｈも出力する手段である。
【００６３】
再生ピッチ周期発生手段２２は、ＣＰＵ１３から入力されたシフト量ｐ＿ｓｈｉｆｔと、開始アドレス発生手段２１によって出力されたピッチｓｐｉｔｃｈとに基づいて、再生音の周期を表す再生ピッチｐｉｔｃｈを発生するとともに、再生ピッチｐｉｔｃｈに従って、上述した２系統の再生チャンネルそれぞれが波形を断片的に読み出す読出タイミングを示すパルス信号ｓｐ１，ｓｐ２を発生する手段である。
【００６４】
窓信号発生手段２３は、再生ピッチ周期発生手段２２によって発生されたパルス信号ｓｐ１，ｓｐ２あるいはＣＰＵ１３から入力されたゲートフラグｇａｔｅの立ち上がりの入力を受けて、再生ピッチ周期発生手段２２によって発生された再生ピッチｐｉｔｃｈと、開始アドレス発生手段２１によって出力されたピッチｓｐｉｔｃｈとＣＰＵ１３から入力されたフォルマントボリュームｆ＿ｖｒとに応じた三角波形の窓関数ｗｉｎｄｏｗ１，ｗｉｎｄｏｗ２を発生するとともに、ゲートフラグｇａｔｅの立ち上がりあるいは立ち下がりの入力を受けて、再生音を自然に開始停止させるエンベロープ関数ｅｎｖを発生する手段である。
【００６５】
アドレス変化信号発生手段２４は、再生ピッチ周期発生手段２２によって発生されたパルス信号ｓｐ１，ｓｐ２の入力を受けて、ＣＰＵ１３から入力されたフォルマントボリュームｆ＿ｖｒに応じた鋸歯状のアドレス変化信号ｐｐｈ１，ｐｐｈ２を発生する手段である。
【００６６】
アドレス発生手段２５は、開始アドレス発生手段２１によって選択出力された開始アドレスｓａｄｒｓと、アドレス変化信号発生手段２４によって発生されたアドレス変化信号ｐｐｈ１，ｐｐｈ２とに基づいて、各再生チャンネルが実際に波形メモリ１１から波形データを読み出すための読出アドレスａｄｒｓ１，ａｄｒｓ２を発生する手段である。
【００６７】
読出手段２６は、アドレス発生手段２５によって発生された読出アドレスａｄｒｓ１，ａｄｒｓ２に従って波形メモリ１１から各再生チャンネル用の波形データｄａｔａ１，ｄａｔａ２を読み出す手段である。ただし、アドレス発生手段２５は、読出アドレスａｄｒｓ１，ａｄｒｓ２として小数値も発生するので、読出手段２６は、補間技術を用いて、小数値の読出アドレスａｄｒｓ１，ａｄｒｓ２に応じた波形データｄａｔａ１，ｄａｔａ２を生成する。
【００６８】
窓付与手段２７は、読出手段２６によって波形メモリ１１から読み出された各再生チャンネル用の波形データｄａｔａ１，ｄａｔａ２それぞれに対して、窓信号発生手段２３によって発生された窓関数ｗｉｎｄｏｗ１，ｗｉｎｄｏｗ２を作用させるとともに、それらの再生チャンネルの波形データを互いに合成する手段である。
【００６９】
エンベロープ付与手段２８は、窓付与手段２７で合成された波形データに対して、窓信号発生手段２３によって発生されたエンベロープ関数ｅｎｖを作用させて再生波形信号を生成する手段である。
【００７０】
図１０は、図９に示す窓信号発生手段２３の構成図である。
【００７１】
この窓信号発生手段２３には、窓関数制御手段２３１と、第１の窓関数発生手段２３２と、第２の窓関数発生手段２３３と、エンベロープ発生手段２３４が備えられており、第１および第２の窓関数発生手段２３２は、上述した２系統の再生チャンネルそれぞれ用の窓関数ｗｉｎｄｏｗ１，ｗｉｎｄｏｗ２を発生する手段であり、エンベロープ発生手段は、エンベロープ関数ｅｎｖを発生する手段である。
【００７２】
窓関数制御手段２３１は、上述したパルス信号ｓｐ１，ｓｐ２、ゲートフラグｇａｔｅ、再生ピッチｐｉｔｃｈ、フォルマントボリュームｆ＿ｖｒ、ピッチｓｐｉｔｃｈの入力を受けて、第１の窓関数発生手段２３２と、第２の窓関数発生手段２３３と、エンベロープ発生手段２３４を制御する手段である。
【００７３】
図９に示す等価回路は、波形上の位置を示す位置情報ｓｐｈａｓｅの値に従って波形の再生を行う。ユーザがリボンコントローラ１６から指を離している場合には、位置情報ｓｐｈａｓｅが示す位置は、操作子群１８によって指定された圧縮伸長量に相当する移動速度で波形上を移動する。一方、ユーザがリボンコントローラ１６に触れている場合には、位置情報ｓｐｈａｓｅは、ユーザがリボンコントローラ１６上に触れている位置に応じた波形上の位置を示す。
【００７４】
以下、位置情報ｓｐｈａｓｅが示す位置が圧縮伸長量に相当する移動速度で波形上を移動する場合における変数値等の変化について波形図を参照して説明する。
【００７５】
図１１は、波形メモリ１１に記憶されている波形が時間軸方向に圧縮も伸長もされずに再生されたときの動作を説明する波形図である。なお、再生音高は、記憶されている原波形の音高よりわずかに低くなるように処理されているものとする。この場合、サンプリングされた一連の音の長さと同じ長さの再生音が放音されることとなる。
【００７６】
この図１１に示す各波形図の横軸は、時間を示している。
【００７７】
図１１（Ｈ）には、ゲートフラグの値の一例が示されており、図１に示す鍵盤１７の鍵が押下されている時は値「１」、全鍵離鍵の時は値「０」となる。
【００７８】
図１１（Ｇ）には、エンベロープ関数ｅｎｖが示されており、ゲートフラグが立ち上がると緩やかに立ち上がり、ゲートフラグが立ち下がると緩やかに立ち下がる。
【００７９】
図１１（Ａ）には、位置情報ｓｐｈａｓｅが示している位置の時間変化が示されており、位置情報ｓｐｈａｓｅが示す位置は、時間経過に従って開始アドレスｓａｄｒｓ０，ｓａｄｒｓ１，ｓａｄｒｓ２，…を順次に通過する。
【００８０】
図１１（Ｂ）には、開始アドレスｓａｄｒｓ０，ｓａｄｒｓ１，ｓａｄｒｓ２，…のうち、位置情報ｓｐｈａｓｅが示す位置を含む波形区間の先頭に相当する開始アドレスが示されている。上述したように、図９に示す開始アドレス発生手段２１は、パルス信号ｓｐ１，ｓｐ２等の入力を受けて開始アドレスを選択出力するものであり、この図１１（Ｂ）に示されている開始アドレスのうち、選択時刻に対応した開始アドレスｓａｄｒｓが選択出力されることとなる。
【００８１】
図１１（Ｃ）には、再生音高の２倍の周期で発生されるパルス信号ｓｐ１，ｓｐ２が示されており、それぞれのパルス信号のタイミングに基づいて２系統の再生チャンネルそれぞれが波形を断片的に読み出す。この断片的な読出しは、各パルス信号のタイミングで開始アドレス発生手段２１によって選択された開始アドレスｓａｄｒｓから開始され、波形区間の約２つ分の波形データが読み出される。
【００８２】
図１１（Ｄ）には、波形データの読出アドレスを開始アドレスｓａｄｒｓからの変位量で表すアドレス変化信号ｐｐｈ１，ｐｐｈ２が示されており、このアドレス変化信号ｐｐｈ１，ｐｐｈ２の波形は、上述したパルス信号ｓｐ１，ｓｐ２の立ち上がり毎に値「０」にリセットされる鋸歯状波となる。
【００８３】
図１１（Ｅ）には、各再生チャンネル用に断片的に読み出された波形データｄａｔａ１，ｄａｔａ２が示されており、波形の読出しを開始した開始アドレスも示されている。ここでは、時間軸方向への圧縮伸長が行われていないので、開始アドレスは原波形データの時間的変化とほぼ同じペースで変化して順次に移り変わっている。但し、再生音高が原波形の音高よりもやや低くなるように再生されているため、開始アドレスｓａｄｒｓ８からの波形データは飛び抜けている。
【００８４】
図１１（Ｆ）には、各再生チャンネル用の窓関数ｗｉｎｄｏｗ１，ｗｉｎｄｏｗ２が示されている。ここに示す三角波の窓関数ｗｉｎｄｏｗ１，ｗｉｎｄｏｗ２と、各再生チャンネル用の波形データｄａｔａ１，ｄａｔａ２が乗算され、各再生チャンネル用の乗算後の波形データが互いに加算され、更にエンベロープ関数ｅｎｖが乗算されることによって再生波形が生成される。
【００８５】
図１２は、波形が時間軸方向に圧縮されて再生されたときの動作を説明する波形図である。但し、図１１同様に、再生音高が原波形の音高よりもわずかに低くなるように再生される。
【００８６】
図１２（Ａ）には、位置情報ｓｐｈａｓｅが示している位置の時間変化が示されており、ここでは、図１１（Ａ）に示す時間変化よりも速い時間変化が示されている。このため、図１２（Ａ）の位置情報ｓｐｈａｓｅが示す位置は、図１１（Ａ）に示すタイミングよりも早いタイミングで開始アドレスｓａｄｒｓ０，ｓａｄｒｓ１，ｓａｄｒｓ２，…を通過する。その結果、図１２（Ｂ）に示す開始アドレスｓａｄｒｓの変化タイミングは、図１１（Ｂ）に示す開始アドレスｓａｄｒｓの変化タイミングよりも早い。
【００８７】
図１２（Ｃ）に示すパルス信号ｓｐ１，ｓｐ２と、図１２（Ｄ）に示すアドレス変化信号ｐｐｈ１，ｐｐｈ２は、図１１と同じ再生音高を再生するものとして、図１１（Ｃ）に示すパルス信号ｓｐ１，ｓｐ２および図１１（Ｄ）に示すアドレス変化信号ｐｐｈ１，ｐｐｈ２と同じ信号である。
【００８８】
上述したように、図１２（Ｂ）に示す開始アドレスｓａｄｒｓの変化タイミングが、図１１（Ｂ）に示す開始アドレスｓａｄｒｓの変化タイミングよりも早いので、パルス信号ｓｐ１，ｓｐ２に応じて読み出された、図１２（Ｅ）に示す断片的な波形データｄａｔａ１，ｄａｔａ２の読出しが開始された開始アドレスには、開始アドレスｓａｄｒｓ３や開始アドレスｓａｄｒｓ６や開始アドレスｓａｄｒｓ１０の飛び抜けが生じている。つまり、波形メモリに記憶されている波形データが、所々で波形区間の飛び抜けを生じながら読み出されることとなるので、波形全体の再生時間が飛び抜け分だけ短くなる。
【００８９】
図１３は、波形が時間軸方向に伸長されて再生されたときの動作を説明する波形図である。ここでも、図１１同様に、再生音高が原波形の音高よりもわずかに低くなるように再生される。
【００９０】
図１３（Ａ）には、位置情報ｓｐｈａｓｅが示している位置の時間変化が示されており、ここでは、図１１（Ａ）に示す時間変化よりも遅い時間変化が示されている。このため、位置情報ｓｐｈａｓｅが示す位置は、図１１（Ａ）に示すタイミングよりも遅いタイミングで開始アドレスｓａｄｒｓ０，ｓａｄｒｓ１，ｓａｄｒｓ２，…を通過する。そして、図１３（Ｂ）に示す開始アドレスｓａｄｒｓの変化タイミングは、図１１（Ｂ）に示す開始アドレスｓａｄｒｓの変化タイミングよりも遅い。
【００９１】
また、上記と同様に、図１３（Ｃ）に示すパルス信号ｓｐ１，ｓｐ２と、図１３（Ｄ）に示すアドレス変化信号ｐｐｈ１，ｐｐｈ２は、図１１と同じ再生音高を再生するものとして、図１１（Ｃ）に示すパルス信号ｓｐ１，ｓｐ２および図１１（Ｄ）に示すアドレス変化信号ｐｐｈ１，ｐｐｈ２と同じ信号である。
【００９２】
図１２（Ｅ）に示す波形データｄａｔａ１，ｄａｔａ２の読出しが開始された開始アドレスに飛び抜けが生じるのとは逆に、図１３（Ｅ）に示す開始アドレスには、開始アドレスｓａｄｒｓ０や開始アドレスｓａｄｒｓ６で重複が生じており、重複分だけ波形全体の再生時間が長くなる。
【００９３】
このように、位置情報ｓｐｈａｓｅが示す位置が圧縮伸長量に相当する移動速度で波形上を移動する場合には、波形が時間軸方向に圧縮伸長されて再生される。
【００９４】
一方、位置情報ｓｐｈａｓｅが、ユーザがリボンコントローラ１６上に触れている位置に応じた波形上の位置を示す場合には、ここでは波形の時間軸方向圧縮伸長技術がそのまま流用され、指定位置を含む波形区間が繰り返し読み出されて自然な音色で再生される。また、リボンコントローラ１６上に触れている位置が変化すると、波形上の、位置情報ｓｐｈａｓｅが示す位置も移動し、再生対象の波形区間が、現在の位置情報ｓｐｈａｓｅが示す位置を含む波形区間に変化する。
【００９５】
図１４は、図１に示すＤＳＰ１２のメインルーチンのフローチャートである。
【００９６】
このメインルーチンは、所定のサンプリング周期で繰り返し実行されるルーチンである。
【００９７】
このメインルーチンでは、図９に示す等価回路を構成する位置情報発生手段２０、開始アドレス発生手段２１、再生ピッチ周期発生手段２２、窓信号発生手段２３、アドレス変化信号発生手段２４、アドレス発生手段２５、読出手段２６、窓付与手段２７、およびエンベロープ付与手段２８それぞれの動作が順次に実行され（ステップＳ２０〜ステップＳ２８）、最後に、演算された波形信号がＤＳＰ１２から出力される（ステップＳ２９）。
【００９８】
但し、窓信号発生手段２３の動作が実行されるステップＳ２３は、図１０に示す窓関数制御手段２３１の動作が実行されるステップＳ２３＿１と、第１の窓関数発生手段２３２、第２の窓関数発生手段２３３、およびエンベロープ発生手段２３４の動作が実行されるステップＳ２３＿２で構成されている。
【００９９】
この図１４のフローチャートに示されている各ステップのうち、記号「＊」が付されているステップについて以下詳細に説明する。
【０１００】
図１５は、図９に示す位置情報発生手段２０の動作を実行するルーチンのフローチャートである。
【０１０１】
このルーチンが開始されると、先ず、ゲートフラグｇａｔｅの値が立ち上がった直後であるか否かが判定され（ステップＳ２０＿１）、立ち上がり直後を除く他の時点であると判定されると、タッチフラグｒ＿ｔｏｕｃｈの値が、ユーザの指がリボンコントローラから離れていることを示す値「０」であるか否かが判定される（ステップＳ２０＿２）。
【０１０２】
タッチフラグｒ＿ｔｏｕｃｈの値が「０」であると判定された場合には、ユーザの指はリボンコントローラから離れているので、位置情報ｓｐｈａｓｅの値を圧縮伸長量ｔｃｏｍｐだけ歩進する（ステップＳ２０＿３）。
【０１０３】
その後、位置情報ｓｐｈａｓｅの値が先頭アドレスｗａｖｅｓｔａｒｔよりも小さければ（ステップＳ２０＿４：Ｙ）、位置情報ｓｐｈａｓｅの値として先頭アドレスｗａｖｅｓｔａｒｔが代入され（ステップＳ２０＿５）、また、位置情報ｓｐｈａｓｅの値が最終アドレスｗａｖｅｅｎｄよりも大きければ（ステップＳ２０＿６：Ｙ）、位置情報ｓｐｈａｓｅの値として最終アドレスｗａｖｅｅｎｄが代入される（ステップＳ２０＿７）。これによって、位置情報ｓｐｈａｓｅが示す位置が常に波形上に存在するように制限されている。
【０１０４】
その後、位置情報ｓｐｈａｓｅが出力されて（ステップＳ２０＿８）、図１４に示すＤＳＰのメインルーチンに戻る。
【０１０５】
上述したステップＳ２０＿１において、ゲートフラグｇａｔｅの値が立ち上がった直後であると判定された場合（ステップＳ２０＿１：Ｙ）には、位置情報ｓｐｈａｓｅの値として先頭アドレスｗａｖｅｓｔａｒｔが代入され（ステップＳ２０＿５）、位置情報ｓｐｈａｓｅの値が最終アドレスｗａｖｅｅｎｄ以下であると判定され（ステップＳ２０＿６：Ｎ）、位置情報ｓｐｈａｓｅが出力されて（ステップＳ２０＿８）、図１４に示すＤＳＰのメインルーチンに戻る。
【０１０６】
また、上述したステップＳ２０＿２において、タッチフラグｒ＿ｔｏｕｃｈの値が、ユーザの指がリボンコントローラにタッチしていることを示す値「１」であると判定された場合（ステップＳ２０＿２：Ｎ）には、タッチフラグｒ＿ｔｏｕｃｈの値が値「０」から値「１」に立ち上がった直後であるか否かが判定される（ステップＳ２０＿９）。立ち上がり直後であると判定された場合には、即ち、ユーザの指がリボンコントローラにタッチした直後であるので、タッチ時点で再生されていた波形上の位置を示すタッチポイントｔｏｕｃｈｐの値として現在の位置情報ｓｐｈａｓｅの値を代入し（ステップＳ２０＿１０）、タッチポイントｔｏｕｃｈｐが示す位置からの移動量を示すカレントオフセットｃｕｒ＿ｏｆｆｓｅｔの値をリセットする（ステップＳ２０＿１１）。
【０１０７】
その後、カレントオフセットｃｕｒ＿ｏｆｆｓｅｔの値を、リボンコントローラ上でのタッチ位置の移動量に相当するオフセットｏｆｆｓｅｔの値に漸近するように更新する（ステップＳ２０＿１２）。即ち、カレントオフセットｃｕｒ＿ｏｆｆｓｅｔとオフセットｏｆｆｓｅｔとの差に時定数Ｋを乗じた値だけカレントオフセットｃｕｒ＿ｏｆｆｓｅｔを歩進している。ここでオフセットｏｆｆｓｅｔの値をカレントオフセットｃｕｒ＿ｏｆｆｓｅｔに直接代入していないのは、ユーザが急激に指を動かしたときに再生位置に大きな飛躍が生じて再生音が不自然になることを防ぐためである。
【０１０８】
ステップＳ２０＿１２におけるカレントオフセットｃｕｒ＿ｏｆｆｓｅｔの更新が終わると、タッチポイントｔｏｕｃｈｐとカレントオフセットｃｕｒ＿ｏｆｆｓｅｔとの和の値が位置情報ｓｐｈａｓｅに代入され（ステップＳ２０＿１３）、上記同様に、ステップＳ２０＿４〜ステップＳ２０＿７において、位置情報ｓｐｈａｓｅが示す位置が常に波形上に存在するように制限され、位置情報ｓｐｈａｓｅが出力されて（ステップＳ２０＿８）、図１４に示すＤＳＰのメインルーチンに戻る。
【０１０９】
図１６は、図９に示す開始アドレス発生手段２１の動作を実行するルーチンのフローチャートである。
【０１１０】
このルーチンが開始されると、先ず、パルス信号ｓｐ１、パルス信号ｓｐ２、およびゲートフラグｇａｔｅの値の立ち上がりのうちのいずれかが入力されたか否かが判定され（ステップＳ２１＿１）、入力されたと判定された場合には、図９に示す波形メモリ１１から読み出された一連の開始アドレスｓａｄｒｓ０，ｓａｄｒｓ１，ｓａｄｒｓ２，…に基づいて、位置情報ｓｐｈａｓｅが示す位置を含む波形区間が選択され、その波形区間の開始アドレスおよびピッチが選択出力用の開始アドレスｓａｄｒｓおよびピッチｓｐｉｔｃｈとして設定される（ステップＳ２１＿２）。つまり、位置情報ｓｐｈａｓｅが示す位置が波形区間を越えて移動しない限り、１つの波形区間が繰り返し再生されることとなる。
【０１１１】
その後、開始アドレスｓａｄｒｓが出力され（ステップＳ２１＿３）、ピッチｓｐｉｔｃｈが出力されて（ステップＳ２１＿４）、図１４に示すＤＳＰのメインルーチンに戻る。
【０１１２】
図１７は、図９に示す再生ピッチ周期発生手段２２の動作を実行するルーチンのフローチャートである。
【０１１３】
このルーチンが開始されと、先ず、ゲートフラグｇａｔｅの値が立ち上がった直後であるか否かが判定され（ステップＳ２２＿１）、立ち上がり直後を除く他の時点であると判定されると、鋸歯状波を表す制御変数ｐｈａｓｅの値が累増値ｐｈｉｎｃだけ歩進される（ステップＳ２２＿２）。そして、制御変数ｐｈａｓｅの値が、再生音のピッチｐｉｔｃｈに相当する時間だけ累増され続けたことを示す最大値ｐｍａｘに達したか否かが判定され（ステップＳ２２＿３）、達していないと判定されると、そのままこの図１７のルーチンが終了して、図１４に示すＤＳＰのメインルーチンに戻る。
【０１１４】
制御変数ｐｈａｓｅの値が最大値ｐｍａｘに達したと判定された場合（ステップＳ２２＿３：Ｙ）には、制御変数ｐｈａｓｅの値が最大値ｐｍａｘだけ差し引かれ（ステップＳ２２＿４）、上述した２系統の再生チャンネルの別を値「１」と値「−１」で示すフラグｆｆ＿ｆｌｇの値が判定される（ステップＳ２２＿５）。そして、フラグｆｆ＿ｆｌｇの値が負の値「−１」である場合にはパルス信号ｓｐ２が出力されてフラグｆｆ＿ｆｌｇの値に値「１」が代入され（ステップＳ２２＿６）、フラグｆｆ＿ｆｌｇの値が正の値「１」である場合にはパルス信号ｓｐ１が出力されてフラグｆｆ＿ｆｌｇの値に値「−１」が代入される（ステップＳ２２＿７）。この結果、２系統の再生チャンネルそれぞれのパルス信号ｓｐ１，ｓｐ２が交互に出力されることとなる。
【０１１５】
その後、再生音のピッチｐｉｔｃｈの値として、上記開始アドレス発生手段によって選択出力されたピッチｓｐｉｔｃｈと、ＣＰＵによって設定されたシフト量ｐ＿ｓｈｉｆｔとの積の値が代入され（ステップＳ２２＿８）、そのピッチｐｉｔｃｈの値が所定のテーブルで累増値ｐｈｉｎｃに変換されて（ステップＳ２２＿９）、図１４に示すＤＳＰのメインルーチンに戻る。
【０１１６】
上述したステップＳ２２＿１において、ゲートフラグｇａｔｅの値が立ち上がった直後であると判定された場合には、制御変数ｐｈａｓｅの値が「０」にリセットされ、パルス信号ｓｐ１が出力されてフラグｆｆ＿ｆｌｇの値に値「−１」が代入される（ステップＳ２２＿７）。そして、上記同様に、再生音のピッチｐｉｔｃｈの値が設定され（ステップＳ２２＿８）、そのピッチｐｉｔｃｈの値が累増値ｐｈｉｎｃに変換されて（ステップＳ２２＿９）、図１４に示すＤＳＰのメインルーチンに戻る。
【０１１７】
図１８は、図１０に示す窓関数制御手段２３１の動作を実行するルーチンのフローチャートである。
【０１１８】
このルーチンが開始された場合も、先ず、ゲートフラグｇａｔｅの値が立ち上がった直後であるか否かが判定され（ステップＳ２３＿１＿１）、立ち上がり直後である場合には、図１０に示す第１および第２の窓関数発生手段２３２，２３３による窓関数の生成を停止させるストップ指示信号Ｗｓｔｏｐと、エンベロープ関数ｅｎｖの立ち上がりをエンベロープ発生手段２３４に指示するエンベロープスタート信号Ｇｓｔａｒｔが出力される（ステップＳ２３＿１＿２）。また、ゲートフラグｇａｔｅの値が立ち下がった直後であるか否かも判定され（ステップＳ２３＿１＿３）、立ち下がり直後である場合には、エンベロープ関数ｅｎｖ立ち下がりをエンベロープ発生手段２３４に指示するエンベロープストップ信号Ｇｓｔｏｐが出力される（ステップＳ２３＿１＿４）。
【０１１９】
その後、パルス信号ｓｐ１が入力されたか否かが判定され（ステップＳ２３＿１＿５）、入力されていないと判定されると、パルス信号ｓｐ２が入力されたか否かが判定される（ステップＳ２３＿１＿１３）。そして、パルス信号ｓｐ２が入力されていないと判定されると、図１４に示すＤＳＰのメインルーチンに戻る。
【０１２０】
パルス信号ｓｐ１が入力されたと判定された場合（ステップＳ２３＿１＿５：Ｙ）には、第１の再生チャンネル用の窓関数ｗｉｎｄｏｗ１について関数生成の制御が行われる。先ず、ピッチｓｐｉｔｃｈにフォルマントボリュームｆ＿ｖｒを乗算した値と、再生音のピッチｐｉｔｃｈの値とのうち小さい方の値が判定され（ステップＳ２３＿１＿６）、その小さい方の値の逆数が、窓関数ｗｉｎｄｏｗ１の三角波の傾きｗｐ１として代入される（ステップＳ２３＿１＿７、ステップＳ２３＿１＿８）。そして、傾きｗｐ１の値と、窓関数の生成開始を指示するスタート指示信号ｓｔ１が、図１０に示す第１の窓関数発生手段２３２（ＷＧ１）に出力される（ステップＳ２３＿１＿９）。
【０１２１】
その後、ここで求められた傾きｗｐ１が、窓関数ｗｉｎｄｏｗ２についての傾きｗｐ２の現在値よりも大きいか否かが判定され（ステップＳ２３＿１＿１０）、傾きｗｐ１の方が大きいと判定された場合には、即ち、窓関数ｗｉｎｄｏｗ２の三角波が下がりきる前にパルス信号ｓｐ２が入力されてしまう事態が生じる可能性があるので、傾きｗｐ２に傾きｗｐ１の値が代入され（ステップＳ２３＿１＿１１）、傾きｗｐ２の値が第２の窓関数発生手段２３３（ＷＧ２）へと出力される（ステップＳ２３＿１＿１２）。
【０１２２】
上述したステップＳ２３＿１＿５〜ステップＳ２３＿１＿１２と全く同様に、ステップＳ２３＿１＿１３〜ステップＳ２３＿１＿２０では、第２の再生チャンネル用の窓関数ｗｉｎｄｏｗ２について関数生成の制御が行われる。
【０１２３】
その後、図１４に示すＤＳＰのメインルーチンに戻る。
【０１２４】
図１９は、図９に示すアドレス変化信号発生手段２４の動作を実行するルーチンのフローチャートである。
【０１２５】
このルーチンが開始されると、先ず、パルス信号ｓｐ１が入力されたか否かが判定される（ステップＳ２４＿１）。そして、入力されたと判定された場合には、上述した開始アドレスｓａｄｒｓに対するアドレス変化分ｐｈ１が値「０」にリセットされ（ステップＳ２４＿２）、入力されなかったと判定された場合にはアドレス変化分ｐｈ１が歩進される（ステップＳ２４＿３）。また、パルス信号ｓｐ２が入力されたか否かも判定され（ステップＳ２４＿４）、上記同様に、入力されたと判定された場合にはアドレス変化分ｐｈ２が値「０」にリセットされ（ステップＳ２４＿５）、入力されなかったと判定された場合にはアドレス変化分ｐｈ２が歩進される（ステップＳ２４＿６）。
【０１２６】
その後、アドレス変化信号ｐｐｈ１，ｐｐｈ２の値として、アドレス変化分ｐｈ１，ｐｈ２とフォルマントボリュームｆ＿ｖｒとの積が代入され（ステップＳ２４＿７）、アドレス変化信号ｐｐｈ１，ｐｐｈ２が出力されて（ステップＳ２４＿８）、図１４に示すＤＳＰのメインルーチンに戻る。
【０１２７】
図２０は、図９に示すアドレス発生手段２５の動作を実行するルーチンのフローチャートである。
【０１２８】
このルーチンが開始された場合も、先ず、パルス信号ｓｐ１が入力されたか否かが判定される（ステップＳ２５＿１）。そして、入力されたと判定された場合には、上述した開始アドレス発生手段によって現時点で選択出力されている開始アドレスｓａｄｒｓの値が、第１の再生チャンネル用の開始アドレスｓｔａｒｔ１に代入される（ステップＳ２５＿２）。また、パルス信号ｓｐ２が入力されたか否かも判定され（ステップＳ２５＿３）、入力されたと判定された場合には、開始アドレスｓａｄｒｓの値が、第２の再生チャンネル用の開始アドレスｓｔａｒｔ２に代入される（ステップＳ２５＿４）。
【０１２９】
その後、波形メモリ１１から波形データを読み出すための読出アドレスａｄｒｓ１，ａｄｒｓ２として、各再生チャンネル用の開始アドレスｓｔａｒｔ１，ｓｔａｒｔ２とアドレス変化信号ｐｐｈ１，ｐｐｈ２との和の値が代入され、読出アドレスａｄｒｓ１，ａｄｒｓ２が出力されて、図１４に示すＤＳＰのメインルーチンに戻る。
【０１３０】
以上で、図１に示す実施形態の説明を終了する。
【０１３１】
本発明にいう位置指定操作子は、上述した実施形態に備えられているリボンコントローラに限定されるものではなく、以下説明するような操作子であってもよい。
【０１３２】
図２１は、本発明にいう位置指定操作子の他の一例を示す図である。
【０１３３】
この操作子３０は、図２１に示すＣ方向やＤ方向に回動自在な操作子である。また、この操作子３０はＢ方向に付勢されており、Ａ方向に押し込むことができる。
【０１３４】
この操作子３０がＡ方向に押し込まれる操作は、上述したリボンコントローラが触られる操作に相当し、Ｂ方向への付勢によって操作子３０がＢ方向に戻る操作は、リボンコントローラから指が離れる操作に相当する。また、操作子３０がＡ方向に押し込まれたままＣ方向やＤ方向に回動される操作は、リボンコントローラが擦られる操作に相当する。
【０１３５】
また、本発明にいう位置指定操作子は、レコードプレーヤのターンテーブルのような形状の回転操作子であってもよい。このような回転操作子による位置指定の効力をオンオフする手段としては、例えば、その回転操作に圧力をかけたことを検出することによってオンオフ制御する手段が考えられる。
【０１３６】
更に、前述したリボンコントローラのように、リボンコントローラの操作子に波形の一部分を割り当てる方式では、割り当てられた波形部分以外の波形の位置を指示することができないので、リボンコントローラへの操作量を累算して波形の位置を指示するようにしてもよい。つまり、累算量が波形の位置を示すこととなる。また、前述したターンテーブルのような形状の回転操作子でも、ロータリーエンコーダのようなエンドレスに回動自在な操作子を使用して、その走査量の累算で波形の位置を指示すると操作性がよい。
【０１３７】
なお、上述した実施形態では、再生音の音高は鍵盤操作にのみ依存していたが、本発明の波形再生装置は、位置指定操作子によって指定された位置の変化速度に応じた音高で波形を再生するものであってもよい。指定位置の変化速度に応じた音高で波形を再生する実施形態は、上記説明した実施形態のフローチャートを一部分変更することによって実現することができる。
【０１３８】
以下、フローチャートの変更部分について説明する。
【０１３９】
図２２は、リボンコントローラ処理ルーチンのフローチャートに対する変更部分を示す図である。
【０１４０】
この図２２に示すステップＳ１３＿５ａは、図６に示すステップＳ１３＿５に代えて実行されるステップである。
【０１４１】
図６に示すステップＳ１３＿５では、タッチ位置が検出されて現在位置ＰＯＩＮＴに設定されるだけであるのに対して、この図２２に示すステップＳ１３＿５ａでは、更に、前回検出されたタッチ位置と今回検出されたタッチ位置との差によって操作速度が算出されてＣＰＵの速度Ｖに設定され、ＤＳＰの速度ｖに設定される。
【０１４２】
図２３は、再生ピッチ周期発生手段の動作を実行するフローチャートに対する変更部分を示す図である。
【０１４３】
この図２３に示すステップＳ２２＿８ａは、図１７に示すステップＳ２２＿８に代えて実行されるステップである。
【０１４４】
図１７に示すステップＳ２２＿８では、再生音のピッチｐｉｔｃｈの値として、波形区間のピッチｓｐｉｔｃｈとシフト量ｐ＿ｓｈｉｆｔとの積の値が代入されるが、この図２３に示すステップＳ２２＿８ａでは、再生音のピッチｐｉｔｃｈの値として、波形区間のピッチｓｐｉｔｃｈとシフト量ｐ＿ｓｈｉｆｔとの積の値に対して、更に圧縮伸長量ｔｃｏｍｐと速度ｖとの比を乗算した値が代入される。
【０１４５】
このように、図６および図１７に示すフローチャートが部分的に変更されることによって、指定位置の移動速度に応じた音高での波形再生が実現される。このような再生動作を行う波形再生装置では、いわゆるスクラッチと呼ばれる、アナログレコードを手で動かして「キュッ」という音を鳴らす演奏に似た演奏が可能となる。
【０１４６】
なお、上述したようなリボンコントローラや操作子は、位置指定の効力をオンオフする手段と一体のものであるが、本発明にいう位置指定操作子は、オン状態とオフ状態とが、ペダルスイッチのような別の操作子で切り替えられるものであってもよい。
【０１４７】
また、上記実施形態では、フォルマントボリュームｆ＿ｖｒ指定用の操作子によって指定されたフォルマントボリュームｆ＿ｖｒの値に従って波形が再生されるが、本発明の波形再生装置は、上述したフォルマントボリュームｆ＿ｖｒの値を指定位置の移動速度に応じた値に変化させて波形を再生するものであってもよい。
【０１４８】
上述した波形区間は、波形が１周期分ごとに区切られたものであるが、１周期分に限定されるものではなく、複数周期分ごとに区切られたものであってもよい。また、本発明にいう再生範囲は、このように予め区切られた波形区間に限定されるものではなく、例えば波形上の指定位置から２周期先までといった範囲であってもよい。
【０１４９】
また更に、本発明の波形再生装置を実現するために利用する技術は、上述した時間軸圧縮伸長技術に限定されるものではない。
【０１５０】
【発明の効果】
以上説明したように、本発明の波形再生装置によれば、ユーザは、波形上の再生位置を直接指定することができ、かつ、再生位置を連続変更することができる。その結果、豊かな音楽表現を実現することができる。
【図面の簡単な説明】
【図１】本発明の波形再生装置の一実施形態を示す図である。
【図２】リボンコントローラを用いた位置指定操作の説明図である。
【図３】ＣＰＵのメインルーチンのフローチャートである。
【図４】操作子群処理ルーチンのフローチャートである。
【図５】鍵盤処理ルーチンのフローチャートである。
【図６】リボンコントローラ処理ルーチンのフローチャートである。
【図７】波形メモリに記憶されている波形の一例を示す波形図である。
【図８】波形メモリのデータ構造図である。
【図９】ＤＳＰの動作を表す等価回路図である。
【図１０】窓信号発生手段の構成図である。
【図１１】波形メモリに記憶されている波形が時間軸方向に圧縮も伸長もされずに再生されたときの動作を説明する波形図である。
【図１２】波形が時間軸方向に圧縮されて再生されたときの動作を説明する波形図である。
【図１３】波形が時間軸方向に伸長されて再生されたときの動作を説明する波形図である。
【図１４】ＤＳＰのメインルーチンのフローチャートである。
【図１５】位置情報発生手段の動作を実行するルーチンのフローチャートである。
【図１６】開始アドレス発生手段の動作を実行するルーチンのフローチャートである。
【図１７】再生ピッチ周期発生手段の動作を実行するルーチンのフローチャートである。
【図１８】窓関数制御手段の動作を実行するルーチンのフローチャートである。
【図１９】アドレス変化信号発生手段の動作を実行するルーチンのフローチャートである。
【図２０】アドレス発生手段の動作を実行するルーチンのフローチャートである。
【図２１】本発明にいう位置指定操作子の他の一例を示す図である。
【図２２】リボンコントローラ処理ルーチンのフローチャートに対する変更部分を示す図である。
【図２３】再生ピッチ周期発生手段の動作を実行するフローチャートに対する変更部分を示す図である。
【符号の説明】
１０    波形再生装置
１１    波形メモリ
１１ａ    波形関連データ部
１１ｂ    波形データ部
１２    ＤＳＰ
１３    ＣＰＵ
１４    ＲＡＭ
１５    ＲＯＭ
１６    リボンコントローラ
１７    鍵盤
１８    操作子群
１９    Ｄ／Ａ変換器
２０    位置情報発生手段
２１    開始アドレス発生手段
２２    再生ピッチ周期発生手段
２３    窓信号発生手段
２４    アドレス変化信号発生手段
２５    アドレス発生手段
２６    読出手段
２７    窓付与手段
２８    エンベロープ付与手段
３０    操作子
２３１    窓関数制御手段
２３２    第１の窓関数発生手段
２３３    第２の窓関数発生手段
２３４    エンベロープ発生手段
【図１】
0004213835.tif 000002
【図２】
0004213835.tif 000003
【図３】
0004213835.tif 000004
【図４】
0004213835.tif 000005
【図５】
0004213835.tif 000006
【図６】
0004213835.tif 000007
【図７】
0004213835.tif 000008
【図８】
0004213835.tif 000009
【図９】
0004213835.tif 000010
【図１０】
0004213835.tif 000011
【図１１】
0004213835.tif 000012
【図１２】
0004213835.tif 000013
【図１３】
0004213835.tif 000014
【図１４】
0004213835.tif 000015
【図１５】
0004213835.tif 000016
【図１６】
0004213835.tif 000017
【図１７】
0004213835.tif 000018
【図１８】
0004213835.tif 000019
【図１９】
0004213835.tif 000020
【図２０】
0004213835.tif 000021
【図２１】
0004213835.tif 000022
【図２２】
0004213835.tif 000023
【図２３】
0004213835.tif 000024