(57)【要約】【課題】圧縮符号化された音声データを再生開始指示から早く再生することができる音声再生装置を提供すること。【解決手段】再生開始の指示に先立ち、キャッシュ処理（Ｓ７）によって、圧縮音声データの先頭部分（第１〜第Ｎフレーム）に対応する復号後の音声データを、オーディオキャッシュメモリ４ａに記憶する。そして、鍵盤６の鍵が押鍵された場合に、再生処理（Ｓ１１）によって、オーディオキャッシュメモリ４ａに記憶された音声データを出力すると共に、第Ｎフレームから復号を開始する。これにより、第Ｎフレームの復号過程で得られる中間データが生成されるので、第（Ｎ＋１）フレーム以降が正しく復号できる。よって、オーディオキャッシュメモリ４ａに格納された第Ｎフレームに連続して、第（Ｎ＋１）フレーム以降の音声データを再生できる。その結果、圧縮音声データを再生開始の指示から早く再生することができる。【選択図】  図３
2009157272.tif 000002
【特許請求の範囲】
【請求項１】
音声の再生開始の指示に応じて音声を再生する音声再生装置であって、
前記指示により再生される音声に対応して、時間的な相関を用いて圧縮符号化された圧縮音声データを入力する入力手段と、
その入力手段により入力される圧縮音声データを復号する復号手段と、
前記指示により再生される音声の先頭部分に対応する圧縮符号化前または復号後の音声データを記憶する記憶手段と、
前記指示によって音声データの再生開始の指示があった場合に、前記記憶手段に記憶された音声データを出力する第１出力手段と、
前記記憶手段に記憶された音声データの後端に続く音声データを正しく復号するために少なくとも必要な圧縮音声データから順次復号するように前記復号手段を制御し、前記第１出力手段から出力される音声データに連続するように前記復号手段により復号された音声データを出力する第２出力手段とを備えていることを特徴とする音声再生装置。
【請求項２】
前記音声の再生開始の指示に先立って、前記入力手段により入力される前記圧縮音声データのうち、前記指示により再生される音声の先頭部分に対応する圧縮音声データを復号するように前記復号手段を制御し、その復号手段により復号された前記先頭部分に対応する音声データを前記記憶手段に記憶する記憶制御手段を備えていることを特徴とする請求項１記載の音声再生装置。
【請求項３】
前記記憶制御手段により前記先頭部分に対応する圧縮音声データを復号するように前記復号手段が制御されるときに、前記記憶手段に記憶される音声データの後端に続く音声データを正しく復号するために少なくとも必要な圧縮音声データの記憶位置情報を抽出する記憶位置情報抽出手段を備え、
前記入力手段は、前記第２出力手段によって、前記記憶手段に記憶された音声データの後端に続く音声データを正しく復号するために少なくとも必要な圧縮音声データから順次復号するように前記復号手段が制御される場合に、前記記憶位置情報抽出手段によって抽出された記憶位置情報に基づいて、前記記憶手段に記憶された音声データの後端に続く音声データを正しく復号するために少なくとも必要な圧縮音声データから順次入力することを特徴とする請求項２記載の音声再生装置。
【請求項４】
再生される音声の先頭部分に対応する圧縮符号化前または復号後の音声データを記憶する記憶手段を備え、音声の再生開始の指示に応じて音声を再生する音声再生装置により実行される音声再生プログラムであって、
前記指示により再生される音声に対応して、時間的な相関を用いて圧縮符号化された圧縮音声データを入力する入力ステップと、
その入力ステップにより入力される圧縮音声データを復号する復号ステップと、
前記指示によって音声データの再生開始の指示があった場合に、前記記憶手段に記憶された音声データを出力する第１出力ステップと、
前記記憶手段に記憶された音声データの後端に続く音声データを正しく復号するために少なくとも必要な圧縮音声データから順次復号するように前記復号ステップを制御し、前記第１出力ステップから出力される音声データに連続するように前記復号ステップにより復号された音声データを出力する第２出力ステップとを備えていることを特徴とする音声再生プログラム。
【請求項５】
音声の再生開始の指示に応じて音声を再生する音声再生装置により再生される音声データが記憶される音声データ記憶媒体であって、
前記音声再生装置により再生される音声の先頭部分に対応する非圧縮音声データと、
前記音声再生装置により再生される音声が時間的な相関を用いて圧縮符号化されると共に、前記非圧縮音声データに対応する音声データと一部重複し、且つ、その非圧縮音声データの後端に続く音声データを正しく復号するために少なくとも必要な圧縮音声データとが記憶されることを特徴とする音声データ記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声再生装置に関し、特に、圧縮符号化された音声データを再生開始指示から早く再生することができる音声再生装置に関するものである。
【背景技術】
【０００２】
従来、大容量のメモリ装置に記憶されている連続波形信号を読み出して再生する音源装置が知られている。例えば、特許文献１には、ハードディスク４２に複数の連続波形信号が記録され、番号スイッチ群１４ｂにより指定された連続波形信号を再生する電子楽器用の音源装置が開示されている。
【０００３】
この特許文献１に記載された音源装置は、番号スイッチ群１４ｂにより連続波形信号の種類が指定されると、まず、指定された種類の連続波形信号のうち、その先頭部分の部分波形信号がハードディスク４２から読み出され、波形メモリ１２に記憶される。そして、スタートスイッチ１４ｃが操作されると、波形メモリ１２に記憶された部分波形信号が順次読み出されていくと共に、この読み出し中に、ハードディスク４２に記録された連続波形信号の先頭部分に続く部分波形信号が、波形メモリ１２の読み出しの終了した領域に順次書き込まれる。これにより、ハードディスク４２に記録された連続波形信号が再生開始指示から早く再生することができるようになっている。
【０００４】
一方、近年、音声信号を圧縮符号化し、音質を高く保ったまま情報量を削減して記録することが一般的に行われるようになってきた。この種の音声圧縮符号化方式としては、ＭＰＥＧ−１  Ａｕｄｉｏ（ＩＳＯ／ＩＥＣ  １１１７２−３）  Ｌａｙｅｒ−３（以下、「ＭＰ３」と称する）やＭＰＥＧ−２  Ａｄｖａｎｃｅｄ  Ａｕｄｉｏ  Ｃｏｄｉｎｇ（ＩＳＯ／ＩＥＣ  １３８１８−７）（以下、「ＡＡＣ」と称する）などが知られている。これらＭＰ３やＡＡＣは、音声データが所定サンプル単位で時間的にオーバーラップされながら圧縮符号化が行われる（例えば、特許文献２参照）。
【特許文献１】特開平０９−１３４１７７号公報
【特許文献２】特開２００１−１２７６４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
さて、特許文献１に記載されたような音源装置において、ハードディスク４２といった大容量の記憶媒体に記憶される信号を連続波形信号に代えて圧縮符号化された音声信号（圧縮音声データ）とし、記憶媒体の使用効率を上げたい、という要望がある。
【０００６】
しかしながら、上述したように、ＭＰ３やＡＡＣを始めとする音声圧縮符号化方式の多くは、音声データが時間的にオーバーラップされながら圧縮符号化が行われるので、このような圧縮音声データを復号する場合には、時間的に前の復号過程で得られる中間データを利用する必要がある。
【０００７】
よって、スタートスイッチ１４ｃが操作された場合に、波形メモリ１２に予め記憶された先頭部分の音声信号の読み出し中に、その先頭部分に続くハードディスク４２に記憶された圧縮音声データを単に復号しようとしても、その圧縮音声データよりも時間的に前の圧縮音声データを復号する過程で得られる中間データが存在していなければ、その圧縮音声データを正しく復号できない。
【０００８】
これに対し、スタートスイッチ１４ｃが操作されてから、ハードディスク４２に記憶された圧縮音声データを先頭部分から復号するようにすれば、圧縮音声データを正しく復号できるものの、ハードディスク４２からの圧縮音声データの読み出し処理や、復号処理に時間を要するため、スタートスイッチ１４ｃが操作されてから再生が開始されるまでに時間がかかるといった問題点があった。
【０００９】
本発明は、上述した問題点を解決するためになされたものであり、圧縮符号化された音声データを再生開始指示から早く再生することができる音声再生装置を提供することを目的としている。
【課題を解決するための手段】
【００１０】
この目的を達成するために、請求項１記載の音声再生装置は、音声の再生開始の指示に応じて音声を再生するものであって、前記指示により再生される音声に対応して、時間的な相関を用いて圧縮符号化された圧縮音声データを入力する入力手段と、その入力手段により入力される圧縮音声データを復号する復号手段と、前記指示により再生される音声の先頭部分に対応する圧縮符号化前または復号後の音声データを記憶する記憶手段と、前記指示によって音声データの再生開始の指示があった場合に、前記記憶手段に記憶された音声データを出力する第１出力手段と、前記記憶手段に記憶された音声データの後端に続く音声データを正しく復号するために少なくとも必要な圧縮音声データから順次復号するように前記復号手段を制御し、前記第１出力手段から出力される音声データに連続するように前記復号手段により復号された音声データを出力する第２出力手段とを備えている。
【００１１】
請求項２記載の音声再生装置は、請求項１記載の音声再生装置において、前記音声の再生開始の指示に先立って、前記入力手段により入力される前記圧縮音声データのうち、前記指示により再生される音声の先頭部分に対応する圧縮音声データを復号するように前記復号手段を制御し、その復号手段により復号された前記先頭部分に対応する音声データを前記記憶手段に記憶する記憶制御手段を備えている。
【００１２】
請求項３記載の音声再生装置は、請求項２記載の音声再生装置において、前記記憶制御手段により前記先頭部分に対応する圧縮音声データを復号するように前記復号手段が制御されるときに、前記記憶手段に記憶される音声データの後端に続く音声データを正しく復号するために少なくとも必要な圧縮音声データの記憶位置情報を抽出する記憶位置情報抽出手段を備え、前記入力手段は、前記第２出力手段によって、前記記憶手段に記憶された音声データの後端に続く音声データを正しく復号するために少なくとも必要な圧縮音声データから順次復号するように前記復号手段が制御される場合に、前記記憶位置情報抽出手段によって抽出された記憶位置情報に基づいて、前記記憶手段に記憶された音声データの後端に続く音声データを正しく復号するために少なくとも必要な圧縮音声データから順次入力する。
【００１３】
請求項４記載の音声再生プログラムは、再生される音声の先頭部分に対応する圧縮符号化前または復号後の音声データを記憶する記憶手段を備え、音声の再生開始の指示に応じて音声を再生する音声再生装置により実行されるプログラムであって、前記指示により再生される音声に対応して、時間的な相関を用いて圧縮符号化された圧縮音声データを入力する入力ステップと、その入力ステップにより入力される圧縮音声データを復号する復号ステップと、前記指示によって音声データの再生開始の指示があった場合に、前記記憶手段に記憶された音声データを出力する第１出力ステップと、前記記憶手段に記憶された音声データの後端に続く音声データを正しく復号するために少なくとも必要な圧縮音声データから順次復号するように前記復号ステップを制御し、前記第１出力ステップから出力される音声データに連続するように前記復号ステップにより復号された音声データを出力する第２出力ステップとを備えている。
【００１４】
請求項５記載の音声データ記録媒体は、音声の再生開始の指示に応じて音声を再生する音声再生装置により再生される音声データが記憶されるものであって、前記音声再生装置により再生される音声の先頭部分に対応する非圧縮音声データと、前記音声再生装置により再生される音声が時間的な相関を用いて圧縮符号化されると共に、前記非圧縮音声データに対応する音声データと一部重複し、且つ、その非圧縮音声データの後端に続く音声データを正しく復号するために少なくとも必要な圧縮音声データとが記憶される。
【発明の効果】
【００１５】
請求項１記載の音声再生装置によれば、記憶手段には、音声の再生開始の指示によって再生される音声の先頭部分に対応する圧縮符号化前または復号後の音声データが記憶されている。そして、音声の再生開始の指示があった場合に、第１出力手段によって、まず記憶手段に記憶された音声データが出力される。これにより、再生開始の指示から早く、圧縮音声データの先頭部分に対応する音声を再生できる。
【００１６】
また、本発明によれば、音声の再生開始の指示によって再生される音声に対応して、時間的な相関を用いて圧縮符号化された圧縮音声データが入力手段によって入力され、復号手段によって復号される。そして、第２出力手段によって、記憶手段に記憶された音声データの後端に続く音声データを正しく復号するために少なくとも必要な圧縮音声データから順次復号するように復号手段が制御されると共に、第１出力手段から出力される音声データに連続するように復号手段により復号された音声データが出力される。これにより、音声の再生開始の指示によって再生される音声の先頭部分から復号しなくても、記憶手段に記憶された音声データに続く音声データを正しく復号することができると共に、復号の処理にかかる時間を短縮することができる。
【００１７】
このように、本発明によれば、音声の再生開始の指示があった場合に、まず音声の先頭部分を早く再生し、次いで、その先頭部分に連続して、復号された音声データを再生できる。その結果、時間的な相関を用いて圧縮符号化された音声データを再生開始指示から早く再生することができるという効果がある。
【００１８】
請求項２記載の音声再生装置によれば、請求項１記載の音声再生装置の奏する効果に加え、音声の再生開始の指示に先立ち、記憶制御手段によって、入力手段により入力される圧縮音声データのうち先頭部分に対応する圧縮音声データを復号するように復号手段が制御されると共に、復号手段により復号された先頭部分に対応する音声データが記憶手段に記憶されるので、音声の先頭部分が圧縮音声データとして記憶されているような場合であっても、圧縮符号化された音声データを再生開始指示から早く再生することができるという効果がある。
【００１９】
請求項３記載の音声再生装置によれば、請求項２記載の音声再生装置の奏する効果に加え、次の効果を奏する。一般的に、圧縮符号化された圧縮音声データにおいて、１サンプルの音声データにおけるデータ長が可変長であるため、任意の時間の圧縮音声データにアクセスしたい場合、先頭から順に圧縮音声データを読み出して、その任意の時間の圧縮音声データを探索する必要がある。これに対し、本発明によれば、記憶制御手段により音声の先頭部分に対応する圧縮音声データを復号するように復号手段が制御されるときに、記憶手段に記憶される音声データの後端に続く音声データを正しく復号するために少なくとも必要な圧縮音声データの記憶位置情報が、記憶位置情報抽出手段によって抽出される。そして、第２出力手段によって、記憶手段に記憶された音声データの後端に続く音声データを正しく復号するために少なくとも必要な圧縮音声データから順次復号するように復号手段が制御される場合に、入力手段は、記憶位置情報抽出手段によって抽出された記憶位置情報に基づいて、記憶手段に記憶された音声データの後端に続く音声データを正しく復号するために少なくとも必要な圧縮音声データから順次入力するように構成されている。
【００２０】
これにより、先頭から圧縮音声データを読み出して、所望の圧縮音声データ（記憶手段に記憶された音声データに続く音声データを正しく復号するために少なくとも必要な圧縮音声データ）を探索する必要がないので、その探索の処理にかかる負担を軽減することができるという効果がある。また、所望の圧縮音声データを得るために入力される圧縮音声データのデータ量を必要最低限な量にすることができるので、所望の圧縮音声データを入力するのに要する時間を可能な限り短縮することができるという効果がある。
【００２１】
更に、本発明によれば、記憶制御手段により復号手段が制御されて音声の先頭部分に対応する圧縮音声データが復号されるときに、記憶手段に記憶される音声データの後端に続く音声データを正しく復号するために少なくとも必要な圧縮音声データが入力されることを利用して、その圧縮音声データの記憶位置情報を抽出するので、その記憶位置情報の抽出のために、別途圧縮音声データを先頭から読み出して所望の圧縮音声データの記憶位置を探索する必要がない。従って、容易にその記憶位置情報を抽出することができるという効果がある。
【００２２】
請求項４記載の音声再生プログラムによれば、本プログラムが音声再生装置によって実行されることにより、請求項１記載の音声再生装置と同様な効果を奏することができる。
【００２３】
請求項５記載の音声データ記憶媒体によれば、音声の再生開始の指示に応じて音声再生装置により再生される音声の先頭部分に対応する非圧縮音声データと、音声再生装置により再生される音声が時間的な相関を用いて圧縮符号化されると共に、非圧縮音声データに対応する音声データと一部重複し、且つ、その非圧縮音声データの後端に続く音声データを正しく復号するために少なくとも必要な圧縮音声データとが記憶される。これにより、音声再生装置は、音声の再生開始の指示に応じて音声の先頭部分に対応する非圧縮音声データを音声データ記憶媒体から読み出して再生すると共に、その非圧縮音声データの後端に続く音声データを正しく復号するために少なくとも必要な圧縮音声データを音声データ記憶媒体から読み出して復号し、その復号後の音声データを非圧縮音声データに連続して再生することができるので、時間的な相関を用いて圧縮符号化された音声データを再生開始指示から早く再生することができるという効果がある。
【発明を実施するための最良の形態】
【００２４】
以下、本発明の好ましい実施の形態について添付図面を参照して説明する。図１は、本発明の一実施の形態における電子楽器１の電気的構成を示したブロック図である。この電子楽器１は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）を用いてデータの読み書きが可能なフラッシュメモリ５０（以下、「ＵＳＢメモリ５０」と称する）に記憶されたＭＰ３ファイル５０ａ中の圧縮音声データを、再生開始指示から早く再生することができる装置である。
【００２５】
尚、ＭＰ３ファイル５０ａは、ＭＰ３方式によって圧縮符号化された圧縮音声データが、ＭＰＥＧ−１  Ａｕｄｉｏ（ＩＳＯ／ＩＥＣ  １１１７２−３）で定められた規格に従ってファイル化されたものである。
【００２６】
ＵＳＢメモリ５０には、複数の圧縮音声データが各々ＭＰ３ファイル５０ａにファイル化されて記憶されている。また、圧縮音声データを再生するための種々の設定情報が記述された設定ファイル（図示せず）も記憶されている。設定情報には、例えば、鍵盤６の低音側１オクターブを構成する１２鍵の各々に対して、割り当てるべき圧縮音声データを指定するための情報が含まれる。ユーザは、設定ファイルを編集することによって、各１２鍵に割り当てる圧縮音声データを変更することができる。
【００２７】
そして、電子楽器１は、設定ファイルに記載された情報に従って、鍵盤６の低音側１オクターブを構成する１２鍵に対して、それぞれ圧縮音声データを割り当てる。また、この１２鍵のいずれかの鍵が押鍵されると、その押鍵された鍵に割り当てられた圧縮音声データを再生する。
【００２８】
ここで、ＭＰ３方式による圧縮符号化の概要について説明する。ＭＰ３方式は、所定のサンプリング周波数（例えば、４４．１ＫＨｚ）でサンプリングされた音声データを、所定のサンプル数で構成されるフレームを単位として圧縮符号化する。このとき、あるフレームに属するサンプルと前後のフレームに属するサンプルとがオーバーラップするように、時間的な相関を用いてそれぞれのフレームが構成されて、圧縮符号化が行われる。また、ＭＰ３方式により圧縮符号化された各フレームのデータ長は、音声波形の立ち上がりの部分であるアタック部とその他の部分とでそれぞれ異なるものとなる。
【００２９】
一方、ＭＰ３方式によって圧縮符号化された圧縮データを復号するには、１つ前のフレームの復号過程で得られる中間データと復号対象フレームの復号過程で得られる中間データとを用いて行う必要がある。換言すれば、あるフレームを復号したい場合、その１つ前のフレームの復号過程で得られる中間データが存在すれば、正しく復号することができる。
【００３０】
次いで、図２を参照して、図１に示す電子楽器１の動作原理について説明する。図２は、電子楽器１の動作原理を説明する説明図である。ここでは、ＭＰ３ファイル５０ａに、図２（ａ）に示す第１〜第Ｍフレームで構成される圧縮音声データが含まれ、鍵盤６の低音側１２鍵のいずれかの鍵に、この圧縮音声データが割り当てられるものとして説明する。
【００３１】
この電子楽器１は、予め、圧縮音声データの先頭部分（第１〜第Ｎフレーム）を復号し、図２（ｂ）に示すように、その復号後の音声データをオーディオキャッシュメモリ４ａ（図１参照）に格納する。
【００３２】
そして、この圧縮音声データの割り当てられた鍵が押鍵されると、電子楽器１は、予めオーディオキャッシュメモリ４ａに格納しておいた復号後の音声データを、図２（ｄ）に示すように、オーディオバッファ４ｂ（図１参照）にコピーする。これにより、オーディオバッファ４ｂにコピーされた音声データが、即座に音源回路８（図１参照）によってスピーカ２２（図１参照）から出力され、鍵盤６の鍵が押鍵されてから早く、圧縮音声データの先頭部分（第１〜第Ｎフレーム）に対応する音声が再生される。
【００３３】
一方、圧縮音声データの先頭部分（第１〜第Ｎフレーム）に対応する復号後の音声データが、音声回路８によってスピーカ２２から出力されている間に、電子楽器１は、図２（ｃ）に示すように、オーディオキャッシュメモリ４ａに格納されている第Ｎフレームを再度復号すると共に、その第Ｎフレームから順次復号処理を進める。
【００３４】
上述したように、ＭＰ３方式によって圧縮符号化された圧縮データを復号するには、１つ前のフレームの復号過程で得られる中間データと復号対象フレームの復号過程で得られる中間データとを用いて行う必要がある。これに対し、図２（ｃ）の復号処理では、第Ｎフレームから順次復号処理を行うので、第（Ｎ＋１）フレーム以降の音声データが正しく復号される。そして、この正しく復号された第（Ｎ＋１）フレーム以降の音声データを、図２（ｄ）に示すように、オーディオバッファ４ｂに格納することで、第Ｎフレームに連続して、第（Ｎ＋１）フレーム以降の音声データが出力される。
【００３５】
これにより、電子楽器１は、圧縮符号化された圧縮音声データを、鍵盤６の鍵の押鍵による音声の再生開始の指示から早く再生することができる。
【００３６】
次いで、図１に戻り、電子楽器１の詳細構成について説明する。電子楽器１は、図１に示すように、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）４、操作ボタン５、鍵盤６、ＵＳＢインターフェイス７、音源回路８を備えており、これらはバスライン１０を介して互いに接続されている。また、電子楽器１は、音源回路８に接続されたデジタル−アナログ変換器９（以下、「Ｄ／Ａ変換器９」と称する）を有しており、このＤ／Ａ変換器９の出力は外部に設けられたアンプ２１を介してスピーカ２２に伝送される。
【００３７】
ＣＰＵ２は、ＲＯＭ３やＲＡＭ４に記憶されるプログラムやデータに従って、或いは操作ボタン５および鍵盤６の操作状態に従って、バスライン１０によって接続された各部を制御する演算装置である。このＣＰＵ２は、複数の処理をマルチタスク処理可能に構成されている。
【００３８】
ＲＯＭ３は、ＣＰＵ２によって実行される制御プログラム３ａや、波形データ３ｂを含む固定値データを記憶する書き換え不能なメモリである。制御プログラム３ａは、後述する図３から図５に図示されたフローチャート（メイン処理、キャッシュ処理、および復号処理のフローチャート）のプログラムを含んでおり、ＣＰＵ２がこれらのプログラムを実行することによって、電子楽器１において、ＵＳＢメモリ５０に記憶された圧縮音声データを、再生開始指示から早く再生することができる。
【００３９】
また、制御プログラム３ａには、ＭＰ３方式によって圧縮符号化された圧縮音声データを復号するための復号プログラムも有しており、ＣＰＵ２がこの復号プログラムを実行することによって、ＭＰ３ファイル５０ａに含まれる圧縮音声データを復号する。
【００４０】
波形データ３ｂは、電子楽器１より出力する楽音の波形がＰＣＭ（Ｐｕｌｓｅ  Ｃｏｄｅ  Ｍｏｄｕｌａｔｉｏｎ）方式によってデジタル化されたデータであり、ＲＯＭ３には、鍵盤６を構成する複数の鍵毎にそれぞれ異なる波形データ３ｂが記憶されている。
【００４１】
電子楽器１は、ＭＰ３再生モード（後述するＭＰ３再生フラグ４ｃが「１」のモード）時に圧縮音声データが割り当てられた鍵盤６の低音側の１２鍵を除く、いずれかの鍵が押鍵されると、ＣＰＵ２からの指示によって、その鍵に対応する波形データ３ｂがＲＯＭ３から後述する音源回路８によって読み出さる。これにより、この波形データ３ｂに基づく楽音が、音源回路８からＤ／Ａ変換器９およびアンプ２１を介してスピーカ２２へ出力される。
【００４２】
ＲＡＭ４は、ＣＰＵ２による制御プログラム３ａの実行時に、各種のデータを書き換え可能に記憶するためのメモリであり、ＵＳＢメモリ５０よりも高速に読み出し動作および書き込み動作が行われる。
【００４３】
このＲＡＭ４には、オーディオキャッシュメモリ４ａ、オーディオバッファ４ｂが設けられていると共に、ＭＰ３再生フラグ４ｃ、ループ再生フラグ４ｄ、キャッシュ直後フラグ４ｅ、復号開始アドレス４ｆ、第１ポインタ４ｇ、第２ポインタ４ｈが格納されている。また、ＲＡＭ４には、圧縮音声データの一フレームが復号される度に、そのフレームの復号過程で得られる中間データが格納され、次のフレームの復号が完了するまで保持される。
【００４４】
なお、オーディオキャッシュメモリ４ａ、ループ再生フラグ４ｄ、キャッシュ直後フラグ４ｅ、復号開始アドレス４ｆ、第１ポインタ４ｇ及び第２ポインタ４ｈは、それぞれ、圧縮音声データが割り当てられる鍵盤６の低音側１オクターブを構成する１２鍵に対応して複数設けられている。また、ＲＡＭ４には、一フレームの復号で得られる中間データを格納する領域も、その１２鍵に対応して複数設けられる。
【００４５】
これにより、ＣＰＵ２は、後述するキャッシュ処理（図４参照）および再生処理（図５参照）を、その１２鍵に割り当てられる圧縮音声データ毎にそれぞれ独立して実行させることができ、それらを同時に再生する和音再生を可能としている。
【００４６】
また、オーディオバッファ４ｂは、電子楽器１で再生可能な最大和音数（例えば、６４和音）に対応して複数設けられており、圧縮音声データだけでなく、音源回路８による楽音の発音と共通に使用される。これにより、その他の楽音との和音再生も可能にしている。
【００４７】
オーディオキャッシュメモリ４ａは、鍵盤６の低音側の１２鍵に対してそれぞれ割り当てられる圧縮音声データのうち、先頭フレーム（第１フレーム）から第Ｎフレームまでの圧縮音声データの復号結果（復号後の音声データ）をキャッシュするためのメモリである。
【００４８】
ＣＰＵ２は、ＭＰ３再生フラグ４ｃが「０」の場合に、後述するＭＰ３再生ボタン５ａがオンされると、１２鍵に割り当てられた圧縮音声データのうち第１フレームから第Ｎフレームまでの圧縮音声データをそれぞれ復号し、復号後の音声データを、各鍵に対応するオーディオキャッシュメモリ４ａに格納する。また、オーディオキャッシュメモリ４ａに格納された音声データは、対応する圧縮音声データが鍵盤６の低音側１２鍵に割り当てられている間、保持される。
【００４９】
オーディオバッファ４ｂは、音声をスピーカ２２から再生する場合に、音声データを所定のサンプリング速度で出力するために、再生すべき音声データを一時的に保存しておくためのＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ，Ｆｉｒｓｔ  Ｏｕｔ）型のリングバッファである。ＣＰＵ２は、鍵盤６の鍵が押鍵されると、不使用のオーディオバッファ４ｂにその鍵を対応させ、その鍵によって再生すべき音声データを一時的に保存する。
【００５０】
オーディオバッファ４ｂに保存された音声データは、音源回路８によって一定の時間間隔毎に読み出される。これにより、音声データは、所定のサンプリング速度でＤ／Ａ変換器９および外部に設けられたアンプ２１を介して、スピーカ２２に出力される。
【００５１】
なお、音源回路８によって音声データがオーディオバッファ４ｂから読み出されると、その読み出された音声データが保存されていたオーディオバッファ４ｂの領域は空き領域となる。ＣＰＵ２は、そのオーディオバッファ４ｂの空き領域に対して、別の復号後の音声データを格納する。
【００５２】
また、ＣＰＵ２は、オーディオバッファ４ｂの占有量（ＣＰＵ２によって格納された音声データのデータ量から音源回路８によって読み出された音声データのデータ量を差し引いた値）を監視する。そして、この占有量の値からオーディオバッファ４ｂに音声データの格納できる空きがあるか否かを判断し、空きがない場合には、音源回路８によって音声データが読み出されて空きが発生するまで、再生処理による音声データの格納処理を一時的にウェイトする。
【００５３】
ＭＰ３再生フラグ４ｃは、ＭＰ３再生機能のオン／オフを設定するフラグで、その値が「１」の場合に、電子楽器１はＭＰ３再生モードとして動作する。この場合、圧縮音声データの割り当てられた鍵盤６の低音側の１２鍵が押鍵されると、その鍵に割り当てられた圧縮音声データが再生される。また、その他の鍵が押鍵されると、その鍵に対応する波形データ３ｂが音源回路８によってＲＯＭ３から読み出され、Ｄ／Ａ変換器９、アンプ２１を介して、スピーカ２２から所定の楽音が出力される。
【００５４】
また、ＭＰ３再生フラグ４ｃの値が「０」の場合には、電子楽器１は通常の動作モードとして動作する。この場合、鍵盤６の任意の鍵が押鍵されると、その押鍵された鍵に対応する波形データ３ｂがＲＯＭ３から読み出されて、スピーカ２２から所定の楽音が出力される。
【００５５】
このＭＰ３再生フラグ４ｃは、電子楽器１に設けられた電源（図示せず）がオンされると、ＣＰＵ２によって「０」に初期化される。そして、後述するＭＰ３再生ボタン５ａがオンされる度に、ＭＰ３再生フラグ４ｃの値が「０」と「１」の間でＣＰＵ２により反転させられる。
【００５６】
ループ再生フラグ４ｄは、圧縮音声データの終端まで再生した場合に、先頭に戻って再生を繰り返すループ再生を行うか否かを設定するためのフラグで、ループ再生を行う場合には「１」、ループ再生を行わない場合には「０」が設定される。
【００５７】
このループ再生フラグ４ｄは、電子楽器１に設けられた電源（図示せず）がオンされると、ＣＰＵ２によって「０」に初期化される。また、ループ再生フラグ４ｄの変更は、後述するループ再生ボタン５ｂと鍵盤６とが操作されることにより行われる。即ち、ループ再生ボタン５ｂが押下されている場合に、圧縮音声データの割り当てられた鍵盤６の鍵が押鍵されると、その鍵に対応するループ再生フラグ４ｄの内容がＣＰＵ２によって反転される。
【００５８】
キャッシュ直後フラグ４ｅは、第Ｎフレームの復号過程で得られる中間データがＲＡＭ４に保持されているか否かを示すフラグである。そして、このフラグの値が「１」の場合には、第Ｎフレームの復号過程で得られる中間データがＲＡＭ４に保持されていることを示し、「０」の場合には、その中間データが保持されていないことを示す。
【００５９】
このキャッシュメモリ直後フラグ４ｄは、電子楽器１が圧縮音声データを再生する場合に、オーディオキャッシュメモリ４ａに格納された第Ｎフレームに続く第（Ｎ＋１）フレーム以降の復号結果を得るために、どのフレームから復号すべきかをＣＰＵ２によって制御するために用いられる。
【００６０】
例えば、キャッシュ直後フラグ４ｅの値が「０」であれば、ＲＡＭ４には第Ｎフレームの復号過程で得られる中間データが保持されていないので、第Ｎフレーム以降の圧縮音声データをＵＳＢメモリ５０から読み出して復号する。これにより、第（Ｎ＋１）フレームの復号を行う前に、第Ｎフレームの復号過程で得られる中間データが生成されるので、第（Ｎ＋１）フレーム以降の音声データを正しく復号することができる。
【００６１】
一方、キャッシュ直後フラグ４ｅの値が「１」であれば、ＲＡＭ４には第Ｎフレームの復号過程で得られる中間データが保持されているので、第（Ｎ＋１）フレーム以降に対応する圧縮音声データをＵＳＢメモリ５０から順次読み出して復号する。
【００６２】
復号開始アドレス４ｆは、鍵盤６の低音側の１２鍵に割り当てられた各圧縮音声データにおいて、第Ｎフレームの圧縮音声データが格納されている位置を、対応するＭＰ３ファイル５０ａの先頭からのアドレスによって示したものである。
【００６３】
この復号開始アドレス４ｆは、オーディオキャッシュメモリ４ａに圧縮音声データの先頭部分（第１〜第Ｎフレーム）の復号後の音声データをキャッシュするときに、ＵＳＢメモリ５０より読み出される第１〜第（Ｎ−１）フレームに対応する圧縮音声データのデータ量を積算することによって抽出される。
【００６４】
そして、電子楽器１が圧縮音声データを再生する場合に、第Ｎフレーム以降の圧縮音声データをＵＳＢメモリ５０から読み出して復号するときには、ＣＰＵは、復号開始アドレス４ｆに格納されたアドレスをＵＳＢメモリ５０に対して指定する。これにより、第Ｎフレームの圧縮音声データをＵＳＢメモリ５０から即座に読み出すことができる。
【００６５】
第１ポインタ４ｇは、ある時点でのオーディオキャッシュメモリ４ａに格納されている音声データの最大のフレーム番号（１、２、・・・、Ｎ）を示すポインタである。この第１ポインタ４ｇは、鍵盤６の鍵が押鍵され、その鍵に割り当てられた圧縮音声データを再生する場合に、ＣＰＵ２が、各鍵に対応する第１ポインタ４ｇの値から、再生すべき圧縮音声データの先頭部分（第１〜第Ｎフレーム）の復号後の音声データが、全てオーディオキャッシュメモリ４ａにキャッシュされているか否かを判断するために用いられる。
【００６６】
第２ポインタ４ｈは、オーディオバッファ４ｂに格納すべき音声データのフレーム番号を示すポインタである。この第２ポインタ４ｈは、ＣＰＵ２が各フレームの音声データをオーディオバッファ４ｂに格納する場合に、オーディオキャッシュメモリ４ａからコピーするか、ＵＳＢメモリ５０から圧縮音声データを読み出して復号するかを判断するために用いられる。
【００６７】
即ち、第２ポインタ４ｈの値が「Ｎ」以下の場合、ＣＰＵ２は、オーディオキャッシュメモリ４ａから第２ポインタ４ｈで示されたフレームの音声データを読み出し、オーディオバッファ４ｂにコピーする。一方、第２ポインタ４ｈの値が「Ｎ＋１」以上の場合、ＣＰＵ２は、第２ポインタ４ｈによって示されるフレームの圧縮音声データを、ＵＳＢメモリ５０から読み出して復号し、その復号後の音声データを、オーディオバッファ４ｂに格納する。
【００６８】
操作ボタン５は、電子楽器１に対して各種設定や指示を行うボタンで、その操作に応じて電子楽器１の動作条件が設定される。この操作ボタン５には、ＭＰ３再生ボタン５ａおよびループ再生ボタン５ｂが設けられている。
【００６９】
ＭＰ３再生ボタン５ａは、ＭＰ３再生機能のオン／オフを切り替えるボタンで、上述したように、このＭＰ３再生ボタン５ａがオンされる度に、ＭＰ３再生フラグ４ｃの値が反転する。これにより、電子楽器１はＭＰ３再生モードと通常の動作モードとの間で、動作モードが切り替えられる。
【００７０】
ループ再生ボタン５ｂは、圧縮音声データを再生する場合に、ループ再生を行うか否かを設定するためのボタンである。上述したように、ループ再生ボタン５ｂが押下されている場合に、一の圧縮音声データの割り当てられた鍵盤６の鍵が押鍵されると、その圧縮音声データに対応するループ再生フラグ４ｄの値が反転され、ループ再生の可否が変更される。
【００７１】
鍵盤６は、電子楽器１において楽音の出力指示を行う部材であり、複数の鍵によって構成されている。上述したように、各鍵にはそれぞれ異なる波形データ３ｂが割り当てられており、ある鍵が押鍵されると、その鍵に対応する波形データ３ｂに基づいて、所定の楽音をスピーカ２２から出力する。
【００７２】
また、電子楽器１がＭＰ３再生モードで動作する場合には、鍵盤６の鍵のうち低音側の１オクターブを構成する１２鍵に対して、ＵＳＢメモリ５０に記憶された複数の圧縮音声データの中から、ＵＳＢメモリ５０に記憶された設定ファイル（図示せず）によって指定された圧縮音声ファイルが割り当てられる。そして、その１２鍵が押鍵されると、その鍵に割り当てられた圧縮音声データを再生する。
【００７３】
ＵＳＢインターフェイス７は、ＵＳＢ規格に従って外部装置との間でデータ伝送を行うためのインターフェイスであり、外部装置と接続するためのコネクタ（図示せず）を備えている。ＵＳＢメモリ５０は、このＵＳＢインターフェイス７を介して、電子楽器１と接続される。
【００７４】
音源回路８は、波形データ３ｂ、又は、圧縮音声データの復号後の音声データに基づいて、外部に出力する音声データを生成する回路である。鍵盤６の鍵が押鍵されると、音源回路８は、ＣＰＵ２からの指示に従って、押鍵された鍵盤６の鍵に対応する波形データ３ｂをＲＯＭ３から読み出す。また、押鍵された鍵盤６の鍵が、圧縮音声データの割り当てられた鍵である場合には、その鍵に割り当てられたオーディオバッファ４ｂから音声データを読み出す。
【００７５】
そして、音源回路８は、ＲＯＭ３より読み出した波形データ３ｂもしくはオーディオバッファ４ｂより読み出した音声データに対して、所定の信号処理を施すと共に、複数の鍵が押鍵されている場合には、各々の鍵に対応する波形データ３ｂもしくは音声データを混合することによって、外部に出力する音声データを生成する。音源回路８は、この生成した音声データを、順次Ｄ／Ａ変換器９へ伝送する。
【００７６】
Ｄ／Ａ変換器９は、音源回路８から伝送された音声データをアナログ信号に変換するものである。このＤ／Ａ変換器９の出力側には、外部に設けられたアンプ２１が接続されており、Ｄ／Ａ変換器９によってアナログ信号に変換された音声データは、アンプ２１で増幅される。そして、アンプ２１の出力側に接続された外部のスピーカ２２から、その音声データが出力される。
【００７７】
次いで、図３を参照して、メイン処理について説明する。図３は、メイン処理を示すフローチャートである。この処理は、操作ボタン５の操作状況や鍵盤６の押鍵状況に応じて電子楽器１の動作を制御するための処理で、電子楽器１の電源（図示せず）がオンされたときにＣＰＵ２によって開始され、電源がオフされるまで繰り返し実行される。
【００７８】
このメイン処理では、まず、電源投入直後の初期化処理として、ＭＰ３再生フラグ４ｃを「０」に初期化する（Ｓ１）。また、圧縮音声データの割り当てられる鍵盤６の低音側の１２鍵に対応する全てのループ再生フラグ４ｄを「０」に初期化する（Ｓ２）。更に、圧縮音声データの割り当てられる鍵盤６の低音側の１２鍵に対応する全てのキャッシュ直後フラグ４ｅを「０」に初期化する（Ｓ３）。
【００７９】
次いで、ＭＰ３再生ボタン５ａがオンされたかを確認し（Ｓ４）、ＭＰ３再生ボタン５ａがオンされた場合には（Ｓ４：Ｙｅｓ）、次いで、ＭＰ３再生フラグが「０」であるか否かを確認する（Ｓ５）。その結果、ＭＰ３再生フラグが「０」である場合には（Ｓ５：Ｙｅｓ）、電子楽器１が通常の動作モードで動作中に、ユーザがＭＰ３再生ボタン５ａをオンしたと判断できる。そこで、ユーザによって電子楽器１がＭＰ３再生モードに設定されたと判断し、先ず、ＵＳＢメモリ５０に記憶された設定ファイル（図示せず）を読み出し、鍵盤６の鍵のうち、低音側の１オクターブを構成する１２鍵と、それぞれの鍵に割り当てる圧縮音声データとの対応関係をＲＡＭ４に記憶する（Ｓ６）。
【００８０】
次いで、鍵盤６の低音側の１２鍵に割り当てられた圧縮音声データについて、後述するキャッシュ処理（図４参照）を開始する（Ｓ７）。このとき、電子楽器１の電源が投入されてから初めてＭＰ３再生ボタン５ａがオンされている場合には、各鍵に割り当てられたすべての圧縮音声データについてキャッシュ処理を開始する。また、それ以後にＭＰ３再生ボタン５ａがオンされた場合には、各鍵に割り当てられた圧縮音声データに変更があれば、その変更があった鍵に新たに割り当てられた圧縮音声データについてキャッシュ処理を開始する。
【００８１】
これにより、鍵盤６の鍵が押鍵されることによって圧縮音声データの再生開始の指示がなされるのに先立ち、全ての圧縮音声データの先頭部分に対応する圧縮音声データが復号され、復号後の音声データをオーディオキャッシュメモリ４ａに格納することができる。
【００８２】
また、各鍵に割り当てられる圧縮音声データが変更される度に、キャッシュ処理を開始するので、鍵盤６の低音側の１２鍵に割り当てられる圧縮音声データが変更されても、変更後の圧縮音声データについて、その先頭部分に対応する復号後の音声データをオーディオキャッシュメモリ４ａに格納できる。
【００８３】
Ｓ７の処理の後、ＭＰ３再生フラグ４ｃを「１」に設定し（Ｓ８）、Ｓ１０の処理へ移行する。これにより、電子楽器１は、ＭＰ３再生モードで動作する。
【００８４】
一方、Ｓ５の処理の結果、ＭＰ３再生フラグ４ｃが「０」でない、即ち、「１」である場合には（Ｓ５：Ｎｏ）、電子楽器１がＭＰ３再生モードで動作中に、ユーザがＭＰ３再生ボタン５ａをオンしたと判断できる。そこで、ユーザによって電子楽器１が通常の動作モードに設定されたと判断し、ＭＰ３再生フラグ４ｃを「０」に設定して、Ｓ１０の処理へ移行する。
【００８５】
これに対し、Ｓ４の処理の結果、ＭＰ３再生ボタン５ａがオンされたと確認されない場合（Ｓ４：Ｎｏ）、電子楽器１において通常の動作モードもしくはＭＰ３再生モードが維持されると判断し、Ｓ５〜Ｓ９の処理をスキップして、Ｓ１０の処理へ移行する。
【００８６】
Ｓ１０の処理では、ＭＰ３再生フラグ４ｃが「１」である場合に、圧縮音声データの割り当てられた鍵盤６の１２鍵のいずれかが押鍵されたか否かを判断する（Ｓ１０）。そして、押鍵されたと判断される場合（Ｓ１０：Ｙｅｓ）、押鍵された鍵盤６の鍵に割り当てられた圧縮音声データの再生開始の指示がなされたと判断し、その圧縮音声データについて後述する再生処理（図５参照）を開始する（Ｓ１１）。
【００８７】
これにより、押鍵された鍵盤６の鍵に割り当てられた圧縮音声データの再生が開始される。このとき、この再生開始の指示に先立って、Ｓ７の処理により圧縮音声データの先頭部分に対応する圧縮音声データが復号され、オーディオキャッシュメモリ４ａに格納されている。
【００８８】
従って、再生開始を行う音声の先頭部分が、圧縮音声データとしてＭＰ３ファイル５０ａに含まれ、ＵＳＢメモリ５０に記憶されるような場合であっても、オーディオキャッシュメモリ４ａから、その先頭部分の音声データを即座に出力させることができる。
【００８９】
Ｓ１１の処理の後、Ｓ１２の処理へ移行する。
【００９０】
一方、Ｓ１０の処理の結果、圧縮音声データが割り当てられた鍵盤６の１２鍵のいずれもが押鍵されていないと判断される場合（Ｓ１０：Ｎｏ）、Ｓ１１の処理をスキップして、Ｓ１２の処理へ移行する。
【００９１】
Ｓ１２の処理では、電子楽器１におけるその他の処理を実行する（Ｓ１２）。例えば、ループ再生ボタン５ｂが押下されている場合に、圧縮音声データの割り当てられた鍵盤６の鍵が押鍵されると、その鍵に対応するループ再生フラグ４ｄの値を反転させる。これにより、鍵盤６の低音側の１２鍵に割り当てられた圧縮音声データに対してループ再生を行うか否かの設定を切り替えることができる。
【００９２】
また、Ｓ１２の処理では、圧縮音声データが割り当てられていない鍵盤６の鍵（通常の動作モードで動作する場合は鍵盤６の全ての鍵）が押鍵されると、その押鍵された鍵に対応する波形データ３ｂをＲＯＭ３から読み出すように音源回路８へ指示する。これにより、音源回路８、Ｄ／Ａ変換器９、アンプ２１を介して、スピーカ２２から所定の楽音を出力することができる。
【００９３】
その他、Ｓ１２の処理では、操作ボタン５の状態や鍵盤６の押鍵状況に応じて電子楽器１の各部を制御することにより、電子楽器１の動作を制御することができる。
【００９４】
Ｓ１２の処理の後、Ｓ４の処理へ回帰する。そして、電子楽器１の電源がオンの間、Ｓ４からＳ１２の処理が繰り返し実行される。これにより、操作ボタン５や鍵盤６が操作される度に、その操作に対応して所定の処理を行うことができる。
【００９５】
次いで、図４を参照して、キャッシュ処理について説明する。図４は、キャッシュ処理を示すフローチャートである。この処理は、鍵盤６のある鍵に割り当てられた一の圧縮音声データについて、先頭部分（第１〜第Ｎフレーム）に対応する圧縮音声データを復号し、復号後の音声データをオーディオキャッシュメモリ４ａに格納するための処理である。この処理は、上述したように、ＣＰＵ２により実行されるメイン処理（図３参照）の中で、ＭＰ３再生フラグ４ｃが「０」の場合に、ＭＰ３再生ボタン５ａがオンされると、鍵盤６の低音側の１２鍵に割り当てられた全ての圧縮音声データについてそれぞれ独立して開始される。
【００９６】
なお、ここでは、鍵盤６のある鍵に割り当てられた一の圧縮音声データについて行われるキャッシュ処理について説明するが、他の鍵に割り当てられた圧縮音声データについても同一のステップでキャッシュ処理が行われるので、その図示と説明を省略する。
【００９７】
また、以下のキャッシュ処理の説明において、オーディオキャッシュメモリ４ａ、キャッシュ直後フラグ４ｅ、復号開始アドレス４ｆ、第１ポインタ４ｇは、それぞれキャッシュ処理対象となっている一の圧縮音声データが割り当てられた鍵に対応するものとして説明する。更に、以後の説明では、第１ポインタ４ｇに格納されている値を「Ｌ１」と称する。
【００９８】
このキャッシュ処理では、まず、初期化処理として、第１ポインタ４ｇの値Ｌ１を「０」に初期化する（Ｓ２１）。また、ＲＡＭ４に読出バイトカウンタ領域を設け、その値を「０」に初期化し（Ｓ２２）、Ｓ２３へ移行する。この読出バイトカウンタ領域に、ＵＳＢメモリ５０から読み出された各フレームの圧縮音声データのデータ量が積算される。
【００９９】
Ｓ２３の処理では、ＵＳＢメモリ５０に格納されたキャッシュ処理対象の圧縮音声データから、第１ポインタ４ｇで示されるフレームの次のフレーム（以後、「第（Ｌ１＋１）フレーム」と称する）に対応する圧縮音声データを読み出して、復号する（Ｓ２３）。このとき、第（Ｌ１＋１）フレームの圧縮音声データのデータ量もカウントする。また、復号過程で得られた中間データをＲＡＭ４に保持する。
【０１００】
次いで、復号後の音声データをオーディオキャッシュメモリ４ａに格納する（Ｓ２４）。これにより、Ｓ２３の処理によって復号された第（Ｌ１＋１）フレームが、オーディオキャッシュメモリ４ａに格納される。
【０１０１】
また、Ｓ２２の処理によってＲＡＭ４に設けられた読出バイトカウンタ領域の値に、Ｓ２３の処理中にカウントされた第（Ｌ１＋１）フレームの圧縮音声データのデータ量を加算する（Ｓ２５）。これにより、圧縮音声データにおける第１フレームから第（Ｌ１＋１）フレームまでの圧縮音声データのデータ量が積算される。
【０１０２】
次に、第１ポインタ４ｇの値Ｌ１を１だけインクリメントし（Ｓ２６）、オーディオキャッシュメモリ４ａに格納されている音声データの最大のフレーム番号を更新する。
【０１０３】
その後、キャッシュ処理対象の圧縮音声データについて、第Ｎフレームまで復号したか否かを判断する（Ｓ２７）。ここで、第Ｎフレームまで復号していないと判断される場合（Ｓ２７：Ｎｏ）、更に、第（Ｎ−１）フレームまで復号したか否かを判断する（Ｓ２８）。そして、第（Ｎ−１）フレームまで復号していないと判断される場合（Ｓ２８：Ｎｏ）、Ｓ２３の処理へ回帰して、再びＳ２３以降の処理を実行する。
【０１０４】
一方、Ｓ２８の処理の結果、第（Ｎ−１）フレームまで復号していると判断される場合には（Ｓ２８：Ｙｅｓ）、ＲＡＭ４に設けた読出バイトカウンタ領域の値を、復号開始アドレス４ｆに格納する（Ｓ２９）。
【０１０５】
このとき、読出バイトカウンタ領域には、第１フレームから第（Ｎ−１）フレームまでに対応する圧縮音声データのデータ量が積算されており、このデータ量が、第Ｎフレームの圧縮音声データが格納されている位置を、ＭＰ３ファイル５０ａの先頭からのアドレスとして示したものとなる。従って、復号開始アドレス４ｆには、キャッシュ処理対象の圧縮音声データにおける第Ｎフレームの圧縮音声データのアドレスが格納されることになる。
【０１０６】
このように、キャッシュ処理では第１〜第Ｎフレームの圧縮音声データがＵＳＢメモリ５０から入力されるので、キャッシュ処理の中で、これらの圧縮音声データのデータ量を積算することにより、復号開始アドレス４ｆに格納すべきアドレス（第Ｎフレームの圧縮音声データのアドレス）を抽出することができる。
【０１０７】
これにより、別途圧縮音声データを先頭から読み出して復号開始アドレス４ｆに格納すべきアドレスを探索する必要がなく、容易にそのアドレスを抽出することができる。
【０１０８】
Ｓ２９の処理の後、Ｓ２３の処理へ回帰して、再びＳ２３以降の処理を実行する。
【０１０９】
さて、Ｓ２７の処理において、第Ｎフレームまで復号していないと判断される間は（Ｓ２７：Ｎｏ）、Ｓ２３〜Ｓ２９の処理を繰り返し実行する。これにより、一の圧縮音声データのうち先頭部分（第１〜第Ｎフレーム）に対応する圧縮音声データがすべて復号され、復号後の音声データをオーディオキャッシュメモリ４ａに格納することができる。
【０１１０】
一方、Ｓ２７の処理の結果、第Ｎフレームまで復号していると判断される場合には（Ｓ２７：Ｙｅｓ）、Ｓ２３〜Ｓ２９の処理を抜け、キャッシュ直後フラグ４ｅを「１」に設定する（Ｓ３０）。これにより、ＲＡＭ４には第Ｎフレームの復号過程で得られた中間データが保持されていることを示すことができる。
【０１１１】
次いで、図５を参照して再生処理について説明する。図５は再生処理を示すフローチャートである。この処理は、鍵盤６のある鍵に割り当てられた一の圧縮音声データを再生するための処理である。この処理は、上述したように、ＣＰＵ２により実行されるメイン処理（図３参照）の中で、ＭＰ３再生フラグ４ｃが「１」である場合に、圧縮音声データの割り当てられた鍵盤６の鍵が押鍵されたと判断されると、その押鍵された鍵盤６の鍵に割り当てられた圧縮音声データについて開始される。
【０１１２】
なお、ここでは、鍵盤６のある鍵に割り当てられた一の圧縮音声データについて実行される再生処理について説明するが、他の鍵に割り当てられた他の圧縮音声データについても同一のステップで再生処理が行われるので、その図示と説明を省略する。
【０１１３】
また、以下の再生処理の説明において、オーディオキャッシュメモリ４ａ、ループ再生フラグ４ｄ、キャッシュ直後フラグ４ｅ、復号開始アドレス４ｆ、第１ポインタ４ｇ、第２ポインタ４ｈは、それぞれ再生処理対象となっている一の圧縮音声データが割り当てられた鍵に対応するものとして説明する。更に、オーディオバッファ４ｂは、その鍵が押鍵されたときにＣＰＵ２によって割り当てられたものとして説明する。また、以後の説明では、第２ポインタ４ｈに格納されている値を「Ｌ２」と称する。
【０１１４】
この再生処理では、まず、第１ポインタ４ｇの値Ｌ１が「Ｎ」であるか否かを判断する（Ｓ３１）。そして、その結果、第１ポインタ４ｇの値Ｌ１が「Ｎ」でないと判断される場合には（Ｓ３１：Ｎｏ）、一の圧縮音声データの先頭部分（第１〜第Ｎフレーム）に対応する復号後の音声データが、まだオーディオキャッシュメモリ４ａに格納されていないので、以後の処理を行わずに、この再生処理を終了する。
【０１１５】
一方、第１ポインタ４ｇの値Ｌ１が「Ｎ」であると判断される場合には（Ｓ３１：Ｙｅｓ）、一の圧縮音声データの先頭部分（第１〜第Ｎフレーム）に対応する復号後の音声データが、オーディオキャッシュメモリ４ａに格納されているので、その圧縮音声データの再生を開始するために、まず、第２ポインタ４ｈの値Ｌ２を「１」に設定する（Ｓ３２）。これにより、オーディオバッファ４ｂに格納すべき音声データが第１フレームに設定される。そして、Ｓ３２の処理の後、Ｓ３３の処理へ移行する。
【０１１６】
Ｓ３３の処理では、第２ポインタ４ｈの値Ｌ２が、「Ｎ」以下であるか否かを判断する（Ｓ３３）。ここで、「Ｎ」以下であると判断される場合には（Ｓ３３：Ｙｅｓ）、オーディオバッファ４ｂに格納すべき音声データが第Ｎフレーム以前であると判断し、オーディオキャッシュメモリ４ａに格納された各フレームの音声データをオーディオバッファ４ｂにコピーし、また、音源回路８に音声の出力開始を指示するために、Ｓ３４〜Ｓ３７の処理へ移行する。
【０１１７】
Ｓ３４の処理では、音源回路８から音声が出力されているか否かを判断する（Ｓ３４）。ここで、音源回路８から音声が出力されていないと判断される場合（Ｓ３４：Ｎｏ）、次いで、オーディオバッファ４ｂの占有量（ＣＰＵ２によって実行される再生処理によって格納された音声データのデータ量から音源回路８によって読み出された音声データのデータ量を差し引いた値）が所定値以上であるか否かを判断する（Ｓ３５）。そして、オーディオバッファ４ｂの占有量が所定値以上であると判断される場合（Ｓ３５：Ｙｅｓ）、音源回路８に対して、音声データをオーディオバッファ４ｂから読み出して出力するように指示し（Ｓ３６）、Ｓ３７の処理へ移行する。これにより、音源回路８によって、音声の出力が開始される。
【０１１８】
また、Ｓ３５の処理によって、オーディオバッファ４ｂの占有量が所定値以上であると判断される場合に、音源回路８に対して音声データの出力を指示するので、音源回路８が一定の時間間隔毎にオーディオバッファ４ｂに格納されている音声データを読み出しても、オーディオバッファ４ｂにおいてアンダーフロー（音声データがない状態）が生じるのを防止することができる。
【０１１９】
一方、Ｓ３５の処理の結果、オーディオバッファ４ｂに格納された音声データが所定値未満であると判断される場合（Ｓ３５：Ｎｏ）、アンダーフローが生じる可能性があるため、Ｓ３６の処理をスキップして、音源回路８への音声の出力開始指示を行わずに、Ｓ３７の処理へ移行する。
【０１２０】
また、Ｓ３４の処理の結果、音源回路８から音声が出力されていると判断される場合（Ｓ３４：Ｙｅｓ）、既に音源回路８に対して音声の出力指示がなされているので、Ｓ３５及びＳ３６の処理をスキップして、Ｓ３７の処理へ移行する。
【０１２１】
Ｓ３７の処理では、オーディオバッファ４ｂに第Ｌ２フレームの音声データを格納するだけの空き容量があるかを確認し、オーディオバッファ４ｂに空き容量がある場合には、オーディオキャッシュメモリ４ａに格納された第Ｌ２フレームの音声データをオーディオバッファ４ｂへコピーして（Ｓ３７）、Ｓ４４の処理へ移行する。
【０１２２】
これにより、音源回路８に対する音声出力開始の指示以後、オーディオバッファ４ｂにコピーされた第２フレームの音声データが、音源回路８によって一定の時間毎に読み出され、Ｄ／Ａ変換器９、アンプ２１を介してスピーカ２２から出力される。
【０１２３】
また、ＲＡＭ４は高速に読み出し動作および書き込み動作ができるので、圧縮音声データの再生開始の指示があった場合には、オーディオキャッシュメモリ４ａに予め格納された圧縮音声データの先頭部分（第１〜第Ｎフレーム）に対応する音声データを高速に読み出すことができると共に、その読み出した音声データを高速にオーディオバッファ４ｂへコピーすることができる。
【０１２４】
これにより、オーディオバッファ４ｂには、圧縮音声データの先頭部分（第１〜第Ｎフレーム）に対応する音声データを即座に蓄積することができ、読出し速度が低速なＵＳＢメモリ５０に圧縮音声データが格納されるような場合であっても、音源回路８からその音声データを早く出力することができる。
【０１２５】
また、低速なＵＳＢメモリ５０を用いても、圧縮音声データの再生開始の指示から早く音声データを出力できるので、ＵＳＢメモリ５０は大容量のメモリを用いることができる。よって、ＵＳＢメモリ５０には多くの圧縮音声データを記憶させることも可能である。
【０１２６】
なお、Ｓ３７の処理においてオーディオバッファ４ｂに第Ｌ２フレームの音声データを格納するだけの空き容量がない場合には、音源回路８により音声データが読み出されることによってオーディオバッファ４ｂの空き容量が確保できるまで、Ｓ３７の処理がウェイトされる。尚、Ｓ３５の処理において、オーディオバッファ４ｂに格納された音声データが所定値未満であると判断される場合には（Ｓ３５：Ｎｏ）、オーディオバッファ４ｂには常に空き容量があると判断される。これにより、音声出力が行われておらず、且つ、空き容量がない状況が発生することにより、処理がＳ３７で停止してしまうことを防止している。
【０１２７】
これに対し、Ｓ３３の処理の結果、第２ポインタ４ｈの値Ｌ２が、「Ｎ＋１」以上であると判断される場合には（Ｓ３３：Ｎｏ）、オーディオバッファ４ｂに格納すべき音声データが第（Ｎ＋１）フレーム以降の音声データであると判断できる。そこで、第Ｌ２フレームの圧縮音声データを復号した上で、その復号後の音声データをオーディオバッファ４ｂへ格納するために、Ｓ３８〜Ｓ４３の処理へ移行する。
【０１２８】
Ｓ３８の処理では、キャッシュ直後フラグ４ｅが「１」であるか否かを判断する（Ｓ３８）。そして、キャッシュ直後フラグ４ｅが「１」でない場合（Ｓ３８：Ｎｏ）、次いで、第２ポインタ４ｈの値Ｌ２が「Ｎ＋１」であるか否かを判断する（Ｓ３９）。
【０１２９】
ここで、第２ポインタ４ｈの値Ｌ２が「Ｎ＋１」であると判断される場合（Ｓ３９：Ｎｏ）、Ｓ３８の処理でキャッシュ直後フラグ４ｅが「１」でない（Ｓ３８：Ｎｏ）と判断されているので、第（Ｎ＋１）フレームの復号で必要な、第Ｎフレームの復号過程で得られる中間データが、ＲＡＭ４に保持されていないと判断できる。
【０１３０】
そこで、復号開始アドレス４ｆに格納されたアドレスを基に、ＵＳＢメモリ５０に格納された再生処理対象の圧縮音声データから、第Ｎフレームの圧縮音声データを読み出して、その圧縮音声データを復号すると共に、復号後の音声データを破棄する（Ｓ４０）。そして、Ｓ４１へ移行する。
【０１３１】
Ｓ４０の処理により、第（Ｎ＋１）フレームを正しく復号するために必要な、第Ｎフレームの復号過程で得られる中間データをＲＡＭ４に格納することができる。よって、第１フレームから順次復号しなくても、第（Ｎ＋１）フレームを正しく復号することができると共に、復号の処理にかかる時間を短縮することができる。
【０１３２】
一方、ここで復号される第Ｎフレームは、ＲＡＭ４に第（Ｎ−１）フレームの復号過程で得られる中間データがなければ、正しい復号結果を得ることができない。これに対し、Ｓ４０の処理では、第Ｎフレームの音声データを破棄するので、正しい復号結果が得られていない第Ｎフレームの音声データを出力するのを防止できる。
【０１３３】
また、ＵＳＢメモリ５０から入力されるデータは圧縮符号化された圧縮音声データであるので、圧縮符号化されていないデータを入力する場合と比較して、入力されるデータ量を少なくすることができる。よって、ＵＳＢメモリから圧縮音声データを入力するのに要する時間も短縮することができる。
【０１３４】
更に、復号開始アドレス４ｆに格納されたアドレスを基に、ＵＳＢメモリ５０に格納された圧縮音声データから第Ｎフレームの圧縮音声データを読み出すので、このＳ４０の処理で第Ｎフレームの復号を行う場合に、その復号に必要最低限の圧縮音声データだけを読み出すことができる。よって、圧縮音声データを先頭から読み出して、第Ｎフレームに対応する圧縮音声データを探索する必要がないので、その探索の処理にかかるＣＰＵ２の負担を抑制することができる。
【０１３５】
また、第Ｎフレームを復号するために読み出される圧縮音声データのデータ量を必要最低限な量にすることができるので、圧縮音声データをＵＳＢメモリ５０から読み出すのに要する時間を可能な限り短縮することができる。
【０１３６】
このように、Ｓ４０の処理によって、種々の処理に係る時間を短縮することができるので、第（Ｎ＋１）フレームの復号結果を得るために費やされる時間を短くすることができる。
【０１３７】
一方、Ｓ３９の処理の結果、第２ポインタ４ｈの値Ｌ２が「Ｎ＋１」でないと判断される場合（Ｓ３９：Ｎｏ）、第Ｎフレームの復号過程で得られる中間データは不要であるので、Ｓ４０の処理をスキップして、Ｓ４１の処理へ移行する。
【０１３８】
また、Ｓ３８の処理の結果、キャッシュ直後フラグ４ｅが「１」である場合（Ｓ３８：Ｙｅｓ）、ＲＡＭ４には第Ｎフレームの復号過程で得られる中間データが保持されていると判断できる。そこで、新たに第Ｎフレームの復号は不要であるので、Ｓ３９及びＳ４０の処理をスキップしてＳ４１の処理へ移行する。
【０１３９】
これにより、ＣＰＵ２の負担を抑制することができると共に、第（Ｎ＋１）フレームの復号結果を得るために費やされる時間を更に短くできる。
【０１４０】
Ｓ４１の処理では、ＵＳＢメモリ５０に格納された再生処理対象の圧縮音声データから、第Ｌ２フレームの圧縮音声データを読み出して、その圧縮音声データを復号する（Ｓ４１）。次いで、オーディオバッファ４ｂに復号後の第Ｌ２フレームの音声データを格納するだけの空き容量があるかを確認した上で、空き容量がある場合には、復号後の第Ｌ２フレームの音声データをオーディオバッファ４ｂに格納する（Ｓ４２）。
【０１４１】
これにより、Ｓ４１の処理で復号された第Ｌ２フレームの音声データは、電源回路８によって一定の時間間隔毎に読み出され、Ｄ／Ａ変換器９、アンプ２１を介してスピーカ２２から出力される。
【０１４２】
また、Ｓ４１の処理において、ＵＳＢメモリ５０から入力されるデータは圧縮符号化された圧縮音声データであるので、Ｓ４０の処理と同様に、圧縮符号化されていないデータを入力する場合と比較して、入力されるデータ量を少なくすることができる。よって、ＵＳＢメモリから圧縮音声データを入力するのに要する時間を短縮することができる。
【０１４３】
このように、Ｓ３８からＳ４２の処理において、種々の処理に要する時間を短縮し、又は省略することができるので、先にオーディオバッファ４ｂに格納されたフレームの音声データが音源回路８によって出力されている間に、確実に残りのフレームを復号し、オーディオバッファ４ｂへ格納することができる。
【０１４４】
なお、オーディオバッファ４ｂに第Ｌ２フレームの音声データを格納するだけの空き容量がない場合には、音源回路８によって音声データが読み出されることによって空き容量が確保できるまで、Ｓ４２の処理がウェイトされる。
【０１４５】
Ｓ４２の処理の後、キャッシュ直後フラグ４ｅが「０」に設定される（Ｓ４３）。これにより、ＲＡＭ４には第Ｎフレームの復号過程で得られる中間データが保持されていないことを示すことができる。Ｓ４３の処理の後、Ｓ４４の処理へ移行する。
【０１４６】
Ｓ４４の処理では、第２ポインタ４ｈ（Ｌ２）の値を１だけインクリメントする（Ｓ４４）。これにより、オーディオバッファ４ｂに格納すべき音声データを次のフレームに進めることができる。
【０１４７】
次いで、この再生処理の対象である圧縮音声データが割り当てられた鍵盤６の鍵が離鍵されたか否かを判断する（Ｓ４５）。そして、離鍵されたと判断される場合（Ｓ４５：Ｙｅｓ）、圧縮音声データの再生を停止するため、Ｓ４９の処理へ移行する。
【０１４８】
一方、Ｓ４５の処理の結果、離鍵されていないと判断される場合には（Ｓ４５：Ｎｏ）、続いて、圧縮音声データの終端のフレームに対応する音声データまで、オーディオバッファ４ｂに格納されたか否かを判断する（Ｓ４６）。ここで、圧縮音声データの終端のフレームに対応する音声データまでオーディオバッファ４ｂに格納されていないと判断される間は（Ｓ４６：Ｎｏ）、Ｓ３３の処理に回帰し、次のフレームに対して、Ｓ３３からＳ４６までの処理を実行する。
【０１４９】
一方、Ｓ４６の処理の結果、圧縮音声データの終端のフレームまで、オーディオバッファ４ｂにその音声データが格納されたと判断される場合には（Ｓ４６：Ｙｅｓ）、Ｓ３３からＳ４６の繰り返し処理を抜けて、Ｓ４７の処理へ移行する。これにより、圧縮音声データの終端のフレームに対応する音声データまで、オーディオバッファ４ｂに格納される。
【０１５０】
Ｓ４７の処理では、ループ再生フラグ４ｄが「１」であるか否かを判断する（Ｓ４７）。そして、ループ再生フラグ４ｄが「１」である場合（Ｓ４７：Ｙｅｓ）、この再生処理の対象となっている圧縮音声データにおいてループ再生を行うように設定されているので、第２ポインタ４ｈの値Ｌ２を「１」に設定して（Ｓ４８）、Ｓ３３の処理へ回帰する。
【０１５１】
これにより、オーディオバッファ４ｂには、圧縮音声データの終端のフレームに対応する音声データの後に、その圧縮音声データの先頭のフレームに対応する音声データから順次格納（コピー）することができる。よって、ループ再生を行うことができる。
【０１５２】
一方、Ｓ４７の処理の結果、ループ再生フラグ４ｄが「０」であると判断される場合（Ｓ４７：Ｎｏ）、再生処理の対象である圧縮音声データにおいてループ再生を行わないように設定されているので、Ｓ４９の処理へ移行する。
【０１５３】
Ｓ４９の処理では、音源回路８に対して、音声データの出力停止を指示する（Ｓ４９）。これにより、音源回路８は、オーディオバッファ４ｂから音声データを読み出すのを停止し、また、Ｄ／Ａ変換器９に対して音声データを出力するのを停止する。よって、スピーカ２２から圧縮音声データに対応する音声の出力が停止される。
【０１５４】
Ｓ４９の処理の後、この再生処理を終了する。
【０１５５】
以上、本実施形態の電子楽器１によれば、キャッシュ処理（図４参照）によって、鍵盤６の鍵が押鍵されることにより再生される圧縮音声データの先頭部分（第１〜第Ｎフレーム）に対応する復号後の音声データが、オーディオキャッシュメモリ４ａに記憶される。
【０１５６】
鍵盤６の鍵が押鍵されて再生開始の指示があった場合に、再生処理（図５参照）によって、オーディオキャッシュメモリ４ａに記憶された音声データがオーディオバッファ４ｂにコピーされ、その音声データが音源回路８によってスピーカ２２から出力される。これにより、鍵盤６の鍵が押鍵されてから早く、圧縮音声データの先頭部分（第１〜第Ｎフレーム）に対応する音声を再生できる。
【０１５７】
また、圧縮音声データの先頭部分（第１〜第Ｎフレーム）に対応する復号後の音声データが、音声回路８によってスピーカ２２から出力されている間に、第Ｎフレームから復号が開始され、第（Ｎ＋１）フレームから正しく復号されて、順次、第Ｎフレームに連続して出力される。
【０１５８】
これにより、鍵盤６の鍵が押鍵されて再生開始の指示があった場合に、その鍵に対応する圧縮音声データの先頭部分（第１〜第Ｎフレーム）に連続して、早く第（Ｎ＋１）フレーム以降の音声データを再生できる。その結果、圧縮符号化された圧縮音声データを再生開始の指示から早く再生することができる。
【０１５９】
また、鍵盤６の鍵の押鍵による音声の再生開始の指示に先立ち、圧縮音声データの先頭部分（第１〜第Ｎフレーム）に対応する圧縮音声データを復号し、その先頭部分の復号後の音声データが、オーディオキャッシュメモリ４ａに記憶されるので、再生を行う音声の先頭部分が圧縮音声データとしてＵＳＢメモリ５０に記憶されるような場合であっても、圧縮符号化された音声データを再生開始指示から早く再生することができる。
【０１６０】
以上、実施の形態に基づき本発明を説明したが、本発明は上記実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
【０１６１】
例えば、上記実施形態では、ＭＰ３方式で圧縮符号化された圧縮音声データを再生する場合について説明したが、必ずしもこれに限られるものではなく、ＡＡＣ方式など、時間的な相関を用いて圧縮符号化された圧縮音声データを再生する場合にも、図３〜図５の処理を適用してもよい。
【０１６２】
ただし、上述した図５の再生処理におけるＳ４０の処理では、オーディオキャッシュメモリ４ａに格納された音声データに続く第（Ｎ＋１）フレームの復号結果を正しく得るために、第Ｎフレームの復号を行ったが、これを、各圧縮符号化方式に合わせて、オーディオキャッシュメモリ４ａに格納された音声データに続くサンプルを正しく復号するために必要な、所定時間前のサンプルから復号するようにすればよい。
【０１６３】
上記実施形態では、オーディオキャッシュメモリ４ａに第１〜第Ｎフレームの音声データを格納する場合について説明したが、オーディオキャッシュメモリ４ａに格納する音声データのサイズは、再生する圧縮音声データ毎に異なっていてもよい。
【０１６４】
上記実施形態では、ＲＡＭ４にオーディオキャッシュメモリ４ａを設け、鍵盤６の鍵の押鍵による音声の再生開始の指示に先立ち、圧縮音声データの先頭部分（第１〜第Ｎフレーム）に対応する圧縮音声データを復号して、その復号後の音声データをオーディオキャッシュメモリ４ａに記憶する場合について説明したが、必ずしもこれに限られるものではない。例えば、再生すべき音声の先頭部分に対応する音声データを、符号化前の状態で予めＵＳＢメモリ５０に格納しておいてもよい。
【０１６５】
これにより、図４に示したキャッシュ処理が不要となるので、ＣＰＵ２にかかる処理の負担を軽減させることができる。なお、この場合、圧縮音声データは、ＵＳＢメモリ５０に格納された音声の先頭部分に対応する音声データに続く音声データを再生するために必要な、所定時間前の音声データから圧縮符号化されたものであってよい。
【０１６６】
上記実施形態では、第２ポインタ４ｈが、圧縮音声データが割り当てられる鍵盤６の低音側の１２鍵に対応して複数設けられている場合について説明したが、必ずしもこれに限られるものではない。例えば、第２ポインタ４ｈを、電子楽器１が圧縮音声データを同時に再生可能な最大和音数と同じ数だけ、設けるようにしてもよい。また、第２ポインタ４ｈだけでなく、オーディオキャッシュメモリ４ａ、ループ再生フラグ４ｄ、キャッシュ直後フラグ４ｅ、復号開始アドレス４ｆ、第１ポインタ４ｇも、電子楽器１が圧縮音声データを同時に再生可能な最大和音数と同じ数だけ、設けるようにしてもよい。
【０１６７】
上記実施形態では、オーディオバッファ４ｂが、電子楽器１で再生可能な最大和音数（例えば、６４和音）に対応して複数設けられており、圧縮音声データだけでなく、音源回路８による楽音の発音と共通に使用される場合について説明したが、必ずしもこれに限られるものではなく、音源回路８による楽音の発音とは別に、圧縮音声データを再生するための専用のオーディオバッファを設けてもよい。この場合、専用のオーディオバッファは、圧縮音声データが割り当てられる鍵盤６の低音側１２鍵に対応して複数設けるようにしてもよいし、電子楽器１が圧縮音声データを同時に再生可能な最大和音数と同じ数だけ、設けるようにしてもよい。
【０１６８】
上記実施形態では、電子楽器１の電源がオンされたときにループ再生フラグ４ｄの値を「０」に初期化する例を示したが、必ずしもこれに限られるものではなく、例えば、ＭＰ３再生ボタン５ａがオンされたときにループ再生フラグ４ｄを初期化してもよい。また、いずれの場合も、「０」に初期化するのではなく「１」に初期化してもよい。また、ループ再生フラグ４ｄに設定すべき初期値をＵＳＢメモリ５０に格納された設定ファイル（図示せず）に記載しておき、初期化を行うタイミングでこの設定ファイルを読み込んで、ループ再生フラグ４ｄの初期値を設定するようにしてもよい。更に、電子楽器１の電源がオフされるときに、ループ再生フラグ４ｄの値をＵＳＢメモリ５０へ記憶するようにし、電源がオンされたときには、ＵＳＢメモリ５０からその記憶した値を読み出し、それを初期値としてループ再生フラグ４ｄを初期化してもよい。
【０１６９】
上記実施形態では、ループ再生を行うときに、圧縮音声データの先頭フレームに戻って再生する場合について説明したが、必ずしもこれに限られるものではなく、オーディオキャッシュメモリ４ａに格納されている圧縮音声データの先頭部分（第１〜第Ｎフレーム）の途中のフレームから再生するようにしてもよい。
【０１７０】
上記実施形態では、ＵＳＢメモリ５０に圧縮音声データを格納する場合について説明したが、必ずしもこれに限られるものではなく、例えば、ＳＤメモリカード（登録商標）、ｘＤピクチャカード（登録商標）といった他のフラッシュメモリカードや、ハードディスクに圧縮音声データを格納するようにしてもよい。また、電子楽器１に内蔵された内蔵メモリに圧縮音声データを格納してもよい。
【０１７１】
上記実施形態では、電子楽器について説明したが、必ずしもこれに限られるものではなく、時間的な相関を用いて圧縮符号化された圧縮音声データを再生するものであれば本発明を適用可能である。例えば、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）によって、このような圧縮音声データを再生する場合に、ＰＣによって図３〜図５と同様のフローチャートのプログラムを実行してもよい。
【０１７２】
上記実施形態では、圧縮符号化された音声データを再生する場合について説明したが、必ずしもこれに限られるものではなく、時間的に前のデータを参照しながら圧縮符号化されるもの、例えば、時間相関を用いながら圧縮符号化が行われる動画像データを再生する場合にも、適用可能である。
【図面の簡単な説明】
【０１７３】
【図１】本発明の一実施形態における電子楽器の電気的構成を示したブロック図である。
【図２】電子楽器１の動作原理を説明する説明図である。
【図３】メイン処理を示すフローチャートである。
【図４】キャッシュ処理を示すフローチャートである。
【図５】再生処理を占めすフローチャートである。
【符号の説明】
【０１７４】
１                      電子楽器（音声再生装置）
４ａ                    オーディオキャッシュメモリ４ａ（記憶手段）
５０                    ＵＳＢメモリ（記憶媒体）
Ｓ２３，Ｓ２４          （記憶制御手段）
Ｓ２３，Ｓ４０，Ｓ４１  （入力手段、復号手段、入力ステップ、復号ステップ）
Ｓ２９                  （記憶位置情報抽出手段）
Ｓ３７                  （第１出力手段、第１出力ステップ）
Ｓ３９〜Ｓ４２          （第２出力手段、第２出力ステップ）
【図１】
2009157272.tif 000003
【図２】
2009157272.tif 000004
【図３】
2009157272.tif 000005
【図４】
2009157272.tif 000006
【図５】
2009157272.tif 000007