"複数の異なる音高の楽音をそれぞれサンプリングして、前記サンプリングした波高値を1つ前のサンプリングした波高値からの変化に関係して圧縮した複数の圧縮データからなる波形データを前記異なる音高ごとに記憶した波形メモリと、楽音の発生指示に応答して、割り当てられた演算処理期間内に、前記波形メモリから圧縮データを読み出すとともに、前記圧縮データをデコードして波高値を表すデータとして出力する演算処理手段と、発生させる楽音の音高を表す音高情報を入力して、前記波形メモリに記憶されている複数の波形データのうちで、前記演算処理手段によって読み出される波形データを特定するとともに、前記特定した波形データに応じて、前記割り当てる演算処理期間の長さを決定する演算処理期間決定手段と、前記演算処理手段によって出力された波高値を表すデータを、前記演算処理時間決定手段によって特定された波形データの元になる楽音の音高に対する前記発生させる楽音の音高の比率に応じて補間して出力する補間手段とを備えたことを特徴とする楽音信号発生装置。請求項1に記載の楽音信号発生装置において、前記演算処理時間決定手段によって特定された波形データの元になる楽音の音高に対する前記発生させる楽音の音高の比率に応じて、前記演算処理期間内にデコードする圧縮データの数を算出するデコード数算出手段をさらに備えたことを特徴とする楽音信号発生装置。請求項1又は請求項2に記載の楽音信号発生装置において、前記演算処理手段は、前記圧縮データを前記波形メモリから読み込んで一時的に記憶しておくキャッシュ処理を実行するキャッシュ手段と、前記キャッシュ手段に記憶されている前記圧縮データをデコードして波高値を算出するデコード処理を実行するデコード手段を備え、前記演算処理期間は、前記キャッシュ手段が前記キャッシュ処理を実行するキャッシュ処理期間と、前記デコード手段が前記デコード処理を実行するデコード処理期間からなることを特徴とする楽音信号発生装置。請求項3に記載の楽音信号発生装置において、前記波形メモリは、所定のアドレス範囲ごとのページに区分され、1つのアドレスに記憶された第1のデータを読み出した後、連続して、前記第1のデータが記憶されているページから第2のデータを読み出すとき、前記第2のデータを前記第1のデータよりも高速に読み出すことができるメモリであって、前記キャッシュ処理期間を同一ページから少なくとも2つのデータを読み出すために必要な時間より長くしたことを特徴とする楽音信号発生装置。請求項4に記載の楽音信号発生装置において、前記第1のデータ及び第2のデータは、複数の前記圧縮データを含む楽音信号発生装置。請求項3乃至請求項5に記載の楽音信号発生装置において、前記キャッシュ処理期間及び前記デコード処理期間は、所定の期間を時分割した1つ又は複数の時分割タイムスロットからなり、前記演算処理期間決定手段は、前記特定した波形データに応じて、前記キャッシュ処理期間及び前記デコード処理期間として割り当てる前記時分割タイムスロットの数をそれぞれ決定することを特徴とする楽音信号発生装置。a.全体構成まず、本発明の一実施形態に係る楽音信号発生装置を適用した電子楽器の全体構成について図1を用いて説明する。図1に示すように、この電子楽器は、鍵盤100、パネル操作子200、ペダル操作子300、操作子インターフェース回路400、表示器600、音源回路700、サウンドシステム800、コンピュータ部900、記憶装置1000及び外部インターフェース回路1100を備えている。鍵盤100は、演奏者の手によって操作されて、それぞれ発生させる楽音信号の音高を指定するとともに楽音信号の発生及び停止を指示する複数の白鍵及び黒鍵からなる。パネル操作子200は、電子楽器の操作パネル上に設けられ、演奏者の手によって操作されて、発生される楽音信号の音色、音量、効果などの楽音特性を設定するとともに、電子楽器全体の動作を設定する。ペダル操作子300は、演奏者の足によって操作されて、発生される楽音信号の音色、音量、効果などの楽音特性を設定する。鍵盤100、パネル操作子200及びペダル操作子300は、バス1200に接続された操作子インターフェース回路400に接続されている。そして、鍵盤100、パネル操作子200及びペダル操作子300の操作を表す演奏情報及び操作情報が、操作子インターフェース回路400及びバス1200を介して後述するコンピュータ部900に供給される。表示器600は、液晶ディスプレイLCDによって構成され、表示画面上に文字、図形などを表示する。この表示器600の表示は、バス1200を介してコンピュータ部900によって制御される。音源回路700は、複数の波形データを記憶した波形メモリWMを含み、波形メモリWMから、コンピュータ部900によって指定された波形データを読み出してディジタル楽音信号を生成する複数の発音チャンネルを備える。各発音チャンネルにて生成されたディジタル楽音信号はサウンドシステム800に供給される。なお、ディジタル楽音信号にコーラス効果、残響効果などの各種効果を付加するエフェクタ回路は、音源回路700に含まれている。サウンドシステム800は、音源回路700から供給されたディジタル楽音信号をアナログ楽音信号にD/A変換するD/A変換器、変換したアナログ楽音信号を増幅するアンプ、及び増幅されたアナログ楽音信号を音響信号に変換して出力するスピーカを備えている。コンピュータ部900は、バス1200にそれぞれ接続されたCPU901、タイマ902、ROM903及びRAM904からなる。CPU901は、操作子インターフェース回路400及び外部インターフェース回路1100から供給される演奏情報に応じて、音源回路700に発音のために必要な情報を供給する。とくに、CPU901は、演奏者による鍵盤100の押鍵操作及び外部インターフェース回路1100を介した外部機器からの演奏情報の供給によって発生するノートオンイベントに対応した楽音の発生を、1つ又は複数の発音チャンネルに割り当てる。また、記憶装置1000は、HDD、FDD、CD-ROM、MO、DVDなどの大容量の不揮発性記録媒体と、同各記録媒体に対応するドライブユニットを含むものであり、各種データ及びプログラムの記憶及び読出しを可能にしている。これらのデータ及びプログラムは予め記憶装置1000に記憶されていてもよいし、外部インターフェース回路1100を介して外部から取り込んでもよい。そして、記憶装置1000に記憶された各種データ及びプログラムは、CPU901によって読み込まれ、電子楽器の制御に利用される。外部インターフェース回路1100は、MIDIインターフェース回路及び通信インターフェース回路を含んでおり、他の電子音楽装置、パーソナルコンピュータなどのMIDI対応の外部機器に接続可能となっているとともに、インターネットなどの通信ネットワークに接続可能となっている。b.音源回路の構成b1.全体構成次に、音源回路700の構成について詳しく説明する。まず音源回路700の全体構成について図2を用いて説明する。音源回路700は、CPU901から供給されるパラメータを入力し、音源回路700を構成する各回路に、前記入力したパラメータを出力して各発音チャンネルの各種設定を行うチャンネル設定回路710を備えている。また、音源回路700は、楽音をサンプリングして、サンプリング周期ごとの波高値を圧縮した圧縮データを記憶した波形メモリWMを備えている。また、音源回路700は、時分割動作により、波形メモリWMから圧縮データを順次読み込んでデコードして、元の波高値を算出し、ディジタル楽音信号を生成する複数例えば256個の発音チャンネルCH0,CH1CH255を備えている。また、各発音チャンネルCH0,CH1CH255は、変調信号発生回路720、音高制御回路730、キャッシュ回路740、デコード回路750、補間回路760、フィルタ回路770及び音量制御回路780をそれぞれ備えている。ただし、これらの回路は、各発音チャンネルCH0,CH1CH255ごとに設けられているわけではなく、時分割で各発音チャンネルCH0,CH1CH255についての処理を実行する。また、音源回路700は、発音チャンネルCH0,CH1CH255にて生成されたディジタル楽音信号を累算してサウンドシステム800に出力するチャンネル累算回路790も備えている。ここで、各発音チャンネルにおける圧縮データのデコードについて簡単に説明しておく。波形メモリWMには、線形予測法を用いて各サンプリング周期における波高値を圧縮した圧縮データが記憶されている。圧縮データは、サンプリングした波高値と線形予測法によって算出される予測値との差である残差データのLSB側の幾つかのビットを切り捨ててビットシフトしたデータである。本実施例においては、1つ前の再生周期における波高値に線形予測係数Cを乗算して予測値を算出する。図3を用いて、再生周期T2における波高値D2の算出方法について具体的に説明する。まず、1つ前の再生周期T1において算出した波高値D1に線形予測係数Cを乗算して予測値を算出する。また、圧縮データを逆正規化係数Rだけビットシフトして、前記算出した予測値と波高値D2との差を表す残差データを算出する。そして、前記算出した予測値と残差データを合算して波高値D2を算出する。なお、上記の線形予測係数C及び逆正規化係数Rについては後述する。b2.チャンネル設定回路チャンネル設定回路710は、発音チャンネルごとに各種パラメータを記憶する予約レジスタ711及び実時間制御レジスタ712を備えている。CPU901は、キーオンイベントに対応する楽音信号を発生させる発音チャンネルを決定すると、予約レジスタ711の前記決定した発音チャンネルに対応する領域に、発生させる楽音を規定するパラメータを書き込む。そして、チャンネル設定回路710は、前記発音チャンネルにて前記パラメータによって規定される新たな楽音を発生できる状態になると、前記パラメータを実時間制御レジスタ712にコピーするとともに、前記発音チャンネルの各回路に、対応するパラメータを出力して、発音チャンネルを初期化する。そして、前記発音チャンネルに楽音信号発生の処理を開始させる。なお、CPU901は、前記決定した発音チャンネルにて楽音信号の発生中に、実時間制御レジスタ712にパラメータを書き込むことができる。たとえば、パネル操作子200の操作に応じて、発生中の楽音の音高を変化させるためのパラメータを書き込むことができる。チャンネル設定回路710は、楽音信号の発生中にCPU901によって更新されたパラメータを、対応する発音チャンネルに出力する。b3.波形メモリ波形メモリWMには、図4に示すように、楽音波形を表す波形データを線形予測法によって圧縮した圧縮データが記憶されている。楽音波形を表す波形データ以下、元の波形データという。とは、楽音を所定のサンプリング周波数例えば32kHzでサンプリングして、各サンプリング周期における波高値をディジタルデータに変換したものである。1つの音色についての楽音をサンプリングするとき、所定の鍵音高の間隔例えば1オクターブ、2オクターブなどをおいてサンプリングする。すなわち、元の波形データは、各鍵音高ごとに用意されているわけではないので、元の波形データの音高元ピッチと演奏情報に含まれる音高情報が表す音高再生ピッチとが異なる場合、各発音チャンネルCH0,CH1CH255において補間処理を行うことにより、音高情報が表す音高に対応したディジタル楽音信号を生成する。本実施形態においては、例えば1オクターブ以内の間隔をおいて元の波形データがサンプリングされているために、必ず再生ピッチが元ピッチの2倍以下となる場合、再生周期ごとに、1つの発音チャンネルを用いて1つのディジタル楽音信号を生成する。この動作モードを第1モードという。一方、例えば2オクターブの間隔をおいて元の波形データがサンプリングされているために、再生ピッチが元ピッチの2倍より高くなることがある場合、再生周期ごとに、2つの発音チャンネルを用いて1つのディジタル楽音信号を生成する。この動作モードを第2モードという。いずれの動作モードで発音するかは、予め元の波形データごとに決められてボイスデータとして記憶されている図10参照。元の波形データは、サンプリング周期の複数周期分図4の例では、8周期分の波高値を1つのフレームとして複数図4の例では、n1個のフレームに分割され、各フレームごとに線形予測法を用いて圧縮されて、フレームデータFD0~FDnとして、波形メモリWMの下位アドレス側から上位アドレス側にこの順に配置されて記憶されている。フレームデータFDmm=0,1nは、複数例えば4個のセグメントデータSD0~SD3からなる。各セグメントデータのデータ長は16ビット1ワードである。波形メモリWMの1つのアドレスに1つのセグメントデータが記憶されている。セグメントデータSD0~SD3は、波形メモリWMの下位アドレス側から上位アドレス側にこの順に配置されて記憶されている。フレームデータFDmのセグメントデータSDkk=0,13は、2つの圧縮データZ8m2k,Z8m2k1と1つのパラメータPkとからなる。圧縮データZ8m2k,Z8m2k1のデータ長は、それぞれ6ビットであり、パラメータPkのデータ長は4ビットである。具体的には、セグメントデータの第0ビット~第5ビットからなるデータが圧縮データZ8m2kであり、第6ビット~第11ビットからなるデータが圧縮データZ8m2k1である。また、第12ビット~第15ビット~なるデータがパラメータPkである。なお、8m2k及び8m2k1は、圧縮データの番号であり、元の波高値のサンプリング周期すなわち、元の波高値をサンプリングした順番に対応している。また、パラメータP0乃至パラメータP3からなる16ビット=4ビット×4のデータは、波高値をデコードするための線形予測係数C及び逆正規化係数Rからなる。線形予測係数Cのデータ長は12ビットである。パラメータP0が、線形予測係数Cの第8ビット~第11ビットに相当し、パラメータP1が線形予測係数Cの第4ビット~第7ビットに相当する。そして、パラメータP2が線形予測係数Cの第0ビット~第3ビットに相当する。線形予測係数Cは、次のフレームに属する波高値のデコードに用いられる。逆正規化係数Rのデータ長は、4ビットであって、パラメータP3がこの逆正規化係数Rに相当する。逆正規化係数Rは、次に説明するように、正規化された圧縮データから元の残差データを算出するためのパラメータである。圧縮データは、線形予測によって算出される予測値と元の波形データが表す波高値との差を表す残差データを正規化したデータである。ここで、残差データの正規化について詳しく説明する。以下の説明において、残差データのデータ長は16ビットとする。残差データの値が小さく、その値を6ビットで表すことができる場合はその残差データの値をそのままセグメントデータに記憶できる。しかし、残差データの値が大きく、6ビットで表すことができないこともある。そこで、まず1つのフレームを選択し、選択したフレームに属する残差データのうち最大の残差データを求める。そして、前記最大の残差データを2進数で表記したとき、値が1であるビットの最上位のビットが第xビットx=6,715であるとすると、前記最大の残差データが属するフレームに属する全ての残差データの第x-5ビット~第xビットの6ビットをそれぞれ圧縮データとする。すなわち、前記最大の残差データが属するフレームデータに属する全ての残差データについて、第0ビットから第x-6ビット以下を切り捨ててビットシフトするビットシフト演算を実行する。そこで、前記ビットシフト演算において何ビットシフトしたかを逆正規化係数Rとして記憶しておき、圧縮データのデコードにおいて、圧縮データを逆正規化係数Rの値だけシフトアップして残差データを算出する。つぎに、この波形メモリWMからのデータの読み出し速度について説明する。この波形メモリWMは、連続する8ワードごとに記憶領域が分割されていて、この連続する8ワード分の記憶領域をページと呼ぶ。あるページから1つのデータを読み出した後、連続して同ページから2つ目以降のデータを読み出すとき、この2つ目以降のデータを、1つ目のデータよりも高速に読み出すことができる。このように、同一ページ内から複数のデータを連続して読み出すことをページリードという。上記のページリードについて、図5を用いて具体的に説明する。まず、1つ目のデータのアドレスを指定してデータを読み出す。この1つ目の読み出しにはサンプリング周期の1周期分の時間の8/1536の時間がかかる。つぎに、1つ目のデータのアドレスの第3ビット以上を固定したまま、第0ビット~第2ビットを変更して、2つ目のデータを読み出す。この2つ目の読み出しにはサンプリング周期の1周期分の時間の4/1536の時間しかからない。本実施形態においては、先頭のフレームデータFD0のセグメントデータSD0が、ちょうどページの先頭に位置するように配置している。詳しくは後述するように、キャッシュ回路740のセグメントデータ入力回路741は、先頭のセグメントデータから順に2つずつセグメントデータを読み出す。したがって、セグメントデータ入力回路741は、ページリードにより2つ目のデータを高速に読み出すことができる。b4.変調信号発生回路変調信号発生回路720は、エンベロープ信号発生回路721及び低周波信号発生回路722からなる。エンベロープ信号発生回路721は、ピッチ変更回路、カットオフ周波数変更回路及び音量変更回路からなる。エンベロープ信号発生回路721には、チャンネル設定回路710から各種エンベロープパラメータが供給される。ピッチ変更回路は、生成するディジタル楽音信号の音高を制御する音高制御信号を音高制御回路730に供給する。ピッチ変更回路は、チャンネル設定回路710から供給されたエンベロープパラメータに応じて、発音開始後の時間経過に従ってディジタル楽音信号の音高が変化するように、時間経過に従って変化する音高制御信号を生成して音高制御回路730に供給する。この時間経過に従って変化する一連の音高制御信号をピッチエンベロープと呼ぶ。また、カットオフ周波数変更回路は、エレメント信号の周波数特性を制御するカットオフ周波数制御信号をフィルタ回路770に供給する。カットオフ周波数制御回路は、チャンネル設定回路710から供給されたエンベロープパラメータに応じて、発音開始後の時間経過に従ってフィルタのカットオフ周波数が変化するように、時間経過に従って変化するカットオフ周波数制御信号を生成して、フィルタ回路770に供給する。この時間経過に従って変化する一連のカットオフ周波数制御信号をカットオフエンベロープと呼ぶ。また、音量変更回路は、エレメント信号の音量を制御する音量制御信号を音量制御回路780に供給する。音量変更回路は、チャンネル設定回路710から供給されたエンベロープパラメータに応じて、発音開始後の時間経過に従ってディジタル楽音信号の音量が変化するように、時間経過に従って変化する音量制御信号を生成して音量制御回路780に供給する。この時間経過に従って変化する一連の音量制御信号を音量エンベロープと呼ぶ。低周波信号発生回路722は、発音開始後、音高、音色及び音量を周期的に変化させる変調信号を生成して、音高制御回路730、フィルタ回路770及び音量制御回路780にそれぞれ供給する。低周波信号発生回路722には、チャンネル設定回路710によって、チャンネル設定回路710から低周波信号制御パラメータが供給される。低周波信号制御パラメータには、低周波信号発生回路722から出力する変調信号の波形、周波数及び振幅を指定するデータが含まれる。b5.音高制御回路音高制御回路730は、チャンネル設定回路710から供給されたピッチ情報、エンベロープ信号発生回路721から供給された音高制御信号及び低周波信号発生回路722から供給された変調信号を用いて、ピッチ倍率を算出する。ピッチ情報は、元ピッチと演奏情報に含まれる音高情報からなる。つぎに、音高制御回路730は、前記算出したピッチ倍率に応じて、次のサンプリング周期においてデコードする波高値の数を表すデコード数INCOを算出する。具体的には、サンプリング周期の第4周期目以降の各サンプリング周期ごとに、ピッチ倍率を累算し、前回の累算結果の整数部と今回の累算結果の整数部との差の値を次のサンプリング周期のデコード数INCOとする。そして、前記算出したデコード数INCOをデコード回路750に供給する。ただし、第2モードにおいて、算出したデコード数が3以上のときは、第2モードに設定された2つの発音チャンネル以下、発音チャンネルCHa及び発音チャンネルCHbとして説明する。に供給されるデコード数の合計が前記算出したデコード数となるように配分する。たとえば、算出したデコード数INCOが3の場合は、まず、発音チャンネルCHaにデコード数INCOとして2を供給し、次に、発音チャンネルCHbにデコード数INCOとして1を供給する。また、算出したデコード数が4のときは、発音チャンネルCHa及び発音チャンネルCHbにデコード数INCOとして2をそれぞれ供給する。なお、再生周期の第1周期から第4周期についてのデコード数INCOは、動作モード及びピッチ倍率によらず一定である。すなわち、第1周期及び第2周期のデコード数INCOは、0である。また、第3周期のデコード数INCOは2であり、第4周期のデコード数INCOは、1である。ピッチ倍率は、通常、小数部を含む。音高制御回路730は、前記算出したピッチ倍率の累算値の小数部を補間係数算出データFRACとして補間回路760へ供給する。また、音高制御回路730は、発音チャンネルごとに、1つ前の再生周期において波高値を算出するために最後に用いた圧縮データを表す処理済みデータ情報OLDCNTを記憶している。処理済みデータ情報OLDCNTは、前記圧縮データが属するフレームデータの番号を表すフレームデータ番号、セグメントデータの番号を表すセグメントデータ番号及びセグメントデータに属する複数の圧縮データのいずれのデータであるかを表すインデックス番号からなる。すなわち、前記圧縮データが、フレームデータFDmのセグメントデータSDkに属する場合、フレームデータ番号としてmを記憶し、セグメントデータ番号としてkを記憶している。また、インデックス番号は、セグメントデータのLSB側から数えて何個目の圧縮データであるかを表す。前記圧縮データが、セグメントデータのLSB側から数えて1つ目のデータであるときは、インデックス番号として0を記憶し、セグメントデータのLSB側から数えて2つ目のデータであるときは、インデックス番号として1を記憶している。なお、各発音チャンネルの発音開始時に、フレームデータ番号がnに初期化され、セグメント番号が3に初期化される。また、インデックス番号が1に初期化される。音高制御回路730は、デコード数INCOを算出すると、前記算出したデコード数INCOと処理済みデータ情報OLDCNTを記憶していて、次の再生周期の各発音チャンネルのデコード処理の開始時に、前記記憶していたデコード数INCO及び処理済みデータ情報OLDCNTをデコード回路750にそれぞれ供給する。そして、デコード回路750にデコード数INCO及び処理済みデータ情報OLDCNTを供給すると、供給したデコード数INCOの数だけ、処理済みデータ情報OLDCNTのインデックス番号をインクリメントする。ここで、音高制御回路730には、チャンネル設定回路710から、1つのセグメントデータに含まれる圧縮データの数を表すフォーマットデータBPSが供給される。本実施例においては、フォーマットデータBPSの値は2である。音高制御回路730は、上記のインデックス番号のインクリメント処理において、インデックス番号が前記供給されたフォーマットデータBPSと同じ値になるごとに、セグメント番号を1回インクリメントするとともに、インデックス番号を0に設定する。また、セグメント番号が4になるごとに、フレーム番号を1回インクリメントするとともに、セグメント番号を0に設定する。ただし、第2モードにおいては、発音チャンネルCHa及び発音チャンネルCHbのいずれの処理においても、発音チャンネルCHaの処理済みデータ情報OLDCNTを用いる。b6.キャッシュ回路キャッシュ回路740は、図6に示すように、セグメントデータを波形メモリWMからキャッシュメモリCM0~CM255に読み込むセグメントデータ入力回路741と、キャッシュメモリCM0~CM255に読み込んだセグメントデータをデコード回路750へ供給するセグメントデータ出力回路742を備えている。キャッシュメモリCM0~CM255は、各発音チャンネルCH0~CH255に対応して設けられ、セグメントデータ入力回路741が読み出した圧縮データを一時的に記憶しておくメモリである。キャッシュメモリCM0~CM255は、それぞれ6ワードの記憶容量を有する。そして、キャッシュメモリCM0~CM255は、図7に示すように、それぞれ2ワードの記憶容量を有する領域CA0~領域CA2に区分されている。各領域CA0、領域CA1及び領域CA2の下位アドレス側の領域をそれぞれ領域CA00、領域CA10及び領域CA20と呼ぶ。また、領域CA0、領域CA1及び領域CA2の上位アドレス側の領域をそれぞれ領域CA01、領域CA11及び領域CA21と呼ぶ。ただし、第2モードにおいては、発音チャンネルCHaと発音チャンネルCHbにそれぞれ対応して設けられたキャッシュメモリCMa及びキャッシュメモリCMbを一体として使用する。すなわち、12ワードの記憶領域が、それぞれ2ワードの記憶容量を有する領域CA0~領域CA5に区分される。この場合、領域CA3~領域CA5についても、領域CA0~領域CA2と同様に、下位アドレス側の領域をそれぞれ領域CA30、領域CA40及び領域CA50と呼び、上位アドレス側の領域をそれぞれ領域CA31、領域CA41及び領域CA51と呼ぶ。セグメントデータ入力回路741は、再生周期の1周期を128等分した各期間に偶数番号の発音チャンネルCH0、CH2CH254についてのセグメントデータをそれぞれキャッシュメモリCM0、CM2CM254に読み込む。そして、その次の再生周期を128等分した各期間に奇数番号の発音チャンネルCH1、CH3CH255についてのセグメントデータをそれぞれキャッシュメモリCM1、CM3CM255に読み込む。再生周期の1周期を発音チャンネルの総数である256分割した場合の各期間は短すぎて、セグメントデータを読み込むことができない図5参照。そこで、再生周期の1周期を128分割した各期間にページリードによって2つのセグメントデータを読み込むようにしている。セグメントデータ入力回路741には、チャンネル設定回路710から先頭のフレームデータFD0のセグメントデータSD0の絶対アドレス及び末尾のフレームデータFDnのセグメントデータSD3の絶対アドレスが供給される。セグメントデータ入力回路741は、フレームデータFD0のセグメントデータSD0のアドレスを0とした相対アドレスであって、セグメントデータSD0に連続するアドレスに記憶された各セグメントデータのうち、次に読み込むセグメントデータの相対アドレスを発音チャンネルごとに記憶している。セグメントデータ入力回路741は、各発音チャンネルの発音開始時に相対アドレスを0に初期化し、セグメントデータを2つ読み込むごとに相対アドレスを2回インクリメントする。そして、フレームデータFD0のセグメントデータSD0の絶対アドレスに相対アドレスを加算して、読み込むセグメントデータが記憶されている絶対アドレスを表す読み出しアドレスを算出する。ただし、第2モードにおける発音チャンネルCHbの発音開始時には、読み込み対象の波形データのフレームデータFD0のセグメントデータSD0の絶対アドレスとして、発音チャンネルCHaと同じアドレスが供給される。そして、発音チャンネルCHbの処理においては、セグメントデータ入力回路741は、発音チャンネルCHaの相対アドレスを用いて、読み出しアドレスを算出する。読み出しアドレスが、フレームデータFDnのセグメントデータSD3の絶対アドレスよりも大きくなると、セグメントデータ入力回路741は、セグメントデータの読み込みを終了する。これにより、1つのノートオンイベントに対応した発音処理が終了する。セグメントデータ入力回路741は、処理対象の発音チャンネルのキャッシュメモリに空き領域があるときに、セグメントデータをその空き領域に読み込む。キャッシュメモリに空き領域があるときとは、キャッシュメモリにセグメントデータが読み込まれていない領域があるとき、及び既に全ての圧縮データがデコードされたセグメントデータのみを記憶している領域があるときをいう。キャッシュ回路740は、第1モード用の3進カウンタ回路であって、領域CA0~CA2のうち、次にセグメントデータを読み込む領域を表す第1入力領域カウンタ743aを備えている。また、キャッシュ回路740は、第2モード用の6進カウンタ回路であって、領域CA0~CA5のうち、次にセグメントデータを読み込む領域を表す第2入力領域カウンタ743bを備えている。また、キャッシュ回路740は、第1モード用の3進カウンタ回路であって、領域CA0~CA2のうち、次にデコード回路750へ供給するセグメントデータが記憶されている領域を表す第1出力領域カウンタ744aを備えている。さらに、キャッシュ回路740は、第2モード用の6進カウンタ回路であって、領域CA0~CA5のうち、次にデコード回路750へ供給するセグメントデータが記憶されている領域を表す第2出力領域カウンタ744bを備えている。1つ前の再生周期の各発音チャンネルの処理期間の終了時における各カウンタのカウント値は、それぞれ発音チャンネルごとに入力領域カウンタメモリ745及び出力領域カウンタメモリ746に記憶されている。そして、次の再生周期の各発音チャンネルの処理の開始時に、動作モードに応じて、入力領域カウンタメモリ745から第1入力領域カウンタ743a又は第2入力領域カウンタに1つ前の再生周期の終了時におけるカウント値が読み込まれ、出力カウンタメモリから第1出力領域カウンタ744a又は第2出力領域カウンタ744bに1つ前の再生周期の終了時におけるカウント値が読み込まれる。また、キャッシュ回路740は、第1入力領域カウンタ743aと第1出力領域カウンタ744aのカウント値を比較して、両者の値が一致するか否かを表す信号をセグメントデータ入力回路741に供給する第1比較器747aを備えている。第1モードにおいては、次に説明するように、第1入力領域カウンタ743aと第1出力領域カウンタ744aのカウント値が同じであるとき、キャッシュメモリに空きがないことを表し、第1入力領域カウンタ743aと第1出力領域カウンタ744aのカウント値が異なるとき、キャッシュメモリに空きがあることを表す。キャッシュメモリに読み込んだセグメントデータをデコード回路750に出力するのであるから、第1入力領域カウンタ743aのカウント値は、第1出力領域カウンタ744aのカウント値よりも先に進んでいる。しかし、詳しくは後述するように、ピッチ倍率が小さい場合には、第1出力領域カウンタ744aのカウント値よりも、第1入力領域カウンタ743aのカウンタ値の方が早く進む。第1入力領域カウンタ743a及び第1出力領域カウンタ744aは、3進カウンタ回路なので、カウントアップするごとに、そのカウント値は0、1、2、0、1、2と変化する。すなわち、3回ごとに繰り返し同じ値を表す。したがって、第1入力領域カウンタ743aのカウント値が第1出力領域カウンタ744aのカウント値よりも3回分早く進んだとすると、両者のカウント値が一致する。このとき、そのカウント値で表される領域には、まだデコードされていない圧縮データが含まれている可能性があるため、キャッシュメモリに空き領域がない状態であるとする。一方、両者の値が異なるときは、第1入力領域カウンタ743aのカウント値で表される領域は、発音開始後一度もセグメントデータを読み込んでいない領域であるか、全ての圧縮データがデコードされたセグメントデータを記憶している領域である。すなわち、少なくともこの領域には新たなセグメントデータを読み込むことができるため、キャッシュメモリに空き領域がある状態とする。したがって、第1モードにおいて、第1比較器747aの出力信号が、第1入力領域カウンタ743aと第1出力領域カウンタ744aのカウント値が一致することを表すとき、セグメントデータ入力回路741は、セグメントデータを読み込まない。一方、第1比較器747aの出力信号が、第1入力領域カウンタ743aと第1出力領域カウンタ744aのカウント値が異なる値であることを表すとき、セグメントデータ入力回路741は、前記算出した読み出しアドレスを先頭として連続する2つのセグメントデータを、第1入力領域カウンタ743aが示す領域に読み込む。また、キャッシュ回路740は、第2入力領域カウンタ743bと第2出力領域カウンタ744bのカウント値を比較して、両者の値が一致するか否かを表す信号をセグメントデータ入力回路741に供給する第2比較器747bを備えている。第2モードにおいても、上記の第1モードと同様に、第2入力領域カウンタ743bと第2出力領域カウンタ744bのカウント値が一致するとき、キャッシュメモリに空きがないことを表し、第2入力領域カウンタ743bと第2出力領域カウンタ744bのカウント値が異なるとき、キャッシュメモリに空きがあることを表す。この理由は、第1モードと同様である。したがって、第2比較器747bの出力信号が、第2入力領域カウンタ743bと第2出力領域カウンタ744bのカウント値が同じ値であることを表すとき、セグメントデータ入力回路741は、セグメントデータを読み込まない。一方、第2比較器747bの出力信号が、第2入力領域カウンタ743bと第2出力領域カウンタ744bのカウント値が異なる値であることを表すとき、セグメントデータ入力回路741は、前記算出した読み出しアドレスを先頭として連続する2つのセグメントデータを、第2入力領域カウンタ743bが示す領域に読み込む。入力領域カウンタ更新回路748は、セグメントデータ入力回路741が2つのセグメントデータをキャッシュメモリに読み込むと、動作モードに応じて、第1入力領域カウンタ743a又は第2入力領域カウンタ743bのカウント値をインクリメントする。なお、第1出力領域カウンタ744a及び第2出力領域カウンタ744bは、後述する出力領域カウンタ更新回路749によって制御される。セグメントデータ出力回路742は、予めキャッシュメモリに読み込んだセグメントデータを、デコード回路750からの要求に応じてデコード回路750に供給する。セグメントデータ出力回路742は、再生周期の1周期を256等分した各期間に、発音チャンネルCH0~CH255について、デコード回路750から要求されたセグメントデータをデコード回路750へそれぞれ供給する。セグメントデータ出力回路742は、デコード回路750に供給するセグメントデータを次のようにして特定する。まず、出力領域カウンタ更新回路749は、デコード回路750から、1つ前の再生周期において最後にデコード回路750に供給したセグメントデータの番号を表すセグメントデータ番号を含むカウンタ更新情報UPDを図示しない比較用レジスタに入力する。セグメントデータ出力回路742は、チャンネル設定回路710から供給された動作モード情報MDに応じて、出力領域カウンタメモリ746から1つ前の再生周期の終了時におけるカウント値を第1出力領域カウンタ744a又は第2出力領域カウンタ744bに読み出す。つぎに、セグメントデータ出力回路742及び出力領域カウンタ更新回路749は、デコード回路750から要求データ情報REQを入力する。出力領域カウンタ更新回路749は、カウンタ更新情報UPDと要求データ情報REQの第1ビットの値を比較して、両者の値が異なっていれば、動作モードに応じて、第1出力領域カウンタ744a又は第2出力領域カウンタ744bのカウント値をカウントアップする。そして、セグメントデータ出力回路742は、第1出力領域カウンタ744a又は第2出力領域カウンタ744bが示す2ワードの領域のうち、要求データ情報REQのLSBが0であれば、下位アドレス側の記憶領域のセグメントデータをデコード回路750に供給し、要求データ情報REQのLSBが1であれば、上位アドレス側の記憶領域のセグメントデータをデコード回路750に供給する。そして、出力領域カウンタ更新回路749は、要求データ情報REQをカウンタ更新情報UPDとして比較用レジスタに入力する。すなわち、1つの発音チャンネルの処理期間内に複数の要求データ情報REQがデコード回路750から供給された場合、2つ目の要求データ情報REQの処理については、1つ目の要求データ情報REQをカウンタ更新情報UPDとして用いる。b7.デコード回路デコード回路750は、予めキャッシュメモリCM0~CM255に読み込まれたセグメントデータに含まれる圧縮データ及びパラメータを取り出す。そして、前記取り出した圧縮データをシフト演算して残差データを算出するとともに、過去にデコードした波高値のうちの最新の波高値を用いて、線形予測法により予測値を算出し、前記算出した残差データと前記算出した予測値とを加算して、新たな波高値を算出する。デコード回路750は、サンプリング周期の1周期を256等分した各期間に、発音チャンネルCH0~CH255についてそれぞれ新たな波高値を算出する。デコード回路750は、図8に示すように、音高制御回路730から供給された処理済みデータ情報OLDCNT及びデコード数INCOを用いて、次のデコード処理に用いる圧縮データが含まれるセグメントデータを供給するよう、キャッシュ回路740のセグメントデータ出力回路742に要求するセグメントデータ要求回路751を備える。デコード回路750は、デコード数INCOが2の場合は、まず1つ目のセグメントデータを要求して、供給されたセグメントデータを用いて1つ目の波高値を算出し、次に2つ目のセグメントデータを要求して、供給されたセグメントデータを用いて2つ目の波高値を算出する。セグメントデータ要求回路751は、音高制御回路730から供給された処理済みデータ情報OLDCNTを構成するフレーム番号、セグメント番号及びインデックス番号を図示しないバッファメモリに読み込む。そして、前記バッファメモリに読み込んだセグメント番号をカウンタ更新情報UPDとしてキャッシュ回路740の出力領域カウンタ更新回路749に供給する。つぎに、セグメントデータ要求回路751は、1つの波高値の算出を開始するごとに、バッファメモリに読み込んだインデックス番号をインクリメントする。データ取り出し回路753は、1つ前のフレームデータに含まれる圧縮データのデコード以下、単にフレームデータのデコードという。において、今回のフレームデータのデコードに用いるパラメータである、線形予測係数C及び逆正規化係数Rを、パラメータメモリ752に記憶している。なお、デコードしようとするフレームデータが先頭のフレームデータFD0である場合は、線形予測係数C及び逆正規化係数Rは、チャンネル設定回路710によって、パラメータメモリ752に書き込まれる。上記のインデックス番号のインクリメント処理により、インデックス番号がフォーマットデータBPSの値と同じ値になると、セグメント番号を1回インクリメントするとともにインデックス番号を0に設定する。また、セグメント番号が4になると、フレーム番号を1回インクリメントするとともにセグメント番号を0に設定する。上記のインデックス番号のインクリメント処理が終了すると、セグメントデータ要求回路751は、セグメント番号を要求データ情報REQとしてキャッシュ回路740のセグメントデータ出力回路742及び出力領域カウンタ更新回路749に供給する。すると、セグメントデータ出力回路742は、上記のように、要求データ情報REQに対応する領域に記憶されているセグメントデータをデコード回路750に供給する。デコード回路750は、データ取り出し回路753を備えている。データ取り出し回路753は、セグメントデータ出力回路742から供給されたセグメントデータから圧縮データ及びパラメータを取り出す。圧縮データの取り出しにおいては、インデックス番号を用いて、セグメントデータに含まれる2つの圧縮データのうちのいずれかを取り出す。すなわち、インデックス番号が0のとき、セグメントデータのLSB側の圧縮データを取り出し、インデックス番号が1のとき、セグメントデータのMSB側の圧縮データを取り出す。上記のように、データ取り出し回路753には、セグメントデータSD0~セグメントデータSD3がこの順に供給されるが、線形予測係数Cは、セグメントデータSD0~SD2のそれぞれ上位4ビットに相当するパラメータP0~パラメータP2から構成されている。そこで、データ取り出し回路753は、セグメントデータ番号が0~2のときにそれぞれ入力したセグメントデータの上位4ビットすなわち、パラメータP0~パラメータP2を図示しないバッファメモリにそれぞれ記憶する。また、データ取り出し回路753は、セグメントデータ番号が3のときに入力したセグメントデータの上位4ビットすなわち、パラメータP3を前記バッファメモリに記憶する。そして、データ取り出し回路753は、各フレームデータのデコードの処理の終了時に、パラメータP0を256倍した値にパラメータP1を16倍した値を加算し、この加算結果にさらにパラメータP2を加算して、線形予測係数Cを算出する。そして、前記算出した線形予測係数Cをパラメータメモリ752に書き込むとともに、パラメータP3を逆正規化係数Rとしてパラメータメモリ752に書き込む。また、デコード回路750は、シフト演算回路754、乗算器755及び加算器756を備えている。シフト演算回路754は、パラメータメモリ752に記憶されている逆正規化係数Rを読み出す。そして、データ取り出し回路753から供給された圧縮データを逆正規化係数Rの値だけシフトアップして残差データを算出し、算出した残差データを加算器756へ供給する。乗算器755は、新たな波高値WD0のデコードにおいて、詳しくは後述する遅延メモリDM1に記憶されている、過去にデコードした波高値のうちの最新の波高値WD1を読み込む。乗算器755は、パラメータメモリ752に記憶されている線形予測係数Cを読み込む。そして、乗算器755は、波高値WD1に線形予測係数Cを乗算して予測値を算出して加算器756へ出力する。加算器756は、シフト演算回路754から供給された残差データと乗算器755から供給された予測値とを加算して、新たな波高値WD0を算出し、算出した波高値WD0を波高値出力回路757へ出力する。また、デコード回路750は、波高値出力回路757を備えている。波高値出力回路757は、過去にデコードした波高値のうち最新の4つの波高値WD1~WD4をそれぞれ記憶する遅延メモリDM1~DM4を備えている。なお、最も新しい波高値が波高値WD1であり、以下、新しい順に波高値WD2~WD4と呼ぶ。波高値出力回路757は、加算器756から、新たな波高値WD0が供給されるごとに、遅延メモリDM1~DM3に記憶していた波高値WD1~WD3を波高値WD2~WD4として遅延メモリDM2~DM4にそれぞれ転送し、新たな波高値WD0を波高値WD1として遅延メモリDM1に記憶する。ただし、各発音チャンネルの発音開始時においては、実時間制御レジスタ712に書き込まれた初期波高値Diが、チャンネル設定回路710によって、遅延メモリDM1に書き込まれる。また、波高値出力回路757は、波高値バッファSB1~SB4を備えている。波高値バッファSB1~SB4は、各発音チャンネルごとに設けられ、それぞれ遅延メモリDM1~DM4に接続されている。波高値出力回路757は、各再生周期における各発音チャンネルのデコード処理の終了時に遅延メモリDM1~DM4に記憶している波高値を波高値バッファSB1~SB4に転送して記憶する。そして、次の再生周期のデコード処理の開始時に、対応する発音チャンネルの最新の4つの波高値を波高値バッファSB1~SB4から遅延メモリDM1~DM4にそれぞれ読み込む。ただし、詳しくは後述するように、ピッチ倍率が1.0以上のときには、再生周期ごとに、1つ以上の新たな波高値WD0が加算器756から波高値出力回路757に供給される。これにより、遅延メモリDM4に記憶されている波高値は、再生周期ごとに更新される。すなわち、ピッチ倍率が1.0以上であるときには、波高値バッファSB4に記憶されていて、遅延メモリDM4に読み込まれた波高値は、次に説明する補間演算には用いられない。そこで、ピッチ倍率が1.0以上であるときは、波高値出力回路757は、各再生周期における各発音チャンネルのデコード処理の終了時に遅延メモリDM1~DM3に記憶している波高値を波高値バッファSB1~SB3に転送して記憶し、次の再生周期のデコード処理の開始時に対応する発音チャンネルの最新の3つの波高値を波高値バッファSB1~SB3から遅延メモリDM1~DM3にそれぞれ読み込むようにしてもよい。後述の動作説明においては、波高値出力回路757は、上記のように、最新の3つの波高値を用いるように構成されているものとして説明する。なお、本発明とは直接関係しないが、ピッチ倍率が1.0より小さいときには、新たな波高値WD0が加算器756から波高値出力回路757に供給されない再生周期も存在する。この場合、波高値バッファSB1~SB4から遅延メモリDM1~DM4にそれぞれ読み込んだ最新の4つの波高値を用いて、次に説明する補間演算を実行する。波高値出力回路757は、各発音チャンネルのデコード処理の終了時に遅延メモリDM1~DM4に記憶している波高値WD1~WD4を補間回路760へ出力する。ただし、第2モードにおいては、発音チャンネルCHaのデコード処理が終了したとしても、波高値出力回路757は、波高値WD1~WD4を補間回路760へ出力せず、発音チャンネルCHbのデコード処理の終了時に、波高値WD1~WD4を補間回路760へ出力する。b8.補間回路補間回路760は、デコード回路750から供給された4つ波高値WD1~WD4と音高制御回路730から供給された補間係数算出データFRACを用いて、ピッチ倍率の累算値に対応した波高値を補間演算により求める。具体的には、図9に示すような、波高値WD1~WD4にそれぞれ乗算する補間係数LG1~LG4と補間係数算出データFRACとの関係を表している補間係数テーブルを用いて、補間係数LG1~LG4を求める。補間係数テーブルは、図示しないメモリに記憶されていて、補間係数算出データFRACに対応したアドレスに、ラグランジュ補間係数が記憶されている。補間係数テーブルの記憶領域のうち、先頭の1/4の領域TA1に補間係数LG1が記憶され、領域TA1に続く1/4の領域TA2に補間係数LG2が記憶されている。さらに、領域TA2に続く1/4の領域TA3に補間係数LG3が記憶され、末尾の1/4の領域TA4に補間係数LG4が記憶されている。まず、補間回路760は、補間係数算出データFRACに応じたアドレスオフセット値を求める。そして、補間回路760は、領域TA1の末尾アドレスBA1を基準として、前記算出したアドレスオフセット値だけ先頭アドレスBA0側にオフセットしたアドレスに記憶されている値を補間係数LG1として読み出す。以下、補間係数LG1と同様に、領域TA2,TA3,TA4の末尾アドレスBA2,BA3,BA4をそれぞれ基準として、前記算出したアドレスオフセット値だけ先頭アドレス側にそれぞれオフセットしたアドレスに記憶されている値を、補間係数LG2,LG3,LG4として読み出す。補間回路760は、この補間係数テーブルを用いて求めた補間係数LG1~LG4を波高値WD4~WD1にそれぞれ乗算し、それぞれの乗算結果を合算して、ピッチ倍率の累算値に対応した波高値を算出する。そして、前記算出した波高値をフィルタ回路770へ供給する。ただし、補間係数算出データFRACが0の場合は、補間係数LG2を1.0とし、補間係数LG1、補間係数LG3及び補間係数LG4を0とする。すなわち、波高値WD3をそのままフィルタ回路770へ供給する。b9.フィルタ回路フィルタ回路770は、エンベロープ信号発生回路721から供給されたカットオフ周波数制御信号及び低周波信号発生回路722から供給された変調信号を合成して、フィルタのカットオフ周波数を算出する。フィルタ回路770には、チャンネル設定回路710からフィルタ制御パラメータも供給される。フィルタ制御パラメータには、フィルタの種類例えば、ハイパスフィルタ、ローパスフィルタなどを選択するフィルタ選択情報が含まれる。フィルタ回路770は、フィルタ選択情報に従って選択したフィルタのカットオフ周波数を前記算出したカットオフ周波数に設定し、補間回路760から供給されたディジタル楽音データをこのフィルタで処理した後、音量制御回路780へ出力する。b10.音量制御回路音量制御回路780は、エンベロープ信号発生回路721から供給された音量制御信号及び低周波信号発生回路722から供給された変調信号を合成して、発生すべき楽音信号の音量を算出する。そして、音量制御回路780は、フィルタ回路770から供給されたディジタル楽音データを前記算出した音量に応じて増幅して、チャンネル累算回路790へ出力する。b11.チャンネル累算回路チャンネル累算回路790は、再生周期ごとに、各発音チャンネルCH0,CH1CH255から出力されたディジタル楽音信号を累算して、累算したディジタル楽音信号をサウンドシステム800に出力する。なお、チャンネル累算回路790は、各発音チャンネルから出力されるディジタル楽音信号にそれぞれ共通の効果例えば、コーラス効果、残響効果などを付加するエフェクト処理回路を備えている。c.コンピュータ部900つぎに、コンピュータ部900の構成について説明する。とくに、ROM903に記憶されたプログラム及び各種データについて詳しく説明する。ROM903には、ボイスデータリストが記憶されている。ボイスデータリストは、図10に示すように、各音色ごとに規定されたボイスデータからなる。ボイスデータは、音色名情報、初期パラメータ、エフェクトパラメータ、フィルタ制御パラメータ、低周波信号制御パラメータ、エンベロープパラメータ及び波形データの選択に関する波形データ選択情報を含む。音色名情報は、音色の音色名を表す。初期パラメータは、1つのセグメントデータに含まれる圧縮データの数を表すフォーマットデータBPS、先頭のフレームデータFD0のデコードに用いる線形予測係数C、逆正規化係数R、初期波高値Diなどからなる。また、エフェクトパラメータは、チャンネル累算回路790において各発音チャンネルから出力される全ての楽音信号に共通の効果を付与するためのパラメータである。フィルタ制御パラメータは、フィルタ回路770を制御するためのパラメータである。低周波信号制御パラメータは、低周波信号発生回路722を制御するためのパラメータである。エンベロープパラメータは、各種エンベロープ生成用のパラメータである。波形データ選択情報は、ノート番号NNと選択する波形データに関する情報を表す波形データ情報との対応関係を記録したテーブルである。波形データ情報は、波形データの先頭アドレス、末尾アドレス、元ピッチ及び動作モード情報MDからなる。また、ROM903には、発音予約プログラム図11及びパラメータ更新の周期処理プログラム図12が記憶されている。発音予約プログラムは、ノートオンイベントが発生すると実行され、前記ノートオンイベントに対応した楽音信号を発生させるための発音チャンネルの確保及び発生させる楽音信号に関するパラメータを書き込むためのプログラムである。発音予約プログラムの実行において、CPU901は、確保した発音チャンネルが他の発音処理に使用されているか否かに関わらず、前記発生したノートオンイベントに対応した楽音信号に関するパラメータを音源回路700の予約レジスタ711に書き込む。これにより、発音の予約が終了する。すなわち、CPU901は、発音予約プログラムの実行により予約した発音チャンネルにて発音処理が開始されるのを待たずに発音予約プログラムを終了する。パラメータ更新の周期処理プログラムは、タイマ902から供給される割り込み信号をトリガとして実行される。パラメータ更新の周期処理プログラムは、発音中の各発音チャンネルにて発生される楽音信号をリアルタイムに変化させるために、実時間制御レジスタ712に書き込まれたパラメータを所定の周期で更新するプログラムである。次に、上記のように構成した電子楽器の動作について説明する。演奏者が鍵盤100のいずれかの鍵を押鍵操作してノートオンイベントが発生すると、CPU901は、図11に示すように、ステップS10にて、発音予約プログラムを開始する。次に、CPU901は、ステップS12にて、操作子インターフェース回路400から供給された演奏情報から、押鍵された鍵を表すノート番号NNを取得する。鍵盤100には、予めいずれかの演奏パートが割り当てられている。また、鍵域ごとに異なる演奏パートを割り当てることもできる。CPU901は、ノートオンイベントが鍵盤100の押鍵操作により発生したこと、前記取得したノート番号NNなどから押鍵された鍵が属する演奏パートを表すパート番号PNを特定する。つぎにCPU901は、ステップS14にて、ボイスデータリストを参照して、前記ステップS12において特定したパートにわりあてられている対応する音色を特定するとともに、前記特定した音色の波形データ選択情報を参照して、前記取得したノート番号NNに対応する波形データを特定する。つぎに、CPU901は、ステップS16にて、前記特定した波形データの波形データ情報を参照して、動作モード情報を取得する。つぎにCPU901は、ステップS18にて、前記特定した波形データの波形データ情報から元ピッチを取得する。そして、前記取得したノート番号NN及び元ピッチを含むピッチ情報を生成する。つぎに、CPU901は、ステップS20にて、前記取得した動作モード情報に従って、必要な発音チャンネルを確保する。すなわち、前記取得した動作モード情報が表す動作モードが第1モードであれば、1つの発音チャンネルを確保し、第2モードであれば、2つの発音チャンネルを確保する。第2モードのときには、発音チャンネル番号が連続する2つの発音チャンネルを確保する。全発音チャンネルのうち、生成中の楽音信号の音量レベルが所定の小さな音量レベルよりも小さい発音チャンネル以下、空きチャンネルという。を、今回のノートオンイベントに対応した楽音を発生させるための発音チャンネルとして選択する。空きチャンネルがない場合は、所定の規則に従っていずれかの発音チャンネルを選択してトランケートする。例えば、音量レベルが最も小さい発音チャンネルを選択してトランケートする。また、最も古いノートオンイベントに対応して楽音信号を発生している発音チャンネルを選択してトランケートしてもよい。CPU901は、発音に必要な発音チャンネルを確保すると、ステップS22にて、発生させる楽音信号についての各種パラメータを前記ステップS20の処理により確保した発音チャンネルの予約レジスタ711に書き込む。すなわち、ステップS14において特定した音色のボイスデータから、エフェクトパラメータ、エンベロープパラメータ、波形データの先頭及び末尾アドレスなどを取得して、前記ステップS16において取得した動作モード情報及び前記ステップS18において生成したピッチ情報と共に予約レジスタ711に書き込む。ただし、第2モードにおいては、確保した2つの発音チャンネルの予約レジスタ711にそれぞれ同じパラメータを書き込む。さらに、CPU901は、予約レジスタ711に、前記確保した発音チャンネルにて発音開始することを表すキーオン情報を書き込む。そして、CPU901は、ステップS24にて、発音予約プログラムを終了する。これにより、1つのノートオンイベントについての発音の予約が完了する。音源回路700のチャンネル設定回路710は、予約レジスタ711にキーオン情報及び各種パラメータが書き込まれた発音チャンネルの音量レベルがダンプレベル以下になったことを検出すると、予約レジスタ711に書き込まれた各種パラメータを実時間制御レジスタにコピーする。そして、前記コピーした各種パラメータを対応する発音チャンネルに供給して発音処理を開始させる。つぎに、パラメータ更新の周期処理プログラムについて説明する。パラメータ更新の周期処理プログラムは、発音中の楽音の音高、音色及び音量を変化させるエンベロープを生成するためのパラメータなどを書き込むプログラムである。CPU901は、図12に示すステップS30にて、パラメータ更新の周期処理を開始すると、ステップS32にて、1つの発音チャンネルCHnn=0,1255を選択し、発音チャンネルCHn、発音チャンネルCHnにて発生中の楽音信号がトランケート処理中か否かの判定を行う。トランケート処理中である場合、後述のステップS36に進む。一方、トランケート処理中でない場合、CPU901は、ステップS34にて、実時間制御レジスタ712のパラメータを更新する。上記ステップS34のパラメータの書き込みの例としては、演奏者によるパネル操作子200、ペダル操作子300などの操作により発生する演奏情報及び外部インターフェース回路1100を介したMIDI対応の外部機器から送信された演奏情報に応じて、発音中の楽音の音高、音色、音量などを変化させる場合が挙げられる。これらの場合、CPU901は、前記演奏情報に応じて、対応する発音チャンネルのパラメータを実時間制御レジスタ712に書き込んで更新する。更新されたパラメータは、更新されなかった他のパラメータとともに、チャンネル設定回路710によって対応する発音チャンネルの処理期間に音源回路700を構成する各回路に出力される。CPU901は、発音チャンネルCHnに関するパラメータを更新すると、ステップS36にて、全ての発音チャンネルについてのパラメータの更新が終了したか否かの判定を行う。残りの発音チャンネルがあれば、ステップS32乃至ステップS34からなる処理を繰り返して、全ての発音チャンネルについてのパラメータの更新を行う。全ての発音チャンネルについてのパラメータの更新が終了すると、CPU901は、ステップS38にて、パラメータ更新の周期処理プログラムを終了する。つぎに、動作モードが第1モードであって、図4に示す波形データを元ピッチと同じピッチすなわち、ピッチ倍率が1.0で発音する発音チャンネルCHaただし、aは偶数の動作について図13を用いて説明する。まず、発音処理開始後の最初の再生周期である第1周期の発音チャンネルCHaについての処理開始時において、入力領域カウンタ更新回路748は、第1入力領域カウンタ743aのカウント値を0に初期化し、出力領域カウンタ更新回路749は、第1出力領域カウンタ744aのカウント値を2に初期化する。以下、第1周期以降の再生周期を、それぞれ第2周期、第3周期と呼ぶ。また、音高制御回路730は、処理済みデータ情報OLDCNTのフレームデータ番号をn、セグメントデータ番号を3、インデックス番号を1にそれぞれ初期化する。チャンネル設定回路710は、発音処理開始時に、フォーマットデータBPS、先頭のフレームデータFD0のデコードにおいて用いる線形予測係数C及び逆正規化係数Rをデコード回路750のパラメータメモリ752に書き込む。また、チャンネル設定回路710は、発音処理開始時に、初期波高値Diを波高値バッファSB1に書き込む。また、チャンネル設定回路710は、発音処理開始時に、波形データの先頭アドレスをセグメントデータ入力回路741に供給する。セグメントデータ入力回路741は、チャンネル設定回路710から供給された先頭アドレスに記憶されているセグメントデータを先頭とする2つのセグメントデータをキャッシュメモリCMaの領域CA0に読み込み、第1入力領域カウンタ743aをカウントアップする。これにより、第1入力領域カウンタ743aのカウント値が1になる。また、セグメントデータ入力回路741は、相対アドレスカウンタをカウントアップする。これにより、相対アドレスカウンタのカウント値が2になる。なお、図13においては、キャッシュメモリCMaに読み込んだ圧縮データの番号のみを示し、各再生周期においてデコードする圧縮データの番号を丸で囲んで示している。チャンネル設定回路710は、第1周期のデコード数を表すデコード数INCOをデコード回路750のセグメントデータ要求回路751に供給するが、このデコード数INCOの値は0であるので、第1周期においては、デコード回路750は波高値をデコードせず、補間回路760、フィルタ回路770及び音量制御回路780は動作しない。したがって、第1出力領域カウンタ744aのカウント値は更新されず、2のままである。また、音高制御回路730は、チャンネル設定回路710から、次の第2周期のデコード数INCO及び補間係数算出データFRACを入力する。このデコード数INCOの値は0であり、補間係数算出データFRACの値は、0である。また、上記のように、第1周期においては波高値をデコードしていないので、音高制御回路730は、処理済みデータ情報OLDCNTを更新しない。したがって、処理済みデータ情報OLDCNTは、初期化された状態のままである。すなわち、インデックスデータ番号は1であり、セグメントデータ番号は3であり、フレームデータ番号はnである。音高制御回路730は、上記のデコード数INCO及び処理済みデータ情報OLDCNT並びに補間係数算出データFRACを記憶していて、第2周期において、デコード数INCO及び処理済みデータ情報OLDCNTをデコード回路750に供給し、補間係数算出データFRACを補間回路760に供給する。つぎに、第2周期の動作について説明する。発音チャンネルCHaは偶数番号の発音チャンネルであるので、第2周期においては、セグメントデータ入力回路741はキャッシュメモリCMaに空きがあってもセグメントデータを読み込まない。したがって、第1入力領域カウンタ743aのカウント値は、1のままである。セグメントデータ要求回路751は、音高制御回路730から、デコード数INCO及び処理済みデータ情報OLDCNTを入力する。このデコード数INCOの値は0であるから、第2周期においても、デコード回路750は圧縮データをデコードしない。したがって、補間回路760、フィルタ回路770及び音量制御回路780は動作しない。また、第1出力領域カウンタ744aのカウント値は更新されず、2のままである。音高制御回路730は、デコード数INCO及び処理済みデータ情報OLDCNTをデコード回路750に供給し、補間係数算出データFRACを補間回路760に供給すると、チャンネル設定回路710から、第3周期のデコード数INCO及び補間係数算出データFRACを入力する。このデコード数INCOの値は、2であり、補間係数算出データFRACの値は、0である。また、上記のように、第2周期においては圧縮データをデコードしていないので、音高制御回路730は、処理済みデータ情報OLDCNTを更新しない。したがって、インデックスデータ番号は1、セグメントデータ番号は3、フレームデータ番号はnのままである。音高制御回路730は、上記のデコード数INCO及び処理済みデータ情報OLDCNT並びに補間係数算出データFRACを記憶していて、第3周期において、デコード数INCO及び処理済みデータ情報OLDCNTをデコード回路750に供給し、補間係数算出データFRACを補間回路760に供給する。つぎに、第3周期の動作について説明する。セグメントデータ入力回路741は、相対アドレスカウンタの値と先頭アドレスの値を用いて、入力するセグメントデータの絶対アドレスを算出する。第1入力領域カウンタ743aのカウント値が1であり、第1出力領域カウンタ744aのカウント値が2であるので、第1比較器747aは、キャッシュメモリCMaに空きがあることを表す信号をセグメントデータ入力回路741に供給する。したがって、セグメントデータ入力回路741は、第1入力領域カウンタ743aのカウント値に対応する領域CA1に、前記算出した絶対アドレスを先頭とする2つのセグメントデータを入力する。入力領域カウンタ更新回路748は、第1入力領域カウンタ743aを1回カウントアップする。これにより第1入力領域カウンタ743aのカウント値が2になる。また、セグメントデータ入力回路741は、相対アドレスカウンタを2回カウントアップする。これにより、相対アドレスカウンタのカウント値が4になる。セグメントデータ要求回路751は、音高制御回路730から、デコード数INCO及び処理済みデータ情報OLDCNTを入力する。このデコード数INCOの値は2であるから、第3周期において、デコード回路750は、2つの圧縮データをデコードする。まず、セグメントデータ要求回路751は、音高制御回路730から入力した処理済みデータ情報OLDCNTのうちのセグメントデータ番号を、カウンタ更新情報UPDとして、出力領域カウンタ更新回路749に供給する。このカウンタ更新情報UPDの値は3である。出力領域カウンタ更新回路749は、カウンタ更新情報UPDを比較レジスタに入力する。デコード回路750は、1つ目の波高値圧縮データのデコードを開始する。セグメントデータ要求回路751は、音高制御回路730から入力した処理済みデータ情報OLDCNTのうちのインデックス番号を1回インクリメントする。音高制御回路730から入力したインデックス番号が1であるので、上記のインクリメント処理によって、インデックス番号が2になる。本実施例においては、フォーマットデータBPSの値は2である。したがって、インデックス番号とフォーマットデータBPSの値が一致する。そこで、セグメントデータ要求回路751は、インデックス番号を0に設定し、セグメントデータ番号及びフレームデータ番号をそれぞれ1回ずつインクリメントする。これにより、セグメントデータ番号及びフレームデータ番号は、いずれも0になる。セグメントデータ要求回路751は、セグメントデータ出力回路742及び出力領域カウンタ更新回路749に、要求データ情報REQを供給する。セグメントデータ番号の値が0であるから、要求データ情報REQの値は0である。出力領域カウンタ更新回路749は、比較レジスタに入力したカウンタ更新情報UPD=3と要求データ情報REQ=0の第1ビットを比較する。すると、両者の値が異なっているので、出力領域カウンタ更新回路749は、第1出力領域カウンタ744aをカウントアップする。これにより、第1出力領域カウンタ744aのカウント値が0になる。そして、セグメントデータ出力回路742は、第1出力領域カウンタ744aのカウント値に対応する領域CA0に記憶された2つのセグメントデータのうち、要求データ情報REQの第0ビットの値に対応する下位アドレス側すなわち、領域CA00のセグメントデータをデータ取り出し回路753に供給する。そして、出力領域カウンタ更新回路749は、要求データ情報REQを比較レジスタに入力して記憶しておき、2つ目の波高値のデコードにおいてデコード回路750から供給される新たな要求データ情報REQと比較する。データ取り出し回路753は、前記供給されたセグメントデータから、インデックス番号に対応した圧縮データを取り出す。このとき、インデックス番号が0であるので、セグメントデータのLSB側の圧縮データZ0を取り出す。そして、取り出した圧縮データZ0をシフト演算回路754に供給する。また、データ取り出し回路753は、前記供給されたセグメントデータからパラメータP0を取り出して、図示しないバッファメモリに記憶しておく。シフト演算回路754はパラメータメモリ752から逆正規化係数Rを読み込んで、圧縮データZ0を逆正規化係数Rの値だけシフトアップして、残差データを算出する。また、乗算器755は、パラメータメモリ752から線形予測係数Cを読み込み、遅延メモリDM1から初期波高値Diを読み込む。そして、線形予測係数Cと初期波高値Diを乗算して予測値を算出し、加算器756に供給する。加算器756は、シフト演算回路754から供給された残差データと乗算器755から供給された予測値とを加算して、波高値D0を算出して、波高値出力回路757に供給する。波高値出力回路757は、初期波高値Diを遅延メモリDM2に記憶し、波高値D0を遅延メモリDM1に記憶する。つぎに、デコード回路750は、2つ目の圧縮データのデコードを開始する。まず、セグメントデータ要求回路751は、インデックス番号を1回インクリメントする。これにより、インデックス番号は1になる。このインデックス番号は、フォーマットデータBPSの値とは異なるため、セグメントデータ番号及びフレームデータ番号は0のままである。したがって、上記の1つ目の圧縮データのデコードのときと同様に、要求データ情報REQの値は0である。キャッシュ回路740の出力領域カウンタ更新回路749は、比較レジスタに記憶した1つ目の要求データ情報REQ=0の第1ビットと2つ目の要求データ情報REQ=0の第1ビットの値が同じなので、第1出力領域カウンタ744aを更新しない。また、セグメントデータ出力回路742は、要求データ情報REQの値が1つ目の圧縮データのデコードのときと同じなので、1つ目の圧縮データのデコードのときと同じセグメントデータをデータ取り出し回路753に供給する。このときのインデックス番号が1であるから、データ取り出し回路753は、前記供給されたセグメントデータのMSB側の圧縮データZ1を取り出す。そして、1つ目の圧縮データのデコードと同様に、シフト演算回路754、乗算器755及び加算器756は、パラメータメモリ752に記憶されている線形予測係数C及び逆正規化係数R並びに遅延メモリDM1に記憶されている波高値D0を用いて波高値D1をデコードする。波高値出力回路757は、遅延メモリDM2及び遅延メモリDM1にそれぞれ記憶していた初期波高値Di及び波高値D0を、それぞれ遅延メモリDM3及び遅延メモリDM2に記憶するとともに、波高値D1を遅延メモリDM1に記憶する。この第3周期までに2つの圧縮データをデコードすることにより、2つの波高値を算出している。補間回路760において補間演算するためには4つの波高値を供給する必要があるが、上記のように2つの波高値しか算出していないので、波高値出力回路757は、この第3周期においては、波高値を補間回路760へ供給しない。そして、遅延メモリDM1~DM3に記憶している各波高値を波高値バッファSB1~SB3に転送して、次の再生周期まで記憶しておく。上記のように、デコード回路750から補間回路760に波高値が供給されないので、補間回路760は動作しない。音高制御回路730は、デコード数INCO及び処理済みデータ情報OLDCNTをデコード回路750に供給し、補間係数算出データFRACを補間回路760に供給すると、チャンネル設定回路710から、第4周期のデコード数INCO及び補間係数算出データFRACを入力する。このデコード数INCOの値は1であり、補間係数算出データFRACの値は0である。また、第3周期においては2つの圧縮データをデコードしたため、音高制御回路730は、処理済みデータ情報OLDCNTを構成するインデックス番号を2回インクリメントする。これにより、インデックス番号が1になる。セグメントデータ番号及びフレームデータ番号は0のままである。音高制御回路730は、上記のデコード数INCO及び処理済みデータ情報OLDCNT並びに補間係数算出データFRACを記憶していて、第4周期において、デコード数INCO及び処理済みデータ情報OLDCNTをデコード回路750に供給し、補間係数算出データFRACを補間回路760に供給する。つぎに第4周期の動作について説明する。セグメントデータ入力回路741は、第2周期と同様に、この第4周期においても、セグメントデータを読み込まない。したがって、第1入力領域カウンタ743aのカウント値は、2のままである。セグメントデータ要求回路751は、音高制御回路730から、デコード数INCO及び処理済みデータ情報OLDCNTを入力する。このデコード数INCOの値は1であるから、第4周期においては、デコード回路750は、1つの波高値をデコードする。まず、波高値出力回路757は、波高値バッファSB1~SB3に記憶しておいた波高値を遅延メモリDM1~DM3に読み込む。これにより、遅延メモリDM1、遅延メモリDM2及び遅延メモリDM3には、それぞれ波高値D1、波高値D0及び初期波高値Diが記憶される。セグメントデータ要求回路751は、第3周期と同様に、セグメントデータ番号を、カウンタ更新情報UPDとして、出力領域カウンタ更新回路749に供給する。音高制御回路730から入力したセグメントデータ番号は0であるので、カウンタ更新情報UPDの値は0である。セグメントデータ要求回路751は、インデックス番号をインクリメントする。音高制御回路730から供給されたインデックス番号は、1であるから、上記のインクリメント処理によって、インデックス番号が2になるが、この値は、フォーマットデータBPSと同じ値であるから、セグメントデータ要求回路751は、インデックス番号を0に設定し、セグメントデータ番号を1回インクリメントする。これにより、セグメントデータ番号が1になる。なお、フレームデータ番号は、0のままである。したがって、キャッシュ回路740の出力領域カウンタ更新回路749に供給される要求データ情報REQの値は1である。カウンタ更新情報UPD=0と要求データ情報REQ=1の第1ビット値が同じであるから、出力領域カウンタ更新回路749は、第1出力領域カウンタ744aを更新しない。すなわち、第1出力領域カウンタ744aのカウント値は0のままである。したがって、セグメントデータ出力回路742は、第1出力領域カウンタ744aのカウント値に対応する領域CA0に記憶された2つのセグメントデータのうち、要求データ情報REQの第0ビットの値に対応する上位アドレス側すなわち、領域CA01のセグメントデータをデータ取り出し回路753に供給する。このときインデックス番号が0であるから、データ取り出し回路753は、前記供給されたセグメントデータのLSB側の圧縮データZ2を取り出してシフト演算回路754へ供給する。また、データ取り出し回路753は前記供給されたセグメントデータからパラメータP1を取り出して図示しないバッファメモリに記憶する。そして、第3周期と同様に、シフト演算回路754、乗算器755及び加算器756は、波高値D2を算出する。波高値出力回路757は、遅延メモリDM1、遅延メモリDM2及び遅延メモリDM3に記憶していた波高値D1、波高値D0及び初期波高値Diをそれぞれ遅延メモリDM2、遅延メモリDM3及び遅延メモリDM4に記憶するとともに、波高値D2を遅延メモリDM1に記憶する。そして、波高値出力回路757は、遅延メモリDM1~DM4に記憶している波高値を補間回路760に供給する。そして、波高値出力回路757は、遅延メモリDM1~DM3に記憶している波高値を波高値バッファSB1~SB3に記憶する。補間回路760は、音高制御回路730から補間係数算出データFRACを入力する。この補間係数算出データFRACの値が0であるから、補間回路760は、波高値D0を初期波高値W0としてフィルタ回路770に供給する。フィルタ回路770は、供給された波高値D0をフィルタ処理し、音量制御回路780に出力する。音量制御回路780は、変調信号発生回路720から供給されるエンベロープ信号及び低周波信号に応じて音量を変更して、チャンネル累算回路790に出力する。音高制御回路730は、デコード数INCO及び処理済みデータ情報OLDCNTをデコード回路750に供給し、補間係数算出データFRACを補間回路760に供給すると、第5周期のデコード数INCO及び補間係数算出データFRACを算出する。音高制御回路730は、第4周期以降の各再生周期においてピッチ倍率を累算し、ピッチ倍率の累算結果から次の再生周期のデコード数INCO及び補間係数算出データFRACを算出する。ここで、第3周期におけるピッチ倍率の累算値を0とする。この例においてはピッチ倍率が1.0であるから、第4周期におけるピッチ倍率の累算値は1.0であり、整数部の増加分は1である。すなわち、第5周期におけるデコード数INCOの値は1である。また、補間係数算出データFRACの値は0である。この例においては、ピッチ倍率が1.0であるから、第6周期以降の各再生周期において算出されるデコード数INCOも1であり、補間係数算出データFRACも0である。なお、図13においては、音高制御回路730がピッチ倍率の累算値を算出した再生周期の次の周期に、その算出結果を記載している。すなわち、その累算値に対応する波高値が補間回路760から出力される再生周期にピッチ倍率の累算値を記載している。また、第4周期においては1つの圧縮データをデコードしたので、音高制御回路730は、処理済みデータ情報OLDCNTを構成するインデックス番号を1回インクリメントする。これにより、インデックス番号が2になるが、この値はフォーマットデータBPSの値と同じであるから、音高制御回路730は、インデックス番号を0に設定し、セグメントデータ番号を1回インクリメントする。これにより、セグメントデータ番号が1になる。なお、フレームデータ番号は、0のままである。音高制御回路730は、上記のデコード数INCO及び処理済みデータ情報OLDCNT並びに補間係数算出データFRACを記憶していて、第5周期において、デコード数INCO及び処理済みデータ情報OLDCNTをデコード回路750に供給し、補間係数算出データFRACを補間回路760に供給する。つぎに、第5周期の動作について説明する。セグメントデータ入力回路741は、相対アドレスカウンタの値と先頭アドレスの値を用いて、波形メモリWMから入力するセグメントデータの絶対アドレスを算出する。第5周期の開始時において、第1入力領域カウンタ743aのカウント値が2であり、第1出力領域カウンタ744aのカウント値が0である。両カウンタのカウント値が異なるため、セグメントデータ入力回路741は、第1入力領域カウンタ743aのカウント値に対応する領域CA2に、前記算出した絶対アドレスを先頭とする2つのセグメントデータを読み込む。そして、第1入力領域カウンタ743aをカウントアップする。第1入力領域カウンタ743aは3進カウンタ回路であるため、カウント値は0になる。また、相対アドレスカウンタを2回カウントアップする。これにより、相対アドレスカウンタのカウント値が6になる。セグメントデータ要求回路751は、音高制御回路730から、デコード数INCO及び処理済みデータ情報OLDCNTを入力する。このデコード数INCOの値が1であるから、この第5周期においては、デコード回路750は、1つの圧縮データをデコードする。まず、波高値出力回路757は、波高値バッファSB1~SB3に記憶しておいた波高値を遅延メモリDM1~DM3に読み込む。これにより、遅延メモリDM1、遅延メモリDM2及び遅延メモリDM3には、それぞれ波高値D2、波高値D1及び波高値D0が記憶される。セグメントデータ要求回路751は、上記の第4周期と同様に、音高制御回路730から供給された処理済みデータ情報OLDCNTを用いて、カウンタ更新情報UPD及び要求データ情報REQを出力領域カウンタ更新回路749に供給するとともに、要求データ情報REQをセグメントデータ出力回路742に供給する。カウンタ更新情報UPDは、1であり、要求データ情報REQは1である。したがって、第1出力領域カウンタ744aのカウント値は、0のままである。また、要求データ情報REQの算出において、インデックス番号は1になる。セグメントデータ出力回路742は、要求データ情報REQの第0ビットに対応したセグメントデータをデータ取り出し回路753に供給する。このときインデックス番号が1であるから、データ取り出し回路753は、前記供給されたセグメントデータのMSB側の圧縮データZ3を取り出してシフト演算回路754へ供給する。そして、第4周期と同様に、シフト演算回路754、乗算器755及び加算器756は、協働して波高値D3を算出する。そして、波高値出力回路757は、遅延メモリDM1、遅延メモリDM2及び遅延メモリDM3に記憶していた波高値D2、波高値D1及び波高値D0をそれぞれ遅延メモリDM2、遅延メモリDM3及び遅延メモリDM4に記憶するとともに、波高値D3を遅延メモリDM1に記憶する。そして、波高値出力回路757は、遅延メモリDM1~DM4に記憶している波高値を補間回路760に供給する。そして、波高値出力回路757は、遅延メモリDM1~DM3に記憶している波高値を波高値バッファSB1~SB3に記憶する。補間回路760は、第4周期と同様に、波高値D1を波高値W1としてフィルタ回路770に供給する。フィルタ回路770及び音量制御回路780の動作は、第4周期と同様である。また、音高制御回路730は、デコード数INCO及び処理済みデータ情報OLDCNTをデコード回路750に供給し、補間係数算出データFRACを補間回路760に供給すると、第6周期のデコード数INCO及び補間係数算出データFRACを算出する。デコード数INCOは1であり、補間係数算出データFRACは0である。また、第5周期においては、1つの圧縮データをデコードしたので、音高制御回路730は、処理済みデータ情報OLDCNTを構成するインデックス番号を1回インクリメントする。これにより、インデックス番号が1になる。セグメントデータ番号は1のままであり、フレーム番号も0のままである。そして、音高制御回路730は、上記のデコード数INCO及び処理済みデータ情報OLDCNT並びに補間係数算出データFRACを記憶していて、第6周期において、デコード数INCO及び処理済みデータ情報OLDCNTをデコード回路750に供給し、補間係数算出データFRACを補間回路760に供給する。つぎに、第6周期の動作について説明する。セグメントデータ入力回路741は、第2周期と同様に、この第6周期においても、セグメントデータを読み込まない。したがって、第1入力領域カウンタ743aのカウント値は、0のままである。セグメントデータ要求回路751は、音高制御回路730から、デコード数INCO及び処理済みデータ情報OLDCNTを入力する。このデコード数INCOの値が1であるから、この第6周期においても、デコード回路750は、1つの圧縮データをデコードする。まず、波高値出力回路757は、波高値バッファSB1~SB3に記憶しておいた波高値を遅延メモリDM1~DM3に読み込む。これにより、遅延メモリDM1、遅延メモリDM2及び遅延メモリDM3には、それぞれ波高値D3、波高値D2及び初期波高値D1が記憶される。セグメントデータ要求回路751は、上記の第5周期と同様に、音高制御回路730から供給された処理済みデータ情報OLDCNTを用いて、カウンタ更新情報UPD及び要求データ情報REQを出力領域カウンタ更新回路749に供給するとともに、要求データ情報REQをセグメントデータ出力回路742に供給する。カウンタ更新情報UPDは、1であり、要求データ情報REQは2である。したがって、出力領域カウンタ更新回路749は、第1出力領域カウンタ744aを1回カウントアップする。これにより、カウント値が1になる。そして、セグメントデータ出力回路742は、第1出力領域カウンタ744aのカウント値及び要求データ情報REQの第0ビットに対応する領域CA10のセグメントデータを供給する。また、要求データ情報REQの算出において、インデックス番号は0となっている。そこで、データ取り出し回路753は、前記供給されたセグメントデータのLSB側の圧縮データZ4を取り出す。また、データ取り出し回路753は、前記供給されたセグメントデータからパラメータP2を取り出してバッファメモリに書き込む。そして、第5周期と同様に、シフト演算回路754、乗算器755及び加算器756は、波高値D4をデコードする。波高値出力回路757は、遅延メモリDM1、遅延メモリDM2及び遅延メモリDM3に記憶していた波高値D3、波高値D2及び波高値D1をそれぞれ遅延メモリDM2、遅延メモリDM3及び遅延メモリDM4に記憶するとともに、波高値D4を遅延メモリDM1に記憶する。そして、波高値出力回路757は、遅延メモリDM1~DM4に記憶している波高値を補間回路760に供給する。そして、波高値出力回路757は、遅延メモリDM1~DM3に記憶している波高値を波高値バッファSB1~SB3に記憶する。補間回路760は、第5周期と同様に、波高値D2を波高値W2としてフィルタ回路770に供給する。フィルタ回路770及び音量制御回路780の動作は、第4周期と同様である。また、音高制御回路730は、デコード数INCO及び処理済みデータ情報OLDCNTをデコード回路750に供給し、補間係数算出データFRACを補間回路760に供給すると、第7周期のデコード数INCO及び補間係数算出データFRACを算出する。デコード数INCOは1であり、補間係数算出データFRACは0である。また、第6周期においても、1つの圧縮データをデコードしたので、音高制御回路730は、処理済みデータ情報OLDCNTを構成するインデックス番号を1回インクリメントする。これにより、インデックス番号が0になり、セグメントデータ番号が2になる。なお、フレーム番号は0のままである。そして、音高制御回路730は、上記のデコード数INCO及び処理済みデータ情報OLDCNT並びに補間係数算出データFRACを記憶していて、第7周期において、デコード数INCO及び処理済みデータ情報OLDCNTをデコード回路750に供給し、補間係数算出データFRACを補間回路760に供給する。第6周期に続く第7周期及び第8周期における動作も、上記の第5周期及び第6周期と同様である。すなわち、第7周期においては、領域CA0にセグメントデータを読み込むとともに、圧縮データZ5を用いて波高値D5を算出する。そして、第8周期においては、偶数番目の再生周期なのでセグメントデータの読み込みはしない。また、第8周期においては、圧縮データZ6を用いて波高値D6を算出する。つぎの第9周期の開始時においては、第1入力領域カウンタ743aと第1出力領域カウンタ744aのカウント値がいずれも1となる。そのため、第9周期においては、セグメントデータ入力回路741はセグメントデータを読み込まない。なお、デコード回路750は、第5周期乃至第8周期と同様に、圧縮データZ7を用いて波高値D7を算出する。そして、第10周期において、圧縮データZ8を用いて波高値D8を算出し、第1出力領域カウンタ744aのカウント値が進む。第11周期の開始時には、第1入力領域カウンタ743aと第1出力領域カウンタ744aのカウント値は異なるため、セグメントデータ入力回路741はセグメントデータを読み込む。なお、上記の第1周期から第6周期の説明においては、チャンネル設定回路710によってパラメータメモリ752に書き込まれた線形予測係数C及び逆正規化係数Rを用いている。しかし、チャンネル設定回路710よってパラメータメモリ752に書き込まれた線形予測係数C及び逆正規化係数Rを用いるのは、フレームデータFD0をデコードするときだけである。フレームデータFD1以降のデコードにおいては、1つ前のフレームデータのデコードにおいて、データ取り出し回路753によって取り出してパラメータメモリ752に記憶しておいた線形予測係数C及び逆正規化係数Rを用いる。上記の例では、第9周期において、フレームデータFD0のデコードが終了し、第10周期においてフレームデータFD1のデコードを開始する。データ取り出し回路753は、第9周期の終了時に、図示しないバッファメモリに記憶しておいたパラメータP0~P2を用いて、フレームデータFD1のデコードに用いる線形予測係数Cを算出して、パラメータメモリ752に書き込む。また、データ取り出し回路753は、バッファメモリに記憶しておいたパラメータP3を、フレームデータFD1のデコードに用いる逆正規化係数Rとして、パラメータメモリ752に書き込む。つぎに、動作モードが第1モードであって、図14に示す波形データを元ピッチの1.7倍のピッチで発音する発音チャンネルCHaただし、aは偶数の動作について説明する。第1周期から第3周期までの動作は、上記のピッチ倍率が1.0である場合と同じである。また、第4周期において波高値D0をデコードする動作もピッチ倍率が1.0である場合と同じである。なお、図14においても、図13と同様に、キャッシュメモリCMaに読み込んだ圧縮データの番号のみを示し、各再生周期において波高値をデコードするために用いる圧縮データの番号を丸で囲んで示している。第4周期における音高制御回路730の動作のうち、第5周期のデコード数INCO及び補間係数算出データFRACの算出について説明する。このピッチ倍率が1.7である例においても、ピッチ倍率が1.0である場合と同様に、音高制御回路730は、第4周期以降の各再生周期においてピッチ倍率を累算し、ピッチ倍率の累算結果からデコード数INCO及び補間係数算出データFRACを算出する。音高制御回路730は、第4周期において、デコード数INCO及び処理済みデータ情報OLDCNTをデコード回路750に供給し、補間係数算出データFRACを補間回路760に供給すると、第5周期のデコード数INCO及び補間係数算出データFRACを算出する。したがって、第4周期におけるピッチ倍率の累算値は1.7であり、整数部の増加分は1である。すなわち、第5周期におけるデコード数INCOの値は1である。また、補間係数算出データFRACの値は0.7である。なお、図14においても、図13と同様に、音高制御回路730がピッチ倍率の累算値を算出した再生周期の次の周期に、その算出結果を記載している。また、第4周期においては1つの圧縮データをデコードしたので、音高制御回路730は、処理済みデータ情報OLDCNTを構成するインデックス番号をインクリメントする。これにより、インデックス番号が0になり、セグメントデータ番号が1になる。なお、フレームデータ番号は、0のままである。音高制御回路730は、上記のデコード数INCO及び処理済みデータ情報OLDCNT並びに補間係数算出データFRACを記憶していて、第5周期において、デコード数INCO及び処理済みデータ情報OLDCNTをデコード回路750に供給し、補間係数算出データFRACを補間回路760に供給する。つぎに、第5周期の動作について説明する。セグメントデータ入力回路741の動作は、ピッチ倍率が1.0の場合と同様である。デコード回路750は、上記のピッチ倍率が1.0である場合と同様に、圧縮データZ3を用いて、波高値D3を算出する。波高値出力回路757は、波高値D3~D0を補間回路760に供給する。補間回路760は、音高制御回路730から補間係数算出データFRACを入力する。上記のように、この補間係数算出データFRACの値は0.7である。補間回路760は、波高値D3~波高値D0及び補間係数算出データFRACを用いて補間演算し、ピッチ累算値=1.7に対応する波高値W1を算出する。そして、波高値W1をフィルタ回路770へ供給する。フィルタ回路770以降の動作は、ピッチ倍率が1.0である場合と同様である。また、音高制御回路730は、デコード数INCO及び処理済みデータ情報OLDCNTをデコード回路750に供給し、補間係数算出データFRACを補間回路760に供給すると、第6周期のデコード数INCO及び補間係数算出データFRACを算出する。ピッチ倍率の累算値は3.4であるので、デコード数INCOは2であり、補間係数算出データFRACは0.4である。また、第5周期においては1つの波高値をデコードしたので、音高制御回路730は、処理済みデータ情報OLDCNTを構成するインデックス番号を1回インクリメントする。これにより、インデックス番号が1になる。セグメントデータ番号は1であり、フレーム番号は0である。音高制御回路730は、上記のデコード数INCO及び処理済みデータ情報OLDCNT並びに補間係数算出データFRACを記憶していて、第6周期において、デコード数INCO及び処理済みデータ情報OLDCNTをデコード回路750に供給し、補間係数算出データFRACを補間回路760に供給する。つぎに、第6周期の動作について説明する。セグメントデータ入力回路741は、ピッチ倍率が1.0の場合と同様に、セグメントデータを読み込まない。セグメントデータ要求回路751は、音高制御回路730からデコード数INCO及び処理済みデータ情報OLDCNTを入力する。このデコード数INCOの値は2であるから、この第6周期においては、デコード回路750は、2つの圧縮データをデコードする。すなわち、波高値D4及び波高値D5を算出する。この波高値D4及び波高値D5の算出についてもピッチ倍率が1.0の場合と同様である。すなわち、セグメントデータ要求回路751は、音高制御回路730から供給された処理済みデータ情報OLDCNTを用いて、カウンタ更新情報UPD及び要求データ情報REQを出力領域カウンタ更新回路749に供給するとともに、要求データ情報REQをセグメントデータ出力回路742に供給する。そして、デコード回路750は、セグメントデータ出力回路742から供給されたセグメントデータから、インデックス番号に対応する圧縮データを取り出して、前記取り出した圧縮データを用いて波高値を算出する。1つ目の波高値すなわち波高値D4の算出において、第1出力領域カウンタ744bのカウント値が1になり、2つ目の波高値すなわち波高値D5の算出においては、第1出力領域カウンタ744bのカウント値は更新されず、1のままである。そして、波高値D5~波高値D2を補間回路760に供給する。補間回路760は、音高制御回路730から補間係数算出データFRACを入力する。上記のように、この補間係数算出データFRACの値は0.4である。補間回路760は、波高値D5~D2及び補間係数算出データFRACを用いて補間演算し、ピッチ倍率の累算値=3.4に対応する波高値W2を算出する。そして、波高値W2をフィルタ回路770へ供給する。フィルタ回路770及びその後段の回路の動作は、上記のピッチ倍率が1.0である例と同様である。また、音高制御回路730は、デコード数INCO及び処理済みデータ情報OLDCNTをデコード回路750に供給し、補間係数算出データFRACを補間回路760に供給すると、第7周期のデコード数INCO及び補間係数算出データFRACを算出する。第6周期においては2つの圧縮データをデコードしたため、音高制御回路730は、処理済みデータ情報OLDCNTを構成するインデックス番号を2回インクリメントする。これにより、インデックス番号は1、セグメント番号は2になる。フレーム番号は0のままである。そして、音高制御回路730は、音高制御回路730は、上記のデコード数INCO及び処理済みデータ情報OLDCNT並びに補間係数算出データFRACを記憶していて、第7周期において、デコード数INCO及び処理済みデータ情報OLDCNTをデコード回路750に供給し、補間係数算出データFRACを補間回路760に供給する。第6周期以降の動作も、上記の第5周期又は第6周期と同様である。すなわち、第7周期以降の各周期のピッチ倍率の累算値は、5.1、6.8、8.5、10.2、11.9であり、デコード数INCOは、2、1、2、2、1である。そして、各周期において、キャッシュメモリCMaに空きがあるときには、波形メモリWMからセグメントデータを読み込み、第1入力領域カウンタ743aをカウントアップする。また、算出されたデコード数INCOに応じて、1つ又は2つの圧縮データをデコードし、デコードする圧縮データが記憶されている領域CA0~CA1が変わるごとに第1出力領域カウンタ744bをカウントアップする。例えば、第7周期においては、領域CA0にセグメントデータを読み込むとともに、圧縮データZ6及び圧縮データZ7を用いて波高値D6及び波高値D7をそれぞれ算出する。これにより、第1入力領域カウンタ743aのカウント値が1になるが、第1出力領域カウンタ744bのカウント値は1のままである。また、例えば、第8周期においては、偶数番目の再生周期なのでセグメントデータの読み込みはしない。したがって、第1入力領域カウンタ743aのカウント値は1のままである。また、第8周期においては、1つの圧縮データZ8を用いて波高値D8を算出する。これにより、第1出力領域カウンタ744bのカウント値は、2になる。上記のピッチ倍率が1.0の場合は、第9周期の開始時において、第1入力領域カウンタ743aと第1出力領域カウンタ744aのカウント値が同じ値となっているため、第9周期においては、セグメントデータ入力回路741はセグメントデータをキャッシュメモリCMaに読み込まない。しかし、ピッチ倍率が1.7の場合の第6周期及び第7周期のデコード数は、ピッチ倍率が1.0の場合の第6周期及び第7周期のデコード数よりも多い。したがって、ピッチ倍率が1.7の場合、ピッチ倍率が1.0の場合に比べて第1出力領域カウンタ744aのカウント値が速く進むので、第9周期の開始時において第1入力領域カウンタ743aと第1出力領域カウンタ744aのカウント値が異なっている。したがって、セグメントデータ入力回路741は、第9周期においても、セグメントデータをキャッシュメモリCMaに読み込む。第10周期以降の動作も上記の第5周期~第9周期の動作と同様である。なお、ピッチ倍率が1.7の場合、第7周期において、フレームデータFD0のデコードが終了し、第8周期においてフレームデータFD1のデコードを開始する。したがって、第8周期以降のフレームデータFD1のデコードにおいては、フレームデータFD0のデコードにおいて、パラメータメモリ752に記憶した線形予測係数C及び逆正規化係数Rを用いる。つぎに、動作モードが第2モードであって、図4に示す波形データを元ピッチの3.7倍のピッチで発音する発音チャンネルCHa及び発音チャンネルCHbの動作について図15を用いて説明する。ただし、aは偶数であり、bはaに1を加算した値である。この場合、発音チャンネルCHaのキャッシュメモリCMa及び発音チャンネルCHbのキャッシュメモリCMbは、キャッシュメモリCMabとして一体的に用いられ、キャッシュメモリCMabは、それぞれ2ワードの記憶領域を有する領域CA0~CA5に区分される。また、発音チャンネルCHbの処理においては、発音チャンネルCHaのパラメータを用いる。すなわち、発音チャンネルCHbの処理において、発音チャンネルCHa用として記憶されている、相対アドレスカウンタのカウント値、入力領域カウンタメモリ745のカウント値、出力領域カウンタメモリ746のカウント値、処理済みデータ情報OLDCNT、フォーマットデータBPS、線形予測係数C、逆正規化係数R及び波高値バッファSB1~SB3に書き込まれた波高値を用いる。ただし、デコード数INCOについては、発音チャンネルCHa及び発音チャンネルCHbごとに算出する。まず、第1周期における発音チャンネルCHaの動作について説明する。入力領域カウンタ更新回路748は、第2入力領域カウンタ743bのカウント値を0に初期化する。また、出力領域カウンタ更新回路749は、第2出力領域カウンタ744bのカウント値を5に初期化する。また、音高制御回路730は、フレームデータ番号をn、セグメントデータ番号を3、インデックス番号を1にそれぞれ初期化する。音高制御回路730は、第1周期の開始時に処理済みデータ情報OLDCNTを初期化する。すなわち、フレームデータ番号をn、セグメントデータ番号を3、インデックスデータ番号を1に設定する。セグメントデータ入力回路741は、第1モードにおける第1入力領域カウンタ743a及び第1出力領域カウンタ744aに代えて第2入力領域カウンタ743b及び第2出力領域カウンタ744bを用いるが、他の動作は、ピッチ倍率が1.0の場合の第1周期の動作と同様である。すなわち、セグメントデータ入力回路741は、波形メモリWMから先頭の2つのセグメントデータを領域CA0に読み込む。これにより、第2入力領域カウンタ743bのカウント値は1になる。また、デコード回路750及びその後段の回路は動作しない。また、第1周期においては圧縮データをデコードしていないので、音高制御回路730は、処理済みデータ情報OLDCNTを更新しない。なお、図15においても、図13と同様に、キャッシュメモリCMabに読み込んだ圧縮データの番号のみを示し、各再生周期においてデコードする圧縮データの番号を丸で囲んで示している。つぎに、第1周期における発音チャンネルCHbの動作について説明する。発音チャンネルCHbは、奇数番号の発音チャンネルであるので、第1周期においては、セグメントデータ入力回路741は、キャッシュメモリCMabに空きがあってもセグメントデータを読み込まない。セグメントデータ要求回路751は、第1周期における発音チャンネルCHbの処理の開始時に、チャンネル設定回路710から、第1周期のデコード数INCOを入力するが、このデコード数INCOの値は0であるので、デコード回路750及びその後段に接続された回路は動作しない。また、音高制御回路730は、第2周期のデコード数INCO及び補間係数算出データFRACをチャンネル設定回路710から入力する。このデコード数INCOの値は、0であり、補間係数算出データFRACの値は、0である。また、上記のように、第1周期においては圧縮データをデコードしていないので、音高制御回路730は、処理済みデータ情報OLDCNTを更新しない。音高制御回路730は、上記のデコード数INCO及び処理済みデータ情報OLDCNT並びに補間係数算出データFRACを記憶していて、第2周期の発音チャンネルCHbの処理において、デコード数INCO及び処理済みデータ情報OLDCNTをデコード回路750に供給し、補間係数算出データFRACを補間回路760に供給する。つぎに、第2周期における発音チャンネルCHaの動作について説明する。この第2周期の発音チャンネルCHaの動作も第1モードと同様である。すなわち、音高制御回路730が第3周期のデコード数INCO及び補間係数算出データFRACを、チャンネル設定回路710から入力して記憶するだけで、他の回路は動作しない。なお、このデコード数INCOの値は2であり、補間係数算出データFRACの値は0である。つぎに、第2周期における発音チャンネルCHbの動作について説明する。セグメントデータ入力回路741は、相対アドレスカウンタの値と先頭アドレスの値を用いて、入力するセグメントデータの絶対アドレスを算出する。第2入力領域カウンタ743bのカウント値が1であり、第2出力領域カウンタ744bの値が5であるので、第2比較器747bは、キャッシュメモリCMabに空きがあることを表す信号をセグメントデータ入力回路741に供給する。したがって、セグメントデータ入力回路741は、第2入力領域カウンタ743bのカウント値に対応する領域CA1に、前記算出したアドレスを先頭とする2つのセグメントデータを入力する。そして入力領域カウンタ更新回路748は、第2入力領域カウンタ743bを1回カウントアップする。これにより第2入力領域カウンタのカウント値が2になる。また、セグメントデータ入力回路741は、相対アドレスカウンタを2回カウントアップする。これにより、相対アドレスカウンタのカウント値が、4になる。セグメントデータ要求回路751は、第2周期における発音チャンネルCHbの処理の開始時に、音高制御回路730から第2周期のデコード数INCOを入力するが、このデコード数INCOの値は0であるので、デコード回路750及びその後段に接続された回路は動作しない。また、音高制御回路730は、デコード数INCO及び処理済みデータ情報OLDCNTをデコード回路750に供給し、補間係数算出データFRACを補間回路760に供給すると、チャンネル設定回路710から、第3周期のデコード数INCO及び補間係数算出データFRACを入力する。このデコード数INCOの値は2であるが、第2モードにおいては、チャンネル設定回路710から入力したデコード数INCOは発音チャンネルCHa及び発音チャンネルCHbにてデコードする波高値の合計を表している。上記のように、第3周期の発音チャンネルCHaのデコード数INCOの値が2であるので、発音チャンネルCHbのデコード数INCOは0である。また、補間係数算出データの値は、0である。また、上記のように、第2周期においては圧縮データをデコードしていないので、音高制御回路730は、処理済みデータ情報OLDCNTを更新しない。音高制御回路730は、上記のデコード数INCO、処理済みデータ情報OLDCNT及び補間係数算出データFRACを記憶していて、第3周期における発音チャンネルCHbの処理において、デコード回路750及び補間回路760に供給する。つぎに、第3周期における発音チャンネルCHaの動作について説明する。セグメントデータ入力回路741は、第1周期と同様に、領域CA2に2つのセグメントデータを入力する。これにより、第2入力領域カウンタ743bのカウント値が3になり、相対アドレスカウンタのカウント値が6になる。デコード回路750は、上記のピッチ倍率が1.0の場合の第3周期と同様に、2つの波高値D0及び波高値D1を算出する。これにより第2出力領域カウンタ744bのカウント値は0になる。波高値D1、波高値D0及び初期波高値Diはそれぞれ波高値バッファSB1、波高値バッファSB2及び波高値バッファSB3に記憶される。また、第2モードの発音チャンネルCHaにおいては、波高値は補間回路760に供給されないので、補間回路760、フィルタ回路770及び音量制御回路780は動作しない。音高制御回路730は、デコード数INCO及び処理済みデータ情報OLDCNTをデコード回路750に供給し、補間係数算出データFRACを補間回路760に供給すると、チャンネル設定回路710から、第4周期のデコード数INCO及び補間係数算出データFRACを入力する。このデコード数INCOの値は、1である。また、第3周期においては2つの圧縮データをデコードしたので、音高制御回路730は、処理済みデータ情報OLDCNTを構成するインデックス番号を2回インクリメントする。これにより、インデックス番号が1になる。セグメントデータ番号及びフレームデータ番号は0のままである。音高制御回路730は、音高制御回路730は、上記のデコード数INCO及び処理済みデータ情報OLDCNT並びに補間係数算出データFRACを記憶していて、第4周期の発音チャンネルCHaの処理において、デコード数INCO及び処理済みデータ情報OLDCNTをデコード回路750に供給し、補間係数算出データFRACを補間回路760に供給する。つぎに、第3周期における発音チャンネルCHbの動作について説明する。発音チャンネルCHbは、奇数番号の発音チャンネルであるので、セグメントデータ入力回路741は、セグメントデータを読み込まない。また、波高値出力回路757は、波高値バッファSB1~SB3に記憶されている波高値を遅延メモリDM1~DM3に読み込む。セグメントデータ要求回路751は、音高制御回路730からデコード数INCO及び処理済みデータ情報OLDCNTを入力するが、デコード数INCOが0であるので、デコード回路750は圧縮データをデコードしない。第2出力領域カウンタ744bのカウント値も更新されず、0のままである。また、第3周期までに算出した波高値は、2つであるので、波高値出力回路757は、波高値を補間回路760へ供給しない。したがって、補間回路760、フィルタ回路770及び音量制御回路780は、動作しない。また、音高制御回路730は、デコード数INCO及び処理済みデータ情報OLDCNTをデコード回路750に供給し、補間係数算出データFRACを補間回路760に供給すると、チャンネル設定回路710から、第4周期のデコード数INCO及び補間係数算出データFRACを入力する。このデコード数INCOの値は1であるが、このデコード数INCOは、第4周期における発音チャンネルCHa及び発音チャンネルCHbのデコード数INCOの合計である。上記のように、第4周期の発音チャンネルCHaの処理におけるデコード数INCOが1であるから、発音チャンネルCHbのデコード数INCOは0である。また、補間係数算出データFRACの値は、0である。また、上記のように、第3周期の発音チャンネルCHbにおいては、圧縮データをデコードしていないので、音高制御回路730は、処理済みデータ情報OLDCNTを更新しない。音高制御回路730は、上記のデコード数INCO及び処理済みデータ情報OLDCNT並びに補間係数算出データFRACを記憶していて、第4周期の発音チャンネルCHbの処理において、デコード数INCO及び処理済みデータ情報OLDCNTをデコード回路750に供給し、補間係数算出データFRACを補間回路760に供給する。つぎに第4周期における発音チャンネルCHaの動作について説明する。発音チャンネルCHaは、偶数番号の発音チャンネルであるので、この第4周期において、セグメントデータ入力回路741は、セグメントデータを読み込まない。デコード回路750の動作は、上記のピッチ倍率が1.0の場合の第4周期の動作と同様である。すなわち、デコード回路750は波高値D2を算出する。第2出力領域カウンタ744bのカウント値は0のままである。また、この場合も、波高値出力回路757は、波高値を補間回路760へ供給しない。したがって、補間回路760及びその後段の回路は動作しない。波高値出力回路757は、波高値D2~波高値D0を波高値バッファSB1~波高値バッファSB3に記憶する。音高制御回路730は、上記のピッチ倍率が1.0及び1.7の例と同様に、第4周期以降の各再生周期においてピッチ倍率を累算し、ピッチ倍率の累算結果からデコード数INCOを算出する。音高制御回路730は、デコード数INCO及び処理済みデータ情報OLDCNTをデコード回路750に供給し、補間係数算出データFRACを補間回路760に供給すると、第5周期のデコード数INCO及び補間係数算出データFRACを算出する。この例においてはピッチ倍率が3.7であるから、第4周期におけるピッチ倍率の累算値は3.7であり、整数部の増加分は3である。すなわち、第5周期においては3つの波高値をデコードするが、発音チャンネルCHaの処理において2つの波高値をデコードし、発音チャンネルCHbの処理において残りの1つの波高値をデコードする。したがって、第5周期における発音チャンネルCHaのデコード数INCOは2である。また、補間係数算出データFRACの値は0.7である。なお、図15においても、図13及び図14と同様に、音高制御回路730がピッチ倍率の累算値を算出した再生周期の次の周期に、その算出結果を記載している。また、第4周期においては1つの圧縮データをデコードしたので、音高制御回路730は、処理済みデータ情報OLDCNTを構成するインデックス番号を1回インクリメントする。これにより、インデックス番号が0になり、セグメントデータ番号が1になる。フレームデータ番号は0のままである。音高制御回路730は、上記のデコード数INCO及び処理済みデータ情報OLDCNT並びに補間係数算出データFRACを記憶していて、第5周期の発音チャンネルCHaの処理において、デコード数INCO及び処理済みデータ情報OLDCNTをデコード回路750に供給し、補間係数算出データFRACを補間回路760に供給する。つぎに、第4周期における発音チャンネルCHbの動作について説明する。セグメントデータ入力回路741は、第2周期と同様に、領域CA3に、2つのセグメントデータを入力する。これにより、第2入力領域カウンタ743bのカウント値が4になり、相対アドレスカウンタのカウント値が8になる。また、波高値出力回路757は、波高値バッファSB1~SB3に記憶されている波高値を、遅延メモリDM1~遅延メモリDM3に読み込む。セグメントデータ要求回路751は、音高制御回路730からデコード数INCO及び処理済みデータ情報OLDCNTを入力するが、デコード数INCOが0であるので、デコード回路750は波高値をデコードしない。第2出力領域カウンタ744bのカウント値も更新されず、0のままである。波高値出力回路757は、遅延メモリDM1~DM4に記憶している波高値すなわち、波高値D2~波高値D0及び初期波高値Diを補間回路760に供給する。そして、波高値出力回路757は、遅延メモリDM1~DM3に記憶している波高値すなわち、波高値D2~波高値D0を波高値バッファSB1~SB3に記憶する。補間回路760は、音高制御回路730から補間係数算出データFRACを入力する。この補間係数算出データFRACの値が0であるから、補間回路760は、波高値D0を初期波高値W0としてフィルタ回路770に供給する。フィルタ回路770及びその後段の回路の動作は第1モードと同様である。また、音高制御回路730は、第5周期における発音チャンネルCHbのデコード数INCO及び補間係数算出データFRACを算出する。第4周期における発音チャンネルCHaの動作において説明したように、第5周期における発音チャンネルCHbのデコード数INCOの値は1である。また、補間係数算出データFRACの値は0.7である。また、上記のように、第4周期における発音チャンネルCHbにおいては、圧縮データをデコードしていないので、音高制御回路730は、処理済みデータ情報OLDCNTを更新しない。つぎに、第5周期における発音チャンネルCHaの動作について説明する。セグメントデータ入力回路741は、第1周期と同様に、領域CA4に2つのセグメントデータを読み込む。これにより、第2入力領域カウンタ743bのカウント値が5になり、相対アドレスカウンタのカウント値が10になる。波高値出力回路757は、波高値バッファSB1~SB3に記憶されている波高値を遅延メモリDM1~DM3に読み込む。セグメントデータ要求回路751は、音高制御回路730から、第5周期のデコード数INCO及び処理済みデータ情報OLDCNTを入力する。このデコード数INCOの値が2であるから、デコード回路750は、2つの圧縮データをデコードする。すなわち、デコード回路750は、第3周期と同様に、2つの波高値D3及び波高値D4を算出する。これにより、第2出力領域カウンタ744bのカウント値が1になる。また、この場合も、波高値出力回路757は、波高値を補間回路760へ供給しない。したがって、補間回路760及びその後段の回路は動作しない。波高値出力回路757は、波高値D4~波高値D2を波高値バッファSB1~波高値バッファSB3に記憶する。また、音高制御回路730は、第4周期と同様にピッチ倍率の累算値を算出して、第6周期におけるデコード数INCO及び補間係数算出データFRACを算出する。ピッチ倍率の累算値は7.4である。したがって、ピッチ倍率の累算値の整数部の増加分は4であるから、第6周期においては発音チャンネルCHaおよび発音チャンネルCHbを用いて、4つの圧縮データをデコードする。この場合、発音チャンネルCHaを用いて2つの圧縮データをデコードし、発音チャンネルCHbを用いて残りの2つの圧縮データをデコードする。すなわち、第6周期の発音チャンネルCHaのデコード数INCOは2である。また、第5周期においては2つの圧縮データをデコードしたため、音高制御回路730は、処理済みデータ情報OLDCNTを構成するインデックス番号に2を加算する。これにより、インデックス番号が0になり、セグメント番号は2になる。なお、フレーム番号は0である。そして、音高制御回路730は、上記のデコード数INCO及び処理済みデータ情報OLDCNT並びに補間係数算出データFRACを記憶していて、第6周期の発音チャンネルCHaの処理において、デコード数INCO及び処理済みデータ情報OLDCNTをデコード回路750に供給し、補間係数算出データFRACを補間回路760に供給する。つぎに、第5周期における発音チャンネルCHbの動作について説明する。発音チャンネルCHbは、奇数番号の発音チャンネルであるので、この第5周期において、入力回路は、セグメントデータを読み込まない。波高値出力回路757は、波高値バッファSB1~SB3に記憶されている波高値を遅延メモリDM1~DM3に読み込む。セグメントデータ要求回路751は、音高制御回路730から、デコード数INCO及び処理済みデータ情報OLDCNTを入力する。このデコード数INCOの値が1であるから、デコード回路750は、1つの圧縮データをデコードする。すなわち、デコード回路750は、1つの波高値D5を算出する。第2出力領域カウンタ744bのカウント値は1のままである。波高値出力回路757は、遅延メモリDM1~DM4に記憶している波高値すなわち、波高値D5~波高値D2を補間回路760に供給する。そして、波高値出力回路757は、遅延メモリDM1~DM3に記憶している波高値すなわち、波高値D5~波高値D3を波高値バッファSB1~SB3に記憶する。補間回路760は、音高制御回路730から補間係数算出データFRACを入力する。上記のように、この補間係数算出データFRACの値は0.7である。補間回路760は、波高値D5~波高値D2及び補間係数算出データFRACを用いて補間演算し、ピッチ累算値=3.7に対応する波高値W1を算出する。そして、波高値W1をフィルタ回路770へ供給する。フィルタ回路770以降の動作は、ピッチ倍率が1.0である場合と同様である。フィルタ回路770及びその後段の回路の動作は第1モードと同様である。また、音高制御回路730は、第6周期における発音チャンネルCHbのデコード数INCOを算出する。第5周期における発音チャンネルCHaの動作において説明したように、発音チャンネルCHbのデコード数INCOの値は2である。また、ピッチ倍率の累算値が7.4であるから、補間係数算出データFRACの値は0.4である。また、上記のように第5周期においては、1つの圧縮データをデコードしたので、処理済みデータ情報OLDCNTを構成するインデックス番号を1つインクリメントする。これにより、インデックス番号が1になる。なお、セグメント番号は2であり、フレーム番号は0である。そして、音高制御回路730は、上記のデコード数INCO及び処理済みデータ情報OLDCNT並びに補間係数算出データFRACを記憶していて、第6周期の発音チャンネルCHbの処理において、デコード数INCO及び処理済みデータ情報OLDCNTをデコード回路750に供給し、補間係数算出データFRACを補間回路760に供給する。第6周期以降の動作も上記の第5周期と同様である。すなわち、第6周期以降の各周期のピッチ倍率の累算値は、7.4、11.1、14.8、18.5、22.2、25.9であり、発音チャンネルCHaのデコード数INCOは、各周期において2であるが、発音チャンネルCHbのデコード数INCOは、2、2、1、2、2、1である。第5周期においては、発音チャンネルCHbは、1つの圧縮データをデコードした。しかし、第6周期、第7周期、第10周期、第11周期などのように、発音チャンネルCHbも2つの圧縮データをデコードする再生周期もある。また、この例においては、第2入力領域カウンタ743bと第2出力領域カウンタ744bのカウント値が同じ値になって、入力回路がセグメントデータを読み込まないという再生周期はない。なお、第1モードと同様に、先頭のフレームデータFD0のデコードにおいては、実時間制御レジスタ712に書き込まれた線形予測係数Cを用いるが、フレームデータFD1以降のデコードにおいては、1つ前のフレームデータのデコードにおいて取得した線形予測係数を用いる。上記のように構成した楽音信号発生装置においては、ピッチ倍率が2.0以上になる可能性のある波形データを選択した場合に、2つの発音チャンネルを用いて、波高値を算出するようにした。本実施形態においては、圧縮データを先頭から順番にデコードする必要があるが、上記のように、2つの発音チャンネルを用いることにより、各再生周期ごとに最大4つの圧縮データをデコードできる。したがって、ピッチ倍率を最大で4.0に設定することができる。この場合、楽音をサンプリングするときに2オクターブ毎にサンプリングしておけばよいので、波形メモリの容量を小さくすることができる。一方、ピッチ倍率を2.0以上にする必要のない波形データを選択した場合、1つの発音チャンネルを用いて波高値を算出する。したがって、同時に発生させる楽音信号の数を大きく減少させることがない。また、波形メモリWMとして、ページアクセスが可能なメモリを採用した。再生周期を発音チャンネルの総数である256分割した1つの期間を各発音チャンネルのセグメントデータを読み出すキャッシュ処理期間として割り当てた場合には、この処理期間は短すぎて、1つもセグメントデータを読み出すことができない。そこで、サンプリング周期を128分割した1つの期間をキャッシュ処理期間として割り当てるようにして、各発音チャンネルは、サンプリング周期の2周期に1回の割合でセグメントデータを読み込むようにした。このキャッシュ処理期間であれば、ページリードにより、2つのセグメントデータを読み込むことができる。また、1つのセグメントデータは2つの圧縮データを含むようにしたので、1つの発音チャンネルが再生周期の2周期分の期間において波高値を算出するために必要とする圧縮データを予め読み込んでおくことができる。さらに、本発明の実施にあたっては、上記実施形態に限定されるものではなく、本発明の目的を逸脱しない限りにおいて種々の変更が可能である。上記実施形態の第2モードにおいては、発音チャンネルCHa及び発音チャンネルCHbを用いることにより、ピッチ倍率を最大で4.0に設定できるようにした。しかし、さらに多くの発音チャンネルを用いれば、ピッチ倍率の最大値をさらに大きくすることができる。例えば、3つの発音チャンネルを用いれば、ピッチ倍率の最大値を6.0にすることができる。また、上記実施形態においては、過去にデコードした波高値のうちの最新の1つの波高値WD1を用いて、予測値を算出するようにした。しかし、波高値WD1よりも前にデコードした波高値WD2、波高値WD3、波高値WD4などを用いて予測値を算出するようにしてもよい。この場合、それぞれの波高値に乗算する線形予測係数をフレームデータ中に記憶するようにしておき、データ取り出し回路753によって取り出すようにすればよい。また、上記実施形態においては、セグメントデータの下位12ビットを2等分しているが、セグメントデータの下位12ビットを何等分してもよい。すなわち、3等分、4等分又は6等分してもよい。ただし、すべてのセグメントデータについて同じように分割する。分割数を大きくするに従って、1つのセグメントデータに、より多くの圧縮データを記憶できるが、1つの圧縮データの最大値が小さくなる。例えば、セグメントデータの下位12ビットを3等分した場合、各圧縮データのデータ長は、4ビットである。そこで、選択したフレームにおける最大の残差データを2進数で表記したときの値が1である最上位のビットを第xビットx=4,516とすると、第x-3ビットから第xビットの4ビットを圧縮データとする。セグメントデータを4等分した場合は、残差データの第x-2ビットから第xビットの3ビットを圧縮データとし、セグメントデータを6等分した場合は、第x-1ビットから第xビットの2ビットを圧縮データとする。また、上記実施形態においては、1つのフレームに8周期分の波高値に対応する圧縮データが含まれるようにした。1つのフレームデータを構成するセグメントデータの数を上記の実施形態と同様に4つとすれば、分割数を大きくするに従って、1つのフレームに、より多くの周期分の波高値に対応する圧縮データが含まれる。ただし、1つのフレームデータを構成するセグメントデータの数は4つに限られないので、セグメントデータの分割数に応じて、1つのフレームデータを構成するセグメントデータの数を増減して、1つのフレームに含まれる圧縮データの数を調整できる。また、上記実施形態においては、全てのセグメントデータに2つずつ圧縮データが含まれるようにした。しかし、フレームごとにセグメントデータに含まれる圧縮データの数を変更してもよい。この場合、フォーマットデータBPSをフレームごとに更新するようにすればよい。具体的には、ボイスデータとして、各フレームごとのフォーマットデータBPSを記憶しておき、フレームが切り替わるごとに、チャンネル設定回路710から音高制御回路730及びデコード回路750にフォーマットデータBPSを供給するようにすればよい。また、この場合、線形予測係数C及び逆正規化係数Rと同様に、セグメントデータにフォーマットデータBPSも含むようにおいて、データ取り出し回路753によって、セグメントデータからフォーマットデータBPSを取り出してパラメータメモリ752に記憶するとともに、音高制御回路730に供給するようにしてもよい。上記のように構成すれば、波高値の変化が大きいために残差データの値が大きいフレームにおいては、圧縮データのデータ長を大きくしておき、波高値の変化が小さく残差データの値が小さいフレームにおいては、圧縮データのデータ長を小さくすることができる。このように、効率的に波形データを圧縮できるので、波形メモリWMの記憶容量をより小さくすることができる。また、上記実施形態においては、線形予測法を用いて波高値を圧縮しておき、1つ前に算出した波高値を用いて次の波高値を算出するようにした。しかし、過去に算出した波高値のうちの1つ又は複数の波高値を用いて次の波高値を算出する方式であれば、どのような方式であっても本発明を適用できる。また、上記実施形態においては、説明を簡単にするために、最終フレームのデコードが終了すると、発音を終了するようにした。しかし、最終フレームのデコードが終了した後、先頭又は途中のフレームに戻って、再びそのフレームから順にデコードするようにしてもよい。すなわち、ループ再生可能に構成してもよい。この場合、ループの先頭フレームを最初にデコードしたときに、そのフレームをデコードするために用いた線形予測係数C及び逆正規化係数Rを記憶しておき、波形データの先頭フレームから最終フレームまでのデコードが終了してループ再生を開始するときに、前記記憶しておいた線形予測係数C及び逆正規化係数Rをパラメータメモリ752に書き込むようにすればよい。このとき、デコード回路750は、ループの先頭フレームの1つ前のフレームのデコードにおいてデコードした最終の4つの波高値を記憶しておけばよい。そして、ループ再生を開始するときに、前記記憶しておいた最終の4つの波高値を遅延メモリDM1~DM4に書き込むようにすればよい。このように構成すれば、波形の変化が少ない区間を繰り返し再生することができるので、波形メモリWMの容量を小さくできる。"