(57)【要約】【課題】着脱可能な記録媒体に記録されている波形データの読み出し処理が円滑な発音動作に支障をきたす場合であっても、発音状態に違和感を与えないような装置を提供すること。【解決手段】読み出し部１１０は、読み出しコマンドを与えることによって、所定量ずつ波形データを読み出して行き、これを展開部１２０に渡す。展開部１２０は、渡されたデータをボイスバッファ１、ボイスバッファ２に対して交互に展開して行く。再生部１４０は、ボイスバッファ１、ボイスバッファ２に交互に展開された波形データを交互に再生して行き、これを音源部１５０に与えると、音源部１５０はこの与えられた波形データに応じた発音動作を行う。そして、判定部１３０は、展開部１２０が行う展開動作が異常と判定した場合には、音源部１５０に対して強制的に発音動作の停止制御を行う。【選択図】図５
2014038181.tif 000002
【特許請求の範囲】
【請求項１】
波形データが記録され当該装置に着脱可能な記録媒体を、当該装置に装着した状態で前記波形データを読み出しながら発音させる装置であって、
前記記録媒体に対して、読み出しコマンドを与えることによって、所定量ずつ波形データを読み出して行く読み出し部と、
この読み出し部が前記所定量の波形データを読み出す毎に、前記読み出し部からこの所定量の波形データが渡され、ＲＡＭに形成された２つのボイスバッファに対して交互に前記所定量のデータを展開していく展開部と、    
前記２つのボイスバッファに交互に展開された波形データを、交互に再生して行く再生部と、
前記再生部が再生した波形データを与えると、この与えられた波形データに応じた発音動作を行う音源部と、
前記展開部が行う各々の展開処理が正常か否かを判定する判定部と、を備え、
前記判定部が正常と判定した場合には、前記再生部が交互にボイスバッファに展開された波形データの再生を行ったデータを前記音源部に与えて発音動作を継続させる一方、異常と判定した場合には前記音源部に対して強制的に発音動作の停止制御を行うことを特徴とする楽音発生装置。
【請求項２】
請求項１に記載の楽音発生装置において、
前記判定部は、
前記展開部が前記読み出し部から渡された前記所定量の波形データを対応するボイスバッファに展開する時間が、所定時間内である場合には正常と判定して、前記再生部が交互に前記ボイスバッファに展開された波形データの再生を行ったデータを前記音源部に与えて発音動作を継続させることを特徴とする楽音発生装置。
【請求項３】
請求項１および２の内のいずれか一項に記載の楽音発生装置において、
前記判定部は、
前記展開部が前記読み出し部から渡された前記所定量の波形データを対応するボイスバッファに展開する時間が、所定時間内に収まらない場合には異常と判定して、前記音源部に対して強制的に発音動作の停止制御を行うことを特徴とする楽音発生装置。  
【請求項４】
請求項１、２および３の内のいずれか一項に記載の楽音発生装置において、
前記読み出し部が先頭の所定量の波形データを読み出した場合、前記展開部が前記ＲＡＭに形成されたプリロード領域に展開するように構成されたことを特徴とする楽音発生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、波形データの読み出し速度が低速の着脱可能な記録媒体（例えばＳＤカード）から波形データを読み出しながら発音処理を行う装置の改良に関する。
【背景技術】
【０００２】
波形データの読み出し速度が低速の外部記憶装置から波形データを分割して読み出しながら発音処理を行っても発音遅れが生じないようにする装置が提案されていた。例えば、外部記憶装置としてＨＤ（ハードディスク）を利用した楽音発生装置が提案されている、この楽音発生装置にあっては、波形データの読み出し速度が高速なＲＡＭに、種々の波形データにおけるアタック部の先頭の波形データが１クラスタ（ハードディスクの単位記憶量）だけ記憶されるプリロード領域と、それぞれ１クラスタ分の波形データを記憶可能なＡバッファ、Ｂバッファを有する第１バッファ領域と、同様のＣバッファ、Ｄバッファを有する第２バッファ領域とが形成された波形メモリを利用するものであった（例えば、特許文献１参照。）。
【０００３】
そして、ＡバッファおよびＢバッファを有している第１バッファに、外部記憶装置からアタック部波形データを１クラスタずつ読み出して所定タイミングで転送することにより、アタック波形をバッファリング再生していき、更に、アタック部波形データからループ部波形データに移行する際には、第１バッファおよび第２バッファに移行する波形データが転送されて発音される。次いで、ＣバッファおよびＤバッファを有している第２バッファに、外部記憶装置からループ部波形データを１クラスタずつ読み出して所定タイミングで転送することにより、ループ波形をバッファリング再生するものである。
【０００４】
要するに、この先行技術によれば、発音開始に遅れが生じないようにするため、波形データの先頭部分を、外部記憶装置からこれより高速な波形メモリのプリロード領域に事前に展開しておくことや、ループ再生区間におけるデータを分割し、波形メモリからのループ波形再生中に、外部記憶装置から分割したループ再生区間におけるデータを波形メモリに転送する等の工夫を施していた。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２４９７５６号公報（第４−１２頁、第４図）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
確かに、上述した先行技術に係る装置によれば、波形データの読み出し速度があまり低速でない外部記憶装置に対しては、波形データの読み出し速度の遅れが生じず発音遅れの無い装置として機能していた。しかしながら、波形データの読み出し速度が予想以上に遅い場合には、外部記憶装置からの波形データの読み出しが極端に遅れてしまうため、音が切れてしまう音切れ現象が発生したり、波形データの不連続性による異音等が生じてしまうといった問題があった。
【０００７】
本発明は、かかる従来の課題を解決するためになされたもので、装置への着脱が可能な記憶媒体（例えばＳＤカード）に記録した波形データの読み出し速度が極端に遅い場合等の波形データの読み出し処理が円滑な発音動作に支障をきたす場合であっても、発音状態に違和感を与えないような装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明は、波形データが記録され当該装置に着脱可能な記録媒体を、当該装置に装着した状態で前記波形データを読み出しながら発音させる装置であって、
前記記録媒体に対して、読み出しコマンドを与えることによって、所定量ずつ波形データを読み出して行く読み出し部（１１０）と、
この読み出し部（１１０）が前記所定量の波形データを読み出す毎に、前記読み出し部（１１０）からこの所定量の波形データが渡され、ＲＡＭ（３００）に形成された２つのボイスバッファ（ボイスバッファ１、ボイスバッファ２）に対して交互に前記所定量の波形データを展開していく展開部（１２０）と、      
前記２つのボイスバッファ（ボイスバッファ１、ボイスバッファ２）に交互に展開された波形データを、交互に再生して行く再生部（１４０）と、
前記再生部（１４０）が再生した波形データを与えると、この与えられた波形データに応じた発音動作を行う音源部（１５０）と、
前記展開部（１２０）が行う各々の展開処理が正常か否かを判定する判定部（１３０）と、を備え、
前記判定部（１３０）が正常と判定した場合には、前記再生部（１４０）が交互にボイスバッファ（ボイスバッファ１、ボイスバッファ２）に展開された波形データの再生を行ったデータを前記音源部（１５０）に与えて発音動作を継続させる一方、異常と判定した場合には前記音源部（１５０）に対して強制的に発音動作の停止制御を行うことを特徴とするようにした。
【０００９】
この発明によれば、読み出し部（１１０）は、記録媒体に対して、読み出しコマンドを与えることによって、所定量ずつ波形データを読み出して行くと共に、この読み出したデータを展開部（１２０）に渡す。展開部（１２０）は、読み出し部（１１０）からこの所定量の波形データが渡されると、ＲＡＭ（３００）に形成された２つのボイスバッファ（ボイスバッファ１、ボイスバッファ２）に対して交互に渡された所定量の波形データを展開していく。一方、再生部（１４０）は、２つのボイスバッファ（ボイスバッファ１、ボイスバッファ２）に交互に展開された波形データを交互に再生して行き、再生データを音源部（１５０）に与えられると、音源部（１５０）は、この与えられた波形データに応じた発音動作を行う。
【００１０】
そして、判定部（１３０）は、展開部（１２０）が行う各々の展開処理が正常か否かを判定し、正常と判定した場合には、再生部（１４０）が交互にボイスバッファ（ボイスバッファ１、ボイスバッファ２）に展開された波形データの再生を行ったデータを音源部（１５０）に与えて発音動作を継続させる一方、異常と判定した場合には前記音源部（１５０）に対して強制的に発音動作の停止制御（ボイスオフ）を行うので、例えばＳＤカードに記録した波形データの読み出し速度が極端に遅い場合等の波形データの読み出し処理が円滑な発音動作に支障をきたす場合であっても、発音状態に違和感を与えないことになる。
【００１１】
より具体的には、上記楽音発生装置において、前記判定部（１３０）は、前記展開部（１２０）が前記読み出し部（１１０）から渡された前記所定量の波形データを対応するボイスバッファ（ボイスバッファ１又はボイスバッファ２）に展開する時間が、所定時間内である場合には正常と判定して、前記再生部（１４０）が交互に前記ボイスバッファ（ボイスバッファ１、ボイスバッファ２）に展開された波形データの再生を行ったデータを前記音源部（１５０）に与えて発音動作を継続させる。また、上記楽音発生装置において、前記判定部（１３０）は、前記展開部（１２０）が前記読み出し部（１１０）から渡された前記所定量の波形データを対応するボイスバッファ（ボイスバッファ１又はボイスバッファ２）に展開する時間が、所定時間内に収まらない場合には異常と判定して、前記音源部（１５０）に対して強制的に発音動作の停止制御を行う。
【００１２】
なお、上記の楽音発生装置において、前記読み出し部（１１０）が先頭の所定量の波形データを読み出した場合、前記展開部が前記ＲＡＭ（３００）に形成されたプリロード領域に予め展開しておくように構成すれば、発音開始に遅れが生じずに波形データの先頭部分が滑らかに再生され好ましい。
【発明の効果】
【００１３】
本発明によれば、装置への着脱が可能で波形データを記録した記録媒体を装置に取り付けた場合に、この記録媒体の波形データ読み出し速度が極端に遅い場合等の波形データの読み出し処理が円滑な発音動作に支障をきたす場合であっても、発音状態に違和感を与えないような装置を実現できるという効果が得られる。
【図面の簡単な説明】
【００１４】
【図１】楽音発生装置１の構成図である。
【図２】ＳＤメモリ２００に記録されている波形データをＲＡＭ３００に展開して読み出す処理の模式的な説明図である。
【図３】波形データの読み出し動作が「正常」な場合の模式的な説明図である。
【図４】波形データの読み出し動作が「異常」な場合の模式的な説明図である。
【図５】音源ＬＳＩ１００の構成図である。
【図６】動作を説明するフローチャートである。
【図７】ＳＤカードからのデータ読み出し速度の違いによる判定結果の違いの説明図である。
【図８】本発明の実施形態の動作を説明する模式的な説明図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態について図面を参照しつつ説明する。以下の説明においては装置に着脱可能な記録媒体の一例として「ＳＤカード（ＳＤメモリカードとも称する）」を挙げて説明する。
【００１６】
（システム構成）
図１は記録媒体としての「ＳＤカード」を着脱可能な楽音発生装置１の構成図である。この楽音発生装置１は、各構成要素がバス８０を介して互いに所要の情報を送受信可能に接続されている。ＣＰＵ４０は、ＲＡＭ５０をワークエリア等として使用しながら、フラッシュメモリ６０に記録されている装置動作プログラムにしたがった動作を行って装置全体の制御を行うように構成されている。なお、ＲＡＭ５０はワークエリアとして機能する他に、所定の領域にはＣＰＵ４０が必要な各種のデータを記憶している。また、フラッシュメモリ６０は、記録されている情報の書き換えが可能であるため、動作プログラムの変更があった場合には、容易に動作プログラムの書き換えを行うことができる。鍵盤装置３０は例えば８８個の鍵が一列に配置されている。
【００１７】
操作子２０は、各種の操作（音量調整等）を行うもので、スライドスイッチ、つまみ等で構成されている。表示器１０は、液晶ディスプレイ、ＥＬディスプレイ等で構成され、例えば、演奏状態の表示や操作子２０の操作状態等の各種の情報を表示する。「ＭＩＤＩ  Ｉ／Ｏ」７０は、ＭＩＤＩ規格の機器を接続するためのインターフェイスであり、ＭＩＤＩ規格の機器を接続すると、ＣＰＵ４０は、この機器から送信されるＭＩＤＩ信号を受信してＲＡＭ５０等の所定の記憶領域に記憶する。なお、ＣＰＵ４０は、ＭＩＤＩ規格の機器に対して、「ＭＩＤＩ  Ｉ／Ｏ」７０を介して所要のＭＩＤＩ信号を送信することもできる。この楽音発生装置１は、一例として、操作子２０の操作によって外部音をＲＡＭ５０内に取り込み記憶しておいて、ＣＰＵ４０の制御によって、鍵盤装置３０を押鍵した鍵に応じた音高の音として出力するサンプラーとして機能させることができる。
【００１８】
また、バス８０には、本発明の主要部となる音源ＬＳＩ１００が接続されており、音源ＬＳＩ１００からの発音信号は、スピーカ９０に送られて、このスピーカ９０から放音される。そして、この音源ＬＳＩ１００には、波形メモリ２００と、波形メモリ３００とが接続されている。波形メモリ２００は、楽音発生装置１への着脱が可能な記録媒体の一例として「ＳＤカード」で構成されている。一方、波形メモリ３００はＲＡＭで構成されている。したがって、波形メモリ２００（ＳＤカード）の読み出し速度は、波形メモリ３００（ＲＡＭ）の読み出し速度よりも遅い。
【００１９】
波形メモリ２００（ＳＤカード）に記録されている波形データを所定量ずつ読み出し、この読み出した波形データを波形メモリ（ＲＡＭ）３００に展開し（即ち、ＲＡＭ３００に書き込みを行い）、波形メモリ（ＲＡＭ）３００に展開されている波形データを再生することによって、波形メモリ（ＳＤカード）２００に記録されている波形データの再生を行うように構成されている。なお、以下の説明において「波形メモリ（ＳＤカード）２００」を単に「ＳＤカード２００」や「波形メモリ２００」と記載することや、「波形メモリ（ＲＡＭ）３００」を単に「ＲＡＭ３００」や「波形メモリ３００」と記載することがある。
【００２０】
（正常動作、異常動作の説明）
ここで、波形メモリ２００に記録されている波形データの読み出しを行って、波形メモリ３００内に展開された波形データの読み出しが「正常」に行われている場合と、「異常」が発生する場合について説明する。図２は、波形メモリ（ＳＤカード）２００に記録されている波形データをＲＡＭで構成された波形メモリ３００に展開して読み出す処理（再生する処理）を示す模式的な説明図である。波形メモリ（ＳＤカード）２００には、「波形Ｘ」を構成する複数のデータが記録されており、この複数のデータは全体で「波形Ｘデータ」を構成している。この「波形Ｘデータ」は複数のデータに分割され、この分割されたデータ「ＷｘＰＬ」、「ＷｘＤＢ（１）」、「ＷｘＤＢ（２）」、「ＷｘＤＢ（３）」、「ＷｘＤＢ（４）」、「ＷｘＤＢ（５）」、「ＷｘＤＢ（６）」…が順番に波形メモリ（ＳＤカード）２００に記録されている。そして、この分割された各々のデータは「データブロック」と称され、１回のＳＤカード２００からのデータ読み出しで読み出されるデータ量（所定量の波形データ）となっている
【００２１】
ここで、データ「ＷｘＰＬ」は、波形Ｘデータの先頭データである。さて、これらのデータを波形メモリ（ＲＡＭ）３００に展開する場合には、先ず、「ＷｘＰＬ」なる先頭データを波形メモリ（ＲＡＭ）３００の「プリロード領域」にロードする（波形Ｘプリロード）。そして、波形メモリ３００を構成するＲＡＭ内のボイスバッファ領域に形成されている２個のボイスバッファである「ボイスバッファ１」、「ボイスバッファ２」を使用して、波形データの展開（書き込み：バッファリングとも称する）と読み出し（再生）とを行う。
【００２２】
具体的には、先ず、「ＷｘＤＢ（１）」をボイスバッファ１に展開して読み出し、次いで「ＷｘＤＢ（２）」をボイスバッファ２に展開して読み出す。次に、「ＷｘＤＢ（３）」をボイスバッファ１に展開して読み出し次いで「ＷｘＤＢ（４）」をボイスバッファ２に展開して読み出す。次に、「ＷｘＤＢ（５）」をボイスバッファ１に展開して読み出し、次いで「ＷｘＤＢ（６）」をボイスバッファ２に展開して読み出すといった、ボイスバッファ１、ボイスバッファ２２を交互に使用した処理を繰り返して行く。つまり、波形メモリ（ＳＤカード）２００に記録されている波形Ｘデータは、波形メモリ（ＲＡＭ）３００に形成されているボイスバッファ１、ボイスバッファ２に交互に展開され、交互に再生されて行く。
【００２３】
図３は、この動作について、横軸を時間軸で表現した模式的な説明図である。この図３は、波形データの読み出し動作が「正常」な場合の説明図である。先ず、波形メモリ（ＲＡＭ）３００のプリロード領域に、波形データの先頭データ「ＷｘＰＬ」をプリロードし、その後、波形メモリ（ＳＤカード）２００に「ＳＤカード読み出しコマンド」を発行して読み出された「ＳＤカード読み出しデータ」を２つのボイスバッファである「ボイスバッファ１」、「ボイスバッファ２」に交互に展開して行く。つまり、波形データ「ＷｘＤＢ（１）」、「ＷｘＤＢ（２）」、「ＷｘＤＢ（３）」、「ＷｘＤＢ（４）」、「ＷｘＤＢ（５）」、「ＷｘＤＢ（６）」…を、波形メモリ（ＲＡＭ）３００に形成されたボイスバッファ１とボイスバッファ２に交互に展開して行っている。そして、波形メモリ（ＲＡＭ）３００に展開された波形データの読みだし（再生）は次のように行われる。
【００２４】
先ず、プリロードされた波形データの先頭データ「ＷｘＰＬ」が読み出され、次いで、「ボイスバッファ１」、「ボイスバッファ２」に交互に展開された波形データを交互に読み出して行く（再生して行く）。具体的には、波形データ「ＷｘＤＢ（１）」、「ＷｘＤＢ（２）」、「ＷｘＤＢ（３）」、「ＷｘＤＢ（４）」、「ＷｘＤＢ（５）」、「ＷｘＤＢ（６）」…が順次、「ボイスバッファ１」と「ボイスバッファ２」から交互に読み出されている。発音波形を参照すれば分かるように、発音波形は連続的で滑らかになっているのでこの波形データの読み出し動作は「正常」である。つまり、波形メモリ２００（ＳＤカード）からの波形データ（ＳＤカード読み出しデータ）の読み出しが、読み出し指示である「ＳＤカード読み出しコマンド」の発行に応じて遅れてなく行われている。したがって、発音開始から発音継続（ボイスオンの継続）が実行されていても何ら問題は生じない。
【００２５】
一方、図４は、波形データの読み出し動作が正常でない場合の説明図である。先ず、波形データ（ＲＡＭ）２００のプリロード領域に、波形データの先頭データ「ＷｘＰＬ」をプリロードし、その後、波形メモリ（ＳＤカード）２００に「ＳＤカード読み出しコマンド」を発行して読み出された「ＳＤカード読み出しデータ」を２つのボイスバッファである「ボイスバッファ１」、「ボイスバッファ２」に交互に展開して行く。具体的には、「ＷｘＤＢ（１）」、「ＷｘＤＢ（２）」、「ＷｘＤＢ（３）」、「ＷｘＤＢ（４）」、「ＷｘＤＢ（５）」、「ＷｘＤＢ（６）」…を、波形メモリ（ＲＡＭ）３００に形成されたボイスバッファ１、ボイスバッファ２に交互に展開して行っている。そして、波形メモリ（ＲＡＭ）３００に形成された「ボイスバッファ１」、「ボイスバッファ２」に展開された波形データを交互に読み出していくのであるが、「ＷｘＤＢ（４）」を読み出す前までは発音波形を参照すれば分かるように、連続的で滑らかな波形データの読み出しが行われている。
【００２６】
しかしながら、ボイスバッファ２から波形データ「ＷｘＤＢ（４）」を読み出すべき時点では、「ＷｘＤＢ（４）」がボイスバッファ２に展開されておらず、「ＷｘＤＢ（４）」がボイスバッファ２に展開されるまでの間は、以前にボイスバッファ２に展開されていた「ＷｘＤＢ（２）」を読み出してしまう。同様に、ボイスバッファ１から「ＷｘＤＢ（５）」を読み出すべき時点では、「ＷｘＤＢ（３）」を読み出してしまい、また、ボイスバッファ２から「ＷｘＤＢ（６）」を読み出すべき時点では、「ＷｘＤＢ（４）」を読み出してしまう事態が発生する。つまり、波形メモリ２００（ＳＤカード）からの波形データ（ＳＤカード読み出しデータ）の読み出しが、読み出し指示である「ＳＤカード読み出しコマンド」の発行に応じて行われていても、その読み出し速度に遅れが生じてしまうことに起因して「異常」が発生する。この場合には、波形データ「ＷｘＤＢ（４）」のボイスバッファからの読み出し以降、発音波形は正常なものではなくなるので、発音開始から発音継続（ボイスオンの継続）が実行されると発音状態に違和感が生じるという問題がある。
【００２７】
この「異常」は、波形メモリ２００（ＳＤカード）からの波形データの読み出し速度が遅くて、波形メモリ３００（ＲＡＭ）に展開した波形データの読み出しに追いつかないことによって生じるものである。この「異常」が発生した場合に発音に違和感が生じるので、この「異常」が発生した場合を検出して、「異常」が発生した時点で発音を強制停止（ボイスオフ）するのが本発明の特徴である。
【００２８】
（特徴部の構成）
次に、図５を参照して音源ＬＳＩ１００の構成について説明する。この音源ＬＳＩ１００は、読み出し部１１０と、展開部１２０と、判定部１３０と、再生部１４０と、音源部１５０とを有して構成されている。ＳＤカード２００は、その内部にコントローラ２１０とメモリ２２０とを有している。メモリ２２０には、図２を参照して説明したように、波形Ｘデータがデータブロック毎に分割されて記録されている。コントローラ２１０は、読み出し部１１０から「読み出しコマンド」が発行されると、これに応答して所定量の波形データである１データブロック分の波形データを読み出し部１１０に与える。また、ＲＡＭ３００には、アドレス先頭側に「プリロード領域」が形成されていると共に、この「プリロード領域」とは離れたボイスバッファ領域に、２個のボイスバッファである「ボイスバッファ１」と「ボイスバッファ２」とが形成されている。
【００２９】
（動作）
以下に図６、図７、図８を参照しながら動作を説明する。読み出し部１１０は、ＳＤカード２００に対して、「読み出しコマンド」を与えることによって、１データブロック（所定量）ずつ波形データをＳＤカード２００から受信する（ステップＳ６００、ステップＳ６０５）。そして、読み出し部１１０は、この読み出したデータを展開部１２０に渡して行く（ステップＳ６１０）。展開部１２０は、読み出し部１１０が読み出した所定量の波形データが渡される毎に、「ボイスバッファ１」、「ボイスバッファ２」に対して、交互に、上記所定量の波形データを展開していく（ステップＳ６１５）。なお、展開部１２０はフラグ領域１６０を有していて、このフラグ領域１６０において、後述する「バッファリング実行フラグ」を「１」としたり「０」としたりする。なお、展開部１２０が行う展開処理（展開動作）とは、「ボイスバッファ１」、「ボイスバッファ２」に、交互に、読み出し部１１０から渡された「読み出しデータ」を、再生部１４０が再生可能に書き込むことである。
【００３０】
また、図６のフローチャートには現れないが、再生部１４０は、「ボイスバッファ１」、「ボイスバッファ２」に交互に展開された波形データを、交互に、再生して行き、この再生した波形データを音源部１５０に与える。音源部１５０は、再生部１４０が再生した波形データが与えられると、この与えられた波形データに応じた発音動作を行う。この音源部１５０からの発音信号は図３では不図示のスピーカ９０（図１参照）から放音される。そして、ステップ６２０において、判定部１３０は、展開部１２０が行う各々の展開処理が正常か否かを判定する。
【００３１】
先ず、展開部１２０は、読み出し部１１０がＳＤカード２００に「読み出しコマンド」を発行した時点において、読み出し部１１０から読み出しコマンドを発行したことを示す読み出しコマンド発行情報を把握する（ステップＳ６００）。そして、展開部１２０は自身のフラグ領域１６０において、「バッファリング実行フラグ」と称されるフラグを「０」から「１」とする。そして、展開部１２０が、読み出し部１１０から渡された「読み出しデータ」を対応するボイスバッファ（交互順番に応じて「ボイスバッファ１」又は「ボイスバッファ２」となる）に対して展開処理が完了した時点において、「バッファリング実行フラグ」を「１」から「０」とする。なお、展開部１２０は、この「バッファリング実行フラグ」の情報を判定部１３０に常時送信しているので、判定部１３０は、「バッファリング実行フラグ」の内容を常時把握可能である。
【００３２】
図７（ａ）は判定部１３０で「正常」と判定される場合である「ＳＤカード読み出し応答が速い場合」の模式的説明図である。読み出し部１１０による「ＳＤカード読み出しコマンド」のＳＤカード２００への発行に応答して、コントローラ２１０が、メモリ２２０に記録されている波形データを送出するので、読み出し部１１０はこれを「ＳＤカード読み出しデータ」として受信する。そして、読み出し部１１０はこの「ＳＤカード読み出しデータ」を対応する「ボイスバッファ１」又は「ボイスバッファ２」に書き込み。この間、「バッファリング実行フラグ」が「０」から「１」、「１」から「０」と変化する。これを把握した判定部１３０は、バッファリング実行フラグが「０」から「１」を経て再度「０」になったので、「ＳＤカード読み出しコマンド」が発行されてから「ＳＤカード読み出しデータ」が対応する「ボイスバッファ１」又は「ボイスバッファ２」に展開する動作が完了されたことを検出する。
【００３３】
そして、ステップＳ６２０において、判定部１３０は、「ＳＤカード読み出しコマンド」が発行されてから「ＳＤカード読み出しデータ」が、対応する「ボイスバッファ１」又は「ボイスバッファ２」に展開する動作が完了するまでの時間「Δｔ１」（「バッファリング転送時間」と定義する）が所定値ｔ０未満（「Δｔ１＜ｔ０」）であれば、展開動作は「正常」であると判定して、以降の動作を継続する（ステップＳ６２０の「Ｙｅｓ」）。この場合にはＳＤカード読み出しコマンドの発行から、読み出しデータのボイスバッファへの展開が十分に速いため、再生部１４０の再生において支障が出ることが無く、発音動作を継続していくことになる。なお、この所定値ｔ０は、波形データのサンプリング周波数、発音ボイス数、再生ピッチ、１回のバッファリング転送のデータサイズ等によって定まる値であり、例えば、サンプリング周波数「４８KHz」、３２ボイス等速再生、バッファリング転送のデータサイズが「２Kワード」の場合には「ｔ０＝１．３３（ms）」となる。
【００３４】
一方、図７（ｂ）は、判定部１３０で「異常」と判定される場合である「ＳＤカード読み出し応答が遅い場合」の模式的説明図である。図７（ｂ）に示すように、「バッファリング転送時間Δ２」が、予想外にかかってしまい、「Δ２」が所定値ｔ０を超えてしまう（「Δｔ２＞ｔ０」となる）。この場合にはＳＤカード読み出しコマンドの発行から、読み出しデータのボイスバッファへの展開完了までの時間が遅いため、再生部１４０の再生において支障が出ることになり、判定部１３０は展開部１２０の展開動作に「異常」が発生したと判定して（ステップＳ６２０の「Ｎｏ」）、音源部１５０に対して強制停止信号を出力する（ステップＳ６４０）。この結果、以降発音停止（ボイスオフ）状態となり発音処理を終了する。
【００３５】
なお、ステップＳ６００、ステップＳ６０５、ステップＳ６１０、ステップ６１５までの処理は、ステップＳ６２０における判定結果が「正常」である場合には、ステップＳ６３０において、「ＳＤカードの波形データ」が読み出すべき最終データ（データエンド）となるまで繰り返し実行される（ステップＳ６３０の「Ｎｏ」）。一方、この繰り返し実行中にステップＳ６２０の判定結果が「異常」となった場合には、ステップ６４０で「ボイスオフ」処理が実行されて発音処理が終了される。このように判定部１３０が判定動作を行くことによって、異常が発生した場合には発音が強制的に停止されて、音切れや異音の発生等が回避されて発音状態に違和感を与えないようにすることが可能になる。
【００３６】
図８は本発明のボイスオフ処理を行った場合の動作例の模式的な説明図である。先ず、先頭データ「ＷｘＰＬ」がプリロード領域にプリロードされ、これが再生されて発音が開始される（ボイスオン）。次いで、ＳＤカード読み出しコマンドの発行によって、波形メモリ（ＳＤカード）２００から読み出されたデータ「ＷｘＤＢ（１）」が、「ボイスバッファ１」に展開され、バッファリング実行フラグが「１」から「０」となっているため、再生部１４０がデータ「ＷｘＤＢ（１）」の再生を行ってこの再生データを音源部１５０に与えても異音等が発生しない（正常動作）。次いで、ＳＤカード読み出しコマンドの発行によって、波形メモリ（ＳＤカード）２００から読み出されたデータ「ＷｘＤＢ（２）」は、今度は「ボイスバッファ２」に展開される。この場合においても、バッファリング実行フラグが「１」から「０」となっているため、再生部１４０がデータ「ＷｘＤＢ（２）」の再生を行ってこの再生データを音源部１５０に与えても異音等が生じない（正常動作）。
【００３７】
更に、ＳＤカード読み出しコマンドの発行によって、波形メモリ（ＳＤカード）２００から読み出されたデータ「ＷｘＤＢ（３）」が、今度は「ボイスバッファ１」に展開される。この場合においても、バッファリング実行フラグが「１」から「０」となるにはかなりの時間がかかっているが、バッファリング実行フラグは「１」から「０」となっているため、再生部１４０がデータ「ＷｘＤＢ（３）」の再生を行ってこの再生データを音源部１５０に与えても異音等が発生しない（正常動作）。そして、ＳＤカード読み出しコマンドの発行によって、波形メモリ（ＳＤカード）２００から読み出されたデータ「ＷｘＤＢ（４）」が、今度は「ボイスバッファ２」に展開される。
【００３８】
しかしながら、このデータ「ＷｘＤＢ（４）」を再生する時点で、このデータ「ＷｘＤＢ（４）」の「ボイスバッファ２」への展開についてのバッファリング実行フラグが「１」から「０」となっていない。これはデータ「ＷｘＤＢ（４）」の波形メモリ（ＳＤカード）２００からの読み出しが遅れたことによる。この時、判定部１３０は、音源部１５０を強制停止させる（ボイスオフ）。
【００３９】
したがって、ボイスバッファ（「ボイスバッファ１」又は「ボイスバッファ２」）に対する、波形データ（ＳＤカード）２００からの読み出しデータの展開が完了していないため、この展開完了していないボイスバッファ（「ボイスバッファ１」又は「ボイスバッファ２」）からのデータ再生による発音は強制停止（ボイスオフ）されて、音切れ等の違和感のある現象の発生を阻止することが可能となる。
【００４０】
また、ＳＤカード２００への読み出しコマンド発行からＳＤカード２００からのデータ読み出し完了までの時間はＳＤカードの個体差、ＳＤカードに組み込まれたコントローラ等によって大きなばらつきが生じるため、想定される最長時間内にデータを取得する従来方式によれば最大同時発音可能数を大幅に制限しなければならないが、本発明によれば、ＳＤカードのデータ転送速度のばらつきに応じて最大同時発音数が変わるため、ワーストケースであっても、従来方式と同数の発音数が確保でき高速なデータ転送ができた場合には更に発音数を増加することができる。
【００４１】
なお、以上説明してきた実施の形態によれば、ＳＤカードに記録された波形データを読み出しながら楽音を発生させるようにすると共に、所定時には発音停止（ボイスオフ）を行うものであるが、ＳＤカードの他にＵＳＢメモリ等の記録媒体を使用しても同様な効果が得られる。更には、ＨＤ（ハードディスク）等の記録装置に記録された波形データを使用しても同様な効果を得ることができる。
【産業上の利用可能性】
【００４２】
以上説明してきたように、本発明は音楽分野等に利用することができる。
【符号の説明】
【００４３】
１０  表示器
２０  操作子
３０  鍵盤装置
４０  ＣＰＵ
５０  ＲＡＭ
６０  フラッシュメモリ
７０  ＭＩＤＩ  ＩＯ
９０  スピーカ
１００  音源ＬＳＩ
１１０  読み出し部
１２０  展開部
１３０  判定部
１４０  再生部
１５０  音源部
１６０  フラグ領域
２００  波形メモリ（ＳＤカード）
３００  波形メモリ（ＲＡＭ）
【図１】
2014038181.tif 000003
【図２】
2014038181.tif 000004
【図３】
2014038181.tif 000005
【図４】
2014038181.tif 000006
【図５】
2014038181.tif 000007
【図６】
2014038181.tif 000008
【図７】
2014038181.tif 000009
【図８】
2014038181.tif 000010