(57)【特許請求の範囲】
【請求項１】
原音の波形を表す波形データを構成する複数のサンプル値又は前記複数のサンプル値に基づいて計算された複数の圧縮データを記憶した波形データ記憶手段と、
サンプリング期間ごとにカウント値が更新されるサンプルカウンタをそれぞれ有し、前記サンプルカウンタのカウント値に基づいて、１つ又は複数の前記サンプル値又は前記圧縮データを前記波形データ記憶手段から読み出して、前記サンプルカウンタのカウント値に対応するサンプル値であって、音の波形を表わす音響信号を構成するサンプル値を計算して出力する複数の発音手段と、
前記サンプルカウンタの初期カウント値を設定するとともにカウントを開始させ、サンプリング期間ごとに前記サンプルカウンタのカウント値に加算する加算値を前記発音手段に供給して前記サンプルカウンタのカウント値を更新させ、前記サンプルカウンタのカウント値が所定の値に達したとき前記サンプルカウンタのカウントを停止させる制御手段と、
を備えた音響信号生成装置であって、
時間間隔をおいて、前記原音における時間軸方向に互いにずれた複数の区間を前記複数の発音手段から選択した複数の発音手段に割り当て、前記割り当てた区間の先頭位置に対応する値に基づいて前記選択した複数の発音手段のサンプルカウンタの初期カウント値をそれぞれ設定するとともに前記選択した複数の発音手段のサンプルカウンタのカウントを開始させ、前記選択した複数の発音手段から出力されたサンプル値を重畳加算することにより、前記原音の長さ、前記原音のピッチ及び前記原音のフォルマントのうちのいずれか１つの要素又は複数の要素を変更した１つの再生音の波形を表わす音響信号を構成する１つのサンプル値をサンプリング期間ごとに生成し、前記発音手段のサンプルカウンタのカウント値が、前記発音手段に割り当てられた前記区間の末尾位置に対応する値に達したとき、前記発音手段のサンプルカウンタのカウントを停止させ、
前記複数の区間、前記時間間隔及び前記加算値は、前記原音の長さに対する前記再生音の長さの比率を表わす第１比率、前記原音のピッチに対する前記再生音のピッチの比率を表わす第２比率、及び前記原音のフォルマント周波数に対する前記再生音のフォルマント周波数の比率を表わす第３比率のうちのいずれか１つの比率又は複数の比率に基づいて決定され、
前記原音のピッチが所与のピッチに矯正されて再生されるように、前記時間間隔が制御される、音響信号生成装置。
【請求項２】
請求項１に記載の音響信号生成装置において、
前記所与のピッチは、鍵盤装置が備える複数の鍵のうち、押鍵操作された鍵に対応するピッチである、音響信号生成装置。
【請求項３】
請求項１に記載の音響信号生成装置において、
第１の再生音と第２の再生音を同時に再生する際、前記第２の再生音のピッチが前記第１の再生音のピッチに追従したピッチ又は所定の度数関係にあるピッチに矯正される、音響信号生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音（音声又は楽音）の波形を表す波形データを記憶した波形メモリから、波形データを読み出して音響信号を発生する音響信号発生装置に関する。とくに、音の長さ（再生速度（時間の進む速さ））、ピッチ及びフォルマントのうちのいずれかの要素を他の要素に影響を与えることなく変更可能な音響信号発生装置に関する。
【背景技術】
【０００２】
従来から、例えば下記特許文献１に示されているように、音の波形を表す波形データを波形メモリから読み出して、前記読み出した波形データが表す音を再生する電子楽器は知られている。この電子楽器は、音を再生するための複数の発音チャンネルを備えている。この電子楽器は、所定の音域ごとに波形データを１つずつ割り当てている。前記波形データを構成する各サンプル値は圧縮され、各サンプル値がサンプリングされた順に、波形メモリの連続するアドレスに記憶している。この電子楽器においては、各サンプル値を１つ前のサンプル値からの変化に関係して圧縮する圧縮方式を採用しており、圧縮データをデコードするためには、１つ前のサンプル値を用いる必要がある。したがって、波形メモリから圧縮データを読み出す際には、発音チャンネルは、読み出しアドレスを１つずつ進めている。
【０００３】
各発音チャンネルは、各サンプリング期間（Ｄ／Ａコンバータが１つのディジタル値を１つのアナログ値に変換する期間）に、波形メモリから圧縮データを読み出してデコードすることにより、１つのサンプル値（音響信号）を計算する。再生する音（以下、再生音と呼ぶ）のピッチがサンプリングした音（以下、原音と呼ぶ）のピッチと同じ場合は、発音チャンネルは、読み出しアドレスを１つ進めて圧縮データを読み出し、１つ前のサンプリング期間のサンプル値に圧縮データの値を加算することにより、今回のサンプリング期間のサンプル値を計算する。再生音のピッチが原音のピッチと異なる場合は、原音のピッチに対する再生音のピッチの比率（ピッチ倍率）に応じて圧縮データの読み出しレートを設定する。つまり、発音チャンネルは、連続するアドレスに記憶されている複数の圧縮データを読み出して、前記読み出した複数の圧縮データをデコードする。つまり、複数のサンプル値を順に復元する。そして、前記復元された複数のサンプル値を用いた線形補間演算により、再生音のピッチに対応したサンプル値が算出される。
【０００４】
また、下記特許文献２に記載されているように、音声の一部の区間（前記音声の先頭部分に含まれる所定数の母音）のピッチを変更することなく、その区間の長さを変更（伸長）する機能を備えた補聴器は知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平９−１４６５５５号公報
【特許文献２】特開平９−３１２８９９号公報
【発明の概要】
【０００６】
上記従来の電子楽器において、再生音のピッチを原音のピッチとは異なるピッチに設定した場合、再生音の長さが原音の長さとは異なる長さになってしまう。例えば、再生音のピッチを原音のピッチよりも高いピッチに設定した場合、再生音は原音よりも短くなる。一方、再生音のピッチを原音のピッチよりも低いピッチに設定した場合、再生音は原音よりも長くなる。また、上記従来の電子楽器において、再生音のピッチを原音のピッチとは異なるピッチに設定した場合、再生音のフォルマントが原音のフォルマントとは異なるフォルマントになってしまう。例えば、再生音のピッチを原音のピッチよりも高いピッチに設定した場合、再生音のフォルマントが原音のフォルマントよりも高くなる。一方、再生音のピッチを原音のピッチよりも低いピッチに設定した場合、再生音のフォルマントは原音のフォルマントよりも低くなる。つまり、音色が変わってしまう。
【０００７】
また、上記従来の補聴器においては、専用の回路（ＤＳＰ）を用いて、上記の機能を実現している。このような専用の回路（ＤＳＰ）を用いる場合、所定長の波形を表わす波形データが形成されるまで、その波形データを構成する各サンプル値を記憶しておく必要がある。すなわち、比較的大きな記憶容量を有するメモリが必要である。また、発音開始指示（つまり、音声の入力時）から前記波形データが形成されるまでの遅れが生じる。電子楽器において、前記発音チャンネルに加え、上記機能を実現するための専用の回路（例えば、ＤＳＰ）を搭載すると、回路規模が大きくなり、価格が高くなる。とくに、発音数を増加させると前記メモリの記憶容量を増やす必要があり、その問題が顕著になる。しかも、全ての機能が常に利用されるわけではないので、無駄が生じる。
【０００８】
本発明は上記問題に対処するためになされたもので、その目的は、音の長さ、ピッチ及びフォルマントのうちのいずれかの要素を他の要素に影響を与えることなく変更可能な音響信号発生装置であって、構成が簡単な音響信号発生装置を提供することにある。なお、下記本発明の各構成要件の記載においては、本発明の理解を容易にするために、後述する実施形態の対応箇所の符号を括弧内に記載しているが、本発明の各構成要件は、実施形態の符号によって示された対応箇所の構成に限定解釈されるべきものではない。
【０００９】
上記目的を達成するために、本発明の特徴は、原音の波形を表す波形データを構成する複数のサンプル値又は前記複数のサンプル値に基づいて計算された複数の圧縮データを記憶した波形データ記憶手段（ＷＭ、ＲＢ）と、サンプリング期間ごとにカウント値が更新されるサンプルカウンタ（Ｃｓ（ｎ））をそれぞれ有し、前記サンプルカウンタのカウント値（ｔｓ（ｎ））に基づいて、１つ又は複数の前記サンプル値又は前記圧縮データを前記波形データ記憶手段から読み出して、前記サンプルカウンタのカウント値に対応するサンプル値であって、音の波形を表わす音響信号を構成するサンプル値を計算して出力する複数の発音手段（ＣＨ（ｎ））と、前記サンプルカウンタの初期カウント値を設定するとともにカウントを開始させ、サンプリング期間ごとに前記サンプルカウンタのカウント値に加算する加算値（ｖ、β、γ）を前記発音手段に供給して前記サンプルカウンタのカウント値を更新させ、前記サンプルカウンタのカウント値が所定の値に達したとき前記サンプルカウンタのカウントを停止させる制御手段（ＣＴ）と、を備えた音響信号生成装置（１６、ＷＭ、ＲＢ、１８）であって、時間間隔をおいて、前記原音における時間軸方向に互いにずれた複数の区間を前記複数の発音手段から選択した複数の発音手段に割り当て、前記割り当てた区間の先頭位置に対応する値に基づいて前記選択した複数の発音手段のサンプルカウンタの初期カウント値をそれぞれ設定するとともに前記選択した複数の発音手段のサンプルカウンタのカウントを開始させ、前記選択した複数の発音手段から出力されたサンプル値を重畳加算することにより、前記原音の長さ、前記原音のピッチ及び前記原音のフォルマントのうちのいずれか１つの要素又は複数の要素を変更した１つの再生音の波形を表わす音響信号を構成する１つのサンプル値をサンプリング期間ごとに生成し、前記発音手段のサンプルカウンタのカウント値が、前記発音手段に割り当てられた前記区間の末尾位置に対応する値に達したとき、前記発音手段のサンプルカウンタのカウントを停止させ、前記複数の区間、前記時間間隔及び前記加算値は、前記原音の長さに対する前記再生音の長さの比率を表わす第１比率（α）、前記原音のピッチに対する前記再生音のピッチの比率を表わす第２比率（β）、及び前記原音のフォルマント周波数に対する前記再生音のフォルマント周波数の比率を表わす第３比率（γ）のうちのいずれか１つの比率又は複数の比率に基づいて決定され、前記原音のピッチが所与のピッチに矯正されて再生されるように、前記時間間隔（ｄｐｍ、β）が制御される、音響信号生成装置としたことにある。
【００１０】
この場合、前記所与のピッチは、鍵盤装置が備える複数の鍵のうち、押鍵操作された鍵に対応するピッチであるとよい。
【００１１】
また、この場合、第１の再生音と第２の再生音を同時に再生する際、前記第２の再生音のピッチが前記第１の再生音のピッチに追従したピッチ又は所定の度数関係にあるピッチに矯正されるとよい。
【００１２】
本発明に係る音響信号生成装置においては、従来の音響信号生成装置と同様の複数の発音手段（発音チャンネル）によって原音の一部の区間に相当する波形を表す音響信号が順次生成され、それらが重畳加算される。これにより、前記原音の長さ、前記原音のピッチ及び前記原音のフォルマントのうちのいずれか１つの要素又は複数の要素を変更した１つの再生音の波形を表わす音響信号が形成される。このように、本発明によれば、音の長さ、ピッチ及びフォルマントのうちのいずれかの要素を他の要素に影響を与えることなく変更可能な音響信号発生装置であって、構成が簡単な音響信号発生装置を提供できる。つまり、本発明に係る音響信号生成装置においては、上記従来の音響信号生成装置（従来の補聴器）のような専用の回路（例えば、ＤＳＰ）が不要である。また、サンプリング期間ごとに１つのサンプル値が出力されるので、上記従来の音響信号生成装置のような遅れの問題が生じない。
【００１３】
また、本発明によれば、原音のピッチが所与のピッチに矯正されて再生される。例えば、音色や音量の時間的変化は原音のままでありながら、所与のピッチに矯正されて平坦にされた楽音を得ることができる。例えば、ユーザが押鍵操作した鍵に応じて、原音のピッチを鍵に対応するピッチに矯正して再生することで、面白みのある音響的効果が得られる。また、例えば、音色や音量の時間的変化は原音のままでありながら、ピッチは他の原音のピッチに追従した楽音を生成したり、原音のピッチに対して所定の度数関係にあるハーモニー音を生成したりすることができ、面白みのある音響的効果が得られる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態に係る音源回路が適用された電子楽器の構成を示すブロック図である。
【図２】図１の音源回路の構成を示すブロック図である。
【図３】図２の重畳加算回路の構成を示すブロック図である。
【図４Ａ】セグメントに適用される窓関数の例を示すグラフである。
【図４Ｂ】セグメントに適用される窓関数の他の例を示すグラフである。
【図５】発音開始指示プログラムのフローチャートである。
【図６】第１モードにおける音源回路の構成を示すブロック図である。
【図７】第１モードにおける制御部の動作シーケンス図である。
【図８】第１モードにおける発音チャンネルの動作シーケンス図である。
【図９Ａ】ピッチ倍率が「２．５」である場合のサンプル値の復元手順を示す概念図である。
【図９Ｂ】ピッチ倍率が「０．５」である場合のサンプル値の復元手順を示す概念図である。
【図１０】ピッチマーク及びセグメントの概念図である。
【図１１】第２モードにおける音源回路の構成を示すブロック図である。
【図１２】第２モードにおける音源回路の動作の概略を示す概略図である。
【図１３Ａ】第２モードにおける制御部の動作シーケンス図の前半部分である。
【図１３Ｂ】第２モードにおける制御部の動作シーケンス図の中間部である。
【図１３Ｃ】第２モードにおける制御部の動作シーケンス図の後半部である。
【図１４】第２モードにおけるトラックを構成する発音チャンネルのうちの先頭の発音チャンネルの動作シーケンス図である。
【図１５】第２モードにおけるトラックを構成する発音チャンネルのうちの先頭チャンネル以外の発音チャンネルの動作シーケンス図である。
【図１６】ストレッチ率の値に応じて再生されるグレインの系列が異なることを示す概略図である。
【図１７】ピッチ倍率の値に応じて再生されるグレインの系列が異なることを示す概略図である。
【図１８】アタックマーク及びセグメントの概念図である。
【図１９】ストレッチ率の値に応じて再生されるグレインの系列が異なることを示す概略図である。
【図２０Ａ】第３モードにおける制御部の動作シーケンス図の前半部分である。
【図２０Ｂ】第３モードにおける制御部の動作シーケンス図の中間部である。
【図２０Ｃ】第３モードにおける制御部の動作シーケンス図の後半部である。
【図２１】第３モードにおけるトラックを構成する発音チャンネルのうちの先頭の発音チャンネルの動作シーケンス図である。
【図２２】第３モードにおけるトラックを構成する発音チャンネルのうちの先頭チャンネル以外の発音チャンネルの動作シーケンス図である。
【図２３】ピッチ矯正の概念を示す概念図である。
【図２４】複数のトラックを同期させた場合の音源回路の構成を示すブロック図である。
【図２５】各トラックの再生位置を示す概念図である。
【発明を実施するための形態】
【００１５】
本発明の一実施形態に係る音響信号生成装置が適用された電子楽器ＤＭについて説明する。まず、この電子楽器ＤＭの概略について説明する。この電子楽器ＤＭは、図１に示すように、音の波形を表す波形データを波形メモリＷＭから読み出して、前記読み出した波形データが表す音を再生する音源回路１６を有する。音源回路１６は、タイムストレッチ機能、ピッチシフト機能及びフォルマントシフト機能を有する。タイムストレッチ機能を利用すれば、音のピッチ及びフォルマントを維持したまま、音の長さを変更できる。つまり、音を時間軸方向に伸縮させることができる。言い換えれば、音の再生速度（時間の進む速さ）のみを変更できる。また、ピッチシフト機能を利用すれば、音の長さ及びフォルマントを維持したまま、音のピッチを変更できる。また、フォルマントシフト機能を利用すれば、音の長さ及びピッチを維持したまま、音のフォルマントを変更できる。タイムストレッチ機能、ピッチシフト機能及びフォルマントシフト機能のうち２つの機能又は全てを同時に利用することができる。つまり、音の長さ、ピッチ及びフォルマントのうちの１つのみを変更するのに限られず、２つ又は全てを同時に変更することもできる。
【００１６】
音源回路１６は、音の再生に関する動作モードとして４つのモードを備える。第１モードにおいては、タイムストレッチ機能、ピッチシフト機能及びフォルマントシフト機能は無効である。つまり、上記従来の電子楽器と同様に、原音のピッチとは異なるピッチに変更して再生すると、ピッチのみならず、長さ及びフォルマントも変わる。第２モードにおいては、上記のタイムストレッチ機能、ピッチシフト機能及びフォルマントシフト機能が有効になる。第２モードは、ボーカルソロ、ストリングスなど単一の楽器の演奏（フレーズ）の再生に適している。また、第３モードにおいては、タイムストレッチ機能及びピッチシフト機能が有効になる。第３モードは、ボーカル、ギター、ドラム、パーカッションなど複数の楽器の演奏が含まれるフレーズの再生に適している。また、第４モードにおいては、ピッチシフト機能及びフォルマントシフト機能が有効になる。第４モードでは、リアルタイムに入力されるボーカルソロ、ストリングスなど単一の楽器の演奏音にハーモニーを付与することができる。なお、上記の４つのモードのうちの複数のモード又はすべてのモードを同時に利用することもできる。詳しくは後述するように、音源回路１６は２５６個の発音チャンネルを備えるが、再生を開始する際に使用されていない発音チャンネルが存在すれば、それらにいずれの動作モードを割り当ててもよい。ただし、第２乃至第４モードに関しては、１つの音を再生するために４つの発音チャンネルを使用するため、使用されていない発音チャンネルの数が３つ以下の場合には、それらの発音チャンネルに第２乃至第４モードを割り当てることはできない。
【００１７】
つぎに、電子楽器ＤＭの構成について説明する。電子楽器ＤＭは、図１に示すように、入力操作子１１、コンピュータ部１２、表示器１３、記憶装置１４、外部インターフェース回路１５、及び音源回路１６を備え、これらがバスＢＳを介して接続されている。また、音源回路１６には、サウンドシステム１７、音声入力装置１８及び波形メモリＷＭが接続されている。
【００１８】
入力操作子１１は、演奏操作子及び設定操作子を含む。演奏操作子及び設定操作子は、オン・オフ操作に対応したスイッチ（例えば数値を入力するためのテンキー）、回転操作に対応したボリューム又はロータリーエンコーダ、スライド操作に対応したボリューム又はリニアエンコーダ、マウス、タッチパネルなどからなる。演奏操作子は、発音開始、発音停止などに用いられる。また、設定操作子は、動作モードの選択、音色の選択などに用いられる。また、設定操作子には、音の長さ（再生速度）を変更する際に用いられる音長設定操作子が含まれる。また、設定操作子には、音のピッチを変更する際に用いられるピッチ設定操作子が含まれる。また、設定操作子には、音のフォルマントを変更する際に用いられるフォルマント設定操作子が含まれる。入力操作子１１を操作すると、その操作内容を表す操作情報（操作子の指示値）が、バスＢＳを介して、後述するコンピュータ部１２に供給される。
【００１９】
コンピュータ部１２は、バスＢＳにそれぞれ接続されたＣＰＵ１２ａ、ＲＯＭ１２ｂ及びＲＡＭ１２ｃからなる。ＣＰＵ１２ａは、後述する発音プログラムをＲＯＭ１２ｂから読み出して実行して、演奏操作子の操作に関する演奏操作情報を音源回路１６に供給する。演奏操作情報には、再生音のピッチを表すピッチ情報、再生音の音量を表す音量情報などが含まれる。また、ＣＰＵ１２ａは、設定操作子が操作されると、その操作内容を表わす設定情報を音源回路１６に供給する。設定情報には、動作モードを表わす動作モード情報、再生音の音色を表す音色情報（例えば、フィルタのカットオフ周波数、レゾナンス量など）などが含まれる。また、設定情報には、音長設定操作子、ピッチ設定操作子、フォルマント設定操作子の指示値などが含まれる。
【００２０】
ＲＯＭ１２ｂには、前記発音プログラムに加えて、初期設定パラメータ、各演奏操作子の各ノート番号ＮＮに割り当てられた波形データに関する情報を表わす波形データ情報、表示器１３に表示される画像を表わす表示データを生成するための図形データ及び文字データなどの各種データが記憶されている。ＲＡＭ１２ｃには、各種プログラムの実行時に必要なデータが一時的に記憶される。
【００２１】
表示器１３は、液晶ディスプレイ（ＬＣＤ）によって構成される。コンピュータ部１２は、図形データ、文字データなどを用いて表示すべき内容を表わす表示データを生成して表示器１３に供給する。表示器１３は、コンピュータ部１２から供給された表示データに基づいて画像を表示する。
【００２２】
また、記憶装置１４は、ＨＤＤ、ＦＤＤ、ＣＤ、ＤＶＤなどの大容量の不揮発性記録媒体と、各記録媒体に対応するドライブユニットから構成されている。外部インターフェース回路１５は、電子楽器ＤＭを他の電子音楽装置、パーソナルコンピュータなどの外部機器に接続可能とする接続端子（例えば、ＭＩＤＩ入出力端子）を備えている。電子楽器ＤＭは、外部インターフェース回路１５を介して、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどの通信ネットワークにも接続可能である。
【００２３】
音源回路１６は、図２に示すように、制御部ＣＴ、発音部ＳＰ、キャッシュ回路ＣＭ、信号処理部ＤＰ、リングバッファＲＢ及びミキサー部ＭＸを有する。
【００２４】
制御部ＣＴは、ＣＰＵ１２ａから供給された演奏操作情報及び設定情報に基づいて、各種パラメータを生成して、次に説明する発音部ＳＰを構成する各発音チャンネルＣＨ（ｎ＝０，１，・・・，２５５）に供給する。制御部ＣＴには、各種エンベロープ信号を発生するエンベロープ発生回路及び低周波信号を発生する低周波発振器が含まれる。エンベロープ信号及び低周波信号は、発音開始からの経過時間に応じてピッチ、音色及び音量を変化させる際に利用される。上記の各種パラメータには、原音のピッチに対する再生音のピッチの比率を表すピッチ倍率β、フィルタの特性を設定するフィルタパラメータ、音量を設定する音量パラメータなどが含まれる。また、制御部ＣＴは、後述する発音チャンネルＣＨ（ｎ＝０，１，・・・，２５５）の動作状態をそれぞれ表す状態フラグＳＦｎ（ＣＴ）を有する。また、制御部ＣＴは、原音の波形データの先頭からのサンプル数を計測するサンプルカウンタＣｓ（ＣＴ）を有する。また、制御部ＣＴは、発音チャンネルＣＨ（ｎ＝０，１，・・・，２５５）が再生を開始するまでの時間を計測する再生時刻カウンタＣＴ（ＣＴ）を有する。また、制御部ＣＴは、サンプリング期間ごとに、後述するデコード回路ＤＥＣ（ｎ）にて復元されたサンプル値を一時的に記憶するサンプルバッファＳＢ（ＣＴ）を有する。また、制御部ＣＴは、後述する目標値ｔｖを一時的に記憶する目標値レジスタＴＲ（ＣＴ）を有する。
【００２５】
発音部ＳＰは、複数（例えば２５６個）の発音チャンネルＣＨ（ｎ＝０，１，・・・，２５５）を備える。発音チャンネルＣＨ（０），ＣＨ（１），・・・，ＣＨ（２５５）の構成は共通である。発音チャンネルＣＨ（ｎ）は、読み込み回路ＤＲＤ（ｎ）、デコード回路ＤＥＣ（ｎ）、重畳加算回路ＯＬＡ（ｎ）、フィルタ回路ＦＬＴ（ｎ）及び音量制御回路ＶＯＬ（ｎ）を有する。
【００２６】
読み込み回路ＤＲＤ（ｎ）は、キャッシュ回路ＣＭを介して波形メモリＷＭに接続されている。波形メモリＷＭには、原音（例えば、単一の楽器の単音、単一の楽器の演奏音からなるフレーズ、複数の楽器の演奏音が含まれるフレーズなど）を所定のサンプリング周期（例えば１／４４１００秒）でサンプリングして得られた各サンプル値が圧縮されて圧縮データとして記憶されている。圧縮データは、１つ前のサンプリング期間のサンプル値と現在のサンプル値との差を表す。したがって、波形データは、先頭のサンプル値と複数の圧縮データからなる。１つのアドレスに１つの圧縮データが対応付けられている。したがって、圧縮データを読み出す際の読み出しアドレスと先頭アドレスとの差は、前記圧縮データを用いて復元されるサンプル値がサンプリングされた時刻（サンプリング開始からの経過時間）に相当する。また、上記のように、本実施形態においては、圧縮データが波形メモリに記憶されているのであって、サンプル値そのものが記憶されているわけではないが、１つの圧縮データは原音の１つのサンプル値に対応しているので、圧縮データの読み出しアドレスは、圧縮されずにサンプル値が各アドレスに対応して記憶されている場合のサンプル値の読み出しアドレスに一致する。したがって、以下の説明では、波形メモリＷＭから圧縮データを読み出すアドレスを、サンプル値の読み出しアドレスと呼ぶ。
【００２７】
読み込み回路ＤＲＤ（ｎ）には、波形メモリＷＭ内のアドレスであって、原音の先頭のサンプル値が記憶されたアドレス（先頭アドレス）が、制御部ＣＴから供給される。読み込み回路ＤＲＤ（ｎ）は、サンプリング期間ごとに、制御部ＣＴのサンプルカウンタＣｓ（ＣＴ）と同様のサンプルカウンタＣｓ（ｎ）を有する。サンプルカウンタＣｓ（ｎ）のカウント値ｔｓ（ｎ）は、先頭アドレスからのオフセットアドレスを表わす。読み込み回路ＤＲＤ（ｎ）は、先頭アドレスにカウント値ｔｓ（ｎ）を加算した読み出しアドレスをキャッシュ回路ＣＭに供給する。ただし、読み出しアドレスは、通常小数部を含む。後述するように、読み出しアドレスに相当するサンプル値は、デコード回路ＤＥＣ（ｎ）によって計算される。デコード回路ＤＥＣ（ｎ）が前記読み出しアドレスに対応するサンプル値を計算するために必要な圧縮データを、キャッシュ回路ＣＭは波形メモリＷＭから読み出して読み込み回路ＤＲＤ（ｎ）に供給する。なお、キャッシュ回路ＣＭは、キャッシュメモリを備えており、圧縮データが一時的にキャッシュメモリに記憶される。読み込み回路ＤＲＤ（ｎ）に供給すべき圧縮データがキャッシュメモリに記憶されている場合には、キャッシュ回路ＣＭは、キャッシュメモリからその圧縮データを読み出して読み込み回路ＤＲＤ（ｎ）に供給する。
【００２８】
デコード回路ＤＥＣ（ｎ）は、供給された圧縮データを用いて現在のサンプリング期間のサンプル値を計算する。デコード回路ＤＥＣ（ｎ）は、前記計算した現在のサンプリング期間のサンプル値を、重畳加算回路ＯＬＡ（ｎ）に供給する。
【００２９】
重畳加算回路ＯＬＡ（ｎ）は、図３に示すように、乗算回路ＭＵＬ（ｎ）と加算回路ＡＤＤ（ｎ）を備える。乗算回路ＭＵＬ（ｎ）は、入力信号に窓関数を適用する回路である。乗算回路ＭＵＬ（ｎ）は、前記入力信号における位相を計算するために用いる位相カウンタＣｐ（ｎ）を有する。乗算回路ＭＵＬ（ｎ）は、位相カウンタＣｐ（ｎ）のカウント値ｔｐ（ｎ）を用いて係数ＷＤ（ｎ）を計算する。係数ＷＤ（ｎ）は、図４Ａ，４Ｂに示すような、カウント値ｔｐ（ｎ）の関数である。このような窓関数が入力信号に適用されることにより、出力信号はフェードインした後、フェードアウトする。
【００３０】
加算回路ＡＤＤ（０），ＡＤＤ（１），・・・，ＡＤＤ（２５５）は、互いに接続されている。加算回路ＡＤＤ（ｎ＝ａ）は、乗算回路ＭＵＬ（ｎ＝ａ）から供給されたサンプル値と他の加算回路ＡＤＤ（ｎ＝ｂ）から供給されたサンプル値を加算して、さらに他の加算回路ＡＤＤ（ｎ＝ｃ）に供給するとともにフィルタ回路ＦＬＴ（ｎ＝ａ）に供給可能である。ただし、第１モードのときには、乗算回路ＭＵＬ（ｎ）及び加算回路ＡＤＤ（ｎ）は利用されず、供給されたサンプル値がそのままフィルタ回路ＦＬＴ（ｎ）に供給される（図５参照）。
【００３１】
フィルタ回路ＦＬＴ（ｎ）は、重畳加算回路ＯＬＡ（ｎ）から供給されたサンプル値の系列に対してフィルタパラメータに応じたフィルタ処理を実行することにより、前記サンプル値の系列によって表される音の周波数特性（振幅特性）を変更して、音量制御回路ＶＯＬ（ｎ）に供給する。
【００３２】
音量制御回路ＶＯＬ（ｎ）は、フィルタ回路ＦＬＴ（ｎ）から供給されたサンプル値を音量パラメータに応じて増幅して、ミキサー部ＭＸへ出力する。
【００３３】
信号処理部ＤＰは、入力した波形データが表わす音にリバーブ、ディレイなどの効果を付与して出力する。また、入力した信号のピッチをリアルタイムに検出する。
【００３４】
リングバッファＲＢは、後述する音声入力装置１８から信号処理部ＤＰに入力され、効果が付与された音声を表す波形データを一時的に記憶するメモリである。
【００３５】
ミキサー部ＭＸは、サンプリング期間ごとに、各発音チャンネルＣＨ（０），ＣＨ（１），・・・，ＣＨ（２５５）及び信号処理部ＤＰから供給されたサンプル値を累算して、サウンドシステム１７に供給する。
【００３６】
サウンドシステム１７は、ミキサー部ＭＸから供給されたディジタル音信号をアナログ音信号に変換するＤ／Ａ変換器、前記変換したアナログ音信号を増幅するアンプ、及び増幅されたアナログ音信号を音響信号に変換して出力する左右一対のスピーカを備えている。
【００３７】
音声入力装置１８は、収音装置としてのマイク、マイクから出力されたアナログ音信号をディジタル音信号に変換するＡ／Ｄ変換器を備えている。
【００３８】
次に、上記のように構成した電子楽器ＤＭの動作について説明する。まず、ＣＰＵ１２ａの動作について説明する。演奏者が演奏操作子（例えば、鍵盤装置のいずれかの鍵）を操作してノートオンイベントが発生すると、ＣＰＵ１２ａは、図６に示すように、ステップＳ１００にて、発音プログラムの実行を開始する。次に、ＣＰＵ１２ａは、ステップＳ１０１にて、押鍵された鍵を表すノート番号ＮＮ及び押鍵強度ＶＬを検出する。
【００３９】
つぎに、ＣＰＵ１２ａは、ステップＳ１０２にて、前記ノート番号ＮＮ及び押鍵強度ＶＬに割り当てられている波形データを特定し、その波形データの先頭アドレス及び末尾アドレス、並びに原音のピッチＯＰ及び動作モードを含む波形データ情報をＲＯＭ１２ｂから読み込む。そして、ＣＰＵ１２ａは、ステップＳ１０３にて、前記取得したノート番号ＮＮ、原音のピッチＯＰ、押鍵強度ＶＬ、各種エンベロープ信号を規定するパラメータ及び各種低周波信号を規定するパラメータ、動作モードを表わす動作モード情報などを演奏操作情報として音源回路１６に供給し、ステップＳ１０４にて発音処理を終了する。
【００４０】
つぎに、動作モードが第１モードである場合の音源回路１６の発音動作について説明する。第１モードにおいては、図５に示すように音声入力装置１８及びリングバッファＲＢは利用されない。発音チャンネルＣＨ（０）〜ＣＨ（２５５）は互いに独立して動作し、それぞれ１つの音を再生する。つまり、第１モードでは、２５６個の音を同時に再生可能である。
【００４１】
制御部ＣＴは、ＣＰＵ１２ａから演奏操作情報を入力すると、図７に示す制御シーケンスに従って動作開始する。制御部ＣＴは、ステップＳ２００にて、動作を開始し、ステップＳ２０１にて、発音チャンネルを１つ確保する。なお、ＣＰＵ１２ａが発音チャンネルを確保し、確保した発音チャンネルのインデックスｎを音源回路１６に供給しても良い。以下、確保された発音チャンネルを発音チャンネルＣＨ（ｎ）と表記する。つぎに、制御部ＣＴは、ステップＳ２０２にて、エンベロープ発生回路及び低周波発振器を動作させ、前記入力した演奏操作情報及び前記演奏操作情報入力する前に入力した設定情報（以下、単に演奏操作情報及び設定情報という）に含まれる各種エンベロープ信号を規定するパラメータ及び各種低周波信号を規定するパラメータに従ったエンベロープ信号及び低周波信号を発生開始させる。
【００４２】
つぎに、制御部ＣＴは、ステップＳ２０３にて、先頭アドレスを読み込み回路ＤＲＤ（ｎ）に供給する。つぎに、制御部ＣＴは、ステップＳ２０４にて、発音チャンネルＣＨ（ｎ）に対応する状態フラグＳＦｎ（ＣＴ）を「発音中」に設定する。
【００４３】
つぎに、制御部ＣＴは、ステップＳ２０５にて、演奏操作情報及び設定情報に含まれる音色に関するパラメータ、並びに発音中に音色を変化させるエンベロープ信号及び低周波信号に基づいてフィルタ回路ＦＬＴ（ｎ）の設定を表わすフィルタパラメータを生成してフィルタ回路ＦＬＴ（ｎ）に供給する。つぎに、制御部ＣＴは、ステップＳ２０６にて、演奏操作情報及び設定情報に含まれる音量に関するパラメータ、並びに音量を変化させるエンベロープ信号及び低周波信号に基づいて、音量制御回路ＶＯＬ（ｎ）の設定を表わす音量パラメータを計算し、音量制御回路ＶＯＬ（ｎ）に供給する。なお、設定情報は、発音中であっても変更され得る。
【００４４】
つぎに、制御部ＣＴは、ステップＳ２０７にて、演奏操作情報及び設定情報に含まれるピッチに関するパラメータ（例えば、ノート番号ＮＮ、並びにピッチを変化させるエンベロープ信号及び低周波信号を合成して得られたピッチ情報に基づいて再生音のピッチを決定する。そして、原音のピッチＯＰに対する前記決定した再生音のピッチの比率を表わすピッチ倍率βを算出して、発音チャンネルＣＨ（ｎ）の読み込み回路ＤＲＤ（ｎ）に供給する。ただし、最初のサンプリング期間においては、ピッチ倍率βは「０」に設定される。
【００４５】
つぎに、制御部ＣＴは、ステップＳ２０８にて、発音チャンネルＣＨ（ｎ）の再生位置が波形データの末尾に到達したか否かを判定する。具体的には、制御部ＣＴは、読み込み回路ＤＲＤ（ｎ）のサンプルカウンタＣｓ（ｎ）のカウント値ｔｓ（ｎ）に先頭アドレスを加算した値が、末尾アドレスに到達したか否かを判定する。発音チャンネルＣＨ（ｎ）の再生位置が波形データの末尾に到達した場合には、制御部ＣＴは、「Ｙｅｓ」と判定して、ステップＳ２０９にて、発音チャンネルＣＨ（ｎ）の動作を停止させるとともに、ステップＳ２１０にて、発音チャンネルＣＨ（ｎ）に対応する状態フラグＳＦｎ（ＣＴ）を「休止中」に設定する。つぎに、制御部ＣＴは、ステップＳ２１１にて、発音チャネルＣＨ（ｎ）の制御を終了する。一方、発音チャンネルＣＨ（ｎ）の再生位置が未だ波形データの末尾に到達していない場合には、制御部ＣＴは、「Ｎｏ」と判定して、次のサンプリング期間に上記のステップＳ２０５〜Ｓ２０８からなる処理を実行する。
【００４６】
つぎに発音チャンネルＣＨ（ｎ）の制御シーケンスについて説明する。発音チャンネルＣＨ（ｎ）は、図８に示す制御シーケンスに従って、サンプリング期間ごとに１つのサンプル値を計算して、ミキサー部ＭＸに供給する。発音チャンネルＣＨ（ｎ）は、ステップＳ３００にて動作を開始する。発音チャンネルＣＨ（ｎ）は、ステップＳ３０１にて、初期化処理を実行する。具体的には、読み込み回路ＤＲＤ（ｎ）のサンプルカウンタＣｓ（ｎ）のカウント値ｔｓ（ｎ）を「０」に設定する。また、読み込み回路ＤＲＤ（ｎ）は、キャッシュ回路ＣＭを介して、先頭のサンプル値及び先頭アドレスに「１」を加算したアドレス（２番目のアドレス）の圧縮データを波形メモリＷＭから読み込み、デコード回路ＤＥＣ（ｎ）に供給する。そして、デコード回路ＤＥＣ（ｎ）は先頭のサンプル値に前記供給された圧縮データの値を加算することにより、２番目のアドレスに対応したサンプル値を復元する。そして、デコード回路ＤＥＣ（ｎ）は、先頭のサンプル値と前記復元したサンプル値を記憶する。
【００４７】
つぎに、読み込み回路ＤＲＤ（ｎ）は、ステップＳ３０２にて、制御部ＣＴからピッチ倍率βを入力する。つぎに、読み込み回路ＤＲＤ（ｎ）は、ステップＳ３０３にて、サンプルカウンタＣｓ（ｎ）のカウント値ｔｓ（ｎ）を更新する。すなわち、カウント値ｔｓ（ｎ）にピッチ倍率βの値を加算する。最初のサンプリング期間においては、ピッチ倍率βの値が「０」なので、カウント値ｔｓ（ｎ）は、「０」である。つぎに、読み込み回路ＤＲＤ（ｎ）は、ステップＳ３０４にて、先頭アドレスにカウント値ｔｓ（ｎ）を加算する。これにより、読み出しアドレスが更新される。最初のサンプリング期間においては、カウント値ｔｓ（ｎ）が「０」なので、読み出しアドレスは、先頭アドレスに設定される。つぎに、読み込み回路ＤＲＤ（ｎ）は、ステップＳ３０５にて、読み出しアドレスをキャッシュ回路ＣＭに供給する。キャッシュ回路ＣＭは、読み出しアドレスに相当するサンプル値を復元するために必要な圧縮データを波形メモリＷＭから読み込んで読み込み回路ＤＲＤ（ｎ）に供給する。
【００４８】
キャッシュ回路ＣＭは、１つ前のサンプリング期間における読み出しアドレスの整数部の値に「２」を加算したアドレス（読み出し開始アドレスと呼ぶ）から順に（１つずつ）アドレスをインクリメントしながら圧縮データを順に読み出して読み込み回路ＤＲＤ（ｎ）に供給する。そして、今回のサンプリング期間における読み出しアドレスの整数部の値に「１」を加算したアドレス（読み出し終了アドレスと呼ぶ）の圧縮データを読み出して読み込み回路ＤＲＤ（ｎ）に供給すると、キャッシュ回路ＣＭは、読み出し処理を終了する。ただし、最初のサンプリング期間においては、読み出しアドレスの整数部は「０」であるから、読み出し開始アドレスが、読み出し終了アドレスを超えている。したがって、最初のサンプリング期間においては、キャッシュ回路ＣＭは、データを読み出さない。
【００４９】
結果的に、読み出しアドレスの整数部の値の増加量と同数の圧縮データが読み込まれる。例えば、図９Ａに示すように、読み出しアドレスが「１．２」から「３．7」に遷移した場合、２個の圧縮データが読み込まれる。また、例えば、図９Ｂに示すように、読み出しアドレスが「２．２」から「２．7」に遷移した場合には、圧縮データは読み込まれない。
【００５０】
つぎに、読み込み回路ＤＲＤ（ｎ）は、キャッシュ回路ＣＭから供給された圧縮データ及び読み出しアドレスの小数部の値を、ステップＳ３０６にて、デコード回路ＤＥＣ（ｎ）に供給する。デコード回路ＤＥＣ（ｎ）は、１つ前のサンプリング期間において復元したサンプル値を記憶している。デコード回路ＤＥＣ（ｎ）は、ステップＳ３０７にて、前記記憶しているサンプル値とデコード回路ＤＥＣ（ｎ）から供給された圧縮データを用いて、読み出しアドレスに対応するサンプル値を求めるために必要な１つ又は複数のサンプル値を復元する。ただし、ピッチ倍率βの値が「１」より小さく、前回のサンプリング期間における読み出しアドレスの整数部の値と今回のサンプリング期間における読み出しアドレスの整数部との値が同値である場合には、デコード回路ＤＥＣ（ｎ）はサンプル値を復元しない。そして、デコード回路ＤＥＣ（ｎ）は、ステップＳ３０８にて、前記復元したサンプル値のうち、今回のサンプリング期間における読み出しアドレスの整数部の値及び前記整数部の値に「１」を加算したアドレスに相当する１対のサンプル値と、今回のサンプリング期間における読み出しアドレスの小数部の値を用いた線形補間演算により、今回のサンプリング期間における読み出しアドレスに対応したサンプル値を求める。つぎに、デコード回路ＤＥＣ（ｎ）は、ステップＳ３０９にて、前記計算した今回のサンプリング期間における読み出しアドレスに対応したサンプル値を、ステップＳ３１０にて、フィルタ回路ＦＬＴ（ｎ）に供給する。
【００５１】
つぎに、フィルタ回路ＦＬＴ（ｎ）は、ステップＳ３１０にて、制御部ＣＴから供給されたフィルタパラメータに応じたフィルタを前記供給されたサンプル値に適用し、フィルタ処理したサンプル値を音量制御回路ＶＯＬ（ｎ）に供給する。つぎに、音量制御回路ＶＯＬ（ｎ）は、ステップＳ３１０にて、制御部ＣＴから供給された音量パラメータに応じた係数を前記供給されたサンプル値に乗算し、その乗算結果をミキサー部ＭＸに供給する。
【００５２】
２番目のサンプリング期間以降の各サンプリング期間には、発音チャンネルＣＨ（ｎ）は、上記のステップＳ３０２〜Ｓ３１１からなる処理を実行する。
【００５３】
（第２モード）
つぎに、動作モードが第２モードである場合の電子楽器ＤＭの動作について説明する。第２モードでは、電子楽器ＤＭとは別の分析装置により、原音の各区間のピッチが予め分析されるとともに、前記各区間のピッチに相当するサンプル数が予め計算された波形データを用いる。波形の先頭から前記各区間のピッチに相当するサンプル数を積算した数をそれぞれピッチマーク値と呼ぶ。すなわち、ピッチマーク値は、原音の波形データを構成する各サンプル値が記憶されている記憶領域に対応づけられたアドレスであって、原音を構成する基本音の節（ピッチマーク）に相当するアドレスを表す。上記のように、１つの圧縮データは１つのサンプル値に対応しているので、ピッチマーク値は原音の波形データにおける先頭アドレスからのオフセットアドレスに相当する。例えば、原音の先頭から末尾までピッチが一定であって、そのピッチに相当するサンプル数が６００個である場合（つまり、基本周波数が７３．５Ｈｚである場合）、図１０に示すように、各ピッチマーク値は、「０」、「６００」、「１２００」・・・となる。このピッチマーク値は波形メモリＷＭに記憶されている。説明を簡単にするために、図１０に示す例では、各ピッチマーク値は整数であるが、各ピッチマーク値が小数部を含んでもよい。また、原音の中間部にてピッチが変化していても良い。
【００５４】
ＣＰＵ１２ａの動作は第１モードと同じであるので、その説明を省略し、音源回路１６の発音動作について説明する。第２モードにおいては、図１１に示すように、音声入力装置１８及びリングバッファＲＢは利用されない。また、第２モードでは、一組の発音チャンネルＣＨ（ｎ），ＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）を用いて１つの再生音を生成する。具体的には、発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）が再生音の一部の音（以下、グレインＧＲｉ＝１，２，・・・と呼ぶ）をそれぞれ生成し、発音チャンネルＣＨ（ｎ）は発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）にて生成されたグレインを加算して１つの再生音を生成してミキサー部ＭＸへ供給する。したがって、第２モードでは、発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）のフィルタ回路ＦＬＴ（ｎ＋１），ＦＬＴ（ｎ＋２），ＦＬＴ（ｎ＋３）及び音量制御回路ＶＯＬ（ｎ＋１），ＶＯＬ（ｎ＋２），ＶＯＬ（ｎ＋３）は利用されない。また、全ての発音チャンネルを第２モードとして動作させると、６４個の音を同時に再生可能である。以下の説明では、上記の一組の発音チャンネルＣＨ（ｎ），ＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）をトラックＴＫと呼ぶ。
【００５５】
つぎに、第２モードにおける音源回路１６の動作の概略を説明する。各グレインＧＲｉは、原音の波形データの一部の区間であって、基本音の２周期分の長さに相当する区間（以下、セグメントＳＧｉ＝０，１，２，・・・と呼ぶ）に対して図４Ａに示すような窓関数を適用して形成される波形データによって表わされる音に相当する。図１０に示すように、セグメントＳＧｉの先頭及び末尾のアドレスは、いずれかのピッチマーク値に一致する。したがって、セグメントＳＧｉの中央のアドレスも、いずれかのピッチマーク値に一致する。以下の説明において、セグメントＳＧｉの中央に位置するピッチマークを「中央のピッチマーク」と呼ぶ。また、セグメントＳＧｉの前半部分とセグメントＳＧｉ―１の後半部分とが同一となるように各セグメントＳＧｉが原音の波形データから切り出される。
【００５６】
図１２に示すように、発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）は、循環的に動作して、各グレインＧＲｉを生成する。上記のように、グレインＧＲ０を除く各グレインＧＲｉの先頭は、原音の中間部（先頭以外の部分）に相当する。本実施形態では、先頭のサンプル値を除くサンプル値は圧縮されているので、発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）がグレインを再生し始める際に、そのグレインの先頭のサンプル値を計算する必要がある。そこで、発音チャンネルＣＨ（ｎ）は、サンプリング期間ごとに、原音の長さに対する再生音の長さの比率を表すストレッチ率αに応じて読み出しアドレスを進める。そして、その読み出しアドレスに対応するサンプル値を計算するために必要なサンプル値を復元する。制御部ＣＴは、発音チャンネルＣＨ（ｎ）の読み出しアドレスが先頭アドレスにピッチマーク値を加算したアドレスを超えたサンプリング期間において、そのピッチマーク値の整数部の値に先頭アドレスを加算したアドレスに対応するサンプル値をサンプルバッファＳＢ（ＣＴ）に記憶するとともに、そのピッチマーク値を目標値レジスタＴＲ（ＣＴ）に記憶する。なお、図１２におけるサンプルバッファＳＢの欄に記載されている数値は、サンプルバッファＳＢ（ＣＴ）に記憶されているサンプル値が対応するグレインのインデックスｉを表す。つまり、「ｉ」と記載されている区間においてサンプルバッファＳＢ（ＣＴ）に記憶されているサンプル値は、グレインＧＲｉを生成開始する際に用いられる。そして、制御部ＣＴは、発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）のうちの１つの発音チャンネル（例えば、発音チャンネルＣＨ（ｎ＋１））にグレインを生成開始させる際に、サンプルバッファＳＢ（ＣＴ）に記憶されているサンプル値と目標値レジスタＴＲ（ＣＴ）に記憶されているピッチマーク値とを発音チャンネルＣＨ（ｎ＋１）に供給する。発音チャンネルＣＨ（ｎ＋１）は、制御部ＣＴから供給されたサンプル値とピッチマーク値とを用いた線形補間演算により、前記供給されたピッチマークに対応するサンプル値を求める。このようにして、発音チャンネルＣＨ（ｎ＋１）にて生成開始するグレインを生成するために用いられるセグメントが、制御部ＣＴによって指定される。なお、詳しくは後述するように、発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）のうち、グレインを再生開始する発音チャンネルは制御部ＣＴによって選択される。また、その再生開始タイミングは、ピッチ倍率βに応じて制御部ＣＴによって制御される。具体的には、１つのグレインが生成開始されてから次のグレインが生成開始されるまでの時間は、ピッチ倍率β、及び差分値ｄｐｍ（ピッチマーク間のサンプル数）に応じて決定される。また、各グレインの時間軸方向の長さは、フォルマント設定操作子の指示値、エンベロープ信号、低周波信号などに基づいて計算された原音のフォルマント周波数に対する再生音のフォルマント周波数の倍率を表すフォルマント倍率γの逆数、及び差分値ｄｐｍに応じて決定される。
【００５７】
つぎに、制御部ＣＴの制御シーケンスについて具体的に説明する。制御部ＣＴは、ＣＰＵ１２ａから発音開始情報（例えば、ノートオン情報）を含む演奏操作情報を入力すると、図１３Ａ，１３Ｂ，１３Ｃに示す制御シーケンスに従って動作する。制御部ＣＴは、ステップＳ４００にて動作を開始し、ステップＳ４０１にて、４つの発音チャンネルを確保する。以下、前記確保された発音チャンネルを発音チャンネルＣＨ（ｎ），ＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）と表記する。次に、制御部ＣＴは、ステップＳ４０２にて、初期化処理を実行する。具体的には、制御部ＣＴは、読み出しアドレスが先頭アドレスにピッチマーク値を加算したアドレスを超えたか否かを判定するために用いる目標値ｔｖを「０」に設定する。つまり、制御部ＣＴは、目標値レジスタＴＲ（ＣＴ）に「０」を書き込む。また、制御部ＣＴは、発音チャンネルＣＨ（ｎ）を介して、先頭のサンプル値を読み込んで、サンプルバッファＳＢ（ＣＴ）に記憶する。また、制御部ＣＴは、サンプルカウンタＣｓ（ＣＴ）のカウント値ｔｓ（ＣＴ）を「０」に設定する。また、制御部ＣＴは、発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）の動作状態を表わす状態フラグＳＦｎ＋１（ＣＴ），ＳＦｎ＋２（ＣＴ），ＳＦｎ＋３（ＣＴ）を「休止中」に設定する。
【００５８】
つぎに、制御部ＣＴは、ステップＳ４０３にて、エンベロープ発生回路及び低周波発振器を動作させ、前記入力した演奏操作情報及び前記演奏操作情報入力する前に入力した設定情報（以下、単に演奏操作情報及び設定情報という）に含まれる各種エンベロープ信号を規定するパラメータ及び各種低周波信号を規定するパラメータに従ったエンベロープ信号及び低周波信号を発生開始させる。
【００５９】
つぎに、制御部ＣＴは、ステップＳ４０４にて、先頭アドレスを発音チャンネルＣＨ（ｎ）に供給して発音チャネルＣＨ（ｎ）の動作を開始させ、ステップＳ４０５にて、状態フラグＳＦｎ（ＣＴ）を「発音中」に設定する。
【００６０】
つぎに、制御部ＣＴは、ステップＳ４０６にて、第１モードと同様に、フィルタパラメータを生成してフィルタ回路ＦＬＴ（ｎ）に供給する。つぎに、制御部ＣＴは、ステップＳ４０７にて、第１モードと同様に、音量パラメータを計算し、音量制御回路ＶＯＬに供給する。なお、第２モードにおいても、設定情報は、発音中であっても変更され得る。また、制御部ＣＴは、音長設定操作子、ピッチ設定操作子及びフォルマント設定操作子の各指示値に応じて、エンベロープ信号及び低周波信号を変更可能である。
【００６１】
つぎに、制御部ＣＴは、ステップＳ４０８にて、音長設定操作子の指示値に基づいて、ストレッチ率αを計算し、その逆数である再生速度倍率ｖ（＝１／α）を発音チャンネルＣＨ（ｎ）に供給する。つぎに、制御部ＣＴは、ステップＳ４０９にて、カウント値ｔｓ（ＣＴ）を更新する。すなわち、サンプルカウンタＣｓ（ＣＴ）のカウント値ｔｓ（ＣＴ）に再生速度倍率ｖを加算する。ただし、最初のサンプリング期間における再生速度倍率ｖの値は「０」に設定される。なお、各サンプリング期間における、サンプルカウンタＣｓ（ｎ）のカウント値ｔｓ（ｎ）とサンプルカウンタＣｓ（ＣＴ）のカウント値ｔｓ（ＣＴ）は同一である。また、最初のサンプリング期間においては、カウント値ｔｓ（ＣＴ）及びカウント値ｔｓ（ｎ）は「０」である。
【００６２】
つぎに、制御部ＣＴは、ステップＳ４１０にて、読み出しアドレスが、先頭アドレスにピッチマーク値を加算したアドレスを超えたか否かを判定する。具体的には、サンプルカウンタＣｓ（ＣＴ）のカウント値ｔｓ（ＣＴ）が目標値ｔｖを超えたか否かを判定する。カウント値ｔｓ（ＣＴ）が目標値ｔｖを超えていない場合には、制御部ＣＴは、「Ｎｏ」と判定して、後述のステップＳ４１２に処理を進める。一方、カウント値ｔｓ（ＣＴ）が目標値ｔｖを超えた場合には、制御部ＣＴは、「Ｙｅｓ」と判定して、ステップＳ４１１にて、発音チャンネルＣＨ（ｎ）のデコード回路ＤＥＣ（ｎ）から、目標値ｔｖの整数部の値（アドレス）に対応したサンプル値を取得してサンプルバッファＳＢ（ＣＴ）に書き込んで記憶するとともに、目標値レジスタＴＲ（ＣＴ）に前記目標値ｔｖを書き込んで記憶する。つぎに、制御部ＣＴは、ステップＳ４１２にて目標値ｔｖを更新する。つまり、制御部ＣＴは、波形メモリＷＭから次のピッチマーク値（現在の読み出しアドレスの時間軸方向後側に隣接するピッチマーク値）を読み出す。そして、制御部ＣＴは、前記読み出したピッチマーク値を目標値レジスタＴＲ（ＣＴ）に書き込んで記憶する。
【００６３】
つぎに、制御部ＣＴは、ステップＳ４１３にて、フォルマント倍率γ（読み出しレート）を発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）のうちの発音中（「フェードイン中」又は「フェードアウト中」）である全ての発音チャンネルに供給する。なお、第２モード（後述する第３モード及び第４モードに関しても同様）においては、発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）のために設けられてはいるが実際は利用されないリソース（具体的には、ピッチに関するエンベロープ信号及び低周波信号を生成するエンベロープ発生回路及び低周波発振器）が存在する。そこで、このエンベロープ発生回路及び低周波発振器を流用し、再生音のフォルマント周波数を時間経過に従って変化させるエンベロープ信号及び低周波信号を生成する。
【００６４】
つぎに、制御部ＣＴは、ステップＳ４１４にて、再生時刻カウンタＣＴ（ＣＴ）のカウント値ｔＴ（ＣＴ）を更新する。すなわち、演奏操作情報及び設定情報に含まれるピッチに関するパラメータ（例えば、ノート番号ＮＮ及びピッチ設定操作子の指示値など）、並びにピッチを変化させるエンベロープ信号及び低周波信号を合成して得られたピッチ情報に基づいて再生音のピッチを決定する。そして、原音のピッチＯＰに対する前記決定した再生音のピッチの倍率を表わすピッチ倍率βを算出して、再生時刻カウンタＣＴ（ＣＴ）のカウント値ｔＴ（ＣＴ）に加算する。ただし、最初のサンプリング期間においては、カウント値ｔＴ（ＣＴ）が「０」に設定される。
【００６５】
つぎに、制御部ＣＴは、ステップＳ４１５にて、カウント値ｔＴ（ＣＴ）が次のピッチマーク値と現在の目標値ｔｖとの差分値ｄｐｍを超えたか否かを判定する。カウント値ｔＴ（ＣＴ）が差分値ｄｐｍを超えていない場合には、後述するステップＳ４１９に処理を進める。一方、カウント値ｔＴ（ＣＴ）が差分値ｄｐｍを超えた場合には、制御部ＣＴは、ステップＳ４１６にて、カウント値ｔＴ（ＣＴ）をリセット（カウント値ｔＴ（ＣＴ）から差分値ｄｐｍを減算）する。つぎに、制御部ＣＴは、ステップＳ４１７にて、状態フラグＳＦｎ＋１（ＣＴ），ＳＦｎ＋２（ＣＴ），ＳＦｎ＋３（ＣＴ）を参照して、休止中の発音チャンネルのうちの１つの発音チャンネルを選択する。最初のサンプリング期間においては、制御部ＣＴは、ステップＳ４１５において、カウント値ｔＴ（ＣＴ）が差分値ｄｐｍを超えたと判定する。そして、制御部ＣＴは、ステップＳ４１７において、休止中の発音チャンネルのうちの１つの発音チャンネルを選択する。例えば、制御部ＣＴは、休止中の発音チャンネルのうち、インデックスが最も小さい発音チャンネルを選択する。最初のサンプリング期間においては、カウント値ｔＴ（ＣＴ）が「０」であって、発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）はいずれも休止中であるので、発音チャンネルＣＨ（ｎ＋１）を選択する。
【００６６】
つぎに、制御部ＣＴは、ステップＳ４１８にて、サンプルバッファＳＢ（ＣＴ）及び目標値レジスタＴＲ（ＣＴ）にそれぞれ記憶されているサンプル値及び目標値ｔｖ、並びにフォルマント倍率γ及び差分値ｄｐｍを前記選択した発音チャンネルに供給して発音開始させる。発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）の動作については後述する。そして、制御部ＣＴは、前記発音開始させた発音チャンネルに対応した状態フラグを、ステップＳ４１９にて、「フェードイン中」に設定する。
【００６７】
つぎに、制御部ＣＴは、ステップＳ４２０にて、発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）のうち発音中である発音チャンネルを選択し、前記選択した発音チャンネルにおける読み出しアドレスが、セグメントの中央のピッチマークに達したか否かを判定する。前記読み出しアドレスが前記中央のピッチマークよりも前方に位置するときは、制御部ＣＴは、「Ｎｏ」と判定して、ステップＳ４２２に処理を進める。一方、前記読み出しアドレスが、前記中央のピッチマークに達していれば、制御部ＣＴは、「Ｙｅｓ」と判定して、前記選択した発音チャンネルの動作状態を表わす状態フラグを、ステップＳ４２１にて、「フェードアウト中」に設定する。
【００６８】
つぎに、制御部ＣＴは、ステップＳ４２２にて、発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）のうち「フェードアウト中」である発音チャンネルを選択し、前記選択した発音チャンネルにおける読み出しアドレスが、セグメントの終端に達したか否かを判定する。読み出しアドレスが未だセグメントの中間部に位置していれば、制御部ＣＴは、「Ｎｏ」と判定して、ステップＳ４２５に処理を進める。一方、読み出しアドレスがセグメントの終端に達していれば、制御部ＣＴは、「Ｙｅｓ」と判定して、ステップＳ４２３にて、前記選択した発音チャンネルの動作を停止させ、ステップＳ４２４にて、前記選択した発音チャンネルの動作状態を表わす状態フラグを「休止中」に設定する。
【００６９】
つぎに、制御部ＣＴは、ステップＳ４２５にて、発音チャンネルＣＨ（ｎ）における読み出しアドレスが末尾のセグメントに達したか否かを判定する。読み出しアドレスが末尾のセグメントに到達した場合には、制御部ＣＴは、ステップＳ４２６にて、発音チャンネルＣＨ（ｎ）の動作を停止させるとともにフラグＳＦｎ（ＣＴ）を「休止中」に設定する。また、制御部ＣＴは、発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）の読み出しアドレスを監視し、読み出しアドレスがセグメントの末尾アドレスに到達した発音チャンネルの動作を停止させるとともに状態フラグを「休止中」に設定する。全ての発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）の読み出しアドレスがセグメントの末尾アドレスに到達したとき、制御部ＣＴは、トラックＴＫの制御を終了する。一方、発音チャンネルＣＨ（ｎ）の読み出しアドレスが末尾のセグメントに到達していない場合には、制御部ＣＴは、次のサンプリング期間に、ステップＳ４０６〜ステップＳ４２５からなる処理を実行する。
【００７０】
つぎに、発音チャンネルＣＨ（ｎ）の制御シーケンスについて具体的に説明する。発音チャンネルＣＨ（ｎ）は、制御部ＣＴから動作開始指示されると、図１４に示す制御シーケンスに従って動作する。発音チャンネルＣＨ（ｎ）は、ステップＳ５００にて動作を開始する。つぎに、読み込み回路ＤＲＤ（ｎ）は、ステップＳ５０１にて、第１モードにおける初期化処理と同様の処理を実行する。ただし、第１モードとは異なり、デコード回路ＤＥＣ（ｎ）に記憶された先頭のサンプル値が制御部ＣＴに供給される。
【００７１】
つぎに、読み込み回路ＤＲＤ（ｎ）は、ステップＳ５０２にて、サンプルカウンタＣｓ（ｎ）のカウント値ｔｓ（ｎ）に再生速度倍率ｖを加算し、さらにその加算結果を先頭アドレスに加算して読み出しアドレスを更新する。
【００７２】
つぎに、読み出し回路ＤＲＤ（ｎ）及びデコード回路ＤＥＣ（ｎ）は、ステップＳ５０３にて、第１モードと同様に協働して、前記読み出しアドレスに相当するサンプル値を求める。また、上記のように、カウント値ｔｓ（ＣＴ）が目標値ｔｖを超えたサンプリング期間においては、デコード回路ＤＥＣ（ｎ）は、目標値ｔｖの整数部に相当するサンプル値を制御部ＣＴに供給する。つぎに、重畳加算回路ＯＬＡ（ｎ）の加算回路ＡＤＤ（ｎ）は、ステップＳ５０４にて、他の発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）の加算回路ＡＤＤ（ｎ＋１），ＡＤＤ（ｎ＋２），ＡＤＤ（ｎ＋３）から供給されたサンプル値を加算して、フィルタ回路ＦＬＴ（ｎ）に供給する。
【００７３】
つぎに、フィルタ回路ＦＬＴ（ｎ）及び音量制御回路ＶＯＬ（ｎ）は、ステップＳ５０５及びステップＳ５０６にて、第１モードと同様の処理をそれぞれ実行する。２番目のサンプリング期間以降の各サンプリング期間においては、発音チャンネルＣＨ（ｎ）は、上記のステップＳ５０２〜Ｓ５０６からなる処理を実行する。
【００７４】
つぎに、発音チャンネルＣＨ（ｎ＋１）の制御シーケンスについて説明する。発音チャンネルＣＨ（ｎ＋２），ＣＨ（ｎ＋３）の動作は、発音チャンネルＣＨ（ｎ＋１）の動作と同様であるので、説明を省略する。
【００７５】
発音チャンネルＣＨ（ｎ＋１）は、制御部ＣＴから動作を開始するよう指示されると、図１５に示す制御シーケンスに従って動作する。発音チャンネルＣＨ（ｎ＋１）は、ステップＳ６００にて動作を開始する。つぎに、読み込み回路ＤＲＤ（ｎ＋１）は、第１モードにおける初期化処理と同様の処理を実行する。ただし、初期化処理において、読み込み回路ＤＲＤ（ｎ＋１）及びデコード回路ＤＥＣ（ｎ＋１）は、次のようにして、グレインを生成するためのセグメントの先頭のサンプル値を計算する。まず、読み込み回路ＤＲＤ（ｎ＋１）は、制御部ＣＴから供給されたピッチマーク値及び前記ピッチマーク値の整数部の値のアドレスに対応するサンプル値を読み込んで、デコード回路ＤＥＣ（ｎ＋１）に供給する。つぎに、読み込み回路ＤＲＤ（ｎ＋１）は、前記ピッチマークの整数部に「１」を加算した値に相当するアドレスの圧縮データを、キャッシュ回路ＣＭを介して波形メモリＷＭから読み込んで、前記制御部ＣＴから入力したピッチマーク及びサンプル値とともにデコード回路ＤＥＣ（ｎ＋１）に供給する。そして、デコード回路ＤＥＣ（ｎ＋１）は、前記読み込み回路ＤＲＤ（ｎ＋１）から入力したデータを用いた線形補間演算により、前記ピッチマーク値に対応するサンプル値を求める。このサンプル値が、再生開始するグレインを生成するためのセグメントの先頭のサンプル値に相当する。また、初期化処理において、重畳加算回路ＯＬＡ（ｎ＋１）の乗算回路ＭＵＬ（ｎ＋１）は、位相カウンタＣｐ（ｎ＋１）のカウント値ｔｐ（ｎ＋１）をリセットする。
【００７６】
つぎに、読み込み回路ＤＲＤ（ｎ＋１）は、ステップＳ６０２にて、サンプルカウンタＣｓ（ｎ＋１）のカウント値ｔｓ（ｎ＋１）にフォルマント倍率γ（読み出しレート）を加算し、さらにその加算結果を前記制御部ＣＴから入力したピッチマーク値に加算することにより、読み出しアドレスを更新する。
【００７７】
つぎに、読み出し回路ＤＲＤ（ｎ＋１）及びデコード回路ＤＥＣ（ｎ＋１）は、ステップＳ６０３にて、第１モードと同様に協働して、前記算出した読み出しアドレスに相当するサンプル値を求め、乗算回路ＭＵＬ（ｎ＋１）に供給する。
【００７８】
つぎに、乗算回路ＭＵＬ（ｎ＋１）は、ステップＳ６０４にて、位相カウンタＣｐ（ｎ＋１）のカウント値ｔｐ（ｎ＋１）を更新する。すなわち、状態フラグＳＦｎ＋１（ＣＴ）が「フェードイン中」に設定されているときは、位相カウンタＣｐ（ｎ＋１）のカウント値ｔｐ（ｎ＋１）に、フォルマント倍率γを差分値ｄｐｍで除した値（＝γ／ｄｐｍ）を加算する。一方、乗算回路ＭＵＬ（ｎ＋１）は、状態フラグＳＦｎ＋１（ＣＴ）が「フェードアウト中」に設定されているときは、ステップＳ６０４にて、位相カウンタＣｐ（ｎ＋１）のカウント値ｔｐ（ｎ＋１）からフォルマント倍率γを減算する。つぎに、乗算回路ＭＵＬ（ｎ＋１）は、ステップＳ６０５にて、カウント値ｔｐ（ｎ＋１）に対応する係数ＷＤ（ｔｐ（ｎ＋１））を計算する。例えば、係数ＷＤ（ｔｆ（ｎ＋１））は、「０．５−０．５ｃｏｓ（π×ｔｐ（ｎ＋１））」という演算式を用いて計算される（図４Ａ参照）。つぎに、乗算回路ＭＵＬ（ｎ＋１）は、ステップＳ６０６にて、前記計算した係数ＷＤ（ｔｐ（ｎ＋１））を、前記デコード回路ＤＥＣ（ｎ＋１）から入力したサンプル値に乗算して、加算回路ＡＤＤ（ｎ＋１）に供給する。これにより、フォルマント倍率γに応じて伸縮したセグメントの長さに窓関数の幅を合致させることができる。つぎに、重畳加算回路ＯＬＡ（ｎ＋１）の加算回路ＡＤＤ（ｎ＋１）は、ステップＳ６０７にて、発音チャンネルＣＨ（ｎ）の重畳加算回路ＯＬＡ（ｎ）に供給する。
【００７９】
発音チャンネルＣＨ（ｎ＋１）は、２番目のサンプリング期間以降のサンプリング期間においては、ステップＳ６０２〜Ｓ６０７からなる処理を実行する。  
【００８０】
つぎに、再生音の長さ、ピッチ及びフォルマントが原音の長さ、ピッチ及びフォルマントと同じ場合に発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）にて生成されるグレインＧＲｉの生成開始タイミング、及びグレインＧＲｉとそのグレインＧＲｉを生成するために用いられるセグメントＳＧｉとの関係について説明する。なお、図１６及び図１７中の各数値は、グレインの元であるセグメントのインデックスｉを表す。この場合、図１６に示すように、まず、発音チャンネルＣＨ（ｎ＋１）がグレインＧＲ０を再生し始める。そして、発音チャンネルＣＨ（ｎ＋１）の再生位置がピッチマークに達すると、発音チャンネルＣＨ（ｎ＋２）がグレインＧＲ１を再生し始める。発音チャンネルＣＨ（ｎ＋２）の再生位置がピッチマークに達すると、発音チャンネルＣＨ（ｎ＋３）がグレインＧＲ２を再生し始める。このとき、発音チャンネルＣＨ（ｎ＋１）は、グレインＧＲ０の再生開始から２つ目のピッチマークに到達する。したがって、発音チャンネルＣＨ（ｎ＋１）は、グレインＧＲ０の再生を終了して、動作停止する。発音チャンネルＣＨ（ｎ＋３）の再生位置がピッチマークに到達すると、発音チャネルＣＨ（ｎ＋１）がグレインＧＲ３を再生し始める。以降、上記の動作と同様に、発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）が循環的に動作して、グレインＧＲｉ＝４，５，６・・・が順に再生される。
【００８１】
つぎに、例えば、ストレッチ率αが「０．５」に設定されている場合の音源回路１６の動作について説明する。この場合、同図に示すように、発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）が循環的に動作して、グレインＧＲｉ＝０，２，４，８，・・・が順に再生される。つまり、グレインＧＲｉが１つおきに再生される。また、例えば、ストレッチ率αが「２」に設定されている場合の音源回路１６の動作について説明する。この場合、同図に示すように、発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）が循環的に動作して、グレインＧＲｉ＝０，０，１，１，２，２・・・の順に再生される。つまり、同一のセグメントＳＧｉを用いて形成されたグレインＧＲｉが２回ずつ連続して再生される。
【００８２】
また、例えば、ストレッチ率αが「０．７」に設定されている場合の音源回路１６の動作について説明する。この場合、同図に示すように、発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）が循環的に動作して、グレインＧＲｉ＝０，１，２，４，５，７・・・の順に再生される。また、例えば、ストレッチ率αが「１．５」に設定されている場合の音源回路１６の動作について説明する。この場合、同図に示すように、発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）が循環的に動作して、グレインＧＲｉ＝０，０，１，２，２，３・・・の順に再生される。
【００８３】
つぎに、再生音の長さ及びフォルマントを原音と同じ状態に維持したまま、再生音のピッチを原音のピッチとは異なるピッチに設定した場合に発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）にて再生されるグレインＧＲｉの系列及びそれらの再生開始タイミングについて説明する。この場合も、図１７に示すように、発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）が循環的に動作してグレインを再生する。そして、発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）がグレインを再生し始めるタイミングの間隔（サンプリング期間数）が、ピッチマーク間のサンプル数（すなわち、差分値ｄｐｍ）をピッチ倍率βで除した値に一致するように制御される。
【００８４】
例えば、同図に示す、ピッチ倍率βが「１．２」に設定されている場合においては、発音チャンネルＣＨ（ｎ＋１）がグレインＧＲ０を再生開始してから５００個（＝６００／１．２）のサンプリング期間を経過すると、発音チャンネルＣＨ（ｎ＋２）が、グレインＧＲ０を再生し始める。発音チャンネルＣＨ（ｎ＋２）がグレインＧＲ０を再生開始してから５００個のサンプリング期間を経過すると、発音チャンネルＣＨ（ｎ＋３）がグレインＧＲ１を再生開始し始める。
【００８５】
また、例えば、同図に示す、ピッチ倍率βが「０．６」に設定されている場合においては、発音チャンネルＣＨ（ｎ＋１）がグレインＧＲ０を再生開始してから１０００個（＝６００／０．６）のサンプリング期間を経過すると、発音チャンネルＣＨ（ｎ＋２）がグレインＧＲ１を再生し始める。発音チャンネルＣＨ（ｎ＋２）がグレインＧＲ１を再生開始してから１０００個のサンプリング期間を経過すると、発音チャンネルＣＨ（ｎ＋３）がグレインＧＲ２を再生し始める。
【００８６】
また、図１６及び図１７に示す例において、フォルマント倍率γを変更すると、各グレインＧＲｉが時間軸方向に伸縮される。各グレインＧＲｉを時間軸方向に縮めると、再生音のフォルマント周波数が高くなる。一方、各グレインＧＲｉを時間軸方向に伸長すると、再生音のフォルマント周波数が低くなる。
【００８７】
（第３モード）
つぎに、動作モードが第３モードである場合の電子楽器ＤＭの動作について説明する。第３モードでは、電子楽器ＤＭとは別の分析装置により、原音を構成する各音のアタック位置（各音の発音開始タイミング）が予め検出され、波形の先頭から前記各アタック位置までのサンプル数（以下、アタックマーク値と呼ぶ）が予め計算された波形データを用いる（図１８参照）。アタックマーク値は、波形メモリＷＭに記憶されている。上記のように、１つの圧縮データは１つのサンプル値に対応しているので、アタックマーク値は原音の波形データにおける先頭アドレスからのオフセットアドレスに相当する。
【００８８】
ＣＰＵ１２ａの動作は第１モードと同じであるので、その説明を省略し、音源回路１６の発音動作について説明する。まず、第３モードにおける音源回路１６の動作の概略を説明する。第３モードにおいても、第２モードと同様に、音声入力装置１８及びリングバッファＲＢは利用されない（図１１参照）。また、トラックＴＫ（一組の発音チャンネルＣＨ（ｎ），ＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３））を用いて１つの再生音を生成する。すなわち、発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）がグレインをそれぞれ生成する。第２モードと同様に、上記３つの発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）は循環的に動作する。詳しくは後述するように、各グレインはクロスフェードするように再生されるので、そのクロスフェード期間中においては、２つの発音チャンネルが同時に動作する。また、発音チャンネルＣＨ（ｎ）は発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）にて生成されたグレイン（実際にはいずれか２つの発音チャンネルにて生成されたグレイン）を加算して１つの再生音を生成してミキサー部ＭＸへ供給する。したがって、第３モードにおいても、発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）のフィルタ回路ＦＬＴ（ｎ＋１），ＦＬＴ（ｎ＋２），ＦＬＴ（ｎ＋３）及び音量制御回路ＶＯＬ（ｎ＋１），ＶＯＬ（ｎ＋２），ＶＯＬ（ｎ＋３）は利用されない。また、全ての発音チャンネルを第３モードとして動作させると、６４個の音を同時に再生可能である。
【００８９】
各グレインは、次のようにして形成される。まず、第３モードでは、隣接する２つのアタック位置の間の部分が複数のセグメントＳＧｉ＝０，１，２，・・・に分割される。詳しくは後述するように、各セグメントの長さがＣＰＵ１２ａによって指定された基準長又は前記基準長に基づいて計算された長さになるように、原音の波形データから各セグメントが切り出される。そして、各グレインの長さは、ストレッチ率α及びピッチ倍率βによって決定される。例えば、図１９に示すように、グレインは、１つのセグメントの先頭から中間部までに相当する場合もある。例えば、同図に示すように、ピッチ倍率βが「１」であって、ストレッチ率αが「１」より小さい場合には、各セグメントの途中でフェードアウトが開始されるので、各セグメントの末尾部分が切り詰められる。また、グレインは、同図に示すように、隣接する複数のセグメントを接続して形成された波形データの先頭から中間部までに相当する場合もある。例えば、同図に示すように、ピッチ倍率βが「１」であって、ストレッチ率αが「１」より大きい場合には、発音チャンネルＣＨ（ｎ＋１）は、セグメントＳＧｉの再生を開始し、セグメント境界を超えてセグメントＳＧｉ＋１の途中まで再生するとフェードアウトを開始する。そして、発音チャンネルＣＨ（ｎ＋２）は、発音チャンネルＣＨ（ｎ＋１）がフェードアウトを開始したタイミングにてセグメントＳＧｉ＋１の再生を開始する。このように、各セグメントの先頭部分が繰り返される。なお、図１９中の各数値は、セグメントのインデックスｉを表す。
【００９０】
また、第２モードと同様に、発音チャンネルＣＨ（ｎ）は、サンプリング期間ごとに、ストレッチ率αに応じて読み出しアドレスを進め、その読み出しアドレスに相当するサンプル値を計算するために必要なサンプル値を復元する。そして、発音チャンネルＣＨ（ｎ）の読み出しアドレスがセグメントの境界を超えた（つまり、カウント値ｔｓ（ｎ）が目標値ｔｖを超えた）サンプリング期間において、前記目標値ｔｖを目標値レジスタＴＲ（ＣＴ）に書き込んで記憶するとともに、前記セグメントの境界（前側のセグメントの末尾アドレス）に対応するサンプル値を制御部ＣＴのサンプルバッファＳＢ（ＣＴ）に記憶する。制御部ＣＴは、発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）のうちの休止中の発音チャンネルを選択し、サンプルバッファＳＢ（ＣＴ）及び目標値レジスタＴＲ（ＣＴ）に記憶されている両データを前記選択した発音チャンネルに供給して、グレインを再生開始させる。
【００９１】
つぎに、制御部ＣＴの制御シーケンスについて具体的に説明する。制御部ＣＴは、ＣＰＵ１２ａから発音開始情報（例えば、ノートオン情報）を含む演奏操作情報を入力すると、図２０Ａ，２０Ｂ，２０Ｃに示す制御シーケンスに従って動作する。制御部ＣＴは、ステップＳ７００にて動作を開始し、ステップＳ７０１にて、４つの発音チャンネルを確保する。以下、前記確保された発音チャンネルを発音チャンネルＣＨ（ｎ），ＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）と表記する。次に、制御部ＣＴは、ステップＳ７０２にて、初期化処理を実行する。具体的には、制御部ＣＴは、読み出しアドレスがセグメント境界を超えたか否かを判定するために用いる目標値ｔｖを「０」に設定する。つまり、目標値レジスタＴＲ（ＣＴ）に「０」を書き込む。また、制御部ＣＴは、発音チャンネルＣＨ（ｎ）を介して、先頭のサンプル値を読み込んで、サンプルバッファＳＢ（ＣＴ）に記憶する。また、制御部ＣＴは、サンプルカウンタＣｓ（ＣＴ）のカウント値ｔｓ（ＣＴ）を「０」に設定する。また、発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）の動作状態を表わす各状態フラグＳＦｎ＋１（ＣＴ），ＳＦｎ＋２（ＣＴ），ＳＦｎ＋３（ＣＴ）を「休止中」に設定する。
【００９２】
つぎに、制御部ＣＴは、ステップＳ７０３にて、エンベロープ発生回路及び低周波発振器を動作させ、前記入力した演奏操作情報及び前記演奏操作情報入力する前に入力した設定情報（以下、単に演奏操作情報及び設定情報という）に含まれる各種エンベロープ信号を規定するパラメータ及び各種低周波信号を規定するパラメータに従ったエンベロープ信号及び低周波信号を発生開始させる。
【００９３】
つぎに、制御部ＣＴは、ステップＳ７０４にて、先頭アドレスを発音チャンネルＣＨ（ｎ）に供給して発音チャネルＣＨ（ｎ）の動作を開始させる。ステップＳ７０５にて、状態フラグＳＦｎ（ＣＴ）を「発音中」に設定する。
【００９４】
つぎに、制御部ＣＴは、ステップＳ７０６にて、第１モードと同様に、フィルタパラメータを生成してフィルタ回路ＦＬＴ（ｎ）に供給する。つぎに、制御部ＣＴは、ステップＳ７０７にて、第１モードと同様に、音量パラメータを計算し、音量制御回路ＶＯＬ（ｎ）に供給する。なお、第２モードにおいても、設定情報は、発音中であっても変更され得る。また、制御部ＣＴは、音長設定操作子及びピッチ設定操作子の各指示値に応じて、エンベロープ信号及び低周波信号を変更可能である。
【００９５】
つぎに、制御部ＣＴは、ステップＳ７０８にて、音長設定操作子の指示値に基づいて、ストレッチ率αを計算し、その逆数である再生速度倍率ｖ（＝１／α）を発音チャンネルＣＨ（ｎ）に供給する。つぎに、制御部ＣＴは、ステップＳ７０９にて、カウント値ｔｓ（ＣＴ）を更新する。すなわち、サンプルカウンタＣｓ（ＣＴ）のカウント値ｔｓ（ＣＴ）に再生速度倍率ｖを加算する。ただし、最初のサンプリング期間における再生速度倍率ｖの値は「０」に設定される。なお、各サンプリング期間における、サンプルカウンタＣｓ（ｎ）のカウント値ｔｓ（ｎ）とサンプルカウンタＣｓ（ＣＴ）のカウント値ｔｓ（ＣＴ）は同一である。また、最初のサンプリング期間においては、カウント値ｔｓ（ＣＴ）及びカウント値ｔｓ（ｎ）は「０」である。
【００９６】
つぎに、制御部ＣＴは、ステップＳ７１０にて、ピッチ倍率β（読み出しレート）を発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）のうちの発音中（「フェードイン中」又は「フェードアウト中」）である全ての発音チャンネルに供給する。
【００９７】
次に制御部ＣＴは、ステップＳ７１１にて、クロスフェード長ｘｆｌ（言い換えれば、クロスフェード特性（つまり、遷移の速さ））を更新する（図４Ｂ参照）。クロスフェード長ｘｆｌは、ＣＰＵ１２ａから供給された基準長を、原音の特徴、再生速度倍率ｖ、ピッチ倍率βなどに応じて調整することにより決定される。
【００９８】
つぎに、制御部ＣＴは、ステップＳ７１２にて、サンプルカウンタＣｓ（ＣＴ）のカウント値ｔｓ（ＣＴ）が目標値ｔｖを超えたか否か（つまり、発音チャンネルＣＨ（ｎ）の読み出しアドレスがセグメントの境界を超えたか否か）を判定する。カウント値ｔｓ（ＣＴ）が目標値ｔｖを超えていない場合には、制御部ＣＴは、「Ｎｏ」と判定して、後述のステップＳ７１９に処理を進める。一方、カウント値ｔｓ（ＣＴ）が目標値ｔｖを超えた場合には、制御部ＣＴは、「Ｙｅｓ」と判定して、ステップＳ７１３にて、現在グレインを再生している発音チャンネル（つまり、状態フラグが「フェードイン中」である発音チャンネル）を選択し、前記選択した発音チャンネルをフェードアウトさせる。そして、ステップＳ７１４にて、前記選択した発音チャンネルに対応する状態フラグを「フェードアウト中」に設定する。
【００９９】
つぎに、制御部ＣＴは、ステップＳ７１５にて、発音チャンネルＣＨ（ｎ）のデコード回路ＤＥＣ（ｎ）から、目標値ｔｖの整数部の値に先頭アドレスを加算したアドレスに対応したサンプル値（セグメント境界の直前のサンプル値）、及び目標値ｔｖ（セグメント境界のアドレス）を取得する。つぎに、制御部ＣＴは、ステップＳ７１６にて、状態フラグＳＦｎ＋１（ＣＴ），ＳＦｎ＋２（ＣＴ），ＳＦｎ＋３（ＣＴ）を参照して、休止している発音チャンネル（つまり、状態フラグが「休止中」である発音チャンネル）を選択し、前記選択した発音チャンネルに前記決定したクロスフェード長ｘｆｌ、並びに前記取得したサンプル値及び目標値ｔｖを供給して、グレインを再生開始させる。そして、制御部ＣＴは、前記ステップＳ７１６において選択した発音チャンネルに対応する状態フラグを、ステップＳ７１７にて、「フェードイン中」に設定する。
【０１００】
つぎに、制御部ＣＴは、ステップＳ７１８にて目標値ｔｖを更新する。具体的には、制御部ＣＴは、ＣＰＵ１２ａから基準長を取得して、目標値ｔｖに加算する。これにより、次のセグメントの長さが決定される。ただし、現在の読み出しアドレスから次のアタック位置（現在の読み出しアドレスの時間軸方向後側に隣接するアタック位置）までのオフセットアドレスが所定の閾値（例えば、前記オフセットアドレスが前記の１６倍）よりも小さいとき、次のように目標値ｔｖを更新してもよい。具体的には、現在の目標値ｔｖから次のアタックマークまでの区間を分割して形成される各セグメントの長さが基準長に最も近い整数値になるように次の目標値ｔｖを設定する。言い換えれば、隣接するセグメントの長さの差が大きく変化することを抑制できる。また、クロスフェードがアタック位置に重ならないようにするとよい（特開２００２−００６８９９参照）。また、アタック位置が切り詰められたり、アタック位置が繰り返されたりすることのないように、セグメントの境界を設定しても良い。例えば、図１９に示すように、アタックマークとセグメントの境界とを敢えてずらしても良い。
【０１０１】
つぎに、制御部ＣＴは、ステップＳ７１９にて、位相カウンタＣｐ（ｎ＋１），Ｃｐ（ｎ＋２），Ｃｐ（ｎ＋３）のカウント値を参照し、フェードアウトが完了した発音チャンネルが存在するか否かを判定する。フェードアウトが完了した発音チャンネルが無ければ、制御部ＣＴは、「Ｎｏ」と判定して、ステップＳ７２１に処理を進める。一方、フェードアウトが完了した発音チャンネルがあれば、制御部ＣＴは、「Ｙｅｓ」と判定し、ステップＳ７２０にて、前記フェードアウトした完了した発音チャンネルの動作を停止させ、ステップＳ７２１にて、前記発音チャンネルに対応する状態フラグを「休止中」に設定する。
【０１０２】
つぎに、制御部ＣＴは、ステップＳ７２２にて、発音チャンネルＣＨ（ｎ）における読み出しアドレスが末尾のセグメントに達したか否かを判定する。読み出しアドレスが末尾のセグメントに到達した場合には、制御部ＣＴは、ステップＳ７２３にて、発音チャンネルＣＨ（ｎ）の動作を停止させるとともにフラグＳＦｎ（ＣＴ）を「休止中」に設定する。また、制御部ＣＴは、発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）の読み出しアドレスを監視し、読み出しアドレスがセグメントの末尾アドレスに到達した発音チャンネルの動作を停止させるとともに状態フラグを「休止中」に設定する。全ての発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）の読み出しアドレスがセグメントの末尾アドレスに到達したとき、制御部ＣＴは、トラックＴＫの制御を終了する。一方、発音チャンネルＣＨ（ｎ）の読み出しアドレスが末尾のセグメントに到達していない場合には、制御部ＣＴは、次のサンプリング期間に、ステップＳ７０５〜ステップＳ７２２からなる処理を実行する。
【０１０３】
発音チャンネルＣＨ（ｎ）の制御シーケンスは、第２モードと同様である。ただし、読み出しアドレスがセグメント境界を超えたとき、発音チャンネルＣＨ（ｎ）は、セグメント境界の直前のサンプル値、及びセグメント境界のアドレスを制御部ＣＴに供給する。
【０１０４】
つぎに、発音チャンネルＣＨ（ｎ＋１）の制御シーケンスについて説明する。発音チャンネルＣＨ（ｎ＋２），ＣＨ（ｎ＋３）の動作は、発音チャンネルＣＨ（ｎ＋１）の動作と同様であるので、説明を省略する。
【０１０５】
発音チャンネルＣＨ（ｎ＋１）は、制御部ＣＴから動作を開始するよう指示されると、図２１に示す制御シーケンスに従って動作する。発音チャンネルＣＨ（ｎ＋１）は、ステップＳ８００にて動作を開始する。つぎに、読み込み回路ＤＲＤ（ｎ＋１）は、ステップＳ８０１にて、第１モードにおける初期化処理と同様の処理を実行する。ただし、初期化処理において、読み込み回路ＤＲＤ（ｎ＋１）及びデコード回路ＤＥＣ（ｎ＋１）は、次のようにして、グレインを生成するためのセグメントの先頭（境界）のサンプル値を計算する。まず、読み込み回路ＤＲＤ（ｎ＋１）は、制御部ＣＴから供給されたセグメント境界のアドレス及び前記セグメント境界の直前のサンプル値を読み込んで、デコード回路ＤＥＣ（ｎ）に供給する。つぎに、読み込み回路ＤＲＤ（ｎ）は、前記セグメント境界のアドレスの整数部に「１」を加算した値に相当するアドレスの圧縮データを、キャッシュ回路ＣＭを介して波形メモリＷＭから読み込んで、デコード回路ＤＥＣ（ｎ）に供給する。そして、デコード回路ＤＥＣ（ｎ＋１）は、前記読み込み回路ＤＲＤ（ｎ＋１）から入力したデータを用いた線形補間演算により、前記セグメント境界に対応するサンプル値を求める。このサンプル値が、再生開始するグレインを生成するためのセグメントの先頭のサンプル値に相当する。また、初期化処理において、重畳加算回路ＯＬＡ（ｎ＋１）の乗算回路ＭＵＬ（ｎ＋１）は、位相カウンタＣｐ（ｎ＋１）のカウント値ｔｐ（ｎ＋１）をリセットする。
【０１０６】
つぎに、読み込み回路ＤＲＤ（ｎ＋１）は、ステップＳ８０２にて、サンプルカウンタＣｓ（ｎ＋１）のカウント値ｔｓ（ｎ＋１）にピッチ倍率β（読み出しレート）を加算し、さらにその加算結果を前記制御部ＣＴから入力したセグメント境界のアドレスに加算して読み出しアドレスを算出する。
【０１０７】
つぎに、読み出し回路ＤＲＤ（ｎ＋１）及びデコード回路ＤＥＣ（ｎ＋１）は、ステップＳ８０３にて、第１モードと同様に協働して、前記算出した読み出しアドレスに相当するサンプル値を線形補間演算により求める。デコード回路ＤＥＣ（ｎ＋１）は、前記復元したサンプル値を重畳加算回路ＯＬＡ（ｎ＋１）の乗算回路に供給する。
【０１０８】
つぎに、乗算回路ＭＵＬ（ｎ＋１）は、ステップＳ８０４にて、位相カウンタＣｐ（ｎ＋１）のカウント値ｔｐ（ｎ＋１）を更新する。すなわち、乗算回路ＭＵＬ（ｎ＋１）は、状態フラグＳＦｎ＋１（ＣＴ）が「フェードイン中」に設定されているときは、位相カウンタＣｐ（ｎ＋１）のカウント値ｔｐ（ｎ＋１）にクロスフェード長ｘｆｌの逆数を加算する。ただし、カウント値ｔｐ（ｎ＋１）の上限は「１」である。一方、乗算回路ＭＵＬ（ｎ＋１）は、状態フラグＳＦｎ＋１（ＣＴ）が「フェードアウト中」に設定されているときは、カウント値ｔｐ（ｎ＋１）からクロスフェード長ｘｆｌの逆数を減算する。つぎに、乗算回路ＭＵＬ（ｎ＋１）は、ステップＳ８０５にて、カウント値ｔｐ（ｎ＋１）を、前記デコード回路ＤＥＣ（ｎ＋１）から入力したサンプル値に乗算して、加算回路ＡＤＤ（ｎ＋１）に供給する。つぎに、重畳加算回路ＯＬＡ（ｎ＋１）の加算回路ＡＤＤ（ｎ＋１）は、ステップＳ８０６にて、発音チャンネルＣＨ（ｎ）の重畳加算回路ＯＬＡ（ｎ）に供給する。
【０１０９】
発音チャンネルＣＨ（ｎ＋１）は、２番目のサンプリング期間以降のサンプリング期間においては、ステップＳ８０２〜Ｓ８０５からなる処理を実行する。なお、カウント値ｔｐ（ｎ＋１），ｔｐ（ｎ＋１），ｔｐ（ｎ＋１）の上限は「１」であるので、図４Ｂに示すように窓関数の形状は台形を呈する。
【０１１０】
（第４モード）
つぎに、動作モードが第４モードである場合の電子楽器ＤＭの動作について説明する。第４モードでは、図２２に示すように、波形メモリＷＭ及びキャッシュ回路ＣＭは利用されない。信号処理部ＤＰは、音声入力装置１８から逐次供給される波形データをリングバッファＲＢに供給する。また、信号処理部ＤＰは、音声入力装置１８から逐次供給される前記波形データが表す音声のピッチをリアルタイムに検出してＣＰＵ１２ａに供給する。ＣＰＵ１２ａは信号処理部ＤＰから供給されたピッチデータに基づいて、第２モードと同様のピッチマーク値を計算する。すなわち、ピッチマーク値は、前記波形データを構成する各サンプル値が記憶されているリングバッファＲＢの記憶領域に対応づけられたアドレスであって、前記音声を構成する基本音の節に相当するアドレスを表す。ピッチマーク値は、制御部ＣＴに供給される。トラックＴＫは、リングバッファＲＢに記憶された波形データ及び制御部ＣＴから供給されたピッチマーク値を用いて、第２モードと同様に、１つの音を生成する。具体的には、トラックＴＫは、音声入力装置１８に入力された音声のピッチ及び／又はフォルマントを変更した音（ハーモニー）を生成する。なお、この場合、第２モードとは異なり、リングバッファＲＢに記憶されているデータはサンプル値自体であって、圧縮データではない。そのため、第２モードとは異なり、圧縮データを用いてサンプル値を復元する必要がない。したがって、トラックＴＫを構成する発音チャンネルＣＨ（ｎ）を発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）と同様に、グレインを再生する発音チャンネルとして用いてもよい。この場合、制御部ＣＴのサンプルカウンタＣｓ（ＣＴ）のカウント値ｔｓ（ＣＴ）がピッチマーク値を超えたとき、制御部ＣＴがそのピッチマーク値を記憶すればよい。そして、発音チャンネルＣＨ（ｎ），ＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）のうちの選択した発音チャンネルがグレインの再生を開始する際、前記記憶しておいたピッチマーク値を前記選択した発音チャンネルに供給すればよい。発音チャンネルは、グレインの再生を開始する際、制御部から供給されたピッチマーク値の整数部に相当するアドレスに記憶されているサンプル値及び前記整数部の値に「１」を加算した値に相当するアドレスに記憶されているサンプル値を読み込む。そして、発音チャンネルは、前記読み込んだ両サンプル値及び前記ピッチマーク値の小数部の値を用いた線形補間演算により、前記ピッチマーク値に対応するサンプル値を求めればよい。なお、第４モードにおいては、リングバッファＲＢに記憶された短い時間に相当する波形データを用いてタイムストレッチを実行することも可能であるが、実質的に有効な用途が無い。したがって、第４モードにおいては、ストレッチ率αは「１」に設定される。
【０１１１】
上記のように構成した電子楽器ＤＭの第２乃至第４モードにおいては、発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）が原音の一部の区間を順次再生する。その際、ストレッチ率α、ピッチ倍率β及びフォルマント倍率γに応じて、音源回路１６内に設けられた各種カウンタのカウント値が増減する。そして、前記各種カウンタのカウント値に応じて、発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）によって再生される前記区間（セグメント）、前記区間の再生開始タイミング、前記区間を構成するサンプル値の読み出しレートなどが決定される。ＣＰＵ１２ａは、ストレッチ率α、ピッチ倍率β、及びフォルマント倍率γに関する設定値（すなわち、ノート番号ＮＮ、及び音長設定操作子、ピッチ設定操作子、フォルマント設定操作子の指示値など）を音源回路１６に供給するだけでよいので、ＣＰＵ１２ａの負荷が小さい。また、回路構成としては、従来の音源回路の発音チャンネルに重畳加算回路ＯＬＡ（ｎ）を追加しただけであって、タイムストレッチ機能、ピッチシフト機能及びフォルマントシフト機能を実現するために大規模な回路を追加する必要が無い。すなわち、本実施形態によれば、タイムストレッチ機能、ピッチシフト機能及びフォルマントシフト機能を有する音源回路１６であって、構成が簡単な音源回路１６を提供できる。また、サンプリング期間ごとに１つのサンプル値が出力されるので、上記従来の音響信号生成装置のような遅れの問題が生じない。また、異なる動作モードを同時に利用できる。したがって、２５６個の発音チャンネルを効率よく利用できる。また、重畳加算回路ＯＬＡ（ｎ）がフィルタ回路ＦＬＴ（ｎ）及び音量制御回路ＶＯＬ（ｎ）の前段に設けられている。つまり、トラックＴＫを構成する発音チャンネルＣＨ（ｎ）の加算回路ＡＤＤ（ｎ）によって、他の発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）にて生成されたサンプル値が加算され、その加算結果がフィルタ回路ＦＬＴ（ｎ）及び音量制御回路ＶＯＬ（ｎ）に供給される。したがって、フィルタ回路ＦＬＴ（ｎ）及び音量制御回路ＶＯＬ（ｎ）を有効に利用できる。
【０１１２】
また、発音を開始する際、原音の波形データに割り当てられた動作モードに応じて１つ又は複数の発音チャンネルが確保される。すなわち、原音の波形データに割り当てられた動作モードが第１モードである場合には、１つの発音チャンネルが確保され、原音の波形データに割り当てられた動作モードが第２及び第３モードである場合には、４つの発音チャンネルが確保される。また、第４モードを利用する場合にも、４つの発音チャンネルが確保される。上記のように、各発音チャンネルに異なる動作モードを割り当てることができる。したがって、効率良く発音チャンネルを利用できる。
【０１１３】
また、ピッチマーク及びアタックマークは、予め計算されて波形メモリＷＭに記憶されている。したがって、ＣＰＵ１２ａ、制御部ＣＴ、信号処理部ＤＰなどが圧縮データを読み出しつつ原音のピッチを解析する場合に比べて、ＣＰＵ１２ａ、制御部ＣＴ、信号処理部ＤＰなどの負荷を軽減できる。
【０１１４】
また、上記のように、第２モード乃至第４モードにおいて、実際には利用されないリソース（エンベロープ発生回路及び低周波発振器）を流用してフォルマント周波数を時間経過に従って変化させるようにした。よって、フォルマント周波数を変化させるためのエンベロープ発生回路及び低周波発振器を別途設ける必要が無い。
【０１１５】
さらに、本発明の実施にあたっては、上記実施形態に限定されるものではなく、本発明の目的を逸脱しない限りにおいて種々の変更が可能である。
【０１１６】
例えば、上記実施形態では、再生音のピッチは制御部ＣＴによって決定されているが、これに代えて、ＣＰＵ１２ａによって決定されてもよい。また、第２モード乃至第４モードにおいて、カウント値ｔｓ（ＣＴ）を先頭アドレスに加算して得られたアドレスが末尾アドレスに一致するか否かを判定して、再生を終了するか否かを決定してもよい。
【０１１７】
例えば、第１モード乃至第３モードにおいて、原音の一部の区間がループ再生されるように構成しても良い。この場合、ループスタート位置（アドレス）とループエンド位置（アドレス）を設定し、発音チャンネルＣＨ（ｎ）のデコード回路ＤＥＣ（ｎ）が、ループスタート位置に相当するサンプル値を最初に計算したとき、そのサンプル値を制御部ＣＴが記憶し、ループエンド位置からループスタート位置に戻って再生を開始する際、前記記憶しておいたサンプル値を用いればよい。また、この場合、音量に関するエンベロープのレベルを用いて、再生位置が波形データの末尾に到達したか否かを判定してもよい。
【０１１８】
また、上記実施形態の第２モード及び第３モードにおいては、３つの発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）がグレインを再生しているが、圧縮データではなくサンプル値そのものが波形メモリＷＭに記憶されている場合には、第４モードと同様に、発音チャンネルＣＨ（ｎ）もグレインを再生する発音チャンネルとして利用できる。
【０１１９】
また、上記実施形態の第２モード乃至第４モードにおいては、１つのトラックは４つの発音チャンネルから構成されている。しかし、１つのトラックが少なくとも２つの発音チャンネルから構成されていればよい。例えば、１つのトラックが８つの発音チャンネルから構成されていてもよい。なお、１つのトラックを構成する発音チャンネル数が多いほど、ピッチ倍率の上限値を大きくしたり、フォルマント倍率の下限値を小さくしたりすることができる。
【０１２０】
また、上記実施形態においては、圧縮データは、１つ前のサンプリング期間におけるサンプル値と今回のサンプリング期間におけるサンプル値との差を表わしている。しかし、サンプル値の圧縮方法は上記実施形態に限られない。例えば、線形予測法を用いた圧縮方法を採用しても良い。
【０１２１】
また、第２乃至第４モードにおけるセグメントに適用される窓関数の形状は上記実施形態に限られない。例えば、カウント値ｔｐ（ｎ）に応じた係数を記憶したテーブルを用いることにより、窓関数の形状を任意に設定しても良い。
【０１２２】
また、例えば、ＣＰＵ１２ａがノート番号ＮＮに応じたピッチと原音のピッチとの比率を計算して制御部ＣＴに供給し、制御部ＣＴは、前記供給された比率にピッチを変化させるエンベロープ信号、低周波信号などを加味して、再生音のピッチ倍率を決定しても良い。
【０１２３】
また、ピッチマーク及びアタックマークをＲＯＭ１２ｂに記憶しておき、ＣＰＵ１２ａがピッチマーク及びアタックマークをＲＯＭ１２ｂから読み出して制御部ＣＴに供給してもよい。また、ピッチマーク及びアタックマークを予め計算して記憶しておくのではなく、ＣＰＵ１２ａ、制御部ＣＴ、信号処理部ＤＰなどが波形データを読み込みつつピッチを解析しても良い。
【０１２４】
また、第２乃至第４モードにおいて、利用されないエンベロープ発生回路及び低周波発振器を流用する例を示したが、その他の利用されないリソースを流用しても良い。例えば、第２モード乃至第４モードにおいては、発音チャンネルＣＨ（ｎ＋１），ＣＨ（ｎ＋２），ＣＨ（ｎ＋３）のフィルタ回路ＦＬＴ（ｎ＋１），ＦＬＴ（ｎ＋２），ＦＬＴ（ｎ＋３）は利用されない。そこで、これらのフィルタ回路ＦＬＴ（ｎ＋１），ＦＬＴ（ｎ＋２），ＦＬＴ（ｎ＋３）を発音チャンネルＣＨ（ｎ）に連結して多段回路を形成して再生音の周波数特性を制御しても良い。
【０１２５】
また、上記実施形態の第２モードにおいて、制御部ＣＴはピッチに関するパラメータ、制御信号などに基づいてピッチ倍率βを算出するようにしているが、ここで、様々な演算をしてピッチ倍率βを算出することにより、面白みのある音響的効果を得るようにしてもよい。例えば、１つのトラックＴＫにおいて生成される楽音のピッチを、ＣＰＵ１２ａから入力されたピッチ（又は周期）に矯正するようにしてもよい。すなわち、トラックＴＫにおいて、ＣＰＵ１２ａから入力されたピッチ（又は周期）と差分値ｄｐｍとの比を用いて、時間経過とともに変化する原音のピッチを相殺するように、ピッチ倍率βを刻々と変化させてもよい。また、ＣＰＵ１２ａから入力されたピッチ（又は周期）に基づいて差分値ｄｐｍを計算し、前記計算した差分値ｄｐｍを上記のステップＳ４１５における比較処理の際に用いてもよい。これにより、例えば図２３に示すように、音色や音量の時間的変化はトラックＴＫに割り当てられた原音のままでありながら、ピッチはＣＰＵ１２ａから入力されたピッチに矯正されて平坦にされた楽音を得ることができる。例えば、ユーザが押鍵操作した鍵に応じて、原音のピッチを鍵に対応するピッチに矯正して再生することで、面白みのある音響的効果が得られる。
【０１２６】
また、１つのトラックＴＫ（ｍ）において生成される楽音のピッチを、別のトラックＴＫ（ｍ＋１）のピッチに矯正するようにしてもよい。すなわち、トラックＴＫ（ｍ＋１）において順次得られる差分値ｄｐｍに応じて、トラックＴＫ（ｍ）におけるピッチ倍率βを変化させてもよい。また、トラックＴＫ（ｍ＋１）の差分値ｄｐｍをステップＳ４１５における比較処理の際に用いてもよい。これにより、音色や音量の時間的変化はトラックＴＫ（ｍ）に割り当てられた原音のままでありながら、ピッチはトラックＴＫ（ｍ＋１）に割り当てられた原音のピッチに追従した楽音を生成したり、トラックＴＫ（ｍ＋１）に割り当てられた原音ピッチに対して所定の度数関係にあるハーモニー音を生成したりすることができ、面白みのある音響的効果が得られる。
【０１２７】
また、例えば、楽曲の各パートの演奏であって、前記楽曲の楽譜における同一区間（例えば、各パートの３小節目の先頭から４小節目の終端まで）の演奏（フレーズ）をそれぞれサンプリングして波形データを生成しておき、各波形データを一組のトラックＴＫ（ｍ），ＴＫ（ｍ＋１），・・・に割り当ててもよい。以下、上記の一組のトラックＴＫ（ｍ），ＴＫ（ｍ＋１），・・・をグループＧＰ（ｋ）と呼ぶ（図２４参照）。この場合、前記各トラックＴＫ（ｍ），ＴＫ（ｍ＋１），・・・にて再生されるフレーズを同期させたい（拍点を一致させたい）という要求が想定される。しかし、前記各波形データがいずれも前記楽曲の楽譜における同一位置の演奏を表わすとしても、それぞれの演奏テンポが異なることがある。つまり、波形データの長さが互いに異なることがある。この場合、前記再生されるフレーズを同期させるために、タイムストレッチ機能を用いて各トラックの演奏テンポ（フレーズの長さ）を揃えればよい。しかし、この場合、次のような問題がある。
【０１２８】
まず、各トラックＴＫ（ｍ），ＴＫ（ｍ＋１），・・・が、それぞれに割り当てられたフレーズの再生を開始する際、それぞれのフレーズの長さが同一になるように、各トラックＴＫ（ｍ），ＴＫ（ｍ＋１），・・・のストレッチ率αを計算する。通常、ストレッチ率αは小数部を含むが、設定可能な小数部の桁数は実際には有限である。したがって、フレーズの長さを完全に一致させることは困難である。よって、再生開始時には各フレーズが同期していたとしても、次第に各フレーズの拍点のずれが大きくなる。
【０１２９】
また、各フレーズが同期した状態を保ったまま、そのテンポを変更したいという要求が想定される。例えば、ＭＩＤＩシーケンサのクロックに同期させてテンポを変化させたり、音長設定操作子をリアルタイムに操作して、その指示値にテンポを追従させたりすることが想定される。この場合、ＣＰＵ１２ａが前記クロック、前記指示値などを検出して、各トラックＴＫ（ｍ），ＴＫ（ｍ＋１），・・・のストレッチ率αを計算し、それぞれの値を制御部ＣＴのレジスタに書き込む必要がある。しかし、各トラックＴＫ（ｍ），ＴＫ（ｍ＋１），・・・のストレッチ率αのレジスタへの書き込み処理を同時に実行することはできない。すなわち、それぞれのストレッチ率αの書き込みタイミングにずれが生じる。この書き込みタイミングのずれに起因して、各フレーズの拍点がずれる。
【０１３０】
また、各トラックＴＫ（ｍ），ＴＫ（ｍ＋１），・・・に割り当てられたフレーズが短い場合、各フレーズを同期させた状態のまま、フレーズの一部の区間又は全区間をループ再生したいという要求が想定される。しかし、上記のように、ピッチマーク又はアタックマークを用いて、タイムストレッチ機能、ピッチシフト機能及びフォルマントシフト機能を実現するため、ループスタート位置とループエンド位置を任意に定めることができない。すなわち、ループスタート位置とループエンド位置は、ピッチマーク又はアタックマークが付された位置に設定しなければならない。そのため、各トラックＴＫ（ｍ），ＴＫ（ｍ＋１），・・・の各ループスタート位置を完全に一致させるとともに、各ループエンド位置を完全に一致させることは困難である。また、ＣＰＵ１２ａがそのずれを検出して補正することも困難である。
【０１３１】
そこで、次のように構成するとよい。まず、グループＧＰ（ｋ）のテンポを管理するためにマスターサンプルカウンタＣｍｓ（ＣＴ）を用いる。このマスターサンプルカウンタＣｍｓ（ＣＴ）は、制御部ＣＴ内に設けられる。マスターサンプルカウンタＣｍｓ（ＣＴ）のカウント値ｔｍｓ（ＣＴ）は、サンプリング期間ごとに更新される。すなわち、カウント値ｔｍｓ（ＣＴ）に、マスターテンポ倍率θが加算される。マスターテンポ倍率θは、所定の基準テンポ（例えば、６０ｂｐｍ）に対する、同期再生するフレーズのテンポ（以下、再生テンポと呼ぶ）の比率である。例えば、再生テンポが１２０ｂｐｍのときは、マスターテンポ倍率θは「２」である。
【０１３２】
各トラックＴＫ（ｍ），ＴＫ（ｍ＋１），・・・の動作は、第２モードとほぼ同様であるが、第２モードにおけるサンプルカウンタＣｓ（ＣＴ）がトラックごとに設けられる。以下、トラックＴＫ（ｍ），ＴＫ（ｍ＋１），・・・のサンプルカウンタをサンプルカウンタＣｍ（ＣＴ），Ｃｍ＋１（ＣＴ），・・・と表記する。トラックＴＫ（ｍ），ＴＫ（ｍ＋１），・・・には、テンポが既知であるフレーズがそれぞれ割り当てられるとともに、各フレーズのテンポに対するマスターの基準テンポの比率を表わすスレーブテンポ倍率φｍ，φｍ＋１，・・・が設定される。スレーブテンポ倍率φｍ，φｍ＋１，・・・は、サンプリング期間ごとにサンプルカウンタＣｍ（ＣＴ），Ｃｍ＋１（ＣＴ），・・・のカウント値ｔｍ（ＣＴ），ｔｍ＋１（ＣＴ），・・・にそれぞれ加算される。
【０１３３】
例えば、基準テンポが６０ｂｐｍであるのに対し、トラックＴＫ（ｍ）にはテンポが１２０ｂｐｍのフレーズが割り当てられ、トラックＴＫ（ｍ＋１）にはテンポが３０ｂｐｍのフレーズが割り当てられたとする。この場合、トラックＴＫ（ｍ）にはスレーブテンポ倍率φｍとして「０．５」が設定され、トラックＴＫ（ｍ＋１）にはスレーブテンポ倍率φｍ＋１として「２．０」が設定される。
【０１３４】
ここで、マスターサンプルカウンタが基準テンポと同じ６０ｂｐｍのテンポでカウントを進めるとすると、マスターテンポ倍率θは「１．０」となる。つまり、マスターサンプルカウンタＣｍｓ（ＣＴ）のカウント値ｔｍｓ（ＣＴ）は、サンプリング期間ごとにマスターテンポ倍率θの「１．０」ずつ加算されて更新される。このとき、トラックＴＫ（ｍ）のスレーブテンポ倍率φｍは「０．５」に設定されているので、トラックＴＫ（ｍ）サンプルカウンタＣｍ（ＣＴ）は、サンプリング期間ごとに、マスターテンポ倍率θの「１．０」とスレーブテンポ倍率φｍの「０．５」とを乗算した、「０．５」ずつ加算されて更新される。また、トラックＴＫ（ｍ＋１）のスレーブテンポ倍率φｍ＋１は「２．０」に設定されているので、トラックＴＫ（ｍ＋１）サンプルカウンタＣｍ＋１（ＣＴ）は、サンプリング期間ごとに、マスターテンポ倍率θの「１．０」とスレーブテンポ倍率φｍ＋１の「２．０」とを乗算した、「２．０」ずつ加算されて更新される。
【０１３５】
また、マスターサンプルカウンタが基準テンポの０．５倍の３０ｂｐｍのテンポでカウントを進めるとすると、マスターテンポ倍率θは「０．５」となる。つまり、マスターサンプルカウンタＣｍｓ（ＣＴ）のカウント値ｔｍｓ（ＣＴ）は、サンプリング期間ごとにマスターテンポ倍率θの「０．５」ずつ加算されて更新される。このとき、トラックＴＫ（ｍ）のスレーブテンポ倍率φｍは「０．５」に設定されているので、トラックＴＫ（ｍ）サンプルカウンタＣｍ（ＣＴ）は、サンプリング期間ごとに、マスターテンポ倍率θの「０．５」とスレーブテンポ倍率φｍの「０．５」とを乗算した、「０．２５」ずつ加算されて更新される。また、トラックＴＫ（ｍ＋１）のスレーブテンポ倍率φｍ＋１は「２．０」に設定されているので、トラックＴＫ（ｍ＋１）のサンプルカウンタＣｍ＋１（ＣＴ）は、サンプリング期間ごとに、マスターテンポ倍率θの「０．５」とスレーブテンポ倍率φｍ＋１の「２．０」とを乗算した、「１．０」ずつ加算されて更新される。
【０１３６】
このように、マスターサンプルカウンタＣｍｓ（ＣＴ）のカウント値ｔｍとトラックＴＫ（ｍ），ＴＫ（ｍ＋１），・・・のサンプルカウンタＣｍ（ＣＴ），Ｃｍ＋１（ＣＴ），・・・のカウント値ｔｍ（ＣＴ），ｔｍ＋１（ＣＴ），・・・の比は、スレーブテンポ倍率φｍ，φｍ＋１，・・・で、一定に保たれる。また、マスターテンポ倍率θが再生途中で変わったとしても、この関係は保たれる。
【０１３７】
マスターサンプルカウンタＣｍｓ（ＣＴ）のカウント値ｔｍｓ（ＣＴ）とサンプルカウンタＣｍ（ＣＴ），Ｃｍ＋１（ＣＴ），・・・のカウント値ｔｍ（ＣＴ），ｔｍ＋１（ＣＴ），・・・のうちのいずれか１つ又は複数のカウント値との比が何らかの要因（例えば、小数部の桁数が有限であること、ループスタート位置、ループエンド位置を設定できる位置が限られることなど）により理想値からずれてしまった場合、そのずれが所定の許容範囲内に含まれるように、そのトラックのテンポが次のようにして補正される。ＣＰＵ１２ａは、サンプリング期間ごとに前記ずれを監視している。ここで、カウント値ｔｍｓ（ＣＴ）とカウント値ｔｍ（ＣＴ）との比が理想値からずれて、そのずれが前記許容範囲外にあるとする。この場合、制御部ＣＴは、マスターテンポ倍率θとスレーブテンポ倍率φｍとを乗算した値に、さらに所定の補正倍率ψを加味した値をカウント値ｔｍ（ＣＴ）に加算する（図２５参照）。補正倍率ψは予めＣＰＵ１２ａから制御部ＣＴに供給されている。例えば、補正倍率ψは、「１．１９」及び「１／１．１９」に設定される。トラックＴＫ（ｍ）の再生位置が他のフレーズの再生位置に対して遅れているときは、カウント値ｔｍ（ＣＴ）に、マスターテンポ倍率θとスレーブテンポ倍率φｍとを乗算した値を更に１．１９倍した値を加算する。つまり、テンポを速くする。一方、トラックＴＫ（ｍ）の再生位置が他のフレーズの再生位置に対して進みすぎているときは、マスターテンポ倍率θとスレーブテンポ倍率φｍとを乗算した値を更に１／１．１９倍した値を加算する。つまり、テンポを遅くする。
【０１３８】
また、例えば、カウント値ｔｍ（ＣＴ）がピッチマーク又はアタックマークを超えたとき、ループエンド位置を超えた可能性がある。この場合、カウント値ｔｍ（ＣＴ）は、ループスタート位置にリセットされる。なお、マスターサンプルカウンタＣｍｓ（ＣＴ）にもループスタート位置とループエンド位置が設定される。マスターサンプルカウンタＣｍｓ（ＣＴ）にもループスタート位置とループエンド位置との比が、トラックＴＫ（ｍ）のサンプルカウンタＣｍ（ＣＴ）のループスタート位置とループエンド位置との比とほぼ同じ値になるように、ループスタート位置とループエンド位置とが設定される。また、マスターサンプルカウンタＣｍｓ（ＣＴ）のカウント値ｔｍｓ（ＣＴ）を直接書き換えても良い。この場合、カウント値ｔｍｓ（ＣＴ）とカウント値ｔｍ（ＣＴ）との比が理想値から大きくずれることがある。この場合、そのずれが許容範囲内に位置するように、各トラックのテンポが補正される。
【０１３９】
なお、マスターサンプルカウンタＣｍｓ（ＣＴ）を用いることなく、グループＧＰ（ｋ）を構成するトラックＴＫ（ｍ），ＴＫ（ｍ＋１），・・・のうちの１つのトラックに対応するサンプルカウンタＣｍ（ＣＴ）をマスターサンプルカウンタとして用いても良い。すなわち、トラックＴＫ（ｍ），ＴＫ（ｍ＋１），・・・のうちの１つをマスタートラックとし、その他のトラックをスレーブトラックとしてもよい。また、複数のグループが形成されても良い。この場合、各グループに対応するマスターサンプルカウンタを設けても良い。また、この場合、マスターサンプルカウンタを設けることなく、各グループ内の１つのトラックをマスタートラックとしてもよい。
【０１４０】
なお、各種パラメータは、入力操作子を用いて設定（変更）されるだけでなく、コンピュータ部１２によって実現される自動演奏装置（所謂シーケンサ）によって各種パラメータが順次設定（変更）されても良い。また、外部インターフェース１５を介して外部機器から供給された制御信号に応じて各種パラメータが設定（変更）されてもよい。
【符号の説明】
【０１４１】
ＣＨ・・・発音チャンネル、ＣＭ・・・キャッシュ回路、ＣＴ・・・制御部、ＣＴ・・・再生時刻カウンタ、Ｃｐ・・・位相カウンタ、Ｃｓ・・・サンプルカウンタ、ＤＥＣ・・・デコード回路、ＤＭ・・・電子楽器、ＤＰ・・・信号処理部、ＤＲＤ・・・読み込み回路、ＦＬＴ・・・フィルタ回路、ＧＲ・・・グレイン、ＯＬＡ・・・重畳加算回路、ＲＢ・・・リングバッファ、ＳＢ・・・サンプルバッファ、ＳＦｎ・・・状態フラグ、ＳＰ・・・発音部、ＳＧ・・・セグメント、ＴＫ・・・トラック、ＴＲ・・・目標値レジスタ、ＶＯＬ・・・音量制御回路、ＷＤ・・・係数、ＷＭ・・・波形メモリ、ｄｐｍ・・・差分値、ｔｖ・・・目標値、ｖ・・・再生速度倍率、ｘｆｌ・・・クロスフェード長、α・・・ストレッチ率、β・・・ピッチ倍率、γ・・・フォルマント倍率、１１・・・入力操作子、１２・・・コンピュータ部、１６・・・音源回路、１８・・・音声入力装置
【図１】
0006350692.tif 000002
【図２】
0006350692.tif 000003
【図３】
0006350692.tif 000004
【図４Ａ】
0006350692.tif 000005
【図４Ｂ】
0006350692.tif 000006
【図５】
0006350692.tif 000007
【図６】
0006350692.tif 000008
【図７】
0006350692.tif 000009
【図８】
0006350692.tif 000010
【図９Ａ】
0006350692.tif 000011
【図９Ｂ】
0006350692.tif 000012
【図１０】
0006350692.tif 000013
【図１１】
0006350692.tif 000014
【図１２】
0006350692.tif 000015
【図１３Ａ】
0006350692.tif 000016
【図１３Ｂ】
0006350692.tif 000017
【図１３Ｃ】
0006350692.tif 000018
【図１４】
0006350692.tif 000019
【図１５】
0006350692.tif 000020
【図１６】
0006350692.tif 000021
【図１７】
0006350692.tif 000022
【図１８】
0006350692.tif 000023
【図１９】
0006350692.tif 000024
【図２０Ａ】
0006350692.tif 000025
【図２０Ｂ】
0006350692.tif 000026
【図２０Ｃ】
0006350692.tif 000027
【図２１】
0006350692.tif 000028
【図２２】
0006350692.tif 000029
【図２３】
0006350692.tif 000030
【図２４】
0006350692.tif 000031
【図２５】
0006350692.tif 000032