(57)【特許請求の範囲】
【請求項１】
連続した一連のオーディオ波形信号を記憶した記憶手段と、
前記記憶手段に記憶されたオーディオ波形信号の再生および再生停止を指示する発音制御情報を入力する発音制御情報入力手段と、
前記発音制御情報入力手段によって入力された再生を指示する発音制御情報に基づいて、前記記憶手段に記憶された前記オーディオ波形信号の再生位置を示すものであって、前記オーディオ波形信号の先頭位置から所定の進行速度で変化する再生位置情報を発生する再生位置情報発生手段と、
前記発音制御情報入力手段によって入力された発音制御情報と前記再生位置情報発生手段によって発生された再生位置情報とに基づいて、前記記憶手段に記憶されたオーディオ波形信号を再生する再生手段と、
前記再生位置情報発生手段によって発生された再生位置情報の示す再生位置の変化を継続することを指示するホールド情報を入力するホールド情報入力手段と、
前記発音制御情報入力手段によって入力された発音制御情報が再生を指示している状態から再生停止を指示している状態となり再び再生を指示した際に、前記ホールド情報入力手段によって入力されたホールド情報が再生位置の変化を継続することを指示している場合には、前記発音制御情報入力手段によって入力された発音制御情報が再生を指示している状態から再生停止を指示している状態となり再び再生を指示したときに、前記再生手段による前記記憶手段に記憶されたオーディオ波形信号の再生が、前記発音制御情報入力手段によって入力された、先の再生を指示する発音制御情報に基づいて継続して変化した場合の再生位置から開始されるように再生位置情報を制御する制御手段と
を有するオーディオ波形信号再生制御装置。
【請求項２】
請求項１に記載のオーディオ波形信号再生制御装置において、
前記ホールド情報入力手段は、オン／オフを切り換え操作するペダル・スイッチであり、オン／オフの切り換え操作に応じて、前記再生位置情報発生手段によって発生された再生位置情報の示す再生位置の変化を継続することを指示する
ものであるオーディオ波形信号再生制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、オーディオ波形信号再生制御装置に関し、さらに詳細には、記憶手段に記憶された連続した一連のオーディオ波形信号を読み出して再生する際に用いて好適なオーディオ波形信号再生制御装置に関する。
【０００２】
【従来の技術】
従来より、電子楽器の分野においては、所謂、タイム・ストレッチと称される時間軸圧縮伸長の技術を利用して、記憶手段に記憶しておいた連続した一連のオーディオ波形信号を、それぞれ異なる音高で複数音並行して発音することができるようにした電子楽器が提案されている。
【０００３】
この種の電子楽器として、例えば、特開平１０−１１６０８２号公報に開示されたものがあるが、この特開平１０−１１６０８２号公報には、さらに、オーディオ波形信号の発音開始を新たに指示したときに、当該オーディオ波形信号が既に発音中であれば、当該オーディオ波形信号の当該発音中の位置に連続する位置から当該新たな発音を開始するとともに、当該発音中の楽音も並行して発音するようにした技術が開示されている。
【０００４】
ここで、特開平１０−１１６０８２号公報に開示された上記した技術をより詳細に説明すると、例えば、図１１に示すように、ある電子楽器において、第１発音チャンネルと第２発音チャンネルとの２個の発音チャンネルを備え、波形メモリのアドレスｓｔａｒｔ（先頭アドレス）からアドレスｅｎｄ（最終アドレス）までにオーディオ波形信号が記憶されているものとする。
【０００５】
そして、第１発音チャンネルにおけるオーディオ波形信号の再生位置を示すポインタとして、ポインタｓｐｈａｓｅ１を備えているものとする。
【０００６】
上記したポインタｓｐｈａｓｅ１は、第１の発音指示としての第１の押鍵たる押鍵１の押鍵タイミング（ｔ０）においてアドレスｓｔａｒｔから進行を開始し、ユーザーによって設定された所望の速度でアドレスｅｎｄまで進行する。
【０００７】
なお、ポインタｓｐｈａｓｅ１は、押鍵１が押鍵されている間は進行し続けるものであるが、オーディオ波形信号の最終アドレスであるアドレスｅｎｄに到達した後も押鍵１が押鍵され続けられている場合には、ポインタｓｐｈａｓｅ１がアドレスｅｎｄを越えて進行しないように、ポインタｓｐｈａｓｅ１の進行が制限されている。
【０００８】
即ち、この電子楽器は、楽音を生成するための発音チャンネルとして第１発音チャンネルと第２発音チャンネルとを備えており、第１発音チャンネルにおいては、ポインタｓｐｈａｓｅ１が示す位置たるアドレスｃｕｒ＿ｓｐｈａｓｅ付近のオーディオ波形信号に従って、ユーザーによって指示された音高、即ち、押鍵１された鍵に対応した音高で再生すべきオーディオ波形信号を生成して楽音が再生されるものである。
【０００９】
さらに、第２発音チャンネルにおいては、オーディオ波形信号の再生位置を示すポインタとして、ポインタｓｐｈａｓｅ１とは異なる別のポインタであるポインタｓｐｈａｓｅ２を備えているものとする。
【００１０】
ここで、第１発音チャンネルが発音中である時刻ｔ１に、第２の発音指示として第２の押鍵たる押鍵２があると、ポインタｓｐｈａｓｅ２は第１発音チャンネルのポインタｓｐｈａｓｅ１の値を引用して、以下、第１発音チャンネルのポインタｓｐｈａｓｅ１と同じ値を示しながら進行する。
【００１１】
その結果として、第２発音チャンネルでは、第１発音チャンネルのポインタｓｐｈａｓｅ１が示す位置付近のオーディオ波形信号に従って、ユーザーによって指示された音高、即ち、押鍵２された鍵に対応した音高で再生すべきオーディオ波形信号を生成して楽音が再生されることになる。
【００１２】
即ち、第１発音チャンネルと第２発音チャンネルとでは、第１発音チャンネルにおけるオーディオ波形信号の再生位置と同じ位置において、それぞれ指示された音高（即ち、第１発音チャンネルに関しては押鍵１で指示された音高であり、第２発音チャンネルに関しては押鍵２で指示された音高である。）で波形信号が再生されることになる。
【００１３】
ここで、上記した特開平１０−１１６０８２号公報に開示された技術によれば、全ての発音を一旦停止してから新たな発音を指示した場合には、一連のオーディオ波形信号の先頭アドレスから新たな発音指示に対応する発音を開始するようになされている。
【００１４】
一方、上記したような一連のオーディオ波形信号の再生を時間経過に従って進めながら、さらに音高を時間的に変化させることができるものにおいて、和音演奏のように、ユーザーからの演奏操作により複数音を発音しながら、かつ、その音高を変化させたい場合がある。
【００１５】
ところで、和音を鍵盤で押鍵して演奏する場合において、その和音の音高を変化させるために鍵盤の押鍵位置を変化しようとすると、鍵盤の全鍵が離鍵状態になってしまうことがある。そのような場合に、上記した特開平１０−１１６０８２号公報に開示された技術によれば、オーディオ波形信号の再生位置が先頭アドレスに戻ってしまうことになり、こうした再生は不自然で好ましくないことが指摘されていた。
【００１６】
こうした不自然さを改善するために、鍵盤の全鍵が離鍵状態になった場合には、オーディオ波形信号の再生位置の進行を当該離鍵状態になった位置で停止するようにし、再度押鍵があると当該停止した位置から再び再生を開始するようにした再生方法も提案されている。
【００１７】
しかしながら、本願出願人の実験の結果によれば、このような再生方法でも、発音のタイミングが詰まったような感じになってしまい、楽音信号の再生装置としては好ましくない結果が生じてしまうという問題点があった。
【００１８】
【発明が解決しようとする課題】
本発明は、上記したような従来の技術の有する問題点に鑑みてなされたものであり、その目的とするところは、上記した従来の技術の有する種々の欠点を排除し、自然な楽音を再生することのできるようにしたオーディオ波形信号再生制御装置を提供しようとするものである。
【００１９】
【課題を解決するための手段】
上記目的を達成するために、本発明のうち請求項１に記載の発明は、連続した一連のオーディオ波形信号を記憶した記憶手段と、上記記憶手段に記憶されたオーディオ波形信号の再生および再生停止を指示する発音制御情報を入力する発音制御情報入力手段と、上記発音制御情報入力手段によって入力された再生を指示する発音制御情報に基づいて、上記記憶手段に記憶された上記オーディオ波形信号の再生位置を示すものであって、上記オーディオ波形信号の先頭位置から所定の進行速度で変化する再生位置情報を発生する再生位置情報発生手段と、上記発音制御情報入力手段によって入力された発音制御情報と上記再生位置情報発生手段によって発生された再生位置情報とに基づいて、上記記憶手段に記憶されたオーディオ波形信号を再生する再生手段と、上記再生位置情報発生手段によって発生された再生位置情報の示す再生位置の変化を継続することを指示するホールド情報を入力するホールド情報入力手段と、上記発音制御情報入力手段によって入力された発音制御情報が再生を指示している状態から再生停止を指示している状態となり再び再生を指示した際に、上記ホールド情報入力手段によって入力されたホールド情報が再生位置の変化を継続することを指示している場合には、上記発音制御情報入力手段によって入力された発音制御情報が再生を指示している状態から再生停止を指示している状態となり再び再生を指示したときに、上記再生手段による上記記憶手段に記憶されたオーディオ波形信号の再生が、上記発音制御情報入力手段によって入力された、先の再生を指示する発音制御情報に基づいて継続して変化した場合の再生位置から開始されるように再生位置情報を制御する制御手段とを有するようにしたものである。
【００２０】
従って、本発明のうち請求項１に記載の発明によれば、オーディオ波形信号の再生を行っている状態から再生を停止し、その後に再生を開始する場合において、再生停止中においても継続してオーディオ波形信号の再生位置が変化した場合の再生位置から再生を開始することができる。
【００２１】
また、本発明のうち請求項２に記載の発明は、本発明のうち請求項１に記載の発明において、上記ホールド情報入力手段は、オン／オフを切り換え操作するペダル・スイッチであり、オン／オフの切り換え操作に応じて、上記再生位置情報発生手段によって発生された再生位置情報の示す再生位置の変化を継続することを指示するようにしたものである。
【００２２】
従って、本発明のうち請求項２に記載の発明によれば、ペダル操作でのオン／オフの切り換えにより、オーディオ波形信号の再生を行っている状態から再生を停止し、その後に再生を開始する場合において、再生停止中においても継続してオーディオ波形信号の再生位置が変化した場合の再生位置から再生を開始することを選択することができる。
【００２３】
なお、１つのオーディオ波形信号を異なる音高で同時に再生することが可能なものに対して本発明を適用することができ、その場合には音高と再生位置とを独立に制御することが可能となる。
【００２４】
また、本発明は、時間軸圧縮伸長技術を利用したオーディオ波形再生技術に適用することができる。
【００２５】
さらに、本発明においては、オーディオ波形信号の再生の手法は限定されるものではなく、種々の手法を用いることができる。
【００２６】
【発明の実施の形態】
以下、添付の図面を参照しながら、本発明によるオーディオ波形信号再生制御装置の実施の形態の一例を詳細に説明する。
【００２７】
なお、以下に説明する実施の形態は、図１１に関して上記において説明したような、記憶手段としての波形メモリに記憶されたオーディオ波形信号に関して、再生位置情報たるポインタｓｐｈａｓｅで示す付近のオーディオ波形信号を使用しながら、指示された音高で当該オーディオ波形信号を再生するようにしたものである。
【００２８】
なお、以下の説明においては、本発明の理解を容易にするために、図１１に関して上記において説明したような従来の技術を適用できる技術内容の説明は省略し、本発明の実施に関連する技術内容である、再生位置情報たるポインタｓｐｈａｓｅに関するオーディオ波形信号の生成について詳細に説明するものとする。
【００２９】
図１には、本発明によるオーディオ波形信号再生制御装置の実施の形態の一例を示すブロック構成図が示されているが、このオーディオ波形信号再生制御装置は、後述するように、デジタル・シグナル・プロセッサ（ＤＳＰ）１６が４個の発音チャンネル（発音チャンネル１、発音チャンネル２、発音チャンネル３および発音チャンネル４（図６参照））を構成するものとし、当該４個の発音チャンネルにより４音を同時に発音することができるものとする。
【００３０】
そして、このオーディオ波形信号再生制御装置は、その全体の動作の制御を中央処理装置（ＣＰＵ）１０を用いて制御するように構成されている。
【００３１】
このＣＰＵ１０には、バスを介して、ＣＰＵ１０ならびに後述するＤＳＰ１６の動作を制御するためのプログラムなどが記憶されたリード・オンリ・メモリ（ＲＯＭ）１２と、ＣＰＵ１０によるプログラムの実行に必要な各種レジスタ群などが設定されたワーキング・エリアとしてのランダム・アクセス・メモリ（ＲＡＭ）１４と、４個の発音チャンネルを構成するＤＳＰ１６と、各種の操作子群１８と、鍵盤２０と、ホールド・スイッチ２２と、表示装置２４とが接続されている。
【００３２】
また、ＤＳＰ１６には、記憶手段としての波形メモリ２６が接続されるとともにデジタル／アナログ変換器（Ｄ／Ａ）２８が接続されている。
【００３３】
さらに、Ｄ／Ａ２８には増幅器３０が接続されており、増幅器３０にはスピーカー３２が接続されている。
【００３４】
以下、上記したオーディオ波形信号再生制御装置を構成する各構成要素の中で、本発明の実施に関連する主要な構成要素について詳細に説明する。
【００３５】
まず、ＲＯＭ１２は、上記したように、ＣＰＵ１０ならびにＤＳＰ１６の動作を制御するためのプログラムなどを記憶した記憶手段である。なお、ＤＳＰ１６の動作を制御するためのプログラムは、ＲＯＭ１２からＣＰＵ１０を介してＤＳＰ１６へ転送される。
【００３６】
次に、ＲＡＭ１４は、上記したように、ＣＰＵ１０によるプログラムの実行に必要な各種レジスタ群などが設定されたワーキング・エリアとして使用される記憶手段である。
【００３７】
そして、ＣＰＵ１０は、ＲＯＭ１２に記憶されたプログラムに従って動作し、操作子群１８、鍵盤２０ならびにホールド・スイッチ２２の操作状態を検出して、当該検出した操作状態に応じた動作の制御をしたり、あるいは、表示装置２４における表示状態の制御をしたり、あるいは、ＤＳＰ１６を制御したりする制御手段である。
【００３８】
また、波形メモリ２６は、このオーディオ波形信号再生制御装置により再生する連続した一連のオーディオ波形信号を記憶している記憶手段である。
【００３９】
次に、ＤＳＰ１６は、波形メモリ２６に記憶されているオーディオ波形信号を再生するための演算処理を行うデジタル信号処理手段である。即ち、ＤＳＰ１６は、波形メモリ２６に記憶されているオーディオ波形信号から、再生すべきオーディオ波形信号を算出する処理を行うものである。
【００４０】
さらに、Ｄ／Ａ２８は、ＤＳＰ１６で算出された再生すべきオーディオ波形信号（デジタル信号）をアナログ信号に変換して出力する信号変換手段である。なお、Ｄ／Ａ２８から出力されたアナログ信号は、増幅器３０を介して、スピーカー３２から聴取し得る楽音として空間に放音されることになる。
【００４１】
次に、操作子群１８について説明すると、操作子群１８には、波形メモリ２６に記憶されたオーディオ波形信号の中から再生の処理の対象として所望のオーディオ波形信号を選択するための操作子などの他に、各種の動作を指示するための操作子が設けられているが、以下においては、本発明の実施に関連する操作子として、時間圧伸量設定操作子とモード設定操作子とについてのみ説明することとし、その他の操作子については公知の技術を適用できるものであるのでその説明を省略する。
【００４２】
まず、時間圧伸量設定操作子について説明すると、この時間圧伸量設定操作子は、オーディオ波形信号を再生するときにおける時間軸上の時間圧伸量を設定するための操作子である。なお、時間圧伸量設定操作子によって設定された時間圧伸量を示す値は、レジスタＴＣＯＭＰに記憶され設定される。
【００４３】
ここで、レジスタＴＣＯＭＰの設定値が「ＴＣＯＭ＞１」であるときには、オーディオ波形信号を再生するときに時間軸圧縮して再生するものであり、また、レジスタＴＣＯＭＰの設定値が「ＴＣＯＭ＝１」であるときには、オーディオ波形信号を再生するときに時間軸圧縮も時間軸伸長もせずに再生するものであり、また、レジスタＴＣＯＭＰの設定値が設定値が「ＴＣＯＭ＜１」であるときには、オーディオ波形信号を再生するときに時間軸伸長して再生するものである。
【００４４】
次に、モード設定操作子について説明すると、このモード設定操作子は、あるオーディオ波形信号に基づいて複数音再生する場合に、当該複数音間で同期再生するか否かの再生モードを設定する操作子である。なお、モード設定操作子によって設定された再生モードを示す値は、レジスタＭＯＤＥに記憶され設定される。
【００４５】
ここで、レジスタＭＯＤＥの設定値が「ＭＯＤＥ＝１」のときには、オーディオ波形信号を複数音再生する場合に同期再生するものである。即ち、鍵盤２０が全鍵離鍵状態から最初に押鍵されたその最初の発音開始指示により、オーディオ波形信号の再生位置を示す再生位置情報たるポインタｓｐｈａｓｅの進行が始まり、その後の鍵盤２０の押鍵による発音開始指示による発音は、当該再生位置情報たるポインタｓｐｈａｓｅの進行に同期してオーディオ波形信号を再生することにより行われる。
【００４６】
また、レジスタＭＯＤＥの設定値が「ＭＯＤＥ＝０」のときには、オーディオ波形信号を複数音再生する場合に非同期再生するものである。即ち、鍵盤２０の押鍵による発音開始指示毎にそれぞれの発音チャンネルの再生位置情報たるポインタｓｐｈａｓｅの進行が始まり、それぞれの発音チャンネルにおける発音は、それぞれの再生位置情報たるポインタｓｐｈａｓｅの進行に基づいてオーディオ波形信号を再生することにより行われるものであり、発音チャンネル間の同期関係はない。
【００４７】
次に、鍵盤２０は、オーディオ波形信号の再生および再生停止を指示する発音制御情報を入力するとともに、音高のシフト量を指示する演奏操作装置である。なお、音高のシフト量は、鍵盤２０の演奏操作によって押鍵した鍵の音高データ（「鍵盤２０の演奏操作によって押鍵した鍵の音高データ」は、ＣＰＵ１０のレジスタＫＥＹＰに設定され記憶される。）と基準となる音高として予め定めた音高データ（「基準となる音高として予め定めた音高データ」は、ＣＰＵ１０のレジスタＯＲＧＰに設定され記憶される。）との音程に従って指示されるものである。
【００４８】
また、ホールド・スイッチ２２は、鍵盤２０の全鍵が離鍵状態においても、オーディオ波形信号の再生位置を変化させるか否かを示すホールド情報の設定を行うオン（ＯＮ）／オフ（ＯＦＦ）切り換え式の操作子である。そして、このホールド・スイッチ２２は、両手を用いた鍵盤２０の演奏操作と並行して操作することが望ましいものであるため、足で操作してオン／オフを切り換え可能なペダル・スイッチとして構成することが好ましい。
【００４９】
なお、ホールド・スイッチ２２によって設定されたオーディオ波形信号の再生位置を変化させるか否かの設定を示す値は、ホールド情報としてレジスタＨＯＬＤに記憶され設定される。
【００５０】
ここで、ホールド・スイッチ２２がオンされると、レジスタＨＯＬＤの設定値が「ＨＯＬＤ＝１」に設定され、鍵盤２０の全鍵が離鍵状態においてオーディオ波形信号の再生位置を変化させる処理が行われることになる（なお、以下においては、適宜に、「鍵盤２０の全鍵が離鍵状態においてオーディオ波形信号の再生位置を変化させる」ことを「ホールドする」と称する。）。
【００５１】
一方、ホールド・スイッチ２２がオフされると、レジスタＨＯＬＤの設定値が「ＨＯＬＤ＝０」に設定され、鍵盤２０の全鍵が離鍵状態においてオーディオ波形信号の再生位置を変化させない処理が行われることになる（なお、以下においては、適宜に、「鍵盤２０の全鍵が離鍵状態においてオーディオ波形信号の再生位置を変化させない」ことを「ホールドしない」と称する。）。
【００５２】
そして、このオーディオ波形信号再生制御装置においては、操作子群１８のモード設定操作子によるモード設定とホールド・スイッチ２２によるホールド設定との関係に応じて、次に説明するようにそれぞれ異なる動作が実現されるものである。
【００５３】
即ち、「ＭＯＤＥ＝１」（同期再生する）の場合において、「ＨＯＬＤ＝１」（ホールドする）のときには、鍵盤２０の全鍵が離鍵されて全発音が停止され、その後に鍵盤２０が再び押鍵されて発音が指示された場合でも、鍵盤２０の押鍵による最初の発音開始の指示で進行が始まった再生位置情報たるポインタｓｐｈａｓｅに基づいて、オーディオ波形信号の再生が行われる。
【００５４】
また、「ＭＯＤＥ＝１」（同期再生する）の場合において、「ＨＯＬＤ＝０」（ホールドしない）のときには、鍵盤２０の押鍵により発音が１つでも続いているときは、鍵盤２０の押鍵による最初の発音開始の指示で進行が始まった再位置情報たるポインタｓｐｈａｓｅに基づいて再生されることになるが、鍵盤２０の全鍵が離鍵されて全発音が停止され、その後に鍵盤２０が再び押鍵されて発音が指示されたときは、オーディオ波形信号の先頭アドレスから発音が開始される。
【００５５】
次に、「ＭＯＤＥ＝０」（非同期再生する）の場合において、「ＨＯＬＤ＝１」（ホールドする）のときには、鍵盤２０の全鍵が離鍵されてそれぞれの発音チャンネル毎に発音が停止され、その後に鍵盤２０が再び押鍵されて再び発音が指示されても、それぞれの発音チャンネルにおいては、それぞれの発音チャンネルに関して鍵盤２０の押鍵による最初の発音開始の指示で進行が始まった再生位置情報たるポインタｓｐｈａｓｅに基づいて再生される。
【００５６】
また、「ＭＯＤＥ＝０」（非同期再生する）の場合において、「ＨＯＬＤ＝０」（ホールドしない）のときには、鍵盤２０の全鍵が離鍵されてそれぞれの発音チャンネル毎に発音が停止され、その後に鍵盤２０が再び押鍵されて再び発音が指示されたときには、それぞれの押鍵毎のタイミングに従ってオーディオ波形信号の先頭アドレスから発音が開始される。
【００５７】
以上の構成において、このオーディオ波形信号再生制御装置においては、電源を投入されると、図２のフローチャートに示すＣＰＵ１０のメイン・ルーチンが高速で繰り返し実行されることになる。
【００５８】
なお、以下の説明ならびにフローチャートにおいて、ローマ字の大文字で示す処理はＣＰＵ１０における処理を示し、ローマ字の小文字で示す処理はＤＳＰ１６における処理を示すものとする。
【００５９】
即ち、このオーディオ波形信号再生制御装置に電源が投入されると、図２のフローチャートに示すＣＰＵ１０のメイン・ルーチンが起動されることになり、始めに、各種のレジスタ群を初期値に設定する初期設定の処理を行う（ステップＳ２０２）。具体的には、操作子群１８、鍵盤２０ならびにホールド・スイッチ２２の操作状態を検出し、ＣＰＵ１０のレジスタＴＣＯＭＰ、レジスタＭＯＤＥ、レジスタＨＯＬＤ、レジスタＣＧＡＴＥ、レジスタＰ＿ＳＨＩＦＴならびにレジスタＧＡＴＥを初期値に設定し、ＤＳＰ１６のレジスタｔｃｏｍｐ、レジスタｍｏｄｅ、レジスタｈｏｌｄ、レジスタｃｇａｔｅ、レジスタｐ＿ｓｈｉｆｔならびにレジスタｇａｔｅを初期値に設定するものである。
【００６０】
上記したステップＳ２０２の処理を終了すると、ステップＳ２０４の処理へ進み、メイン・ルーチンのサブ・ルーチンとして、操作子群処理ルーチンを実行する。この操作子群処理ルーチンにおいては、操作子群１８を走査し、操作子群１８の操作に対応してレジスタを設定する処理が実行されることになるが、その詳細は、図３に示すフローチャートを参照しながら後述する。
【００６１】
上記したステップＳ２０４の処理を終了すると、ステップＳ２０６の処理へ進み、メイン・ルーチンのサブ・ルーチンとして、鍵盤処理ルーチンを実行する。この鍵盤処理ルーチンにおいては、鍵盤２０を走査し、鍵盤２０の鍵操作に対応してレジスタを設定する処理が実行されることになるが、その詳細は、図４に示すフローチャートを参照しながら後述する。
【００６２】
上記したステップＳ２０６の処理を終了すると、ステップＳ２０８の処理へ進み、メイン・ルーチンのサブ・ルーチンとして、ホールド・スイッチ処理ルーチンを実行する。このホールド・スイッチ処理ルーチンにおいては、ホールド・スイッチ２２を走査し、ホールド・スイッチ２２の操作に対応してレジスタを設定する処理が実行されることになるが、その詳細は、図５に示すフローチャートを参照しながら後述する。
【００６３】
そして、上記したステップＳ２０８の処理を終了すると、ステップＳ２０４の処理へ戻り、電源を遮断されるまで、ステップＳ２０４、ステップＳ２０６およびステップＳ２０８の処理を順次繰り返し実行する。
【００６４】
次に、図３に示すフローチャートを参照しながら、操作子群処理ルーチンについて説明する。
【００６５】
なお、この操作子群処理ルーチンにおいては、本来は操作子群１８を構成する全ての操作子に関する処理が行われるものであるが、以下の説明においては理解を容易にするために、本発明の実施に関連する時間圧伸量設定操作子ならびにモード設定操作子の処理についてのみ詳細に説明するものとし、その他の操作子の処理については、公知の技術を援用することによりその詳細な説明は省略する。
【００６６】
また、この操作子群処理ルーチンにおいて設定されるレジスタＴＣＯＭＰならびにレジスタＭＯＤＥはＣＰＵ１０のレジスタであり、この操作子群処理ルーチンにおいて設定されるレジスタｔｃｏｍｐならびにレジスタｍｏｄｅはＤＳＰ１６のレジスタである。
【００６７】
まず、操作子群処理ルーチンが起動されると、操作子群１８を構成する各種の操作子の走査を行い（ステップＳ３０２）、操作子群１８を構成する各種の操作子の操作状態に変化があるか否かを判断する（ステップＳ３０４）。
【００６８】
このステップＳ３０４の判断処理において、操作子群１８を構成する各種の操作子の操作状態に変化がないと判断された場合には、そのままメイン・ルーチンへリターンする。
【００６９】
一方、ステップＳ３０４の判断処理において、操作子群１８を構成する各種の操作子の操作状態に変化があると判断された場合には、ステップＳ３０６の処理へ進み、時間圧伸量設定操作子の操作状態に変化があるか否かを判断する。
【００７０】
ステップＳ３０６の判断処理において、時間圧伸量設定操作子の操作状態に変化があると判断された場合には、時間圧伸量設定操作子の操作状態の変化に応じてレジスタＴＣＯＭＰの値を更新する（ステップＳ３０８）。
【００７１】
ステップＳ３０８の処理を終了すると、ステップＳ３１０の処理へ進み、レジスタＴＣＯＭの値をＤＳＰ１６のレジスタｔｃｏｍｐに設定する。
【００７２】
そして、ステップＳ３０８の処理を終了した場合には、ステップＳ３１２の処理へ進む。
【００７３】
一方、ステップＳ３０６の判断処理において、時間圧伸量設定操作子の操作状態に変化がないと判断された場合には、ステップＳ３１２の処理へジャンプして進む。
【００７４】
そして、ステップＳ３１２の処理においては、モード設定操作子の操作状態に変化があるか否かを判断する。
【００７５】
ステップＳ３１２の判断処理において、モード設定操作子の操作状態に変化があると判断された場合には、モード設定操作子の操作状態の変化に応じてレジスタＭＯＤＥの値を更新する（ステップＳ３１４）。
【００７６】
ステップＳ３１４の処理を終了すると、ステップＳ３１６の処理へ進み、レジスタＭＯＤＥの値をＤＳＰ１６のレジスタｍｏｄｅに設定する。
【００７７】
そして、ステップＳ３１６の処理を終了すると、操作子群処理ルーチンを終了してメイン・ルーチンへリターンする。
【００７８】
一方、ステップＳ３１２の判断処理において、モード設定操作子の操作状態に変化がないと判断された場合には、ステップＳ３１８へ進み、その他の処理として時間圧伸量設定操作子およびモード設定操作子以外の各種の操作子の操作状態の変化に応じた処理を行い、ステップＳ３１８の処理を終了すると、操作子群処理ルーチンを終了してメイン・ルーチンへリターンする。
【００７９】
次に、図４に示すフローチャートを参照しながら、鍵盤処理ルーチンについて説明する。
【００８０】
なお、この鍵盤処理ルーチンにおいて設定されるレジスタＧＡＴＥ、レジスタＰ＿ＳＨＩＦＴ、レジスタＣＧＡＴＥ、レジスタＫＥＹＰ、レジスタＯＲＧＰはＣＰＵ１０のレジスタであり、この鍵盤処理ルーチンにおいて設定されるレジスタｇａｔｅ、レジスタｐ＿ｓｈｉｆｔ、レジスタｃｇａｔｅはＤＳＰ１６のレジスタである。
【００８１】
なお、レジスタＧＡＴＥ、レジスタＰ＿ＳＨＩＦＴ、レジスタｇａｔｅならびにレジスタｐ＿ｓｈｉｆｔは、ＤＳＰ１６によって構成される発音チャンネル毎に設けられており、従ってこの実施の形態においては、それぞれ４つのレジスタが設けられているものである。
【００８２】
ここで、鍵盤処理ルーチンに関する以下の説明の理解を容易にするために、上記した各レジスタの内容を詳細に説明しておく。
【００８３】
（１）レジスタＧＡＴＥ
発音チャンネル毎に当該発音チャンネルが発音中であるか否かを示す情報を記憶するレジスタであり、各発音チャンネル毎に設定されている。なお、「ＧＡＴＥ＝１」で「発音」を表し、「ＧＡＴＥ＝０」で「消音」を表す。
【００８４】
（２）レジスタＰ＿ＳＨＩＦＴ
オーディオ波形信号を再生するときの音高を表す情報、具体的には、記憶されたオーディオ波形信号の音高のシフト量を示す情報を記憶するレジスタであり、各発音チャンネル毎に設定されている。
【００８５】
（３）レジスタＣＧＡＴＥ
オーディオ波形信号を発音中であるか否かを示す情報を記憶するレジスタであり、全発音チャンネルに共通して１つ設定されている。「ＣＧＡＴＥ＝１」で少なくとも１音が発音中である状態を表し、「ＣＧＡＴＥ＝０」で１音も発音されていない状態を表す。
【００８６】
（４）レジスタＫＥＹＰ
鍵盤２０の操作鍵の情報を記憶するレジスタであり、記憶されたオーディオ波形信号の音高のシフト量を算出するときに使用する。
【００８７】
（５）レジスタＯＲＧＰ
記憶されたオーディオ波形信号をオリジナルの音高で再生するときの音高情報、即ち、予め定められた音高情報を記憶するレジスタであり、記憶されたオーディオ波形信号の音高のシフト量を算出するときに使用する。
【００８８】
そして、鍵盤処理ルーチンが起動されると、鍵盤２０を構成する各鍵の走査を行い（ステップＳ４０２）、鍵盤２０を構成する各鍵の鍵操作状態に変化があるか否かを判断する（ステップＳ４０４）。
【００８９】
このステップＳ４０４の判断処理において、鍵盤２０を構成する各鍵の鍵操作状態に変化があるとは判断されなかった場合には、そのままメイン・ルーチンへリターンする。
【００９０】
一方、ステップＳ４０４の判断処理において、鍵盤２０を構成する各鍵の鍵操作状態に変化があると判断された場合には、ステップＳ４０６の処理へ進み、鍵盤２０を構成する各鍵の鍵操作状態の変化が押鍵であるか離鍵であるかを判断する。
【００９１】
ステップＳ４０６の処理において、鍵盤２０を構成する各鍵の鍵操作状態の変化が押鍵であると判断された場合には、ステップＳ４０８の処理へ進み、その押鍵が全ての鍵が離鍵された状態からの新たな押鍵、即ち、最初の押鍵であるか否かを判断する。
【００９２】
このステップＳ４０８の判断処理において、その押鍵が全ての鍵が離鍵された状態からの新たな押鍵であると判断された場合には、ステップＳ４１０の処理へ進んでレジスタＣＧＡＴＥに「１」を設定し、それからステップＳ４１４の処理へ進む。
【００９３】
一方、ステップＳ４０８の判断処理において、その押鍵が全ての鍵が離鍵された状態からの新たな押鍵ではないと判断された場合には、ステップＳ４１２の処理へ進み、発音チャンネルの中に発音中でない空きチャンネルが存在するか否かを判断する。
【００９４】
このステップＳ４１２の処理において、空きチャンネルが存在しないと判断された場合には、そのままメイン・ルーチンへリターンする。
【００９５】
一方、ステップＳ４１２の処理において、空きチャンネルが存在すると判断された場合には、ステップＳ４１４の処理へ進むことになる。
【００９６】
そして、ステップＳ４１４の処理においては、押鍵された鍵の音高データを得て、レジスタＫＥＹＰに設定して記憶する。
【００９７】
上記したステップＳ４１４の処理を終了すると、各チャンネル毎の処理を順次に行うことになる。即ち、各チャンネル毎の処理として、押鍵を空きチャンネルに割り当ててパラメータ設定の準備を行い（ステップＳ４１６）、「ＫＥＹＰ／ＯＲＧＰ」の値をレジスタＰ＿ＳＨＩＦＴに設定するとともにレジスタＧＡＴＥに「１」を設定し（ステップＳ４１８）、ＤＳＰ１６のレジスタｐ＿ｓｈｉｆｔとレジスタｇａｔｅにレジスタＰ＿ＳＨＩＦＴとレジスタＧＡＴＥの値を設定し（ステップＳ４２０）、それからステップＳ４３２の処理へ進む。
【００９８】
一方、ステップＳ４０６の判断処理において、鍵盤２０を構成する各鍵の鍵操作状態の変化が離鍵であると判断された場合には、ステップＳ４２２の処理へ進み、鍵盤２０の全鍵が離鍵であるか否かを判断する。
【００９９】
このステップＳ４２２の判断処理において、鍵盤２０の全鍵が離鍵であると判断された場合には、ステップＳ４２４の処理へ進んでレジスタＣＧＡＴＥに「０」を設定し、それからステップＳ４２６の処理へ進む。
【０１００】
一方、ステップＳ４２２の判断処理において、鍵盤２０の全鍵が離鍵であるとは判断されなかった場合には、そのままステップＳ４２６の処理へ進む。
【０１０１】
そして、ステップＳ４２６の処理においては、割り当てられていた発音チャンネルを選択してパラメータ設定の準備を行う。
【０１０２】
上記したステップＳ４２６の処理を終了すると、ステップＳ４２８の処理へ進んでレジスタＧＡＴＥに「０」を設定し、それからステップＳ４３０へ進んでＤＳＰ１６のレジスタｇａｔｅにレジスタＧＡＴＥの値を設定する。
【０１０３】
そして、上記したステップＳ４３０の処理を終了すると、ステップＳ４３２の処理へ進む。
【０１０４】
ステップＳ４３２においては、ＤＳＰ１６のレジスタｃｇａｔｅにレジスタＣＧＡＴＥの値を設定し、それからメイン・ルーチンへリターンする。
【０１０５】
ここで、ステップＳ４１６において、押鍵を空きチャンネル、即ち、発音中でない発音チャンネルに割り当てる際には、最も後に空きチャンネルとなった発音チャンネルから優先的に割り当てる処理を行う。その理由は、非同期再生のときに、先に発音していた発音チャンネルに優先的に割り当てるためである。
【０１０６】
また、同期再生のみを行う場合には、上記したような空きチャンネルの優先的な割り当ての処理を行う必要はなく、空きチャンネルになった順番など適宜の手法で割り当てを行えばよい。
【０１０７】
次に、図５に示すフローチャートを参照しながら、ホールド・スイッチ処理ルーチンについて説明する。
【０１０８】
なお、このホールド・スイッチ処理ルーチンにおいて設定されるレジスタＨＯＬＤはＣＰＵ１０のレジスタであり、このホールド・スイッチ処理ルーチンにおいて設定されるレジスタｈｏｌｄはＤＳＰ１６のレジスタである。
【０１０９】
まず、ホールド・スイッチ処理ルーチンが起動されると、ホールド・スイッチ２２の走査を行い（ステップＳ５０２）、ホールド・スイッチ２２の操作状態に変化があるか否かを判断する（ステップＳ５０４）。
【０１１０】
ステップＳ５０４の判断処理において、ホールド・スイッチ２２の操作状態に変化がないと判断された場合には、そのままメイン・ルーチンへリターンする。
【０１１１】
一方、ステップＳ５０４の判断処理において、ホールド・スイッチ２２の操作状態に変化があると判断された場合には、ステップＳ５０６の処理へ進み、ホールド・スイッチ２２がオン（ＯＮ）であるか、あるいは、ホールド・スイッチ２２がオフ（ＯＦＦ）であるかを判断する。
【０１１２】
ステップＳ５０６の判断処理において、ホールド・スイッチ２２がオン（ＯＮ）であると判断された場合には、ステップＳ５０８へ進んでレジスタＨＯＬＤに「１」を設定し、一方、ステップＳ５０６の判断処理において、ホールド・スイッチ２２がオフ（ＯＦＦ）であると判断された場合には、ステップＳ５１０へ進んでレジスタＨＯＬＤに「０」を設定する。
【０１１３】
そして、ステップＳ５０８の処理またはステップＳ５１０の処理を終了すると、ステップＳ５１２の処理へ進み、レジスタＨＯＬＤの値をＤＳＰ１６のレジスタｈｏｌｄに設定する。このステップＳ５１２の処理を終了すると、メイン・ルーチンへリターンする。
【０１１４】
次に、ＤＳＰ１６において実行される処理をハードウェア構成的に示したブロック図である図６を参照しながら、ＤＳＰ１６において実行される処理について説明する。
【０１１５】
即ち、ＤＳＰ１６は、波形生成手段とレジスタとを備えており、波形生成手段は、発音チャンネル１、発音チャンネル２、発音チャンネル３および発音チャンネル４の４個の発音チャンネル毎に、再生すべきオーディオ波形信号を生成する再生波形演算手段１６ａと位置情報たるポインタｓｐｈａｓｅを生成する位置情報発生手段１６ｂとを備えている。
【０１１６】
ここで、再生波形演算手段１６ａは、レジスタｇａｔｅの値が「１」のとき、再生すべきオーディオ波形信号を出力するものである。具体的には、位置情報発生手段１６ｂで生成される位置情報たるポインタｓｐｈａｓｅに従って、波形メモリ２６からオーディオ波形信号を読み出し、当該読み出したオーディオ波形信号に基づいて、音高情報たるレジスタｐ＿ｓｈｉｆｔの値に対応した音高のオーディオ波形信号を生成して出力するものである。
【０１１７】
また、位置情報発生手段１６ｂの動作の詳細については、図１０に示すフローチャートを参照しながら後述するが、位置情報たるポインタｓｐｈａｓｅは、レジスタｔｃｏｍｐの値に従って進行速度が設定されるものである。なお、レジスタｔｃｏｍｐの値が負の場合には、位置情報たるポインタｓｐｈａｓｅは時間軸上の逆方向に進行してオーディオ波形信号を逆方向に再生することになり、レジスタｔｃｏｍｐの値が「０」の場合には、時間軸上で進行が停止して再生が停止することになる。
【０１１８】
なお、図６に示されているように、ＤＳＰ１６のレジスタｔｃｏｍｐ、レジスタｍｏｄｅ、レジスタｈｏｌｄおよびレジスタｃｇａｔｅは、４個の発音チャンネル（発音チャンネル１、発音チャンネル２、発音チャンネル３および発音チャンネル４）に共通に設定されており、ＤＳＰ１６のレジスタｐ＿ｓｈｉｆｔおよびレジスタｇａｔｅは、４個の発音チャンネル（発音チャンネル１、発音チャンネル２、発音チャンネル３および発音チャンネル４）毎にそれぞれ設けられている。
【０１１９】
また、図７には、波形メモリ２６に記憶されているオーディオ波形信号のデータ構成が示されている。
【０１２０】
ここで、波形メモリ２６に記憶されているオーディオ波形信号は、波形関連データと波形データとよりなるものである。
【０１２１】
そして、波形関連データは、波形データの先頭アドレス（ｗａｖｅ  ｓｔａｒｔ）および波形データの最終アドレス（ｗａｖｅ  ｅｎｄ）とその他関連データとよりなるものである。その他関連データは、ＤＳＰ１６の再生波形演算手段１６ａにおいて再生すべきオーディオ波形信号の演算に必要なその他の関連データも記憶しているが、本発明の実施と関連するものではないのでその詳細は省略する。
【０１２２】
一方、波形データは、オーディオ波形信号の本体を示すデータであり、例えば、ＰＣＭ波形データである。
【０１２３】
次に、図８に示すＤＳＰ１６のメイン・ルーチンのフローチャートを参照しながら、ＤＳＰ１６において実行されるメイン処理を説明する。このメイン・ルーチンは、所定のサンプリング周期毎の割り込み処理により実行されるものであり、このメイン・ルーチンにおいて用いられる処理変数ｎは、ＤＳＰ１６により構成される発音チャンネルを表している。従って、この実施の形態においては、ＤＳＰ１６により構成される発音チャンネル数は「４」であるので、「ｎ＝４」に設定されている。
【０１２４】
そして、このメイン・ルーチンが起動されると、まず、処理変数ｎを「１」に初期化する（ステップＳ８０２）。
【０１２５】
ステップＳ８０２の処理を終了すると、ステップＳ８０４の処理へ進み、このＤＳＰ１６のメイン・ルーチンのサブ・ルーチンとして、波形生成手段処理ルーチンを実行する。なお、波形生成手段処理ルーチンの詳細については、図９に示すフローチャートを参照しながら後述する。
【０１２６】
そして、ステップＳ８０４の処理を終了すると、ステップＳ８０６の処理へ進み、処理変数ｎが「４」以上であるか否かを判断する。
【０１２７】
ここで、ステップＳ８０６の判断処理において、処理変数ｎが「４」以上でないと判断された場合には、全ての発音チャンネル（ＤＳＰ１６により構成される４個の発音チャンネル）に対してステップＳ８０４における波形生成手段処理ルーチンを実行していないため、ステップＳ８０８へ進んで処理変数ｎを「１」インクリメントし、ステップＳ８０４へ戻って処理を繰り返す。
【０１２８】
一方、ステップＳ８０６の判断処理において、処理変数ｎが「４」以上であると判断された場合には、全ての発音チャンネル（ＤＳＰ１６により構成される４個の発音チャンネル）に対してステップＳ８０４における波形生成手段処理ルーチンを実行したことになるため、ＤＳＰ１６のメイン・ルーチンを終了する。
【０１２９】
次に、図９に示す波形生成手段処理ルーチンのフローチャートを参照しながら、ＤＳＰ１６のメイン・ルーチンにおけるステップＳ８０４の処理で実行される波形生成手段処理ルーチンについて説明する。
【０１３０】
この波形生成手段処理ルーチンが起動されると、まず、図６の位置情報発生手段１６ｂに対応する波形生成手段処理ルーチンのサブ・ルーチンとして位置情報発生手段処理ルーチンを実行する（ステップＳ９０２）。なお、この位置情報発生手段処理ルーチンの詳細については、図１０に示すフローチャートを参照しながら後述する。
【０１３１】
そして、ステップＳ９０２の処理を終了すると、ステップＳ９０４の処理へ進み、図６の位置情報発生手段１６ｂに対応する再生波形演算手段処理を実行する。なお、この図６の位置情報発生手段１６ｂに対応する再生波形演算手段処理に関しては、公知の技術を適用することができるものであるので、その詳細な説明は省略する。
【０１３２】
さらに、上記したステップＳ９０４の処理を終了すると、ステップＳ９０６の処理へ進み、前述の再生波形演算手段処理で算出した演算波形信号を出力する処理を実行する。なお、演算波形信号を出力する処理に関しては、公知の技術を適用することができるものであるので、その詳細な説明は省略する。
【０１３３】
そして、上記したステップＳ９０６の処理を終了すると、ＤＳＰ１６のメイン・ルーチンへリターンするものである。
【０１３４】
次に、図１０に示す位置情報発生手段処理ルーチンのフローチャートを参照しながら、波形生成手段処理ルーチンのステップＳ９０２の処理で実行される位置情報発生手段処理ルーチンについて説明する。
【０１３５】
この位置情報発生手段処理ルーチンが起動されると、まず、レジスタｈｏｌｄの値が「ｈｏｌｄ＝１」に設定されているか否かを判断する（ステップＳ１００２）。
【０１３６】
このステップＳ１００２の判断処理において、レジスタｈｏｌｄの値が「ｈｏｌｄ＝１」に設定されていないと判断された場合には、ステップＳ１００６の処理へジャンプして進む。
【０１３７】
一方、ステップＳ１００２の判断処理において、レジスタｈｏｌｄの値が「ｈｏｌｄ＝１」に設定されていると判断された場合には、ステップＳ１００４の処理へ進み、レジスタｇ＿ｒｅｇの値が「ｇ＿ｒｅｇ＝１」に設定されているか否かを判断する。
【０１３８】
そして、ステップＳ１００４の判断処理において、レジスタｇ＿ｒｅｇの値が「ｇ＿ｒｅｇ＝１」に設定されていないと判断された場合にはステップＳ１００６の処理へ進み、一方、レジスタｇ＿ｒｅｇの値が「ｇ＿ｒｅｇ＝１」に設定されていると判断された場合にはステップＳ１０１４の処理へジャンプして進む。
【０１３９】
そして、ステップＳ１００６の処理においては、レジスタｍｏｄｅの値が「ｍｏｄｅ＝１」であるか、あるいは、「ｍｏｄｅ＝０」であるかが判断される。
【０１４０】
このステップＳ１００６の処理において、レジスタｍｏｄｅの値が「ｍｏｄｅ＝１」であると判断された場合には、ステップＳ１００８の処理へ進んでレジスタｃｇａｔｅの値をレジスタｇ＿ｒｅｇに設定した後に、ステップＳ１０１２の処理へ進み、一方、ステップＳ１００６の処理において、レジスタｍｏｄｅの値が「ｍｏｄｅ＝０」であると判断された場合には、ステップＳ１０１０の処理へ進んでレジスタｇａｔｅの値をレジスタｇ＿ｒｅｇに設定した後に、ステップＳ１０１２の処理へ進む。
【０１４１】
そして、ステップＳ１０１２の処理においては、レジスタｇ＿ｒｅｇが立上りであるか否かが判断され、レジスタｇ＿ｒｅｇが立上りではないと判断された場合にはステップＳ１０１４の処理へ進み、一方、レジスタｇ＿ｒｅｇが立上りであると判断された場合にはステップＳ１０１８の処理へジャンプして進む。
【０１４２】
ステップＳ１０１４の処理においては、ポインタｓｐｈａｓｅの値とレジスタｔｃｏｍｐの値とを加算し（「ｓｐｈａｓｅ＋ｔｃｏｍｐ」）、その加算結果の値によりポインタｓｐｈａｓｅの値を更新する。
【０１４３】
ステップＳ１０１４の処理を終了すると、ステップＳ１０１６の処理へ進み、オーディオ波形信号の波形データの先頭アドレス（ｗａｖｅ  ｓｔａｒｔ）の値がポインタｓｐｈａｓｅの値より大きいか否かを判断する。
【０１４４】
そして、ステップＳ１０１６の判断処理において、オーディオ波形信号の波形データの先頭アドレス（ｗａｖｅ  ｓｔａｒｔ）の値がポインタｓｐｈａｓｅの値より大きいと判断された場合には、ステップＳ１０１８の処理へ進み、オーディオ波形信号の波形データの先頭アドレス（ｗａｖｅ  ｓｔａｒｔ）の値によりポインタｓｐｈａｓｅを更新し、それからステップＳ１０２０へ進む。
【０１４５】
一方、ステップＳ１０１６の判断処理において、オーディオ波形信号の波形データの先頭アドレス（ｗａｖｅ  ｓｔａｒｔ）の値がポインタｓｐｈａｓｅの値より大きいとは判断されなかった場合には、ステップＳ１０２０の処理へジャンプして進む。
【０１４６】
ステップＳ１０２０の処理においては、ポインタｓｐｈａｓｅの値がオーディオ波形信号の波形データの最終アドレス（ｗａｖｅ  ｅｎｄ）の値より大きいか否かを判断する。
【０１４７】
そして、ステップＳ１０２０の判断処理において、ポインタｓｐｈａｓｅの値がオーディオ波形信号の波形データの最終アドレス（ｗａｖｅ  ｅｎｄ）の値より大きいと判断された場合には、ステップＳ１０２２の処理へ進み、オーディオ波形信号の波形データの最終アドレス（ｗａｖｅ  ｅｎｄ）の値によりポインタｓｐｈａｓｅを更新し、それからステップＳ１０２４へ進む。
【０１４８】
一方、ステップＳ１０２０の判断処理において、ポインタｓｐｈａｓｅの値がオーディオ波形信号の波形データの最終アドレス（ｗａｖｅ  ｅｎｄ）の値より大きいとは判断されなかった場合には、ステップＳ１０２４の処理へジャンプして進む。
【０１４９】
ステップＳ１０２４の処理においては、ポインタｓｐｈａｓｅの値を出力し、ステップＳ１０２４の処理を終了すると、波形生成手段処理ルーチンへリターンする。
【０１５０】
従って、この位置情報発生手段処理ルーチンにおいては、レジスタＨＯＬＤの値が「ＨＯＬＤ＝０」のとき、レジスタｇ＿ｒｅｇの値が立上りであることを検出すると、ポインタｓｐｈａｓｅの値をオーディオ波形信号の波形データの先頭アドレス（ｗａｖｅ  ｓｔａｒｔ）の値にリセットしているが、レジスタＨＯＬＤの値が「レジスタＨＯＬＤ＝１」のときに、レジスタｇ＿ｒｅｇの値が「ｇ＿ｒｅｇ＝１」であることを検出すると、ポインタｓｐｈａｓｅの値をオーディオ波形信号の波形データの先頭アドレス（ｗａｖｅ  ｓｔａｒｔ）の値にリセットする処理をジャンプして行わないようして、ポインタｓｐｈａｓｅの値がオーディオ波形信号の波形データの先頭アドレス（ｗａｖｅ  ｓｔａｒｔ）の値にリセットされることを防いでいる。
【０１５１】
その結果として、レジスタＨＯＬＤの値が「レジスタＨＯＬＤ＝１」のときに、レジスタｇ＿ｒｅｇの値が「ｇ＿ｒｅｇ＝１」である場合には、ポインタｓｐｈａｓｅの値がオーディオ波形信号の波形データの先頭アドレス（ｗａｖｅ  ｓｔａｒｔ）の値に更新されずに、再び発音が指示された際に、発音停止中においてもポインタｓｐｈａｓｅが継続して変化しているような効果が生じるものである。
【０１５２】
ここで、モードが非同期モードのときには、各発音チャンネル毎のレジスタｇ＿ｒｅｇの値が「ｇ＿ｒｅｇ＝１」の場合に、各発音チャンネル毎におけるポインタｓｐｈａｓｅの変化が始まる。
【０１５３】
また、モードが同期モードのときいは、いずれか１つの発音チャンネルの発音が始まると、全ての発音チャンネルのポインタｓｐｈａｓｅの変化が始まるものである。
【０１５４】
なお、上記した実施の形態においては、再生位置情報たるポインタｓｐｈａｓｅの変化が継続するものとして説明したが、これに限られるものではないことは勿論であり、再生位置情報たるポインタｓｐｈａｓｅの変化は、実際には継続していなくても良い。即ち、再生位置情報たるポインタｓｐｈａｓｅの変化は停止しておき、停止時間を測って再生開始時に停止時間に対応した分だけ再生位置をジャンプして進めるようにしてもよい。
【０１５５】
【発明の効果】
本発明は、以上説明したように構成されているので、従来の技術の有する種々の欠点を排除することができ、自然な楽音を再生することができるようになるという優れた効果を奏する。
【図面の簡単な説明】
【図１】本発明によるオーディオ波形信号再生制御装置の実施の形態の一例を示すブロック構成図である。
【図２】ＣＰＵのメイン・ルーチンのフローチャートである。
【図３】操作子群処理ルーチンのフローチャートである。
【図４】鍵盤処理ルーチンのフローチャートである。
【図５】ホールド・スイッチ処理ルーチンのフローチャートである。
【図６】ＤＳＰにおいて実行される処理をハードウェア構成的に示したブロック図である。
【図７】波形メモリに記憶されているオーディオ波形信号のデータ構成を示す説明図である。
【図８】ＤＳＰのメイン・ルーチンのフローチャートである。
【図９】波形生成手段処理ルーチンのフローチャートである。
【図１０】位置情報発生手段処理ルーチンのフローチャートである。
【図１１】従来の技術の処理内容を示す説明図である。
【符号の説明】
１０        中央処理装置（ＣＰＵ）
１２        リード・オンリ・メモリ（ＲＯＭ）
１４        ランダム・アクセス・メモリ（ＲＡＭ）
１６        デジタル・シグナル・プロセッサ（ＤＳＰ）
１８        操作子群
２０        鍵盤
２２        ホールド・スイッチ
２４        表示装置
２６        波形メモリ
２８        デジタル／アナログ変換器（Ｄ／Ａ）
３０        増幅器
３２        スピーカー
【図１】
0004246869.tif 000002
【図２】
0004246869.tif 000003
【図３】
0004246869.tif 000004
【図４】
0004246869.tif 000005
【図５】
0004246869.tif 000006
【図６】
0004246869.tif 000007
【図７】
0004246869.tif 000008
【図８】
0004246869.tif 000009
【図９】
0004246869.tif 000010
【図１０】
0004246869.tif 000011
【図１１】
0004246869.tif 000012