(57)【特許請求の範囲】
【請求項１】
操作に基づいて生成すべき楽音がそれぞれ対応付けられた複数の演奏用操作子と、
前記演奏用操作子の操作に基づいて生成された楽音をホールド状態にするためのホールド操作子と、
前記演奏用操作子の操作開始に応じて、前記操作開始された演奏用操作子に対応付けられた楽音の生成開始を指示するとともに、ホールド状態とされていない楽音に対応する前記演奏用操作子の操作停止に応じて、前記操作停止された演奏用操作子に対応付けられている楽音の生成停止を指示する第１の指示手段と、
前記演奏用操作子の操作中に前記ホールド操作子が操作された場合に、前記操作中の演奏用操作子に対応付けられている楽音をホールド状態とすることを指示するとともに、前記演奏用操作子のいずれもが操作されていないときに前記ホールド操作子が操作された場合に、ホールド状態とされていた楽音に関して生成の停止を指示する第２の指示手段と
を有する電子楽器。
【請求項２】
請求項１に記載の電子楽器において、
生成中の各楽音がホールド状態であるか否かを示す情報を記憶する記憶手段と
を有し、
前記第１の指示手段は、前記記憶手段の記憶内容に基づいて各楽音がホールド状態とされているか否かを判断し、
前記第２の指示手段は、前記演奏用操作子の操作中に前記ホールド操作子が操作された場合に、前記操作中の演奏用操作子に対応付けられている楽音をホールド状態とすることを前記記憶手段に記憶させるとともに、前記演奏用操作子のいずれもが操作されていないときに前記ホールド操作子が操作された場合に、前記記憶手段にホールド状態であることが記憶されている楽音に関して生成の停止を指示する
ものである電子楽器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電子楽器に関し、さらに詳細には、ホールド操作子を備えた電子楽器に関する。
【０００２】
【従来の技術】
一般に、電子楽器においては、鍵やパッドなどの演奏用操作子に楽音を対応付けて割り当てておき、鍵を押鍵したり、パッドを押下したりすることにより、その鍵やパッドに割り当てられている楽音の生成を開始するとともに、押鍵中の鍵を離鍵したり、押下中のパッドの押下を解除したりすることにより、楽音の生成を停止するようになっている。
【０００３】
また、従来より、ホールド・ペダルやホールド・ボタンなどのホールド操作子を備えた電子楽器が知られており、こうしたホールド操作子を備えた電子楽器においては、ホールド操作子の操作中はホールド状態とされており、このホールド状態の間は、押鍵中の鍵を離鍵したり、押下中のパッドの押下を解除したりしても、楽音の生成が続行されるようになされている。
【０００４】
ところで、従来のホールド操作子を備えた電子楽器においては、ホールド操作子を操作すると、生成中の全ての楽音が一様にホールド状態となされていた。
【０００５】
一方、ホールド操作子に加えて、ソステヌート・ペダルを備えた電子楽器においては、ソステヌート・ペダルが操作された時点で押鍵中の楽音に関してのみホールド状態とされ、ソステヌート・ペダルの操作後に押鍵された鍵の楽音はホールド状態とされないようになされている。
【０００６】
このように、ソステヌート・ペダルを設けた場合には、ホールド状態にする楽音とホールド状態にしない楽音とを選別することは可能であるが、いずれかの楽音をホールド状態としている最中に、別の楽音をホールド状態とすることはできないという問題点があった。
【０００７】
【発明が解決しようとする課題】
本発明は、上記したような従来の技術の有する種々の問題点に鑑みてなされたものであり、その目的とするところは、ホールド状態にする楽音とホールド状態にしない楽音とを選別することを可能にするとともに、いずれかの楽音をホールド状態としている最中に、別の楽音をホールド状態とすることも可能にした電子楽器を提供しようとするものである。
【０００８】
【課題を解決するための手段】
上記目的を達成するために、本発明のうち請求項１に記載の発明は、操作に基づいて生成すべき楽音がそれぞれ対応付けられた複数の演奏用操作子と、上記演奏用操作子の操作に基づいて生成された楽音をホールド状態にするためのホールド操作子と、上記演奏用操作子の操作開始に応じて、上記操作開始された演奏用操作子に対応付けられた楽音の生成開始を指示するとともに、ホールド状態とされていない楽音に対応する上記演奏用操作子の操作停止に応じて、上記操作停止された演奏用操作子に対応付けられている楽音の生成停止を指示する第１の指示手段と、上記演奏用操作子の操作中に上記ホールド操作子が操作された場合に、上記操作中の演奏用操作子に対応付けられている楽音をホールド状態とすることを指示するとともに、上記演奏用操作子のいずれもが操作されていないときに上記ホールド操作子が操作された場合に、ホールド状態とされていた楽音に関して生成の停止を指示する第２の指示手段とを有するようにしたものである。
【０００９】
従って、本発明のうち請求項１に記載の発明によれば、演奏用操作子の操作開始に応じて、操作開始された演奏用操作子に対応付けられた楽音の生成が開始されるとともに、ホールド状態とされていない楽音に対応する演奏用操作子の操作停止に応じて、操作停止された演奏用操作子に対応付けられている楽音の生成が停止されるものであり、また、演奏用操作子の操作中にホールド操作子が操作された場合には、操作中の演奏用操作子に対応付けられている楽音をホールド状態とすることができ、演奏用操作子のいずれもが操作されていないときにホールド操作子が操作された場合には、ホールド状態とされていた楽音に関して生成を停止することができるものであるので、ホールド状態にする楽音とホールド状態にしない楽音とを選別することが可能になり、しかも、いずれかの楽音をホールド状態としている最中に別の楽音をホールド状態とすることもできるようになる。また、本発明のうち請求項２に記載の発明は、請求項１に記載の発明において、生成中の各楽音がホールド状態であるか否かを示す情報を記憶する記憶手段を設けるようにして、上記第１の指示手段が、上記記憶手段の記憶内容に基づいて各楽音がホールド状態とされているか否かを判断し、上記第２の指示手段が、上記演奏用操作子の操作中に上記ホールド操作子が操作された場合に、上記操作中の演奏用操作子に対応付けられている楽音をホールド状態とすることを上記記憶手段に記憶させるとともに、上記演奏用操作子のいずれもが操作されていないときに上記ホールド操作子が操作された場合に、上記記憶手段にホールド状態であることが記憶されている楽音に関して生成の停止を指示するようにしたものである。
【００１０】
【発明の実施の形態】
以下、添付の図面を参照しながら、本発明による電子楽器の実施の形態の一例を詳細に説明する。
【００１１】
図１には、本発明による電子楽器の実施の形態の一例としての波形データ再生装置の全体構成を表すブロック構成図が示されている。
【００１２】
この波形データ再生装置は、その全体の動作の制御を中央処理装置（ＣＰＵ）１０を用いて制御するように構成されており、このＣＰＵ１０と、アナログ／デジタル変換器（Ａ／Ｄ）１２と、磁気あるいは光などを利用したディスク１４と、半導体メモリ１６と、再生器１８と、操作パネル２０と、ホールド・ペダル２２と、デジタル／アナログ変換器（Ｄ／Ａ）２４とを有して構成されている。
【００１３】
即ち、図１に示す波形データ再生装置においては、ＣＰＵ１０によって全体の動作の制御が行われるものであり、外部から入力されたオーディオ信号（楽音信号）は、アナログ／デジタル変換器１２によりＡ／Ｄ変換され波形データとして、ＣＰＵ１０の制御のもとディスク１４に記憶される。
【００１４】
なお、この実施の形態においては、波形データを記憶するものとして磁気あるいは光などを利用したディスク１４を用いたが、大容量の記憶ができるものであれば、ディスク以外の記憶装置を用いてもよいことは勿論である。
【００１５】
半導体メモリ１６は、ディスク１４に比較して小容量の記憶容量のみを有するものであるが、高速なアクセスが可能なものである。この半導体メモリ１６は、波形データを記憶する領域やワーキング用の領域などが設けられているランダム・アクセス・メモリ（ＲＡＭ）とＣＰＵ１０のプログラムを記憶しているリード・オンリ・メモリ（ＲＯＭ）とから構成されている。
【００１６】
再生器１８は、ＣＰＵ１０の制御の下に半導体メモリ１６に記憶された波形データを再生するものであり、再生された波形データはデジタル／アナログ変換器２４によりオーディオ信号（楽音信号）にＤ／Ａ変換されて出力される。
【００１７】
また、操作パネル２０には、スタート位置指定操作子２０ａ、ループ・スタート位置指定操作子２０ｂ、エンド位置指定操作子２０ｃ、ループ／ワン・ショット指定操作子２０ｄ、図１上において数字１〜１６により示す１６個のパッド２０ｅ（なお、パッド２０ｅは、図１上における数字１〜１６に対応してパッド番号１〜１６がふられて管理されている。）、バンク切り換え操作子２０ｆ、ホールド操作子２０ｇおよびその他の操作子２０ｈが設けられている。
【００１８】
ここで、パッド２０ｅは、押しボタン・スイッチであり、その操作に応じてその、操作されたパッド２０ｅに予め割り当てられている波形データの再生開始を指示するものである。
【００１９】
なお、１６個のパッド２０ｅへの波形データ割り当てパターンは、この実施の形態においては３種類設定されている。各割り当てパターンはバンクと称され、バンク切り換え操作子２０ｆの操作に応じて、任意のバンクを選択することができる。
【００２０】
また、スタート位置指定操作子２０ａは、波形データの読み出しを行うスタート位置を指定するものであり、ループ・スタート位置指定操作子２０ｂは、波形データの読み出しを行うループ・スタート位置を指定するものであり、エンド位置指定操作子２０ｃは、波形データの読み出しの終了の位置を指定するものであり、ループ／ワン・ショット指定操作子２０ｄは、ループ読み出しを行うか、ワン・ショット読み出しを行うかを指定するものである。
【００２１】
そして、波形データは、対応するパッド２０ｅの操作（押下開始）に応じて、スタート位置指定操作子２０ａにより指定されたスタート位置から読み出しが開始されることになる。即ち、パッド２０ｅの押下開始操作が、波形データの再生開始の指示となる。
【００２２】
なお、ループ／ワン・ショット指定操作子２０ｄによりループ読み出しが指定されている場合には、対応するパッド２０ｅが操作されている間（押下中）においては、エンド位置指定操作子２０ｃにより指定されたエンド位置まで読み出しが行われたときに、読み出し位置がループ・スタート位置指定操作子２０ｂにより指定されたループ・スタート位置まで戻され、読み出しが続行されるという動作が繰り返されるものであり、対応するパッド２０ｅの操作が止められた（押下解除）時点で読み出しが停止されることになる。
【００２３】
また、ループ／ワン・ショット指定操作子２０ｄによりワン・ショット読み出しが指定されている場合には、エンド位置指定操作子２０ｃにより指定されたエンド位置まで読み出しが行われたときに読み出しを終了する。
【００２４】
なお、ループ・スタート位置は、スタート位置よりも前に置くことも、また、スタート位置よりも後ろに置くことも、また、スタート位置と一致させることも許容されている。
【００２５】
また、ホールド操作子２０ｇならびにホールド・ペダル２２は、ループ読み出しが指定されている波形データに関してパッド２０ｅの操作が止められたときにも、当該パッド２０ｅを操作し続けているのと同様な状態を実現するための操作子である。
【００２６】
なお、外部から入力されたオーディオ信号（楽音信号）をアナログ／デジタル変換器１２によりＡ／Ｄ変換した波形データを、いずれのパッド２０ｅに割り当てるか、また、いずれの波形データに対してスタート位置、ループ・スタート位置、エンド位置ならびにループ読み出しあるいはワン・ショット読み出しを指定するかは、符号２０ｈにより示すその他の操作子によって設定されることになる。
【００２７】
図２には、ディスク１４の記憶領域のフォーマットが概念的に示されており、ディスク１４の記憶領域は、所定の記憶容量を有するクラスタ毎に分割されていて、各波形データは１つあるいは複数のクラスタに跨って記憶されている。
【００２８】
なお、図２においては、クラスタ同士が物理的に連続しているように描かれているが、物理的に連続している必要はない。このため、各波形データに関して、波形データの先頭部分を記憶しているクラスタ、次の部分を記憶しているクラスタ、さらに次の部分を記憶しているクラスタ、・・・、という形で、各波形データ毎にその波形データの各部分がディスク１４上のいずれのクラスタに記憶されているかが管理されている。
【００２９】
また、波形データは、必ずクラスタの先頭部分から記憶されるようになっており、１つのクラスタには１つの波形データのみが記憶されている。そして、波形データの大きさはクラスタの大きさとは無関係であるので、波形データの末尾は一般にはクラスタの末尾とはならない。
【００３０】
さらに、波形データを記憶したクラスタは、各波形データ毎にスタート位置（スタート位置がループ・スタート位置よりも前にある場合）あるいはループ・スタート位置（ループス・タート位置がスタート位置よりも前にある場合）を含むクラスタから順に、１，２，３，・・・というクラスタ番号がふられて管理されている。
【００３１】
そして、各波形データには、スタート位置、ループ・スタート位置、エンド位置ならびにループ読み出しあるいはワン・ショット読み出しが指定されている。なお、波形データの１サンプルあたりのデータ量および１クラスタあたりのデータ量から、波形データの任意の位置のサンプルに関して、当該サンプルが記憶されているクラスタおよび当該クラスタの先頭からの相対位置が一意的に決定されることになる。
【００３２】
次ぎに、半導体メモリ１６について説明すると、半導体メモリ１６には、上記した各波形データの管理用の領域、バンク管理用の領域、ワーキング用の領域などの他に、１６個のパッド２０ｅにそれぞれ対応して、これらのパッド２０ｅにそれぞれ割り当てられた波形データのスタート位置部分を記憶するスタート・バッファＳＴＡＲＴと、波形データの再生時にディスク１４から波形データを順次読み出すための４音の同時再生を可能とする４チャンネル分の再生バッファＰＬＡＹとが設けられている。
【００３３】
図３には、上記したスタート・バッファＳＴＡＲＴのフォーマットが概念的に示されている。スタート・バッファＳＴＡＲＴには、パッド番号１〜１６の１６個のパッド２０ｅにそれぞれ対応して２クラスタ分の領域が設けられており、各領域にはそれぞれクラスタ番号１、クラスタ番号２がふられている。
【００３４】
また、図４には、上記した再生バッファＰＬＡＹのフォーマットが概念的に示されている。再生バッファＰＬＡＹには、４音同時発音が可能なように４チャンネル分の領域（再生チャンネル）が設けられていて、各再生チャンネルにはチャンネル番号１〜４がふられている。さらに、これら４チャンネル分の再生チャンネルには、各チャンネルに対応して４クラスタ分の領域が設けられていて、各領域にはクラスタ番号１〜４がふられている。
【００３５】
なお、本明細書においては、本発明の理解を容易にするために、スタート・バッファＳＴＡＲＴならびに再生バッファＰＬＡＹの１クラスタ分の領域も「クラスタ」と称することとする。
【００３６】
そして、パッド２０ｅの操作（押下開始）により再生開始が指示された場合には、いずれの再生チャンネルを選択するかの順番を示すアサイン順位（後述する）に基づいて、いずれかの再生チャンネルが選択され、操作されたパッド２０ｅに対応するスタート・バッファＳＴＡＲＴの記憶内容がその再生チャンネルの再生バッファＰＬＡＹに転送される。
【００３７】
また、再生器１８には、再生用の４つのチャンネル（再生チャンネル）が設けられており、各再生チャンネルは再生バッファＰＬＡＹの対応する再生チャンネルの記憶内容を読み出し、音声信号（楽音信号）として再生する。再生器１８により再生バッファＰＬＡＹの記憶内容を再生する際には、再生バッファＰＬＡＹの各クラスタがクラスタ番号１〜４の順に読み出されることになり、クラスタ番号４のクラスタのを読み終わると、次ぎにはクラスタ番号１のクラスタが読み出される。
【００３８】
なお、再生バッファＰＬＡＹの各再生チャンネルには、図４においてチャンネル番号１の再生チャンネルに例示してあるように、その再生チャンネルで再生される波形データに応じてスタート・アドレスＳＴおよびデータ量ＱＴが設定される。
【００３９】
ここで、スタート・アドレスＳＴは、再生対象のクラスタにおけるクラスタの先頭からの相対位置を示すものであり、波形データのスタート位置あるいはループ・スタート位置に基づいて設定される。また、データ量ＱＴは、波形データのスタート位置あるいはループ・スタート位置からエンド位置までのデータ量を示すものである。
【００４０】
従って、再生器１８においては、パッド２０ｅの操作（押下開始）による波形データの再生開始指示に応じて、各再生チャンネルは再生バッファＰＬＡＹの第１クラスタに記憶された波形データを、そのクラスタの先頭からスタート・アドレスＳＴで示されるだけ離れた位置から読み出し開始し、以降、サンプリング周期毎に１サンプルのデータを読み出すとともに、設定されたデータ量ＱＴの値をデクリメントする。
【００４１】
そして、各再生チャンネルは、再生バッファＰＬＡＹの各クラスタの読み出しを終了したときおよびデータ量ＱＴの値が０になったときに、その旨をＣＰＵ１０に通知する。
【００４２】
そして、ＣＰＵ１０は、クラスタの読み出しが終了した旨の通知を受けたときには、そのクラスタに次に記憶すべき波形データの１クラスタ分をディスク１４から読み出して記憶し、一方、データ量ＱＴの値が０となった旨の通知を受けたときには、その波形データがループ読み出しを行うものであれば次のスタート・アドレスＳＴおよびデータ量ＱＴをその再生チャンネルに設定した後にクラスタ読み出しが終了した旨の通知を発行し、その波形データがワン・ショット読み出しを行うものであればその再生チャンネルに再生停止を指示する。再生チャンネルは新たなスタート・アドレスＳＴおよびデータ量ＱＴの設定に応じて、今まで読み出しを行っていたクラスタの次のクラスタを再生対象のクラスタとし、スタート・アドレスＳＴで示される位置から読み出しを行う。
【００４３】
また、各再生チャンネルは、ＣＰＵ１０から再生停止指示を受けると、波形データの読み出し（再生）を停止する。
【００４４】
次に、図５に示すバンク切り換え処理のフローチャートを参照しながら、バンク切り換え操作子２０ｆが操作されてバンク切り換えが指示されたときの処理を説明する。
【００４５】
即ち、バンク切り換え操作子２０ｆが操作されてバンク切り換えが指示されたときには、図５のバンク切り換え処理のフローチャートに示される処理が実行されるものである。
【００４６】
このバンク切り換え処理のフローチャートにおいては、まず、ステップＳ５０２において、新たに指定されたバンクに対応して各パッド２０ｅに波形データを割り当てる。
【００４７】
ステップＳ５０２の処理を終了すると、ステップＳ５０４へ進み、各パッド２０ｅに対応する波形データに関して、ディスク１４からスタート位置を含むクラスタおよびその次のクラスタの波形データを読み出し、対応するスタート・バッファＳＴＡＲＴの第１クラスタおよび第２クラスタに記憶する。ただし、１クラスタのみから構成されている波形データに関しては、その波形データがワン・ショット読み出しである場合には第１クラスタにのみ波形データを記憶し、ループ読み出しである場合には第１クラスタおよび第２クラスタに同じ波形データを記憶するものである。
【００４８】
ステップＳ５０４の処理を終了すると、ステップＳ５０６へ進み、再生器１８のホールド・フラグｈｏｌｄ（後述する）が「０」である再生チャンネルに対して波形データの再生停止を指示し、その再生チャンネルが不使用状態となったことに伴いアサイン順位を更新する。
【００４９】
ステップＳ５０６の処理を終了すると、このバンク切り換え処理のフローチャートの処理を終了する。
【００５０】
ここで、ホールド・フラグｈｏｌｄとは、各再生チャンネル毎に設けられたホールド操作子２０ｇならびにホールド・ペダル２２によりホールド状態（後述する）とされているか否かを示すものである。ホールド・フラグｈｏｌｄが「０」である再生チャンネルはホールド状態でないことを示しており、ホールド・フラグｈｏｌｄが「１」である再生チャンネルはホールド状態であることを示している。この処理によりホールド状態でない再生チャンネルは波形データの読み出しを停止する。
【００５１】
なお、ホールド・フラグｈｏｌｄは電源投入後の初期状態においては「０」とされており、またワン・ショット読み出しが指定されている波形データが割り当てられている再生チャンネルに関しては常に「０」とされている。
【００５２】
従って、バンク切り換えが行われたときには、再生中の波形データのうちワン・ショット読み出しが指定されているものは無条件に再生が停止されることになる。
【００５３】
次に、図６に示すパッド・オン処理のフローチャートを参照しながら、いずれかのパッド２０ｅが操作（押下開始）されて再生開始指示がなされたときの処理を説明する。
【００５４】
即ち、いずれかのパッド２０ｅが操作（押下開始）されて再生開始指示がなされたときには、図６のパッド・オン処理のフローチャートに示される処理が実行されるものである。
【００５５】
このパッド・オン処理のフローチャートにおいては、まず、ステップＳ６０２において、操作されたパッド２０ｅのパッド番号（１〜１６）をパッド番号ｐａｄに設定する。
【００５６】
ステップＳ６０２の処理を終了すると、ステップＳ６０４へ進み、新たに操作されたパッド２０ｅの波形データを割り当てる再生チャンネルを所定のアサイン順位に基づいて選択し、選択した再生チャンネルのチャンネル番号をチャンネル番号ｃｈに設定する。アサイン順位の決定は、周知のアサイン技術を使用すればよく、例えば、波形データの読み出しが行われていない再生チャンネルがあればその再生チャンネルを選択し、波形データの読み出しが行われていない再生チャンネルがなければ最も以前に再生を開始した再生チャンネルを選択すればよい
なお、全ての再生チャンネルで波形データの再生が行われているときには、後述するホールド状態とされている再生チャンネルに関しては選択の対象から外すようにしてもよい。
【００５７】
また、全ての再生チャンネルで波形データの再生が行われているときには、ワン・ショット読み出しが指定されている波形データを再生中の再生チャンネルがあればその中から再生チャンネルを選択し、ループ読み出しが指定されている波形データを再生中の再生チャンネルしかない場合にはその中から再生チャンネルを選択するようにしてもよい。
【００５８】
なお、再生中の再生チャンネルを選択した場合には、その再生チャンネルに対して再生停止を指示する。
【００５９】
ステップＳ６０４の処理を終了すると、ステップＳ６０６へ進み、パッド番号ｐａｄのパッド２０ｅに対応する波形データのスタート位置を含むディスク１４上のクラスタ番号を求め、当該クラスタ番号を読み出しクラスタ番号ｒｄ＿ｃｌ（ｃｈ）に設定し、パッド番号ｐａｄのパッド２０ｅに対応する波形データのループ・スタート位置を含むディスク１４上のクラスタ番号を求め、当該クラスタ番号をループ・スタート・クラスタ番号ｌｓｔ＿ｃｌ（ｃｈ）に設定し、パッド番号ｐａｄのパッド２０ｅに対応する波形データのエンド位置を含むディスク１４上のクラスタ番号を求め、当該クラスタ番号をエンド・クラスタ番号ｅｄ＿ｃｌ（ｃｈ）に設定する。
【００６０】
ステップＳ６０６の処理を終了すると、ステップＳ６０８へ進み、パッド番号ｐａｄのスタート・バッファＳＴＡＲＴの第１クラスタＳＴＡＲＴ［ｐａｄ，１］から、波形データをチャンネル番号ｃｈの再生バッファＰＬＡＹの第１クラスタＰＬＡＹ［ｃｈ，１］に転送する。即ち、操作されたパッド２０ｅのスタート・バッファＳＴＡＲＴの第１クラスタの波形データを、選択された再生チャンネルの再生バッファＰＬＡＹの第１クラスタに記憶するものである。
【００６１】
ステップＳ６０８の処理を終了すると、ステップＳ６１０へ進み、パッド番号ｐａｄに対応する波形データのスタート位置に基づいて、当該スタート位置の当該スタート位置を含むクラスタ内における相対位置を求め、当該相対位置をスタート・アドレスＳＴとするとともに、パッド番号ｐａｄに対応する波形データのスタート位置およびエンド位置に基づいてその波形データのデータ量を求め、当該データ量をデータ量ＱＴとし、これらスタート・アドレスＳＴおよびデータ量ＱＴを再生チャンネルｃｈに設定し、この再生チャンネルｃｈに第１クラスタのスタート・アドレスＳＴから再生を開始するように指示し、当該再生チャンネルｃｈが使用状態となったことに伴い、いずれの再生チャンネルでいずれのパッド２０ｅの波形データを再生しているかを示す管理情報およびアサイン順位を更新する。
【００６２】
これにより、再生チャンネルｃｈにおいて、操作されたパッド２０ｅに割り当てられている波形データの再生が開始される。
【００６３】
ステップＳ６１０の処理を終了すると、ステップＳ６１２へ進み、パッド番号ｐａｄのパッド２０ｅに割り当てられている波形データが、ワン・ショット読み出しであり、かつ、「読み出しクラスタ番号ｒｄ＿ｃｌ（ｃｈ）＝エンド・クラスタ番号ｅｄ＿ｃｌ（ｃｈ）」であるか否かを判断する。
【００６４】
ステップＳ６１２において、パッド番号ｐａｄのパッド２０ｅに割り当てられている波形データが、ワン・ショット読み出しであり、かつ、「読み出しクラスタ番号ｒｄ＿ｃｌ（ｃｈ）＝エンド・クラスタ番号ｅｄ＿ｃｌ（ｃｈ）」であると判断された場合には、このパッド・オン処理を終了する。
【００６５】
これは、その波形データの読み出し開始時の読み出し位置のクラスタとエンド位置のクラスタとが一致している場合、即ち、その波形データが１つのクラスタのみに記憶されている場合には、再生すべき波形データを全て既に再生バッファに記憶したことになるので、ワン・ショット読み出しを行う場合には、追加の波形データを再生バッファに記憶する必要がないためである。
【００６６】
一方、ステップＳ６１２において、パッド番号ｐａｄのパッド２０ｅに割り当てられている波形データが、ワン・ショット読み出しであり、かつ、「読み出しクラスタ番号ｒｄ＿ｃｌ（ｃｈ）＝エンド・クラスタ番号ｅｄ＿ｃｌ（ｃｈ）」ではないと判断された場合には、ステップＳ６１４へ進み、パッド番号ｐａｄのスタート・バッファＳＴＡＲＴの第２クラスタＳＴＡＲＴ［ｐａｄ，２］から、波形データをチャンネル番号ｃｈの再生バッファＰＬＡＹの第２クラスタＰＬＡＹ［ｃｈ，２］に転送する。即ち、操作されたパッド２０ｅのスタート・バッファの第２クラスタの波形データを、選択された再生チャンネルの再生バッファの第２クラスタに記憶する。
【００６７】
ステップＳ６１４の処理を終了すると、ステップＳ６１６の処理へ進み、読み出しクラスタ番号ｒｄ＿ｃｌ（ｃｈ）をインクリメントし、パッド番号ｃｈのスタート・バッファの書き込みクラスタ番号ｗｒ＿ｃｌ（ｃｈ）を２とする。
【００６８】
従って、上記したステップＳ６１６までの処理により、再生バッファの第１クラスタおよび第２クラスタに波形データが書き込まれることになるとともに、読み出しクラスタ番号および書き込みクラスタ番号がそれぞれ増加される。そして、以降のステップにおいては、再生バッファの第３クラスタおよび第４クラスタに波形データを書き込む処理を行うことになる。
【００６９】
即ち、ステップＳ６１６の処理を終了すると、ステップＳ６１８へ進み、まず、書き込みクラスタ番号ｗｒ＿ｃｌ（ｃｈ）が「４」であるか否かを判断する。ステップＳ６１８において、書き込みクラスタ番号ｗｒ＿ｃｌ（ｃｈ）が「４」であると判断された場合には、波形データを再生バッファの第３クラスタおよび第４クラスタにかき終えたので、このパッド・オン処理を終了する。
【００７０】
一方、ステップＳ６１８において、書き込みクラスタ番号ｗｒ＿ｃｌ（ｃｈ）が「４」ではないと判断された場合には、ステップＳ６２０へ進み、「読み出しクラスタ番号ｒｄ＿ｃｌ（ｃｈ）＝エンドクラスタ番号ｅｄ＿ｃｌ（ｃｈ）」であるか否かを判断する。
【００７１】
ステップＳ６２０において、「読み出しクラスタ番号ｒｄ＿ｃｌ（ｃｈ）＝エンドクラスタ番号ｅｄ＿ｃｌ（ｃｈ）」であると判断された場合には、ステップＳ６２２へ進み、パッド番号ｐａｄのパッド２０ｅに割り当てられている波形データが、ワン・ショット読み出しであるか否かを判断する。
【００７２】
ステップＳ６２２において、パッド番号ｐａｄのパッド２０ｅに割り当てられている波形データが、ワン・ショット読み出しであると判断された場合には、追加の波形データを再生バッファに記憶する必要がないため、このパッド・オン処理を終了する。
【００７３】
一方、ステップＳ６２０において、「読み出しクラスタ番号ｒｄ＿ｃｌ（ｃｈ）＝エンドクラスタ番号ｅｄ＿ｃｌ（ｃｈ）」ではないと判断された場合には、読み出しクラスタ番号ｒｄ＿ｃｌ（ｃｈ）をインクリメントし（ステップＳ６２４）、さらに、書き込みクラスタ番号ｗｒ＿ｃｌ（ｃｈ）をインクリメントし（ステップＳ６２６）、それから、ディスク１４からパッド番号ｐａｄの読み出しクラスタ番号ｒｄ＿ｃｌ（ｃｈ）に対応する波形データを読み出し、再生チャンネルｃｈの再生バッファの書き込みクラスタ番号ｗｒ＿ｃｌ（ｃｈ）で示されるクラスタに記憶し（ステップＳ６２８）、ステップＳ６１８へ戻る。
【００７４】
また、ステップＳ６２２において、パッド番号ｐａｄのパッド２０ｅに割り当てられている波形データが、ワン・ショット読み出しではないと判断された場合には、ループ・スタート・クラスタ番号ｌｓｔ＿ｃｌ（ｃｈ）を読み出しクラスタ番号ｒｄ＿ｃｌ（ｃｈ）に設定し（ステップＳ６３０）、さらに、書き込みクラスタ番号ｗｒ＿ｃｌ（ｃｈ）をインクリメントし（ステップＳ６２６）、それから、ディスク１４からパッド番号ｐａｄの読み出しクラスタｒｄ＿ｃｌ（ｃｈ）に対応する波形データを読み出し、再生チャンネルｃｈの再生バッファの書き込みクラスタ番号ｗｒ＿ｃｌ（ｃｈ）で示されるクラスタに記憶し（ステップＳ６２８）、ステップＳ６１８へ戻る。
【００７５】
このようにして、操作されたパッド２０ｅに応じて再生バッファに必要な波形データが記憶されるとともに、再生が開始されることになる。
【００７６】
次に、図７に示すパッド・オフ処理のフローチャートを参照しながら、いずれかのパッド２０ｅが操作（押下解除）されて再生停止指示がなされたときの処理を説明する。
【００７７】
即ち、押下されていたいずれかのパッド２０ｅが操作（押下解除）されて再生停止指示がなされたときには、図７のパッド・オフ処理のフローチャートに示される処理が実行されるものである。
【００７８】
このパッド・オフ処理のフローチャートにおいては、まず、ステップＳ７０２において、操作（押下解除）されたパッド２０ｅのパッド番号（１〜１６）をパッド番号ｐａｄに設定する。
【００７９】
ステップＳ７０２の処理を終了すると、ステップＳ７０４へ進み、操作（押下解除）されたパッド２０ｅの波形データを再生中の再生チャンネルがあるか否かを判断する。
【００８０】
ステップＳ７０４において、操作（押下解除）されたパッド２０ｅの波形データを再生中の再生チャンネルがないと判断された場合には、このパッド・オフ処理を終了する。
【００８１】
一方、ステップＳ７０４において、操作（押下解除）されたパッド２０ｅの波形データを再生中の再生チャンネルがあると判断された場合には、ステップＳ７０６へ進み、操作（押下解除）されたパッド２０ｅの波形データを再生中の再生チャンネルのチャンネル番号をチャンネル番号ｃｈに設定する。
【００８２】
ステップＳ７０６の処理を終了すると、ステップＳ７０８へ進み、パッド番号ｐａｄのパッド２０ｅに割り当てられている波形データが、ループ読み出しであるか否かを判断する。
【００８３】
ステップＳ７０８において、パッド番号ｐａｄのパッド２０ｅに割り当てられている波形データが、ループ読み出しでないと判断された場合には、このパッド・オフ処理を終了する。
【００８４】
一方、ステップＳ７０８において、パッド番号ｐａｄのパッド２０ｅに割り当てられている波形データが、ループ読み出しであると判断された場合には、ステップＳ７１０へ進み、チャンネル番号ｃｈのホールド・フラグｈｏｌｄ（ｃｈ）が「ホールド・フラグｈｏｌｄ（ｃｈ）＝１」であるか否かを判断する。
【００８５】
ステップＳ７１０において、チャンネル番号ｃｈのホールド・フラグｈｏｌｄ（ｃｈ）が「ホールド・フラグｈｏｌｄ（ｃｈ）＝１」であると判断された場合には、このパッド・オフ処理を終了する。即ち、この場合には、パッド２０ｅの押下の操作を止めても、波形データの再生が続行されることになる。
【００８６】
ステップＳ７１０において、チャンネル番号ｃｈのホールド・フラグｈｏｌｄ（ｃｈ）が「ホールド・フラグｈｏｌｄ（ｃｈ）＝１」でないと判断された場合には、ステップＳ７１２へ進み、再生チャンネルｃｈに再生停止を指示し、その再生チャンネルが不使用状態となったことに伴い、いずれの再生チャンネルでいずれのパッド２０ｅの波形データを再生しているかを示す管理情報およびアサイン順位を変更する。
【００８７】
次に、図８に示すホールド・オン処理のフローチャートを参照しながら、ホールド操作子２０ｇあるいはホールド・ペダル２２が操作されたときの処理を説明する。
【００８８】
即ち、ホールド操作子２０ｇあるいはホールド・ペダル２２が操作されたときに、このホールド・オン処理のフローチャートに示される処理が実行されるものである。
【００８９】
このホールド・オン処理のフローチャートにおいては、まず、ステップＳ８０２において、操作中（押下中）のパッド２０ｅがあるか否かを判断する。
【００９０】
ステップＳ８０２において、操作中（押下中）のパッド２０ｅがあると判断された場合には、ステップＳ８０４へ進み、操作中（押下中）のパッド２０ｅに割り当てられている波形データが、ループ読み出しであるか否かを判断する。
【００９１】
ステップＳ８０４において、操作中（押下中）のパッド２０ｅに割り当てられている波形データが、ループ読み出しでないと判断された場合には、このホールド・オン処理を終了する。即ち、ワン・ショット読み出しの波形データの再生に関しては、ホールド操作子２０ｇおよびホールド・ペダル２２の操作は何等の影響も与えることはない。
【００９２】
一方、ステップＳＳ８０４において、操作中（押下中）のパッド２０ｅに割り当てられている波形データが、ループ読み出しであると判断された場合には、ステップＳ８０６へ進み、そのパッド２０ｅの波形データを再生中の再生チャンネルｃｈに関して、「ｈｏｌｄ（ｃｈ）＝１」と設定して、このホールド・オン処理を終了する。即ち、ループ読み出しの波形データの再生を指示するパッド２０ｅを操作（押下）しながらホールド操作子２０ｇあるいはホールド・ペダル２２を操作したときには、その波形データの再生を行っている再生チャンネルがホールド状態とされ、そのパッド２０ｅの操作を止めても（押下解除しても）波形データの再生が続行されるようになる。
【００９３】
なお、複数のパッド２０ｅを操作（押下）しながら、ホールド操作子２０ｇあるいはホールド・ペダル２２を操作した場合には、操作（押下）されている各パッド２０ｅに関して同様なそれぞれ処理が行われる。
【００９４】
また、ステップＳ８０２において、操作中（押下中）のパッド２０ｅがないと判断された場合、即ち、いずれのパッド２０ｅも操作（押下）されていない状態でホールド操作子２０ｇあるいはホールド・ペダル２２が操作された場合には、ステップＳ８０８へ進み、「ｈｏｌｄ（ｃｈ）＝１」とされている再生チャンネルｃｈに対して再生停止を指示し、その再生チャンネルが不使用状態となったことに伴い、いずれの再生チャンネルでいずれのパッド２０ｅの波形データを再生しているかを示す管理情報およびアサイン順位を更新する。
【００９５】
ステップＳ８０８の処理を終了すると、ステップＳ８１０へ進み、「ｈｏｌｄ（ｃｈ）＝０」と設定し、このホールド・オン処理を終了する。即ち、いずれのパッド２０ｅも操作されずにホールド操作子２０ｇあるいはホールド・ペダル２２が操作されたときには、ホールド状態とされていた再生チャンネルに関してホールド状態を解除し、その再生チャンネルでの波形データの再生を停止することになる。
【００９６】
次に、図９に示すクラスタ読み出し終了処理のフローチャートを参照しながら、いずれかの再生チャンネルからクラスタの読み出しを終了したことを通知されたときの処理を説明する。
【００９７】
即ち、いずれかの再生チャンネルからクラスタの読み出しを終了したことを知らされたときに、このクラスタ読み出し終了処理のフローチャートに示される処理が実行されるものである。
【００９８】
このクラスタ読み出し終了処理のフローチャートにおいては、まず、ステップＳ９０２において、クラスタの読み出しを終了した再生チャンネルのチャンネル番号をチャンネル番号ｃｈに設定し、この再生チャンネルで再生中の波形データに対応するパッド番号をパッド番号ｐａｄに設定する。
【００９９】
ステップＳ９０２の処理を終了すると、ステップＳ９０４へ進み、「読み出しクラスタ番号ｒｄ＿ｃｌ（ｃｈ）＝エンド・クラスタ番号ｅｄ＿ｃｌ（ｃｈ）」であるか否かを判断する。
【０１００】
ステップＳ９０４において、「読み出しクラスタ番号ｒｄ＿ｃｌ（ｃｈ）＝エンド・クラスタ番号ｅｄ＿ｃｌ（ｃｈ）」であると判断された場合には、ステップＳ９０６へ進み、パッド番号ｐａｄのパッドに割り当てられている波形データが、ワン・ショット読み出しであるか否かを判断する。
【０１０１】
ステップＳ９０６において、パッド番号ｐａｄのパッドに割り当てられている波形データが、ワン・ショット読み出しであると判断された場合には、追加の波形データを再生バッファに記憶する必要がないため、このクラスタ読み出し終了処理を終了する。
【０１０２】
一方、ステップＳ９０４において、「読み出しクラスタ番号ｒｄ＿ｃｌ（ｃｈ）＝エンド・クラスタ番号ｅｄ＿ｃｌ（ｃｈ）」でないと判断された場合には、ステップＳ９０８へ進み、読み出しクラスタ番号ｒｄ＿ｃｌ（ｃｈ）をインクリメントする。
【０１０３】
また、ステップＳ９０６において、パッド番号ｐａｄのパッドに割り当てられている波形データが、ワン・ショット読み出しでないと判断された場合には、ステップＳ９１０へ進み、ループ・スタート・クラスタｌｓｔ＿ｃｌ（ｃｈ）を読み出しクラスタ番号ｒｄ＿ｃｌ（ｃｈ）に設定する。
【０１０４】
そして、ステップＳ９０８あるいはステップＳ９１０の処理を終了すると、ステップＳ９１２へ進み、書き込みクラスタ番号ｗｒ＿ｃｌ（ｃｈ）が「４」であるか否かを判断する。
【０１０５】
ステップＳ９１２において、書き込みクラスタ番号ｗｒ＿ｃｌ（ｃｈ）が「４」でないと判断された場合には、ステップＳ９１４へ進み、書き込みクラスタ番号ｗｒ＿ｃｌ（ｃｈ）をインクリメントする。
【０１０６】
一方、ステップＳ９１２において、書き込みクラスタ番号ｗｒ＿ｃｌ（ｃｈ）が「４」であると判断された場合には、ステップＳ９１６へ進み、書き込みクラスタ番号ｗｒ＿ｃｌ（ｃｈ）に「１」を設定する。
【０１０７】
そして、ステップＳ９１４あるいはステップＳ９１６の処理を終了すると、ステップＳ９１８へ進み、ディスク１４からパッド番号ｐａｄの読み出しクラスタ番号ｒｄ＿ｃｌ（ｃｈ）に対応する波形データを読み出し、チャンネル番号ｃｈの再生バッファの書き込みクラスタ番号ｗｒ＿ｃｌ（ｃｈ）で示されるクラスタに記憶し、このクラスタ読み出し終了処理を終了する。
【０１０８】
このようにして、いずれかの再生チャンネルでクラスタの読み出しを終了した場合には、次のクラスタの波形データが読み出しを終了したクラスタに記憶されることになる。
【０１０９】
次に、図１０に示す「ＱＴ＝０」処理のフローチャートを参照しながら、いずれかの再生チャンネルからデータ量ＱＴの値が「０」となったことを通知されたときの処理を説明する。
【０１１０】
即ち、いずれかの再生チャンネルからデータ量ＱＴの値が「０」となったことを知らされたときに、この「ＱＴ＝０」処理のフローチャートに示される処理が実行されるものである。
【０１１１】
この「ＱＴ＝０」処理のフローチャートにおいては、まず、ステップＳ１００２において、データ量ＱＴの値が「０」となった再生チャンネルのチャンネル番号をチャンネル番号ｃｈに設定する。
【０１１２】
ステップＳ１００２の処理を終了すると、ステップＳ１００４へ進み、データ量ＱＴの値が「０」となった再生チャンネルで再生中の波形データが、ループ読み出しであるか否かを判断する。
【０１１３】
ステップＳ１００４において、データ量ＱＴの値が「０」となった再生チャンネルで再生中の波形データが、ループ読み出しであると判断された場合には、ステップＳ１００６へ進み、再生チャンネルｃｈに対してその再生チャンネルで再生中の波形データのループ・スタート位置に基づいて、当該ループ・スタート位置の当該ループ・スタート位置を含むクラスタ内における相対位置を求め、スタート・アドレスＳＴとするとともに、当該波形データのループ・スタート位置およびエンド位置に基づいて、当該波形データの波形データ量を求め、当該波形データ量をデータ量ＱＴとし、これらスタート・アドレスＳＴおよびデータ量ＱＴを再生チャンネルｃｈに設定し、さらに、再生チャンネルｃｈに対して今まで再生していたクラスタの次のクラスタを再生対象のクラスタとするよう指示した後に、クラスタ読み出しが終了した旨の通知を発行し、クラスタ読み出しが終了した旨の通知に応じて引き続き図９に示すフローチャートの処理が行われ、この「ＱＴ＝０」処理を終了する。
【０１１４】
一方、ステップＳ１００４において、データ量ＱＴの値が「０」となった再生チャンネルで再生中の波形データが、ループ読み出しでないと判断された場合には、ステップＳ１００８へ進み、再生チャンネルｃｈに対して再生停止を指示し、当該再生チャンネルが不使用状態となったことに伴いいずれの再生チャンネルでいずれのパッド２０ｅの波形データを再生しているかを示す管理情報およびアサイン順位を更新し、この「ＱＴ＝０」処理を終了する。
【０１１５】
従って、上記した実施の形態においては、バンク切り換え操作子２０ｆの操作によりバンク切り換えを指示すると、バンク切り換え処理のフローチャートにより、新たに指定されたバンクに応じて各パッド２０ｅに波形データが割り当てられる（ステップＳ５０２）。このとき、各パッド２０ｅに割り当てられた各波形データに設定されているスタート位置に応じて、当該波形データのスタート位置を含む１クラスタあるいは２クラスタ分の波形データが、ディスク１４から読み出されてスタート・バッファＳＴＡＲＴに記憶される（ステップＳ５０４）。
【０１１６】
即ち、ディスク１４のスタート位置を含むクラスタから、波形データをスタート・バッファＳＴＡＲＴに記憶するので、スタート・バッファＳＴＡＲＴは必要最小限の記憶容量があれば足りる。
【０１１７】
そして、パッド２０ｅを操作（押下）すると、パッド・オン処理のフローチャートにより、操作（押下）されたパッド２０ｅの波形データのスタート部分の波形データが、スタート・バッファＳＴＡＲＴから再生バッファＰＬＡＹに転送され（ステップＳ６０８）、再生バッファＰＬＡＹにおいてスタート位置から波形データの読み出しが開始される（ステップＳ６１０）。
【０１１８】
従って、波形データの先頭以外の場所をスタート位置と指定しても、そのスタート位置からパッド２０ｅの操作に応じて時間遅れなく波形の読み出しが行われる。
【０１１９】
また、必要に応じて２クラスタ分の波形データがスタート・バッファＳＴＡＲＴに記憶されるので（ステップＳ５０４）、スタート位置が当該スタート位置を含むクラスタの末尾の方である場合でも、そのクラスタの再生が終了した時点で次のクラスタの波形データが既に用意されており、波形データの再生がスムーズに行われる。
【０１２０】
なお、スタート・バッファＳＴＡＲＴに、３クラスタ分以上の記憶領域を設けるようにしてもよい。
【０１２１】
そして、波形データの読み出し開始以降は、再生バッファＰＬＡＹの空いている領域（読み出しを終了した領域）にまだ読み出しが行われていない波形データをディスク１４からクラスタ単位で読み出して順次記憶していく（ステップＳ６１８〜ステップＳ６２８）。つまり、再生バッファＰＬＡＹにおいて、あるクラスタの読み出しが完了したときには、当該クラスタは空いている領域として扱われ、新たな波形データが記憶される。
【０１２２】
また、ループ読み出しが指定されている波形データをエンド位置まで読み出した場合も同様に、当該クラスタは空いている領域として扱われ、新たな波形データが記憶される。
【０１２３】
ここで、ループ読み出しが指定されている波形データの場合において、当該波形データをエンド位置を含むクラスタまで再生バッファＰＬＡＹに記憶したときには、次からはループ・スタート位置を含むクラスタを再生バッファＰＬＡＹに記憶する。
【０１２４】
また、波形データをエンド位置まで再生した場合には、次のクラスタのループ・スタート位置で示される位置から読み出しを続行する。
【０１２５】
従って、ループ・スタート位置ならびにエンド位置に基づいて、ループ再生が可能であるとともに、再生バッファは必要最小限の記憶容量があれば足りることになる。
【０１２６】
また、あるクラスタを再生している際に、その次のクラスタへの波形データの記憶は既に終了しているので、ループ・エンド位置がそのエンド位置を含むクラスタの先頭の方にある場合でも、そのクラスタの再生が終了した時点で次のクラスタの波形データが既に用意されていることになり、波形データの再生がスムーズに行われる。
【０１２７】
なお、上記した実施の形態においては、再生バッファＰＬＡＹとして４クラスタ分の記憶領域を設けたが、最低３クラスタ分の記憶領域があればよい。
【０１２８】
なお、ワン・ショット読み出しが指定されている波形データに関しては、対応するパッド２０ｅの操作の中止（押下解除）にかかわらず、その波形データがエンド位置まで再生された時点で再生が停止される。
【０１２９】
また、ループ読み出しが指定されている波形データに関しては、対応するパッド２０ｅの操作が中止（押下解除）された時点で再生が停止される。
【０１３０】
ただし、ループ読み出しが指定されている波形データに関しては、対応するパッド２０ｅを操作しながらホールド操作子２０ｇあるいはホールド・ペダル２２を操作したときには、ホールド・オン処理のフローチャートにより、ホールド状態とされ（ステップＳ８０６）、対応するパッド２０ｅの操作が中止されても再生を続行する。
【０１３１】
この状態でさらに、ループ読み出しが指定されている別の波形データに対応するパッド２０ｅを操作しながらホールド操作子２０ｇあるいはホールド・ペダル２２を操作したときには、先の波形データに加えてこの波形データもホールド状態とされる。
【０１３２】
いずれのパッド２０ｅも操作せずにホールド操作子２０ｇあるいはホールド・ペダル２２を操作したときには、ホールド状態が解除され、それまでホールド状態とされていた波形データの再生が停止される。
【０１３３】
なお、ホールド状態中にバンクを切り換えた場合にも、ホールド状態とされている波形データの再生は続けられる。またこのとき新たなバンクに対応して、スタート・バッファＳＴＡＲＴに新たな波形データが記憶されるので、その状態でパッド２０ｅを操作すれば以前のバンクにおける波形データをループ再生しながら、新たなバンクにおける波形データの再生が行える。
【０１３４】
なお、上記した実施の形態は、以下に示すように変形したもよい。
【０１３５】
（１）上記した実施の形態においては、波形データをスタート・バッファＳＴＡＲＴから再生バッファＰＬＡＹに転送して再生バッファＰＬＡＹを再生するようにしたが、これに限られることなしに、波形データをスタート・バッファＳＴＡＲＴから再生バッファＰＬＡＹに転送して再生バッファＰＬＡＹを再生するのではなく、スタート・バッファＳＴＡＲＴに記憶されている波形データはスタート・バッファＳＴＡＲＴから読み出し、それ以降の波形データをディスク１４から再生バッファＰＬＡＹに転送し、スタート・バッファＳＴＡＲＴに記憶されている波形データを読み出し終えたら、その後は再生バッファＰＬＡＹを再生するようにしてもよい。
【０１３６】
（２）上記した実施の形態においては、波形データをスタート・バッファＳＴＡＲＴから再生バッファＰＬＡＹに転送して再生バッファＰＬＡＹを再生するようにしたが、これに限られることなしに、波形データをスタート・バッファＳＴＡＲＴから再生バッファＰＬＡＹに転送して再生バッファＰＬＡＹを再生するのではなく、各パッド２０ｅに対応して再生バッファＰＬＡＹを設け（スタート・バッファＳＴＡＲＴは設けない。）、波形データのスタート部分を予め再生バッファＰＬＡＹに記憶しておくようにしてもよい。そして、再生を終了したときに、波形データのスタート部分を再生バッファＰＬＡＹに記憶し直すようにする。（３）上記した実施の形態においては、ループ読み出しが指定されている波形データに関しては対応するパッドの操作が中止された時点（ホールド状態とされている場合にはホールドの解除時点）で再生が停止されるようにしたが、パッドの操作中止（押下解除）以降（ホールド状態とされている場合にはホールドの解除以降）に波形データがエンド位置まで再生された時点で再生を停止するようにしてもよいし、パッド２０ｅの操作中止（押下解除）時点（ホールド状態とされている場合にはホールドの解除時点）で再生を停止するか、あるいは、パッド操作中止以降の波形データのエンド位置再生時点で再生を停止するかを、任意に選択可能としてもよい。なお、いずれの条件で再生を停止するか任意に設定可能とする場合には、全ての波形データに関して一括して設定できるようにしてもよいし、各波形データあるいはパッド２０ｅ毎に設定できるようにしてもよい。
【０１３７】
（４）上記した実施の形態においては、ホールド・フラグｈｏｌｄを各再生チャンネル毎に設けることにより、再生中の各楽音がホールド状態であるか否かを管理するようにしたが、これに限られることなしに、再生中の各楽音がホールド状態であるか否かが管理できれば、別の形態で管理するようにしてもよい。例えば、各パッド２０ｅ毎にホールド・フラグｈｏｌｄを設け、パッド２０ｅが操作されながらホールド操作子２０ｇあるいはホールド・ペダル２２が操作された場合には、そのパッド２０ｅのホールド・フラグｈｏｌｄをたて、いずれのパッド２０ｅも操作されずにホールド操作子２０ｇあるいはホールド・ペダル２２が操作された場合には、全てのパッド２０ｅのホールド・フラグｈｏｌｄを降ろすようにし、パッド２０ｅの操作（押下）が止められたときに、そのパッド２０ｅのホールド・フラグｈｏｌｄがたっていれば、対応する波形データの再生停止を指示しないようにしてもよい。また、パッド２０ｅに代えて、各波形データ毎にホールド・フラグｈｏｌｄを設けるようにしてもよい。
【０１３８】
（５）上記した実施の形態においては、楽音の再生を指示する各演奏操作子たるパッド２０ｅに対してそれぞれ異なる波形データを割り当てるようにしたが、各演奏操作子たるパッド２０ｅに同じ波形データであるが音高が異なる波形データを割り当てるようにしてもよい。
【０１３９】
（６）上記した実施の形態においては、パッド操作時に波形データの先頭部分を再生するときのみにスタート・バッファＳＴＡＲＴの記憶内容を用いているが、これを、ループ部分の波形データが既にスタート・バッファＳＴＡＲＴに記憶されている場合には、スタート・バッファＳＴＡＲＴの記憶内容を用いてループ読み出しを行うようにしてもよい。
【０１４０】
例えば、ループ部分の波形データが既にスタート・バッファＳＴＡＲＴに記憶されている場合には、その波形データをディスク１４から再生バッファＰＬＡＹに転送するのではなくスタート・バッファＳＴＡＲＴから転送する。このようにすれば、ディスク１４から波形データを読み出して再生バッファＰＬＡＹに転送するのに比べ、短い時間で転送が終了する。
【０１４１】
これは、特に、次のような場合に有効である。即ち、ループ読み出しを行う場合には、現在再生中のループ部分の再生が終了する前に、次回再生用のループ部分の波形データの少なくとも先頭部分が再生バッファＰＬＡＹに用意されている必要がある。ところが、ループ部分が１クラスタ分しかない場合、あるいは、ループ部分が２クラスタに跨っている場合であっても、ループ・スタート位置が前のクラスタの末尾の部分にあり、エンド位置が後ろのクラスタの先頭の部分にあるような場合には、ループ部分の再生は短時間で終了してしまうため、転送が間に合わず、再生終了までに次回再生用のループ部分の波形データのディスク１４から再生バッファＰＬＡＹへの転送が終了しない可能性がある。
【０１４２】
この場合、上記したように、スタート・バッファＳＴＡＲＴから再生バッファＰＬＡＹに波形データを転送するようにすることにより、転送が間に合わなくなる可能性を大幅に低く押さえることができる。以下に、このような変形を行う場合について説明する。
【０１４３】
まず、各パッド２０ｅ毎に、そのパッド２０ｅのスタート・バッファＳＴＡＲＴのクラスタ１、クラスタ２に記憶されている波形データが、ディスク１４上のいずれのクラスタに記憶されていたものかをクラスタ番号で示すスタート１・クラスタ番号ＳＴ１−ｃｌ（ｐａｄ）、スタート２・クラスタ番号ＳＴ２−ｃｌ（ｐａｄ）を設ける。
【０１４４】
そして、バンク切り換え処理においては、各パッド２０ｅのスタート・バッファＳＴＡＲＴにディスク１４から波形データを記憶するときに、スタート１・クラスタ番号ＳＴ１−ｃｌ（ｐａｄ）、スタート２・クラスタ番号ＳＴ２−ｃｌ（ｐａｄ）に対応するディスク１４上のクラスタ番号を設定する処理を追加する。また、パッド・オン処理においては、ステップＳ６２８の処理、即ち、再生バッファＰＬＡＹに波形データを記憶する処理の前に、操作されたパッド２０ｅに割り当てられている波形データがワン・ショット読み出しであるか否かを判断する処理を追加し、ワン・ショット読み出しであると判断された場合には、上記した実施の形態と同様にステップＳ６２８へ進むようにする。一方、ワン・ショット読み出しでない、即ち、ループ読み出しであると判断された場合には、読み出しクラスタ番号ｒｄ＿ｃｌ（ｃｈ）が示すクラスタがスタート１・クラスタ番号ＳＴ１−ｃｌ（ｐａｄ）あるいはスタート２・クラスタ番号ＳＴ２−ｃｌ（ｐａｄ）のいずれかが示すクラスタと一致しているか否かを判断する。
【０１４５】
ここで、一致していると判断されれば、再生バッファＰＬＡＹに記憶しようとする波形データが既にスタート・バッファＳＴＡＲＴに記憶されていることを示しているので、一致しているスタート・クラスタ番号の示すスタート・バッファＳＴＡＲＴのクラスタから波形データを読み出し再生バッファＰＬＡＹに記憶し、ステップＳ６１８の処理に戻るようにする。
【０１４６】
クラスタ読み出し処理も、同様に変形させる。つまり、ステップＳ９１８の処理、即ち、再生バッファＰＬＡＹに波形データを記憶する処理の前に、操作されたパッド２０ｅに割り当てられている波形データがワン・ショット読み出しであるか否かを判断する処理を追加し、ワン・ショット読み出しであると判断された場合には、実施の形態と同様にステップＳ９１８へ進むようにする。一方、ワン・ショット読み出しでない、即ち、ループ読み出しであると判断された場合には、読み出しクラスタ番号ｒｄ＿ｃｌ（ｃｈ）が示すクラスタがスタート１・クラスタ番号ＳＴ１−ｃｌ（ｐａｄ）あるいはスタート２・クラスタ番号ＳＴ２−ｃｌ（ｐａｄ）のいずれかが示すクラスタと一致しているか否かを判断する。
【０１４７】
ここで、一致していると判断されれば、再生バッファＰＬＡＹに記憶しようとする波形データが既にスタート・バッファＳＴＡＲＴに記憶されていることを示しているので、一致しているスタート・クラスタ番号の示すスタート・バッファＳＴＡＲＴのクラスタから波形データを読み出し再生バッファＰＬＡＹに記憶し、クラスタ読み出し処理を終了する。
【０１４８】
なお、以上において説明した変形例は、上記した変形例（１）で説明した変形例と組み合わせてもよい。
【０１４９】
即ち、ループ部分の波形データがスタート・バッファＳＴＡＲＴに記憶されている場合には、その波形データをスタート・バッファＳＴＡＲＴから再生バッファＰＬＡＹに転送して再生バッファＰＬＡＹ上で再生するのではなく、スタート・バッファＳＴＡＲＴを直接再生するようにする。
【０１５０】
なお、上記した実施の形態においては、ホールド状態とされている波形データに関しては、その再生中にバンクが切り換えられた場合にも再生を続けるようにしたが、上記のように変形させた場合には、バンクが切り換えられたときにスタート・バッファＳＴＡＲＴの内容が新たなバンクに対応するものに書き換えられるため、スタート・バッファＳＴＡＲＴの内容を使用したループ読み出しを行うと、正常な再生が行えなくなる。
【０１５１】
これに対処するために、バンク切り換えが行われた場合にはスタート・バッファＳＴＡＲＴに基づくループ読み出しを禁止したり、バンク切り換え指示がなされてもホールド状態とされている波形データに対応しているパッド２０ｅに関しては、スタート・バッファＳＴＡＲＴの内容の書き換えを保留してスタート・バッファＳＴＡＲＴの内容に基づくループ読み出しを続け、ホールド状態が解除されたときに、保留していたスタート・バッファＳＴＡＲＴの内容の書き換えを行うようにすることが考えられる。
【０１５２】
（７）上記した実施の形態においては、波形データの再生中に新たな波形データをディスク１４から再生バッファＰＬＡＹに転送するようにしている。しかしながら、ループ部分が短く再生バッファＰＬＡＹに全て記憶されている場合には、波形データをディスク１４から再生バッファＰＬＡＹに転送することなく、既に記憶されている再生バッファＰＬＡＹを繰り返し読み出すようにしてもよい。このようにすれば、ループ部分の波形データの今回の再生終了までに、次回再生用のループ部分の波形データをディスク１４から再生バッファＰＬＡＹに転送するのが間に合わないという状況が起こることを防ぐことができる。具体的には、以下のように変形させればよい。
【０１５３】
即ち、まず、各パッド２０ｅ毎に、そのパッド２０ｅに割り当てられている波形データのループ部分の占有するクラスタ数を記憶するようにし、バンク切り換え処理において、各パッド２０ｅに割り当てわれる波形データのエンド位置とループ・スタート位置との差に基づいてこの変数を設定する処理を追加する。
【０１５４】
クラスタ読み出し終了処理においては、ステップＳ９０６でワン・ショット読み出しでない、即ち、ループ読み出しの波形データをエンド位置まで再生バッファＰＬＡＹに記憶させたことが判断された場合に、上記した変数に基づいてその再生チャンネルに割り当てられている波形データのループ部分の占有するクラスタの数が、再生チャンネルのクラスタ数（上記した実施の形態では「４」である。）以下であるか否かを判断する処理を追加し、以下でないと判断された場合には、上記した実施の形態と同様にステップＳ９１０に進むようにする。一方、以下であると判断された場合には、そのままクラスタ読み出し処理を終了する。
【０１５５】
また、「ＱＴ＝０」処理においては、ステップＳ１００６の処理内容を、再生チャンネルに対するスタート・アドレスＳＴおよびデータ量ＱＴの再設定、および今までで再生していたクラスタから上記した変数が示すクラスタ数よりも１小さい数だけ前のクラスタを次のクラスタを再生対象のクラスタとして指示する処理を行う、と変えるようにする。
【０１５６】
（８）上記した実施の形態においては、波形データ再生装置本体にホールド・ペダル２２を設けるようにしたが、波形データ再生装置に外部のホールド・ペダルからの信号を受け取る接続端子を設けるようにしてもよい、
また、上記した実施の形態では、波形データ再生装置本体に設けられたパッド２０ｅ、ホールド操作子２０ｇ、バンク切り換え操作子２０ｆなどにより演奏を行うようにしたが、これらの操作子の操作に相当する操作信号を外部機器からＭＩＤＩなどの通信手段を用いて入力するようにしてもよい。
【０１５７】
【発明の効果】
本発明は、以上説明したように構成されているので、ホールド状態にする楽音とホールド状態にしない楽音とを選別することが可能になるとともに、いずれかの楽音をホールド状態としている最中に、別の楽音をホールド状態とすることも可能になるという優れた効果を奏する。
【図面の簡単な説明】
【図１】本発明による電子楽器の実施の形態の一例としての波形データ再生装置の全体構成を表すブロック構成図である。
【図２】ディスクの記憶領域のフォーマットを概念的に示す説明図である。
【図３】スタート・バッファＳＴＡＲＴのフォーマットを概念的に示す説明図である。
【図４】再生バッファＰＬＡＹのフォーマットを概念的に示す説明図である。
【図５】バンク切り換え処理のフローチャートである。
【図６】パッド・オン処理のフローチャートである。
【図７】パッド・オフ処理のフローチャートである。
【図８】ホールド・オン処理のフローチャートである。
【図９】クラスタ読み出し終了処理のフローチャートである。
【図１０】「ＱＴ＝０」処理のフローチャートである。
【符号の説明】
１０          中央処理装置（ＣＰＵ）
１２          アナログ／デジタル変換器（Ａ／Ｄ）
１４          ディスク
１６          半導体メモリ
１８          再生器
２０          操作パネル
２０ａ        スタート位置指定操作子
２０ｂ        ループ・スタート位置指定操作子
２０ｃ        エンド位置指定操作子
２０ｄ        ループ／ワン・ショット指定操作子
２０ｅ        パッド
２０ｆ        バンク切り換え操作子
２０ｇ        ホールド・ボタン
２０ｈ        その他の操作子
２２          ホールド・ペダル
２４          デジタル／アナログ変換器（Ｄ／Ａ）
【図１】
0003923177.tif 000002
【図２】
0003923177.tif 000003
【図３】
0003923177.tif 000004
【図４】
0003923177.tif 000005
【図５】
0003923177.tif 000006
【図６】
0003923177.tif 000007
【図７】
0003923177.tif 000008
【図８】
0003923177.tif 000009
【図９】
0003923177.tif 000010
【図１０】
0003923177.tif 000011