(57)【要約】【課題】「フレーム圧縮方式」によって記憶された波形データに対して、簡易な処理によって高品質のループ再生を実現する。【解決手段】複数のサンプリング値から成る波形データに対して、ユーザによって指定されたループ区間に基づいて仮ループ開始点ＬＳＰ１および仮ループ終了点ＬＥＰ１が設定される。次に、この波形データが複数のフレーム区間に分割される（図７（ｂ））。このＬＥＰ１の属する区間内の最後のサンプリング点に、ループ終了点ＬＥＰが設定され、ＬＳＰ１を基準として、ＬＥＰ１およびＬＥＰ間のサンプル数に相当するサンプル数だけ後のサンプリング点に、ループ開始点ＬＳＰが設定される（図７（ｃ））。そして、ＬＳＰ１からＬＳＰの直前までのサンプリング値が、ＬＥＰ１以降にコピーされる。これにより、再生音を変更することなく、ＬＥＰをフレームの境界に設定することができる。【選択図】  図７
2004294780.tif 000002
【特許請求の範囲】
【請求項１】
複数のサンプリング値から成る波形データと、該波形データに対して指示された仮ループ開始点および仮ループ終了点を記憶する過程と、
前記波形データを複数の区間に分割する過程と、
前記仮ループ終了点が属する区間内の最後のサンプリング点に、ループ終了点を設定する過程と、
前記仮ループ開始点を基準として、前記仮ループ終了点および前記ループ終了点間のサンプル数に相当するサンプル数だけ後のサンプリング点に、ループ開始点を設定する過程と、
前記仮ループ開始点から前記ループ開始点の直前までのサンプリング値を、前記仮ループ終了点の直後のサンプリング点から前記ループ終了点のサンプリング値に複写する過程と、
前記各区間毎に前記波形データを圧縮することにより前記各区間毎のフレームを形成する圧縮過程と
を有することを特徴とする波形データ圧縮方法。
【請求項２】
前記圧縮過程は、
前記ループ開始点を含むループ開始区間と、前記ループ終了点を含むループ終了区間または前記ループ開始区間の次に再生される区間のうち一方の区間とから成る特定の二区間に対して同一の伸長パラメータを適用するとともに、該特定の二区間に対して該同一の伸長パラメータによって基づいて伸長可能な圧縮符号を各々決定する第１の決定過程と、
前記特定の二区間以外の各区間の波形データに基づいて、これら各区間の伸長パラメータと、該伸長パラメータに基づいて伸長可能な圧縮符号とを決定する第２の決定過程と、
前記各区間中の一の区間のサンプリング値の圧縮符号と、該一の区間の後に再生される区間の圧縮符号を伸長するための伸長パラメータとによって、一のフレームを形成するフレーム形成過程と
を有することを特徴とする請求項１記載の波形データ圧縮方法。
【請求項３】
複数のサンプリング値から成る波形データと、該波形データに対して指示された仮ループ開始点および仮ループ終了点を記憶する過程と、
前記波形データを複数の区間に分割する過程と、
前記仮ループ開始点が属する区間の次の区間の先頭のサンプリング点にループ開始点を設定する過程と、
前記仮ループ終了点を基準として、前記仮ループ開始点および前記ループ開始点間のサンプル数に相当するサンプル数だけ後のサンプリング点に、ループ終了点を設定する過程と、
前記仮ループ開始点から前記ループ開始点の直前までのサンプリング値を、前記仮ループ終了点の直後のサンプリング点から前記ループ終了点のサンプリング値に複写する過程と、
前記各区間毎に前記波形データを圧縮することにより前記各区間毎のフレームを形成する圧縮過程と
を有することを特徴とする波形データ圧縮方法。
【請求項４】
前記圧縮過程は、
前記ループ終了点を含むループ終了区間と、前記ループ開始点を含むループ開始区間または前記ループ開始区間の前に再生される区間のうち一方の区間とから成る特定の二区間に対して同一の伸長パラメータを適用するとともに、該特定の二区間に対して該同一の伸長パラメータによって基づいて伸長可能な圧縮符号を各々決定する第１の決定過程と、
前記特定の二区間以外の各区間の波形データに基づいて、これら各区間の伸長パラメータと、該伸長パラメータに基づいて伸長可能な圧縮符号とを決定する第２の決定過程と、
前記各区間中の一の区間のサンプリング値の圧縮符号と、該一の区間の後に再生される区間の圧縮符号を伸長するための伸長パラメータとによって、一のフレームを形成するフレーム形成過程と
を有することを特徴とする請求項４記載の波形データ圧縮方法。
【請求項５】
前記第１の決定過程は、
前記特定の二区間の波形データを結合した波形データに基づいて前記同一の伸長パラメータを定める過程であることを特徴とする請求項２または４記載の波形データ圧縮方法。
【請求項６】
前記各伸長パラメータは、前記各フレーム内に分散して配置されることを特徴とする請求項１ないし５の何れかに記載の波形データ圧縮方法。
【請求項７】
一区間に渡る波形データを圧縮した圧縮符号と、次の区間の圧縮符号を伸長するための伸長パラメータとを含むフレームを複数記憶する過程と、
発生すべき楽音信号の音高に応じた速度で変化するように読出しアドレスを計数する過程と、
該計数された読出しアドレスに基づいて、前記各フレームを読み出す読出過程と、
読み出された一の前記フレーム内の圧縮符号と、過去に読み出されたフレーム内の伸長パラメータとに基づいて、一の前記フレーム内の圧縮符号を伸長することによって楽音信号を再生する伸長過程と、
前記読出しアドレスが所定のループ終了フレームの末尾のサンプリング点であるループ終了点に達したことを条件として、前記読出しアドレスを、所定のループ開始フレーム内の途中のサンプリング点であるループ開始点に設定する過程と
を有することを特徴とする楽音信号発生方法。
【請求項８】
前記伸長過程は、
前記読出過程において一の前記フレームとして前記ループ開始フレームが最初に読み出された場合は、該ループ開始フレームの直前に読み出されたフレーム内の伸長パラメータに基づいて、該ループ開始フレーム内の圧縮符号を伸長し、
前記読出過程において一の前記フレームとして前記ループ開始フレームが２回目以降に読み出された場合は、前記ループ終了フレーム内の圧縮符号の伸長に適用された伸長パラメータに基づいて、該ループ開始フレーム内の圧縮符号を伸長し、
前記読出過程において一の前記フレームとして前記ループ開始フレームの次のフレームが最初に読み出された場合は、該ループ開始フレームに含まれる伸長パラメータに基づいて、該ループ開始フレームの次のフレーム内の圧縮符号を伸長し、
前記読出過程において一の前記フレームとして前記ループ開始フレームの次のフレームが２回目以降に読み出された場合は、前記ループ終了フレームに含まれる伸長パラメータに基づいて、該ループ開始フレームの次のフレーム内の圧縮符号を伸長し、
前記読出過程において一の前記フレームとして他のフレームが読み出された場合は、一の前記フレームの直前に読み出されたフレーム内の伸長パラメータに基づいて、一の前記フレーム内の圧縮符号を伸長する
過程であることを特徴とする請求項７記載の楽音信号発生方法。
【請求項９】
前記伸長過程は、
前記読出過程において一の前記フレームとして前記ループ開始フレームの次のフレームが最初に読み出された場合は、該ループ開始フレームに含まれる伸長パラメータに基づいて、該ループ開始フレームの次のフレーム内の圧縮符号を伸長し、
前記読出過程において一の前記フレームとして前記ループ開始フレームの次のフレームが２回目以降に読み出された場合は、前記ループ終了フレームに含まれる伸長パラメータに基づいて、該ループ開始フレームの次のフレーム内の圧縮符号を伸長し、
前記読出過程において一の前記フレームとして他のフレームが読み出された場合は、一の前記フレームの直前に読み出されたフレーム内の伸長パラメータに基づいて、一の前記フレーム内の圧縮符号を伸長する過程であることを特徴とする請求項７記載の楽音信号発生方法。
【請求項１０】
一区間に渡る波形データを圧縮した圧縮符号と、次の区間の圧縮符号を伸長するための伸長パラメータとを含むフレームを複数記憶する過程と、
発生すべき楽音信号の音高に応じた速度で変化するように読出しアドレスを計数する過程と、
該計数された読出しアドレスに基づいて、前記各フレームを読み出す読出過程と、
読み出された一の前記フレーム内の圧縮符号と、過去に読み出されたフレーム内の伸長パラメータとに基づいて、一の前記フレーム内の圧縮符号を伸長することによって楽音信号を再生する伸長過程と、
前記読出しアドレスが所定のループ終了フレームの途中のサンプリング点であるループ終了点に達したことを条件として、前記読出しアドレスを、所定のループ開始フレーム内の先頭のサンプリング点であるループ開始点に設定する過程と
を有することを特徴とする楽音信号発生方法。
【請求項１１】
前記伸長過程は、
前記読出過程において一の前記フレームとして前記ループ開始フレームが最初に読み出された場合は、該ループ開始フレームの直前に読み出されたフレーム内の伸長パラメータに基づいて、該ループ開始フレーム内の圧縮符号を伸長し、
前記読出過程において一の前記フレームとして前記ループ開始フレームが２回目以降に読み出された場合は、前記ループ終了フレーム内の圧縮符号の伸長に適用された伸長パラメータに基づいて、該ループ開始フレーム内の圧縮符号を伸長し、
前記読出過程において一の前記フレームとして他のフレームが読み出された場合は、一の前記フレームの直前に読み出されたフレーム内の伸長パラメータに基づいて、一の前記フレーム内の圧縮符号を伸長する
過程であることを特徴とする請求項１０記載の楽音信号発生方法。
【請求項１２】
前記伸長過程は、
前記読出過程において一の前記フレームとして前記ループ開始フレームが最初に読み出された場合は、該ループ開始フレームの直前に読み出されたフレーム内の伸長パラメータに基づいて、該ループ開始フレーム内の圧縮符号を伸長し、
前記読出過程において一の前記フレームとして前記ループ開始フレームが２回目以降に読み出された場合は、前記ループ終了フレームの直前のフレームに含まれていた伸長パラメータに基づいて、該ループ開始フレーム内の圧縮符号を伸長し、
前記読出過程において一の前記フレームとして前記ループ終了フレームが読み出された場合は、前記ループ終了フレームの直前のフレームに適用されていた伸長パラメータに基づいて、ループ終了フレーム内の圧縮符号を伸長し、
前記読出過程において一の前記フレームとして他のフレームが読み出された場合は、一の前記フレームの直前に読み出されたフレーム内の伸長パラメータに基づいて、一の前記フレーム内の圧縮符号を伸長する
過程であることを特徴とする請求項１０記載の楽音信号発生方法。
【請求項１３】
請求項１ないし１２の何れかに記載の方法を実行することを特徴とする楽音信号処理装置。
【請求項１４】
請求項１ないし１２の何れかに記載の方法を実行することを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、波形データをフレーム圧縮して記憶し、当該波形データを演奏情報に基づいて再生する音源装置に用いて好適な波形データ圧縮方法、楽音信号発生方法、楽音信号処理装置およびプログラムに関する。
【０００２】
【従来の技術】
波形メモリ音源装置における波形データの記憶容量を削減するために、波形データを所定のフレーム区間に区切って符号化し圧縮する「フレーム圧縮方式」が知られている。波形データの符号化方法には種々の方法があるが、「線形予測方式」は圧縮効率が高く、再生時における処理負荷も少ないために多用されている。なお、線形予測方式とは、ある注目サンプルより過去の数個のサンプリング値と所定の生成多項式とに基づいて当該注目サンプルの予測値を求め、その予測値と実際値との差（残差値）をデータとして記録してゆく方式である。
【０００３】
また、波形データを再生するにあたっては、波形データの先頭部分すなわちアタック区間を１回だけ再生し、その後は残りの部分すなわちループ区間を繰り返し再生することが一般的である。このため、一連のフレーム中、ループ区間の先頭および最終のサンプリング点であるループ開始点およびループ終了点を特定しておく必要がある。従来、フレーム圧縮方式においては、波形データをフレーム単位で再生する必要があったため、ループ開始点およびループ終了点がフレームの境界位置に制限されるという問題があった。すなわち、ループ開始点およびループ終了点を最適なサンプリング点に設定することができなかったため、波形データの再生点がループ終了点からループ開始点に戻る際に、信号レベルや位相の不連続性に伴うノイズが発生するという問題があった。
【０００４】
そこで、特許文献１においては、ループ開始点およびループ終了点として波形データ上の任意の点が指定されると、波形データ全体に対して時間軸補正（時間軸方向の圧縮、伸長またはシフト）を実行し、これによってループ開始点とループ終了点とをフレームの境界点に合致させ、かかるノイズを防止する技術が開示されている。
【０００５】
【特許文献１】特許第２６７４１５５号公報
【０００６】
【発明が解決しようとする課題】
しかし、特許文献１記載の技術においては、波形データに対して時間軸方向の圧縮または伸長を行う際に波形データの品質が劣化するという問題があり、波形データ全体に対して処理を行うために処理量が膨大になるという問題もあった。また、特許文献１記載の技術によれば、各フレームの先頭部分に圧縮符号を伸長するためのヘッダ情報が記憶されており、伸長処理を開始する前に該フレームのヘッダ情報を全て読み出しておく必要がある。このため、あるフレームについて伸長処理を実行している途中に、次のフレームのヘッダ情報を予め読み出しておく時間的余裕が必要である。特許文献１記載の技術はそもそも「フレーム毎に全ての圧縮符号を伸長する」ことを前提にしているため、かかる余裕を確保することは容易であると考えられる。しかし、ループ開始点またはループ終了点をフレームの途中に設定できる装置、換言すれば「一部のフレームの再生時間がきわめて短くなりうる装置」にかかるデータ構造を採用すると、予めヘッダ情報を読み出すための時間が充分に確保できないという問題が生じる。
この発明は上述した事情に鑑みてなされたものであり、ループ区間を指定する際の自由度が高く、しかも高品質なループ再生を簡易な処理によって実現できる波形データ圧縮方法、楽音信号発生方法、楽音信号処理装置およびプログラムを提供することを目的としている。
【０００７】
【課題を解決するための手段】
上記課題を解決するため本発明にあっては、下記構成を具備することを特徴とする。なお、括弧内は例示である。
請求項１記載の波形データ圧縮方法にあっては、複数のサンプリング値から成る波形データと、該波形データに対して指示された仮ループ開始点（ＬＳＰ１）および仮ループ終了点（ＬＥＰ１）を記憶する過程と、前記波形データを複数の区間に分割する過程と、前記仮ループ終了点（ＬＥＰ１）が属する区間内の最後のサンプリング点に、ループ終了点（ＬＥＰ）を設定する過程と、前記仮ループ開始点（ＬＳＰ１）を基準として、前記仮ループ終了点（ＬＥＰ１）および前記ループ終了点（ＬＥＰ）間のサンプル数に相当するサンプル数だけ後のサンプリング点に、ループ開始点（ＬＳＰ）を設定する過程と、前記仮ループ開始点（ＬＳＰ１）から前記ループ開始点（ＬＳＰ）の直前までのサンプリング値を、前記仮ループ終了点（ＬＥＰ１）の直後のサンプリング点から前記ループ終了点（ＬＥＰ）のサンプリング値に複写する過程と、前記各区間毎に前記波形データを圧縮することにより前記各区間毎のフレームを形成する圧縮過程とを有することを特徴とする。
さらに、請求項２記載の構成にあっては、請求項１記載の波形データ圧縮方法において、前記圧縮過程は、前記ループ開始点（ＬＳＰ）を含むループ開始区間（ＬＳＦ）と、前記ループ終了点（ＬＥＰ）を含むループ終了区間（ＬＥＦ）または前記ループ開始区間（ＬＳＦ）の次に再生される区間のうち一方の区間とから成る特定の二区間に対して同一の伸長パラメータを適用するとともに、該特定の二区間に対して該同一の伸長パラメータによって基づいて伸長可能な圧縮符号を各々決定する第１の決定過程と、前記特定の二区間以外の各区間の波形データに基づいて、これら各区間の伸長パラメータと、該伸長パラメータに基づいて伸長可能な圧縮符号とを決定する第２の決定過程と、前記各区間中の一の区間（Ｆ１）のサンプリング値の圧縮符号（Ｗ１）と、該一の区間の後に再生される区間（Ｆ２）の圧縮符号（Ｗ２）を伸長するための伸長パラメータ（Ｐ２）とによって、一のフレーム（Ｆ１）を形成するフレーム形成過程とを有することを特徴とする。
また、請求項３記載の波形データ圧縮方法にあっては、複数のサンプリング値から成る波形データと、該波形データに対して指示された仮ループ開始点（ＬＳＰ１）および仮ループ終了点（ＬＥＰ１）を記憶する過程と、前記波形データを複数の区間に分割する過程と、前記仮ループ開始点（ＬＳＰ１）が属する区間の次の区間の先頭のサンプリング点にループ開始点（ＬＳＰ）を設定する過程と、前記仮ループ終了点（ＬＥＰ１）を基準として、前記仮ループ開始点（ＬＳＰ１）および前記ループ開始点（ＬＳＰ）間のサンプル数に相当するサンプル数だけ後のサンプリング点に、ループ終了点（ＬＥＰ）を設定する過程と、前記仮ループ開始点（ＬＳＰ１）から前記ループ開始点（ＬＳＰ）の直前までのサンプリング値を、前記仮ループ終了点（ＬＥＰ１）の直後のサンプリング点から前記ループ終了点（ＬＥＰ）のサンプリング値に複写する過程と、前記各区間毎に前記波形データを圧縮することにより前記各区間毎のフレームを形成する圧縮過程とを有することを特徴とする。
さらに、請求項４記載の構成にあっては、請求項４記載の波形データ圧縮方法において、前記圧縮過程は、前記ループ終了点（ＬＥＰ）を含むループ終了区間（ＬＥＦ）と、前記ループ開始点（ＬＳＰ）を含むループ開始区間（ＬＳＦ）または前記ループ開始区間（ＬＳＦ）の前に再生される区間のうち一方の区間とから成る特定の二区間に対して同一の伸長パラメータを適用するとともに、該特定の二区間に対して該同一の伸長パラメータによって基づいて伸長可能な圧縮符号を各々決定する第１の決定過程と、前記特定の二区間以外の各区間の波形データに基づいて、これら各区間の伸長パラメータと、該伸長パラメータに基づいて伸長可能な圧縮符号とを決定する第２の決定過程と、前記各区間中の一の区間（Ｆ１）のサンプリング値の圧縮符号（Ｗ１）と、該一の区間の後に再生される区間（Ｆ２）の圧縮符号（Ｗ２）を伸長するための伸長パラメータ（Ｐ２）とによって、一のフレーム（Ｆ１）を形成するフレーム形成過程とを有することを特徴とする。
さらに、請求項５記載の構成にあっては、請求項２または４記載の波形データ圧縮方法において、前記第１の決定過程は、前記特定の二区間の波形データを結合した波形データに基づいて前記同一の伸長パラメータを定める過程であることを特徴とする。
さらに、請求項６記載の構成にあっては、請求項１ないし５の何れかに記載の波形データ圧縮方法において、前記各伸長パラメータは、前記各フレーム内に分散して配置されることを特徴とする。
また、請求項７記載の楽音信号発生方法にあっては、一区間に渡る波形データを圧縮した圧縮符号と、次の区間の圧縮符号を伸長するための伸長パラメータとを含むフレームを複数記憶する過程と、発生すべき楽音信号の音高に応じた速度で変化するように読出しアドレスを計数する過程と、該計数された読出しアドレス（ＧＦＡＤ）に基づいて、前記各フレームを読み出す読出過程と、読み出された一の前記フレーム内の圧縮符号と、過去に読み出されたフレーム内の伸長パラメータとに基づいて、一の前記フレーム内の圧縮符号を伸長することによって楽音信号を再生する伸長過程と、前記読出しアドレス（ＧＦＡＤ）が所定のループ終了フレーム（ＬＥＦ）の末尾のサンプリング点であるループ終了点（ＬＥＰ）に達したことを条件として、前記読出しアドレス（ＧＦＡＤ）を、所定のループ開始フレーム（ＬＳＦ）内の途中のサンプリング点であるループ開始点（ＬＳＰ）に設定する過程とを有することを特徴とする。
さらに、請求項８記載の構成にあっては、請求項７記載の楽音信号発生方法において、前記伸長過程は、前記読出過程において一の前記フレームとして前記ループ開始フレーム（ＬＳＦ＝図８（ｂ）のＦ４）が最初に読み出された場合は、該ループ開始フレーム（ＬＳＦ）の直前に読み出されたフレーム（Ｆ３）内の伸長パラメータ（ＰＸ１）に基づいて、該ループ開始フレーム（Ｆ４）内の圧縮符号を伸長し、前記読出過程において一の前記フレームとして前記ループ開始フレーム（ＬＳＦ＝Ｆ４）が２回目以降に読み出された場合は、前記ループ終了フレーム（ＬＥＦ＝Ｆ８）内の圧縮符号の伸長に適用された伸長パラメータ（ＰＸ１）に基づいて、該ループ開始フレーム（ＬＳＦ）内の圧縮符号を伸長し、前記読出過程において一の前記フレームとして前記ループ開始フレームの次のフレーム（Ｆ５）が最初に読み出された場合は、該ループ開始フレーム（ＬＳＦ＝Ｆ４）に含まれる伸長パラメータに基づいて、該ループ開始フレームの次のフレーム（Ｆ５）内の圧縮符号を伸長し、前記読出過程において一の前記フレームとして前記ループ開始フレームの次のフレーム（Ｆ５）が２回目以降に読み出された場合は、前記ループ終了フレーム（ＬＥＦ）に含まれる伸長パラメータに基づいて、該ループ開始フレーム（ＬＳＦ）の次のフレーム内の圧縮符号を伸長し、前記読出過程において一の前記フレームとして他のフレームが読み出された場合は、一の前記フレームの直前に読み出されたフレーム内の伸長パラメータに基づいて、一の前記フレーム内の圧縮符号を伸長する過程であることを特徴とする。
さらに、請求項９記載の構成にあっては、請求項７記載の楽音信号発生方法において、前記伸長過程は、前記読出過程において一の前記フレームとして前記ループ開始フレーム（ＬＳＦ＝図８（ｃ）のＦ４）の次のフレーム（Ｆ５）が最初に読み出された場合は、該ループ開始フレーム（ＬＳＦ）に含まれる伸長パラメータ（ＰＸ２）に基づいて、該ループ開始フレームの次のフレーム（Ｆ５）内の圧縮符号を伸長し、前記読出過程において一の前記フレームとして前記ループ開始フレーム（ＬＳＦ）の次のフレーム（Ｆ５）が２回目以降に読み出された場合は、前記ループ終了フレーム（ＬＥＦ）に含まれる伸長パラメータ（ＰＸ２）に基づいて、該ループ開始フレーム（ＬＳＦ）の次のフレーム（Ｆ５）内の圧縮符号を伸長し、前記読出過程において一の前記フレームとして他のフレームが読み出された場合は、一の前記フレームの直前に読み出されたフレーム内の伸長パラメータに基づいて、一の前記フレーム内の圧縮符号を伸長する過程であることを特徴とする。
また、請求項１０記載の楽音信号発生方法にあっては、一区間に渡る波形データを圧縮した圧縮符号と、次の区間の圧縮符号を伸長するための伸長パラメータとを含むフレームを複数記憶する過程と、発生すべき楽音信号の音高に応じた速度で変化するように読出しアドレスを計数する過程と、該計数された読出しアドレス（ＧＦＡＤ）に基づいて、前記各フレームを読み出す読出過程と、読み出された一の前記フレーム内の圧縮符号と、過去に読み出されたフレーム内の伸長パラメータとに基づいて、一の前記フレーム内の圧縮符号を伸長することによって楽音信号を再生する伸長過程と、前記読出しアドレス（ＧＦＡＤ）が所定のループ終了フレーム（ＬＥＦ）の途中のサンプリング点であるループ終了点（ＬＥＰ）に達したことを条件として、前記読出しアドレス（ＧＦＡＤ）を、所定のループ開始フレーム（ＬＳＦ）内の先頭のサンプリング点であるループ開始点（ＬＳＰ）に設定する過程とを有することを特徴とする。
さらに、請求項１１記載の構成にあっては、請求項１０記載の楽音信号発生方法において、前記伸長過程は、前記読出過程において一の前記フレームとして前記ループ開始フレーム（ＬＳＦ＝図８（ｄ）のＦ４）が最初に読み出された場合は、該ループ開始フレーム（ＬＳＦ）の直前に読み出されたフレーム（Ｆ３）内の伸長パラメータに基づいて、該ループ開始フレーム（ＬＳＦ）内の圧縮符号を伸長し、前記読出過程において一の前記フレームとして前記ループ開始フレーム（ＬＳＦ）が２回目以降に読み出された場合は、前記ループ終了フレーム（ＬＥＦ）内の圧縮符号の伸長に適用された伸長パラメータ（ＰＸ３）に基づいて、該ループ開始フレーム（ＬＳＦ）内の圧縮符号を伸長し、前記読出過程において一の前記フレームとして他のフレームが読み出された場合は、一の前記フレームの直前に読み出されたフレーム内の伸長パラメータに基づいて、一の前記フレーム内の圧縮符号を伸長する過程であることを特徴とする。
さらに、請求項１２記載の構成にあっては、請求項１０記載の楽音信号発生方法において、前記伸長過程は、前記読出過程において一の前記フレームとして前記ループ開始フレーム（ＬＳＦ＝図８（ｅ）のＦ４）が最初に読み出された場合は、該ループ開始フレーム（ＬＳＦ）の直前に読み出されたフレーム（Ｆ３）内の伸長パラメータに基づいて、該ループ開始フレーム（ＬＳＦ）内の圧縮符号を伸長し、前記読出過程において一の前記フレームとして前記ループ開始フレーム（ＬＳＦ）が２回目以降に読み出された場合は、前記ループ終了フレーム（ＬＥＦ）の直前のフレーム（Ｆ７）に含まれていた伸長パラメータに基づいて、該ループ開始フレーム（ＬＳＦ）内の圧縮符号を伸長し、前記読出過程において一の前記フレームとして前記ループ終了フレーム（ＬＥＦ＝Ｆ８）が読み出された場合は、前記ループ終了フレーム（ＬＥＦ）の直前のフレーム（Ｆ７）に適用されていた伸長パラメータ（ＰＸ４）に基づいて、ループ終了フレーム（ＬＥＦ）内の圧縮符号を伸長し、前記読出過程において一の前記フレームとして他のフレームが読み出された場合は、一の前記フレームの直前に読み出されたフレーム内の伸長パラメータに基づいて、一の前記フレーム内の圧縮符号を伸長する過程であることを特徴とする。
また、請求項１３記載の楽音信号処理装置にあっては、請求項１ないし１２の何れかに記載の方法を実行することを特徴とする。
また、請求項１４記載のプログラムにあっては、請求項１ないし１２の何れかに記載の方法を実行することを特徴とする。
【０００８】
【発明の実施の形態】
１．第１実施形態
１．１．実施形態におけるデータ構造
１．１．１．波形データの全体構造
次に本発明の一実施形態について説明するが、最初に本実施形態において採用されている波形データを波形メモリに記憶するためのデータ構造を、図２〜図３を参照し説明する。まず、図２において２００は波形データファイルであり、その内部には各種の楽音波形が格納される波形データ領域２０４，２０６，……が設けられている。２０２は管理領域であり、これら波形データ領域２０４，２０６，……のデータサイズ、波形の名称等の管理情報が格納される。また、一の波形データ領域は、複数のフレーム２１１〜２１ｎと、ヘッダ部２１０とから構成されている。
【０００９】
１．１．２．フレーム構造
本実施形態においては、線形予測形式により圧縮された波形データが上記各フレームに記憶されている。すなわち、過去の数サンプルにおけるサンプリング値に対して所定の生成多項式を施すことによって注目サンプルの予測値が予め求められ、実際のサンプリング値からこの予測値を減算した減算結果が「残差符号」として各フレームに記憶されている。その詳細を図３を参照し説明する。
【００１０】
図３（ａ）は「１」フレーム内におけるデータ構造を示す。図において「１」フレームは「１６０」ビットから成り、「１６」ビット毎に「１０」個のサブフレームに分割されている。これらサブフレームは、波形メモリの各アドレスに記憶されるデータであって、フレーム内のアドレスＳＦＡＤに対応させて「００」〜「０９」のサブフレーム番号が付与されている。一のサブフレームの先頭「４」ビットは副情報であり、残り「１２」ビットは残差符号が格納されている。「１」フレーム中の副情報中において、第００サブフレームにおいては残差符号のビット数ｂｎ（「１」，「２」，「３」，「４」，「６」または「１２」）が記憶される。なお、「１」フレーム中ではこのビット数ｂｎは共通である。次に、第０１〜第０５サブフレームの副情報においては、上記生成多項式において用いられる予測係数が記憶される。
【００１１】
また、第０６，第０７サブフレームの副情報には、量子化幅すなわちサンプリング結果の最下位ビットに対応するレベル幅が記憶される。また、第０８，第０９サブフレームの副情報においては、その他各種の情報が記憶される。これら副情報のうち、ビット数ｂｎ、予測係数および量子化幅は、残差符号の伸長のために用いられる情報であるから「伸長パラメータ」と呼ぶ。ここで、各フレームに含まれる副情報は、原則的には「当該フレームの次に読み出されるフレーム内の残差符号に対する副情報」である。
【００１２】
例えば、図３（ａ）の例においては一の残差符号のビット数ｂｎは「４」ビットであるから、このフレームの前に読み出されるフレームにおいて、第００サブフレームの副情報には「４」が記憶されることになる。これは、本実施形態においては「１」フレーム内の各サブフレームが必要な数だけ順次読み出され、楽音信号が再生されるため、最初の（第００サブフレーム）の残差符号が読み出される前に上記各副情報を確定させておく必要があることに鑑みてである。このため、最初の第１フレームに対する副情報はヘッダ部２１０に記憶されている。但し、繰り返しループ再生される区間（ループ区間）に関連する副情報については、上述した原則とは異なる態様で記憶されている場合もある。その詳細については後述する。
【００１３】
次に、復号化される各サブフレームのストリームを図３（ｂ）に示す。図において第Ｋフレームを構成する第Ｋ＿００〜第Ｋ＿０９サブフレームが順次読み出されることによって、これらサブフレームに含まれる残差符号がデコードされ、楽音波形が逐次再生される。各フレーム毎に残差符号のビット数ｂｎは各々異なるが、これは「楽音波形の変化の大きさ」および求められる精度に応じて、符号化時に最適なビット幅が選択された結果である。換言すれば、本実施形態においては、求められる精度に応じて残差符号のビット数ｂｎは種々変化するが、「１」フレームのデータ長はビット数ｂｎに拘らず常に一定（１６０ビット）である。
【００１４】
１．２．実施形態のハードウエア構成
１．２．１．全体構成
次に、本実施形態による電子楽器のハードウエア構成を図１を参照し説明する。なお、本実施形態の電子楽器は、汎用パーソナルコンピュータと、該パーソナルコンピュータ上で動作するアプリケーションプログラムとによって構成されている。
図において、１００は音源部であり、パーソナルコンピュータに挿入されるカードとして構成されている。２はＲＡＭであり、パーソナルコンピュータにおいて使用される各種データおよびプログラムが記憶されている。特に、ＲＡＭ２には、音源部１００において使用される波形データが記憶されている。波形データのデータ構造は先に図２，図３において説明した通りである。このように、パーソナルコンピュータが元々装備しているＲＡＭの一部を波形メモリとして使用することにより、音源部１００自体が装備すべきメモリ容量を削減することが可能になる。
【００１５】
４はフラッシュメモリであり、パーソナルコンピュータのイニシャルプログラムローダ等が格納される。６はＣＰＵであり、後述するプログラムに基づいて、バスライン１４を介して各部を制御する。８は操作子であり、パーソナルコンピュータとして元々装備すべきキーボード、マウス等の操作子の他、演奏用のキーボード等も含まれる。１０は表示器であり、ユーザに対して各種情報を表示する。１２は通信Ｉ／Ｏ部であり、ローカルエリアネットワークを介して他の機器との間で波形データ等のやりとりを行う。１６はサウンドシステムであり、音源部１００から供給された楽音信号を放音する。
【００１６】
音源部１００の内部において１２０は制御レジスタであり、音源部１００を制御するために、ＣＰＵ６によって種々のパラメータが書き込まれる。１０２はフレーム読出し部であり、合成フレームアドレスＧＦＡＤに応じて、ＲＡＭ２の波形メモリ領域から必要とする残差符号を含むサブフレームを「１」サブフレーム単位で読み出す。１０４はアドレス発生部であり、制御レジスタ１２０に書き込まれたｆナンバ（記録時の楽音信号のピッチと出力すべき楽音信号のピッチとの比）と、当該フレームのサンプリング周期とに応じて、合成フレームアドレスＧＦＡＤと、サンプルアドレスＳＣＮＴとを出力する。ここで、合成フレームアドレスＧＦＡＤとは、読み出すべきフレームを示すフレームアドレスＦＡＤと、当該フレーム内において読み出すべきサブフレームを示すサブフレームアドレスＳＦＡＤとを合成して成る信号である。また、サンプルアドレスＳＣＮＴは、整数部ＳＣＮＴｉと小数部ＳＣＮＴｆから成る。整数部ＳＣＮＴｉは「１」フレーム内における残差符号の番号を示し、小数部ＳＣＮＴｆはその前後の波形サンプル値に対する補間係数を示す。ここで、サブフレームアドレスＳＦＡＤは、サンプルアドレスＳＣＮＴの整数部が各サブフレームに記憶された残差符号の数だけ増加する毎に、「１」増加する。
【００１７】
１０６は副情報デコード部であり、フレーム読出し部１０２が読み出したサブフレームのうち副情報部分が入力され、これを各フレームの期間にわたり蓄積することにより、その次のフレームに対する副情報をデコードし、次のフレーム期間、該フレームの残差符号の復号化等のために音源部１００の各ブロックに供給する。１０８は残差情報キャッシュ部であり、フレーム読出し部１０２が読み出したサブフレームのうちの残差符号部分が入力され、そこに含まれる最新の数サンプルの残差符号を記憶するとともに、サンプルアドレス整数部ＳＣＮＴｉの進行量に相当する数の残差符号を逐次出力する。残差情報キャッシュ部１０８から出力すべき残差符号が足りなくなるタイミングで、アドレス発生部１０４から次のサブフレームを示す合成フレームアドレスＧＦＡＤがフレーム読出し部１０２に供給され、対応するサブフレームが読み出されることにより、該サブフレームに含まれる残差符号が残差情報キャッシュ部１０８に記憶される。１１０はデコーダ部であり、残差情報キャッシュ部１０８から残差符号が出力される毎に、副情報デコード部１０６からの副情報に含まれる予測係数や量子化幅を用いて該残差符号をデコードすることによって波形データのサンプル値を求め、求めたサンプル値をデコーダ部１１０の内部に設けられているキャッシュメモリに逐次格納してゆく。
【００１８】
１１２は補間部であり、デコーダ部１１０において得られた最新の「２」サンプル値に対して、サンプルアドレス小数部ＳＣＮＴｆに基づく補間演算を施す。１１４は音量ＥＧ部であり、この補間されたサンプル値に対して、所定の音量エンベロープを付与する。ここで、上記構成要素１０２〜１１４は、複数発音チャンネルの楽音信号を合成するためにサンプリング周期毎に時分割で駆動される。すなわち、サンプリング周期を発音チャンネル数で分割した時分割のスロット毎に全く異なる発音チャンネルの処理が行われる。また、後述する各レジスタ、バッファ等も発音チャンネル毎に設けられている。１１６はミキサ部であり、各サンプリング周期毎に、音量ＥＧ部１１４から出力された複数発音チャンネルの楽音信号をミキシングし、ステレオの楽音信号として出力する。１１８はＤＡコンバータであり、このステレオの楽音信号をアナログ信号に変換する。このアナログ信号の楽音信号は、サウンドシステム１６を介して発音されることになる。
【００１９】
１．２．２．アドレス発生部１０４の構成
次に、アドレス発生部１０４の構成を図４を参照し説明する。図において１４４は１／３サンプル累算器であり、１サンプリング周期毎に、ｆナンバの「１／３」の値を逐次累算する。また、１／３サンプル累算器１４４には、制御レジスタ１２０を介して、ループ開始点ＬＳＰおよびループ終了点ＬＥＰが供給される。１５０は乗算器であり、この累算結果ＡＣに「３」を乗算する。すなわち、この乗算結果はｆナンバをサンプリング周期毎に累積した値に等しいものであり、該乗算結果はサンプルアドレスＳＣＮＴとして出力される。
【００２０】
１４８は変換器であり、累算器１４４の累算結果ＡＣと、残差符号のビット数ｂｎとに基づいて、サブフレームアドレスＳＦＡＤ＝ＡＣ・ｂｎ／４を出力する。ここで、変換器１４８において用いられる「ビット数ｂｎ」は、通常は副情報デコード部１０６から逐次供給されるビット数ｂｎである。ここで、例えば、ビット数ｂｎが最大値「１２」であったと仮定すると、サブフレームアドレスＳＦＡＤは累算結果ＡＣの３倍すなわちサンプルアドレスＳＣＮＴに等しくなる。従って、サンプルアドレスＳＣＮＴが「１」増加する毎に「１」サブフレームが読み出されることになる。また、ビット数ｂｎが「４」であったと仮定すると、サブフレームアドレスＳＦＡＤは累算結果ＡＣすなわち、サンプルアドレスＳＣＮＴの「１／３」に等しくなる。従って、サンプルアドレスＳＣＮＴが「３」増加する毎に「１」サブフレームが読み出されることになる。
【００２１】
以上の動作は、ビット数ｂｎが「１２」または「４」以外の値であった場合も同様である。このように、サブフレームアドレスＳＦＡＤは、サンプルアドレスＳＣＮＴが各サブフレームに含まれる残差符号のサンプル数だけ増加する毎に、「１」づつ増加する。各ビット数ｂｎに対する「１」フレームあたりのサンプル数と、サブフレームアドレスＳＦＡＤとの関係を以下に列挙しておく。
（ビット数ｂｎ）（サンプル数／フレーム）    （ＳＦＡＤ）
１ビット：      １２０          １／３ＳＣＮＴ×（１／４）
２ビット：      ６０            １／３ＳＣＮＴ×（１／２）
３ビット：      ４０            １／３ＳＣＮＴ×（３／４）
４ビット：      ３０            １／３ＳＣＮＴ×（  １  ）
６ビット：      ２０            １／３ＳＣＮＴ×（３／２）
１２ビット：      １０            １／３ＳＣＮＴ×（  ３  ）
【００２２】
このように、本実施形態においては、累算器１４４の累算単位をサンプルアドレスＳＣＮＴの「１／３」にしたため、サンプルアドレスＳＣＮＴに対応するサブフレームアドレスＳＦＡＤを算出するための演算は、「１／４」または「１／２」を除数とする除算と、乗算の組み合わせにより実現できる。ここで、「１／４」または「１／２」を除数とする除算はシフト演算によって実行可能であり、乗算は加算器とシフタとによって実現できるため、変換器１４８はシフタおよび加算器等によって実現することができ、除算器等は不要である。これにより、変換器１４８の構成をきわめて簡易にすることができる。
【００２３】
さて、変換器１４８においては、サブフレームアドレスＳＦＡＤが「９」（第０９サブフレームに対応する）に達した後に桁上りすると、フレーム終了パルスＦＥＮＤが累算器１４４に供給される。累算器１４４においては、フレーム終了パルスＦＥＮＤが供給されると、累算結果から「今回のフレームにおける残差符号数／３」に相当する値が減算され、累算が続行される。また、フレームアドレスＦＡＤがループ終了フレームＬＥＦである旨を示すループ終了フレーム検出信号ＬＥＦＦが供給されると、１／３サンプル累算器１４４は、以下のように動作する。すなわち、１／３サンプル累算器１４４においては、累算結果ＡＣがループ終了点ＬＥＰに対応する値に達すると、ループエンド検出信号ＬＥＮＤを出力するとともに、該累算結果ＡＣがループ開始点ＬＳＰに対応する値に強制的にリセットされる。
【００２４】
次に、１４２はフレームカウンタであり、ここには制御レジスタ１２０内に記憶されたアタック開始フレームＡＳＦ、ループ開始フレームＬＳＦおよびループ終了フレームＬＥＦが供給される。そして、フレームカウンタ１４２においては、アタック開始フレームＡＳＦを初期値として、上記フレーム終了パルスＦＥＮＤが供給される毎にカウント結果を「１」フレーム分のアドレス数（この場合は「１０」）づづインクリメントする。このカウント結果がフレームアドレスＦＡＤとして出力される。そして、フレームカウンタ１４２のカウント結果がループ終了フレームＬＥＦに一致すると、上述したループ終了フレーム検出信号ＬＥＦＦがフレームカウンタ１４２から１／３サンプル累算器１４４に出力される。しかる後に、１／３サンプル累算器１４４からフレームカウンタ１４２に対してループエンド検出信号ＬＥＮＤが供給されると、フレームカウンタ１４２においては、フレームアドレスＦＡＤがループ開始フレームＬＳＦに強制的にリセットされる。１４６は合成部であり、上記フレームアドレスＦＡＤとサブフレームアドレスＳＦＡＤとを合成し、その結果を合成フレームアドレスＧＦＡＤとして出力する。なお、ここでのサンプリング周期は、音源部１００の各ブロックが動作の基準としているサンプリング周期ではなく、波形メモリに記憶されている波形データの各サンプルの記録順としてのサンプリング周期である。
【００２５】
１．２．３．デコーダ部１１０の構成
次に、デコーダ部１１０の詳細構成を図５を参照し説明する。
図において１６０は逆量子化部であり、残差符号と量子化幅とに基づいて、予測値と実際値の残差である残差値を出力する。１６２は線形予測部であり、過去の「２」サンプリング周期におけるサンプリング値Ｄ１，Ｄ２と予測係数とに対して所定の生成多項式を適用することにより、最新のサンプリング周期におけるサンプリング値の予測値を算出する。１６４は加算器であり、この予測値と残差値とを加算することにより、最新のサンプリング周期におけるサンプリング値を算出する。
【００２６】
１６８はループスタートサンプリング値バッファであり、ループスタートフレームアドレスＬＳの直前フレームにおける最後の「２」サンプリング値を記憶する。１６６は波形データキャッシュメモリであり、算出されたサンプリング値を複数周期に渡って記憶するとともに、過去の「２」サンプリング周期におけるサンプリング値Ｄ１，Ｄ２を上記線形予測部１６２に供給する。
【００２７】
但し、現在のサンプリング周期がループ開始点ＬＳＰである場合は、ループスタートサンプリング値バッファ１６８に記憶された「２」サンプリング値がＤ１，Ｄ２として線形予測部１６２に供給される。また、現在のサンプリング周期がループ開始点ＬＳＰの次のサンプリング周期である場合は、ループ開始点ＬＳＰのサンプリング値がＤ１として、バッファ１６８に記憶された最後の「１」サンプリング値がＤ２として線形予測部１６２に供給される。これは、アタック区間からループ区間に移行した時と、ループ区間の繰り返し再生を行っている時とにおいて、ループ区間の再生結果を一致させるためである。
【００２８】
以上の本実施形態では、楽音のピッチに応じた速さで増加するサンプルアドレスＳＣＮＴに応じて、残差情報キャッシュ部１０８から順次残差符号を取り出してデコードしている。そして、残差情報キャッシュ部１０８内にサンプルアドレスＳＣＮＴに対応する残差符号が無ければ、その残差符号を含むサブフレームのアドレスＧＦＡＤがアドレス発生部１０４からフレーム読出し部１０２に供給され、該アドレスＧＦＡＤにより読み出されたサブフレームの残差符号が残差情報キャッシュ部１０８に補充される。読み出されたサブフレームに含まれる副情報は、同時に副情報デコード部１０６にも供給され、フレーム毎に副情報が再生される。
【００２９】
残差符号を復号するためには各フレームの副情報が必要であるが、本実施形態では残差符号のために読み出されたサブフレームから副情報が再生されるので、別途ＲＡＭ２をアクセスして副情報を読み出す必要が無い。そのため、伸長に必要な副情報を供給する回路の構成をきわめて簡単にすることができる。また、本実施形態では、ＣＰＵ６等の他のデバイスと共有されたバスライン１４を使用して波形メモリをアクセスしているが、各発音チャンネル毎の波形メモリへのアクセス頻度が略一定であり、あまり変動しないので、他のデバイスの動作に与える悪影響が少ない。
【００３０】
１．３．実施形態の動作
１．３．１．圧縮処理
（１）全体動作
まず、通信Ｉ／Ｏ部１２等を介して未圧縮状態の波形データがＲＡＭ２に供給される。そして、当該波形データに対してループ再生を行う場合には、ユーザによって仮のループ区間が設定される。すなわち、任意の「２」のサンプリング点が仮ループ開始点／終了点として指定される。ここで、仮ループ開始点／終了点が所定の「ループ条件」を満たさない場合には、ループ条件を満たすように適宜波形データが修正される。ここで、「ループ条件」とは、上記仮ループ開始点の前後の数サンプルと、上記仮ループ終了点の前後の数サンプルが、レベル方向および時間方向にほぼ一致している、とする条件である。この「ループ条件」が満たされていれば、該波形データの該仮ループ開始点と終了点の間をループ読み出しして再生したときに、該読み出しが該仮ループ終了点から該仮ループ開始点へリターンする部分が滑らかにつながるので不快なノイズが発生しない。そして、該波形データが複数の「フレーム」に対応する「フレーム区間」に分割される。その際、各波形データの再生時に求められる精度や波形レベルの変動の複雑さ等に基づいて、実時間上のフレームサイズ（すなわち「１２０／ビット数ｂｎ」）が決定される。
【００３１】
また、波形データを複数のフレームに分割する際には、図８（ｂ）または図（ｃ）に示される一部「２」フレームにおける伸長パラメータの共通化（詳細は後述する）を実現するため、仮ループ開始点が属するフレームから３フレームの区間と、仮ループ終了点が属するフレーム区間の計「４」区間については、該フレームのサンプル数（各フレームの圧縮に使用されるビット数に応じて決定される）が同一になるよう設定される。なお、上記「２」フレームの伸長パラメータの共通化のためには、最低その「２」フレーム区間さえ揃っていればよいが、処理の簡単化のため、ここでは上記「４」フレーム区間のサンプル数を揃えるようにしている。また、ループ開始点が属するフレームからループ終了点が属するフレームまでの各フレーム区間のサンプル数を揃えるようにすれば、処理はさらに簡単化になる。
【００３２】
次に、ユーザによって所定の操作が行われると、図６に示す圧縮処理ルーチンが起動される。図６において処理がステップＳＰ１０２に進むと、ユーザによって指定された仮ループ開始点が変数ＬＳＰ１に、また仮ループ終了点が変数ＬＥＰ１に代入される。なお、波形データのうち、先頭のサンプリング点から仮ループ開始点ＬＳＰ１の直前までの範囲を「Ａ区間」、仮ループ開始点ＬＳＰ１から仮ループ終了点ＬＥＰ１までの区間を「Ｂ区間」、仮ループ終了点ＬＥＰ１より後の区間を「Ｃ区間」と呼ぶ。次に、処理がステップＳＰ１０４に進むと、波形データの先頭フレーム区間の内容が参照される。次に、処理がステップＳＰ１０６に進むと、参照されているフレーム区間に仮ループ開始点ＬＳＰ１が含まれるか否かが判定される。
【００３３】
ここで「ＮＯ」と判定されると、処理はステップＳＰ１０８に進み、参照されているフレーム区間の波形データに対し、自己相関法や共分散法に基づく予測係数算出演算と波形圧縮演算の試行を繰り返すことにより、伸長パラメータ（ビット数ｂｎ，予測係数，量子化幅）およびその他副情報が決定され、当該フレーム区間の波形データに対して該伸長パラメータを使用した圧縮処理が実行される。すなわち、当該フレーム区間に対応するフレームの残差符号と、その前のフレームの副情報とが形成され、ＲＡＭ２に記憶される。次に、処理がステップＳＰ１１０に進むと、圧縮処理された次のフレーム区間が参照される。次に、処理がステップＳＰ１１２に進むと、未だ圧縮処理されていないフレーム区間が存在するか否かが判定される。圧縮処理されていないフレーム区間が存在する場合にはここで「ＹＥＳ」と判定され、処理はステップＳＰ１０６に戻る。以下、仮ループ開始点ＬＳＰ１を含むフレーム区間が参照されるまで、ステップＳＰ１０６〜ＳＰ１１２の処理が繰り返され、参照されているフレームの区間の波形データが順次圧縮され、残差符号と副情報とが順次ＲＡＭ２に記憶されていくことになる。なお、ループ区間が元々仮設定されていなかった場合には、最終フレームまでステップＳＰ１０６〜ＳＰ１１２の処理が繰り返され、全フレームの圧縮処理が施された後、本ルーチンの処理は終了する。
【００３４】
ここで、仮ループ開始点ＬＳＰ１を含むフレームがステップＳＰ１１０において参照された後に処理がステップＳＰ１０６に進むと、ここで「ＹＥＳ」と判定され、処理はステップＳＰ１１４に進む。ここでは、仮ループ開始点／終了点ＬＳＰ１，ＬＥＰ１の位置を調節した結果が各々ループ開始／終了点ＬＳＰ，ＬＥＰとして設定される。この結果、ループ開始点ＬＳＰを含むループ開始フレームＬＳＦは、元々仮ループ開始点ＬＳＰ１が含まれていたフレームの次のフレームになる場合もある。なお、このステップＳＰ１１４の詳細な内容については後述する。次に、処理がステップＳＰ１１６に進むと、調節後のループ区間含む各フレームに関して、実時間上のフレームサイズ（ビット数ｂｎ），予測係数，量子化幅およびその他の副情報が決定され、これら各フレームに対して圧縮処理が実行される。なお、このステップＳＰ１１６の詳細についても後述する。以上のステップにより、本ルーチンの処理が終了する。
【００３５】
（２）ループ開始／終了点ＬＳＰ，ＬＥＰの調節（ＳＰ１１４）
ここで、上記ステップＳＰ１１４におけるループ開始／終了点の調節処理の詳細を図７を参照し説明する。図７（ａ）は、録音された波形データの波形図であり、同図（ｂ）はそのフレーム境界（分割点）を示す図である。同図（ｂ）において縦線がフレーム境界に該当する。これらの図においてＬＳＰ１およびＬＥＰ１は、上記ステップＳＰ１０２において設定された仮ループ開始点および終了点である。また、同図（ｃ）は、上述したステップＳＰ１１４において調整された結果であるループ開始／終了点ＬＳＰ，ＬＥＰの位置を示す。
【００３６】
まず、調整後のループ終了点ＬＥＰは、仮ループ終了点ＬＥＰ１の属するフレーム（ループ終了フレームＬＥＦ）の最終サンプリング点に設定される。そして、調整後のループ開始点ＬＳＰは、仮ループ開始点ＬＳＰ１よりも「仮ループ終了点ＬＥＰ１からループ終了点ＬＥＰに至るまでのサンプリング数」だけ後のサンプリング点に設定される。そして、仮ループ開始点ＬＳＰ１からループ開始点ＬＳＰまでの各サンプリング値が、仮ループ終了点ＬＥＰ１からループ終了点ＬＥＰまでの区間にコピーされるのである。なお、ループ終了点ＬＥＰ以降の波形データは不要であるために破棄される。
【００３７】
ここで、仮ループ開始点／終了点ＬＳＰ１，ＬＥＰ１に基づいて該波形データを再生したと仮定した場合の出力信号について検討する。図７（ｂ）を参照すると、まずＡ区間の波形データが最初に「１」回だけ再生され、しかる後にＢ区間の波形データが繰り返し再生されることが解る。次に、調整後のループ開始／終了点ＬＳＰ，ＬＥＰに基づいて該波形データを再生したと仮定した場合の出力信号について検討する。図７（ｃ）によれば、ループ開始点ＬＳＰの直前までの区間（すなわちＡ区間の全体＋Ｂ区間の先頭部分）が「１」回だけ再生され、しかる後にループ開始／終了点ＬＳＰ，ＬＥＰ間の区間（すなわちＢ区間の先頭部分以外の部分＋Ｂ区間の先頭部分）が繰り返し再生されることが解る。すなわち、何れの場合においても、再生される波形データには全く相違が生じないのである。
【００３８】
このように、本実施形態によれば、ループ終了点ＬＥＰをフレーム境界に一致させるべく仮ループ開始点／終了点ＬＳＰ１，ＬＥＰ１をシフトしてループ開始／終了点ＬＳＰ，ＬＥＰの位置を設定したにもかかわらず、シフトを行わなかった場合と全く同様の、ループ読み出しによるノイズの含まれない楽音信号を生成することができる。これにより、波形データに対する時間軸方向の圧縮／伸長等は不要になり、高品質な楽音再生を可能にしつつループ終了点ＬＥＰをループ終了点ＬＥＰをフレーム境界に一致させることができるのである。
【００３９】
（３）各フレームに対する伸長パラメータの決定（ＳＰ１１６）
次に、上記ステップＳＰ１１６における伸長パラメータ決定処理の詳細について図８を参照し説明する。まず、波形データが全「８」フレーム（フレームＦ１〜Ｆ８）から成るとともにループ区間が設定されていなかった場合の各フレームの構成を図８（ａ）に示す。図においてフレームＦ１〜Ｆ８には、各々残差符号Ｗ１〜Ｗ８が含まれている。そして、これら残差符号Ｗ１〜Ｗ８のデコードに適用される伸長パラメータをＰ１〜Ｐ８とする。そして、最初のフレームＦ１に適用される伸長パラメータＰ１はヘッダ部２１０に記憶され、各フレームＦ１〜Ｆ７には、次に再生されるフレームに対する残差符号Ｗ２〜Ｗ８に適用される伸長パラメータＰ２〜Ｐ８が記憶されることになる。
【００４０】
次に、上記波形データに対してループ区間が設定された場合の処理を図８（ｂ）を参照し説明する。図示の例においては、フレームＦ４の途中にループ開始点ＬＳＰが設定され、フレームＦ８の最終サンプリング点にループ終了点ＬＥＰが設定されている。そして、フレームＦ４，Ｆ８には、共通の伸長パラメータＰＸ１が適用される。このため、フレームＦ４，Ｆ８には、この伸長パラメータＰＸ１によって符号化された残差符号Ｗ４１，Ｗ８１が各々記憶されることになる。さらに、フレームＦ４，Ｆ８の直前に各々再生されるフレームＦ３，Ｆ７には、当該伸長パラメータＰＸ１が記憶されることになる。
【００４１】
そして、フレームＦ８には、該フレームＦ８の「２」フレーム後に再生される（フレームＦ４の次に再生される）フレームであるフレームＦ５に適用される伸長パラメータＰ５が記憶される。これは、ループ再生時においてはフレームＦ４は途中から（ループ開始点ＬＳＰから）読み出されるため、フレームＦ４に含まれる伸長パラメータＰ５を完全に復元することができなくなることに鑑みてである。
【００４２】
上述したように、フレームＦ４，Ｆ８には、共通の伸長パラメータＰＸ１が適用されるが、この伸長パラメータＰＸ１の決定方法について説明しておく。図９（ａ）に示すように、フレームＦ８，Ｆ４の部分を連結した波形データを想定し、この波形データに対して自己相関法や共分散法に基づく予測係数算出演算と波形圧縮演算の試行を繰り返すことにより、伸長バラメータＰＸ１を決定することが考えられる。また、同図（ｂ）に示すように、両フレームの波形データをクロスフェードして成る波形データに基づいて伸長パラメータＰＸ１を決定してもよい。また、フレームＦ４，Ｆ８はループ再生時に連結されるフレームであるため、両者の波形データは類似の特性を有する傾向が強い。このため、フレームＦ４，Ｆ８に係る波形データのうち一方のみに基づいて伸長パラメータＰＸ１を決定しても差し支えない場合が多い。かかる場合には、図９（ｃ）に示すように、ループ再生を行わない場合（図８（ａ））における伸長パラメータＰ４，Ｐ８の何れか一方（図示の場合はＰ８）を伸長パラメータＰＸ１として用いてもよい。
【００４３】
１．３．２．再生処理
次に、本実施形態における再生処理について説明する。周知の電子楽器と同様に、ＳＭＦ（スタンダードＭＩＤＩファイル）形式の曲データの自動演奏を実行したり、あるいは、通信Ｉ／Ｏ部１２等を介してＭＩＤＩ信号を入力することにより、ノートオンイベントが発生すると、該イベントが音源部１００の有する複数発音チャンネルの何れかに割り当てられる。次に、ＣＰＵ６制御の下、該イベントの示す演奏パートで選択されている音色、および、同イベントの示す音高、強度に対応した楽音生成のための各種パラメータが、制御レジスタ１２０の割り当てられた当該発音チャンネルに対応する個所に書き込まれる。
【００４４】
このとき制御レジスタ１２０に書き込まれるパラメータには、１／３周波数ナンバ、アタック開始フレームＡＳＦ、ループ開始／終了フレームＬＳＦ，ＬＥＦおよびループ開始／終了点ＬＳＰ，ＬＥＰ、各種音量ＥＧパラメータ等の情報も含まれる。さらに、ＣＰＵ６が当該発音チャンネルに対して発音開始を指示することにより、音源部１００において、当該発音チャンネルに係る再生処理が開始される。該再生処理では、ＲＡＭ２からの波形データのサブフレーム単位の読み出し、該サブフレームに含まれる各残差符号のデコード、デコードされた波形データに対する音量エンベロープの付与等が行われ、このようにして生成された当該発音チャンネルの楽音信号は、他の発音チャンネルの楽音信号とミキシングされアナログ信号に変換される。
【００４５】
前記サブフレーム単位の読み出しにおいては、前記イベントで指示された音高に対応する速さで増加するサンプルアドレスＳＣＮＴが累算器１４４、乗算器１５０により生成され、ＳＣＮＴに応じた残差符号が、残差情報キャッシュ１０８に既に読み込まれている残差符号の中から取り出され、デコーダ部１１０に供給される。残差情報キャッシュ１０８にＳＣＮＴに応じた残差符号が読み込まれていない場合は、次のサブフレームを読み出すための合成フレームアドレスＧＦＡＤが、フレームカウンタ１４２、累算器１４４、加算器１４６、変換部１４８により生成される。フレーム読み出し部１０２によりＲＡＭ２からＧＦＡＤの示すサブフレームが読み出され、読み出されたサブフレームの残差符号が残差情報キャッシュ１０８に供給されるとともに、同サブフレームの副情報が副情報デコーダ部１０６に供給される。
【００４６】
ここで、ループ再生時における動作の具体例を図１１を参照し説明しておく。まず、ループ開始／終了フレームＬＳＦ，ＬＥＦのビット数ｂｎが「４」（残差符号数が「３０」）であって、ループ終了点ＬＥＰがループ終了フレームＬＥＦの最終サンプリング点であり、ループ開始点ＬＳＰがループ開始フレームＬＳＦの「１５」番目のサンプリング点であったとする。この実施形態では、ループ終了フレームＬＥＦとループ開始フレームＬＳＦの伸長パラメータを共通化することが要件である。また、ループ終了フレームの「２８」番目の残差符号まで再生が終了したサンプリング周期の次のサンプリング周期に、１／３サンプル累算器１４４においてｆナンバの「１／３」が累算され、サンプルアドレス整数部ＳＣＮＴｉが「４」だけ増加したとする。
【００４７】
上記例においては、１／３サンプル累算器１４４からはループエンド検出信号ＬＥＮＤが出力され、フレームカウンタ１４２におけるフレームアドレスＦＡＤはループ開始フレームＬＳＦに設定される。また、ループ開始点ＬＳＰが「１５」番目のサンプルであったとすると、次の再生点（ループ終了フレームの「２８」番目の残差符号から「４」サンプル進んだ点）はループ開始フレームＬＳＦの「１６」番目のサンプリング点になる。本実施形態においては、「線形予測方式」を採用しているため、各再生点間に属する全ての残差符号を順次復号してゆかなければ各再生点におけるサンプリング値を得ることはできない。このため、次の再生点に至る迄の全ての残差符号（図上でハッチングを施した部分の残差符号）を得ておく必要がある。
【００４８】
本実施形態において残差符号はサブフレーム単位で読み出される。従って、図１１の例においては、元々ループ終了フレームＬＥＦの「２８」番目の残差符号まで再生されていたため、ハッチングを施した残差符号のうち「２９」，「３０」番目の残差符号は既に残差情報キャッシュ部１０８に取り込まれている筈である。そして、未だ得られていないループ開始フレームＬＳＦ内の「１５」，「１６」番目のサンプルを得るために、「２」のサブフレームＳＦ０４，ＳＦ０５がＲＡＭ２から読み出されることになる。
【００４９】
すなわち、当該サンプリング周期では、まず、残差情報キャッシュ部１０８から既に取り込まれているループ終了フレームの「２９」と「３０」番目の残差符号が順次デコーダ部１０６に供給される。次に、サブフレームＳＦ０４が読み出されたとき、該サブフレームに含まれる残差符号が残差情報キャッシュ部１０８に取り込まれ、その中からループ開始フレームの「１５」番目の残差符号がデコーダ部１０６に供給される。さらに、サブフレームＳＦ０５が読み出されたとき、該サブフレームに含まれる残差符号が残差情報キャッシュ部１０８等に取り込まれ、「１６」番目の残差符号がデコーダ部１０６に供給される。この場合、残差情報キャッシュ部１０８は各発音チャンネルあたり最低限「１」サブフレーム分の容量を持っていれば動作可能であるが、さらに発音チャンネルあたり数サブフレーム分の容量を持たせることにより、フレーム読み出し部１０２、残差情報キャッシュ部１０８等のタイミング設計が容易になる。何れにしても、残差情報キャッシュ部１０８には１フレームに相当する１０サブフレームもの容量は必要ない。
【００５０】
ここで、ループ再生時において再生されるフレームと、当該フレームに適用される副情報との関係を図１０（ａ）、（ｂ）に示す。フレームＦ６、Ｆ７、Ｆ８の残差符号の伸長には、各々直前のフレームに記憶されている伸長パラメータＰ６、Ｐ７、ＰＸ１が適用されている。上述したように、ループ終了フレームＦ８の読み出しに続いてループ開始フレームＦ４が読み出されるが、この２つのフレームの伸長パラメータは共通とされているので、ループ開始フレームＦ４ではループ終了フレームＦ８で適用されていた伸長パラメータＰＸ１が引き続き残差符号の伸長に適用される。次のフレームＦ５からは、再び、各々そのフレームＦ５、Ｆ６・・・の直前のフレームに記憶されている伸長パラメータＰ５、Ｐ６・・・が適用される。
【００５１】
以上のように、本実施形態によれば、時間軸方向の圧縮／伸長等、波形データの品質を劣化させる処理を行うことなくループ終了点ＬＥＰをフレーム境界に一致させることができる。そして、ループ開始／終了フレームＬＳＦ，ＬＥＦに適用される伸長パラメータＰＸ１を共通にしてループ終了フレームＬＥＦ直前のフレームに含ませるとともに、ループ開始フレームＬＳＦの次のフレームに適用される伸長パラメータＰ５をループ開始／終了フレームＬＳＦ，ＬＥＦの双方に含ませたから、ループ開始点ＬＳＰを途中に含むループ開始フレームＬＳＦを再生するときに直前のループ終了フレームＬＥＦで適用していた伸長パラメータＰＸ１を継続的に適用することができるので、全てのフレームを支障なくループ再生することができる。さらに、本実施形態によれば、伸長パラメータ等の副情報を一フレーム内に分散配置され、過去に読み込まれたフレームに含まれる伸長パラメータに基づいて現在読み込まれているフレーム内の残差符号が伸長されるから、残差符号を得るために順次サブフレームを読み出していくことにより同時に各フレームの副情報も得ることができ、副情報を読み出すための専用のＲＡＭアクセスが不要となる。
【００５２】
２．第２実施形態
次に、本発明の第２実施形態について説明する。第２実施形態の内容は第１実施形態と大略同様であるが、伸長パラメータの決定方法（ＳＰ１１６）とループ再生における伸長パラメータの適用の態様が異なる。本実施形態における伸長パラメータ決定処理の内容を図８（ｃ）を参照し説明する。図示の例においては、図８（ｂ）の場合と同様に、フレームＦ４の途中にループ開始点ＬＳＰが設定され、フレームＦ８の最終サンプリング点にループ終了点ＬＥＰが設定されている。ループ開始フレームＬＳＦとその直後のフレームであるＦ４，Ｆ５には、共通の伸長パラメータＰＸ２が適用される。
【００５３】
このため、フレームＦ４，Ｆ５には、この伸長パラメータＰＸ２によって符号化された残差符号Ｗ４２，Ｗ５２が各々記憶されることになる。さらに、フレームＦ４の直前に再生されるフレームＦ３，Ｆ８には、当該伸長パラメータＰＸ２が記憶されることになる。この共通の伸長パラメータＰＸ２の決定方法は上述した伸長パラメータＰＸ１の決定方法と同様であり、フレームＦ４，Ｆ８に係る波形データのうち一方、あるいは双方を連結した波形データに基づいて、伸長パラメータＰＸ２が決定される。
【００５４】
そして、該波形データの再生時においては、アタック区間からループ区間に移行する場合には、フレームＦ３に含まれていた伸長パラメータＰＸ２に基づいてフレームＦ４の残差符号Ｗ４２が伸長され、引き続きフレームＦ４に含まれていた伸長パラメータＰＸ２に基づいてフレームＦ５の残差符号Ｗ５２が伸長される。一方、再生位置がループ終了点ＬＥＰからループ開始点ＬＳＰに戻った場合には、ループ終了フレームＬＥＦであるフレームＦ８に含まれていた伸長パラメータＰＸ２が、ループ開始フレームＬＳＦであるフレームＦ４の残差符号Ｗ４２の伸長に適用されるとともに、引き続きその直後のフレームＦ５の残差符号Ｗ５２の伸長にも適用される。（図１０（ａ）、（ｂ）を参照）。
【００５５】
３．第３実施形態
次に、本発明の第３実施形態について説明する。第３実施形態の内容は第１実施形態と大略同様であるが、圧縮前の波形データに対するフレーム区間の設定方法と、ループ開始／終了点ＬＳＰ，ＬＥＰの決定方法（ステップＳＰ１１４）と、伸長パラメータの決定方法（ＳＰ１１６）と、ループ再生における伸長パラメータの適用の態様が異なる。そこで、そこで、これらの各々について詳細に説明する。
【００５６】
３．１．圧縮前の波形データに対するフレーム区間の設定
本実施形態においては、波形データに対してフレーム区間が設定される際には、仮ループ開始点が属するフレーム区間の次のフレーム区間、仮ループ終了点が属するフレーム区間、およびその次のフレーム区間の計「３」区間は、サンプル数（すなわち実時間上のフレームサイズ）が同一になるように設定される。これは、これら「３」区間に対応するフレームのうち何れか「２」フレームに対して共通の伸長パラメータが適用されるため（詳細は後述する）、当該副情報に含まれる「ビット数ｂｎ」に応じて共通の実時間上のフレームサイズを設定しておく必要があるためである。なお、上記「２」フレームの伸長パラメータの共通化のためには、最低その「２」フレーム区間さえ揃っていればよいが、処理の簡単化のため、ここでは上記「３」フレーム区間のサンプル数を揃えるようにしている。また、ループ開始点が属するフレームの次のフレームからループ終了点が属するフレームまでの各フレーム区間のサンプル数を揃えるようにすれば、処理はさらに簡単になる。
【００５７】
３．２．ループ開始／終了点ＬＳＰ，ＬＥＰの調節（ＳＰ１１４）
次に、本実施形態におけるループ開始／終了点ＬＳＰ，ＬＥＰの決定方法を再び図７を参照し説明する。上述したように、図７（ａ），（ｂ）は各々録音された波形データの波形およびフレーム境界（分割点）を示す図である。そして、同図（ｄ）は本実施形態のステップＳＰ１１４において調整された結果であるループ開始／終了点ＬＳＰ，ＬＥＰの位置を示す。
【００５８】
同図（ｄ）においては、仮ループ開始点ＬＳＰ１の属するフレームの次のフレームがループ開始フレームＬＳＦに設定され、該ループ開始フレームＬＳＦの先頭のサンプリング点がループ開始点ＬＳＰに設定される。そして、ループ終了点ＬＥＰは、仮ループ終了点ＬＥＰ１よりも「仮ループ開始点ＬＳＰ１からループ開始点ＬＳＰに至るまでのサンプリング数」だけ後のサンプリング点に設定される。この結果、ループ終了フレームＬＥＦは、元々仮ループ終了点ＬＥＰ１が含まれていたフレームの次のフレームになる場合がある。そして、仮ループ開始点ＬＳＰ１からループ開始点ＬＳＰまでの各サンプリング値が、仮ループ終了点ＬＥＰ１からループ終了点ＬＥＰまでの区間にコピーされるのである。本実施形態においても、ループ終了点ＬＥＰ以降の波形データは不要であるために破棄される。
【００５９】
このように、本実施形態によれば、ループ開始点ＬＳＰがフレーム境界に一致するように仮ループ開始点／終了点ＬＳＰ１，ＬＥＰ１をシフトしてループ開始／終了点ＬＳＰ，ＬＥＰの位置が設定される。そして、上記第１および第２実施形態と同様に、シフトを行わなかった場合と全く同様の楽音信号を生成することができる。これにより、本実施形態においても、波形データに対する時間軸方向の圧縮／伸長等は不要になり、高品質な楽音再生を可能にしつつループ終了点ＬＥＰをループ終了点ＬＥＰをフレーム境界に一致させることができる。
【００６０】
３．３．各フレームに対する伸長パラメータの決定（ＳＰ１１６）
次に、本実施形態における伸長パラメータ決定処理の内容を図８（ｄ）を参照し説明する。図示の例においては、フレームＦ４の先頭にループ開始点ＬＳＰが設定され、フレームＦ８の途中のサンプリング点にループ終了点ＬＥＰが設定されている。そして、ループ開始／終了フレームＬＳＦ，ＬＥＦであるＦ４，Ｆ８には、共通の伸長パラメータＰＸ３が適用される。
【００６１】
このため、フレームＦ４，Ｆ８には、この伸長パラメータＰＸ３によって符号化された残差符号Ｗ４３，Ｗ８３が各々記憶されることになる。さらに、各々フレームＦ４，Ｆ８の直前に再生されるフレームＦ３，Ｆ７には、当該伸長パラメータＰＸ３が記憶されることになる。この共通の伸長パラメータＰＸ３の決定方法は上述した伸長パラメータＰＸ１の決定方法と同様であり、フレームＦ４，Ｆ８に係る波形データのうち一方、あるいは双方を連結した波形データに基づいて、伸長パラメータＰＸ３が決定される。
【００６２】
そして、該波形データの再生時においては、アタック区間からループ区間に移行する場合には、フレームＦ３に含まれていた伸長パラメータＰＸ３に基づいてフレームＦ４の残差符号Ｗ４３が伸長される。引き続きループ区間内の各フレームの残差符号が伸長され、ループ終了フレームＬＥＦであるＦ８内の残差符号Ｗ８３はフレームＦ７に含まれていた伸長パラメータＰＸ３に基づいて伸長される。そして、再生位置がループ終了点ＬＥＰからループ開始点ＬＳＰに戻った場合には、ループ終了フレームＥＦであるＦ８で適用されていた伸長パラメータＦＸ３が、引き続きループ開始フレームＬＳＦであるＦ４の残差符号Ｗ４３の伸長にも適用されることになる（図１０（ｄ），  （ｅ）を参照）。
【００６３】
４．第４実施形態
次に、本発明の第４実施形態について説明する。第４実施形態の内容は第３実施形態と大略同様であるが、伸長パラメータの決定方法（ＳＰ１１６）と、ループ再生における伸長パラメータの適用の態様が異なる。本実施形態における伸長パラメータ決定処理の内容を図８（ｅ）を参照し説明する。図示の例においては、図８（ｄ）の場合と同様に、フレームＦ４の先頭にループ開始点ＬＳＰが設定され、フレームＦ８の途中のサンプリング点にループ終了点ＬＥＰが設定されている。そしてループ終了フレームＬＥＦとその直後のフレームであるＦ７，Ｆ８には、共通の伸長パラメータＰＸ４が適用される。
【００６４】
このため、フレームＦ７，Ｆ８には、この伸長パラメータＰＸ４によって符号化された残差符号Ｗ７４，Ｗ８４が各々記憶されることになる。さらに、フレームＦ７の直前に再生されるフレームＦ６には、当該伸長パラメータＰＸ４が記憶されることになる。この共通の伸長パラメータＰＸ４の決定方法は上述した伸長パラメータＰＸ１〜ＰＸ３の決定方法と同様であり、フレームＦ７，Ｆ８に係る波形データのうち一方、あるいは双方を連結した波形データに基づいて、伸長パラメータＰＸ４が決定される。さらに、フレームＦ７には、ループ開始フレームＬＳＦであるＦ４に適用される伸長パラメータＰ４が記憶される。
【００６５】
そして、該波形データの再生時において、再生位置がフレームＦ６に達すると、残差符号Ｗ６とともに伸長パラメータＰＸ４が読み出される。そして、この読み出された伸長パラメータＰＸ４に基づいて、その次のフレームＦ７の残差符号Ｗ７４が伸長されるとともに、さらにその次のループ終了フレームＬＥＦであるＦ８の残差符号Ｗ８４も伸長される。すなわち、フレームＦ７で残差符号Ｗ７４と同時に読み出された伸長パラメータＰ４は、その次のフレームＦ８の残差波形Ｗ８４には適用されず、さらにその次のループ開始フレームＬＳＦであるＦ４において残差符号Ｗ４の伸長に適用される（図１０（ｄ），（ｆ）を参照）。
【００６６】
５．変形例
本発明は上述した実施形態に限定されるものではなく、例えば以下のように種々の変形が可能である。
（１）上記各実施形態においては図２および図３に示した波形データのフォーマットを用いたが、波形データのフォーマットは必要に応じて種々変更してもよい。例えば、各種データの配置を上記実施形態のものとは異なる配置にすることができる。「１」サブフレームの大きさは「１６」ビットに限られるものではなく、「８」ビット、「３２」ビット等の幅にしてもよい。同様に「１」フレームの大きさは「１０」ワード＝「１６０」ビットに限られるものではなく、「６」ワード、「１４」ワード等の大きさにしてもよい。また、残差符号のビット数は「１」，「２」，「３」，「４」，「６」または「１２」以外の値、例えば「８」または「１６」等であってもよい。
【００６７】
（２）上記各実施形態は２次の線形予測を適用したものであったが、それ以上の高次線形予測を適用してもよく、あるいは複数段の線形予測を適用してもよい。さらに、全く異なる圧縮方式（例えばフォルマント合成）を適用してもよい。また、上記各実施形態において各フレームに記憶される伸長パラメータは「ビット数ｂｎ」、「予測係数」および「量子化幅」であったが、必要な伸長パラメータは圧縮方式に応じて異なることは言うまでもない。
【００６８】
（３）上記各実施形態においては、パーソナルコンピュータ上で動作するアプリケーションプログラムによって電子楽器を実現したが、このアプリケーションプログラムのみをＣＤ−ＲＯＭ、フレキシブルディスク等の記録媒体に格納して頒布し、あるいは伝送路を通じて頒布することもできる。また、音源部１００内の各部の動作も当該アプリケーションプログラムによってソフトウエア的に実行してもよいことは言うまでもない。
【００６９】
【発明の効果】
以上説明したように、指示された仮ループ開始点および仮ループ終了点に基づいてループ開始点およびループ終了点を設定する構成によれば、ループ開始点またはループ終了点のうち少なくとも一方をフレームの境界に一致させることができ、完全に再生されないフレームを一フレームのみに抑えることができる。これにより、波形データ自体の時間軸方向の圧縮または伸長が不要になり、高品質な楽音再生が可能になる。
さらに、特定の二区間に対して同一の伸長パラメータを適用する構成によれば、両区間に対する伸長パラメータの読出しを一回で済ますことができる。
また、読み出された一のフレーム内の圧縮符号と、過去に読み出されたフレーム内の伸長パラメータとに基づいて楽音信号を再生する構成によれば、該一のフレームを再生しようとする際に既に伸長パラメータが得られているため、楽音信号の再生を迅速に開始させることができる。
【図面の簡単な説明】
【図１】本発明の一実施形態の電子楽器のハードウエアブロック図である。
【図２】一実施形態における波形データファイル２００の構造を示す図である。
【図３】各フレーム２１１〜２１ｎのデータ構造を示す図である。
【図４】アドレス発生部１０４のブロック図である。
【図５】残差情報キャッシュ部１０８のブロック図である。
【図６】圧縮処理ルーチンのフローチャートである。
【図７】ループ開始点ＬＳＰおよびループ終了点ＬＥＰを設定する際の動作説明図である。
【図８】伸長パラメータ決定処理の動作説明図である。
【図９】共通の伸長パラメータを決定する処理の動作説明図である。
【図１０】ループ再生時における動作説明図である。
【図１１】ループ再生時における他の動作説明図である。
【符号の説明】
２：ＲＡＭ、４：フラッシュメモリ、６：ＣＰＵ、８：操作子、１０：表示器、１２：通信Ｉ／Ｏ部、１４：バスライン、１６：サウンドシステム、１００：音源部、１０２：フレーム読出し部、１０４：アドレス発生部、１０６：副情報デコード部、１０８：残差情報キャッシュ部、１１０：デコーダ部、１１２：補間部、１１４：音量ＥＧ部、１１６：ミキサ部、１１８：ＤＡコンバータ、１２０：制御レジスタ、１４２：フレームカウンタ、１４４：１／３サンプル累算器、１４４：累算器、１４６：合成部、１４８：変換器、１５０：乗算器、１６０：逆量子化部、１６２：線形予測部、１６４：加算器、１６６：波形データキャッシュメモリ、１６８：バッファ、１６８：ループスタートサンプリング値バッファ、２００：波形データファイル、２０２：管理領域、２０４，２０６，……：波形データ領域、２１０：ヘッダ部、２１１〜２１ｎ：フレーム。
【図１】
2004294780.tif 000003
【図２】
2004294780.tif 000004
【図３】
2004294780.tif 000005
【図４】
2004294780.tif 000006
【図５】
2004294780.tif 000007
【図６】
2004294780.tif 000008
【図７】
2004294780.tif 000009
【図８】
2004294780.tif 000010
【図９】
2004294780.tif 000011
【図１０】
2004294780.tif 000012
【図１１】
2004294780.tif 000013