(57)【要約】  任意の基準テンポに従う波形データを用いて可変の演奏テンポで該波形データを再生するために、該演奏テンポと基準テンポとの関係に応じて、再生すべき該波形データの時間軸伸縮制御を行う。該演奏テンポと基準テンポとの関係に応じて、波形データの再生を制限すべきか否かが判定される。再生を制限すべき場合、波形データの再生を停止すること及び再生処理の分解能を下げて波形データの再生を持続することの一方を行う。例えば、演奏テンポと基準テンポとの関係が、処理の遅延又は音質の劣化を来すような演奏テンポで波形データを再生することになるような関係である場合、該波形データの再生を停止する。これにより、該所望の演奏テンポよりも遅れた楽音の生成あるいはノイズ性の断続的な音切れ若しくは音質の著しく低下した楽音の生成等の問題を解決することができ、また、システムのフリーズを未然に防止できる。
2014003072.tif 000002
【特許請求の範囲】
【請求項１】
任意の基準テンポに従う音楽演奏の波形データを記憶する記憶部と、
可変の演奏テンポを指定する情報を取得する取得部と、
前記演奏テンポと前記基準テンポとの関係に応じて、前記波形データの再生を制限すべきか否かを判定する判定部と、
前記記憶部に記憶された前記波形データを再生するオーディオ再生部であって、前記演奏テンポに従って前記波形データを再生するために、前記演奏テンポと前記基準テンポとの関係に応じて、再生すべき前記波形データの時間軸伸縮制御を行うものであり、かつ、前記判定部が再生を制限すべきと判定した場合は、前記波形データの再生を停止すること及び再生処理の分解能を下げて前記波形データの再生を持続することの一方を行うように構成された前記オーディオ再生部と
を具備する自動演奏装置。
【請求項２】
前記判定部は、前記演奏テンポが前記基準テンポに比べて速過ぎるという所定の第１の条件を充足する場合、前記波形データの再生を制限すべきと判定し、
前記オーディオ再生部は、前記判定部による前記第１の条件に基づく再生を制限すべきとの判定に応じて、前記波形データの再生を停止すること及び再生処理の分解能を下げて前記波形データの再生を持続することの一方を行う、請求項１に記載の自動演奏装置。
【請求項３】
前記判定部は、前記演奏テンポが前記基準テンポに比べて遅過ぎるという所定の第２の条件を充足する場合、前記波形データの再生を制限すべきと判定し、
前記オーディオ再生部は、前記判定部による前記第２の条件に基づく再生を制限すべきとの判定に応じて、前記波形データの再生を停止することを行う、請求項１又は２に記載の自動演奏装置。
【請求項４】
ＭＩＤＩ形式データのような楽音発生命令データに基づき楽音波形を生成する楽音発生部をさらに備え、
前記判定部による再生を制限すべきとの判定に応じて、前記オーディオ再生部は、前記波形データの再生を停止することを行い、かつ、前記楽音発生部は、前記再生停止する波形データに対応する楽音波形を、前記楽音発生命令データに基づき生成する、請求項１乃至３のいずれかに記載の自動演奏装置。
【請求項５】
前記オーディオ再生部は、前記時間軸伸縮制御を行う際に、前記波形データを一時記憶部に書き込む制御と、前記一時記憶部から前記書き込んだ波形データを読み出す制御とを行う、請求項１乃至４のいずれかに記載の自動演奏装置。
【請求項６】
前記判定部は、前記一時記憶部を介しての波形データの書き込み制御及び読み出し制御に係る負荷が大きい場合を、前記取得した演奏テンポと前記基準テンポとの間に音質の低い楽音を生成し得る所定値以上の乖離があると見做して前記波形データの再生を制限すると判定する、請求項５に記載の自動演奏装置。
【請求項７】
前記オーディオ再生部は、前記判定部により前記波形データの前記一時記憶部への書き込み制御及び前記一時記憶部からの読み出し制御に係る負荷が大きいと判定された場合に、前記一時記憶部への波形データの書き込みを停止する一方で、前記判定部により前記波形データの前記一時記憶部への書き込み制御及び前記一時記憶部からの読み出し制御に係る負荷が小さいと判定された場合に、前記一時記憶部への波形データの書き込みを再開する、請求項６に記載の自動演奏装置。
【請求項８】
前記オーディオ再生部が前記波形データの再生を停止するとき、該再生停止すべき波形データに対応する楽音をフェードアウト制御する楽音制御部をさらに備える請求項１乃至７のいずれかに記載の自動演奏装置。
【請求項９】
前記楽音制御部は、前記オーディオ再生部が再生停止していた前記波形データの再生を再開するとき、該再生再開すべき波形データに対応する楽音をフェードイン制御する、請求項８に記載の自動演奏装置。
【請求項１０】
前記オーディオ再生部は、前記判定部が再生を制限すべきと判定した場合に、前記波形データの時間軸伸縮制御の分解能を下げることにより、前記再生処理の分解能を下げて前記波形データの再生を持続することを行う、請求項１に記載の自動演奏装置。
【請求項１１】
前記波形データの時間軸伸縮制御の分解能を下げることは、時間軸伸縮制御の対象として前記記憶部から読み出す前記波形データのサンプリング周波数を低下させることからなる、請求項１０に記載の自動演奏装置。
【請求項１２】
前記記憶部に記憶される前記波形データは、或る演奏パターンに対応する所定長さを持ち、
前記オーディオ再生部は、前記波形データを繰り返し再生することが可能である、請求項１乃至１１のいずれかに記載の自動演奏装置。
【請求項１３】
前記オーディオ再生部は、複数の演奏パートの波形データを同時に再生することが可能であり、
前記判定部は、各演奏パート毎に独立に定義される条件に従って、各演奏パート毎に該演奏パートの前記波形データの再生を制限すべきか否かを判定する、請求項１乃至１２のいずれかに記載の自動演奏装置。
【請求項１４】
記憶部に記憶されている波形データを使用して自動演奏を行うための、コンピュータによって実行される方法であって、前記記憶部は、任意の基準テンポに従う音楽演奏の波形データを記憶しており、前記方法は、
可変の演奏テンポを指定する情報を取得するステップと、
前記演奏テンポと前記基準テンポとの関係に応じて、前記波形データの再生を制限すべきか否かを判定するステップと、
前記記憶部に記憶された前記波形データを再生するステップであって、前記演奏テンポに従って前記波形データを再生するために、前記演奏テンポと前記基準テンポとの関係に応じて、再生すべき前記波形データの時間軸伸縮制御を行うものであり、かつ、前記判定するステップで再生を制限すべきと判定された場合は、前記波形データの再生を停止すること及び再生処理の分解能を下げて前記波形データの再生を持続することの一方を行うように構成された前記ステップと
を具備する方法。
【請求項１５】
一時的でないコンピュータ読み取り可能な記憶媒体であって、記憶部に記憶されている波形データを使用して自動演奏を行うための方法をプロセッサに実行させるための命令群を内容としており、前記記憶部は、任意の基準テンポに従う音楽演奏の波形データを記憶しており、前記方法は、
可変の演奏テンポを指定する情報を取得するステップと、
前記演奏テンポと前記基準テンポとの関係に応じて、前記波形データの再生を制限すべきか否かを判定するステップと、
前記記憶部に記憶された前記波形データを再生するステップであって、前記演奏テンポに従って前記波形データを再生するために、前記演奏テンポと前記基準テンポとの関係に応じて、再生すべき前記波形データの時間軸伸縮制御を行うものであり、かつ、前記判定するステップで再生を制限すべきと判定された場合は、前記波形データの再生を停止すること及び再生処理の分解能を下げて前記波形データの再生を持続することの一方を行うように構成された前記ステップと
を具備する記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、少なくともオーディオ波形データを使用して音楽（メロディ及び又は伴奏）の自動演奏を行う自動演奏技術に関し、特に、時間軸伸縮制御（タイムストレッチ制御）を使用して、再生される音の音高変化を来すことなく任意の演奏テンポで楽音を再生する技術に関する。
【背景技術】
【０００２】
従来から、例えば４小節単位などの所定単位長さからなるアルペジオパターンやベースパターンあるいはリズムパターン等を表す伴奏パターンデータを予め記憶しておき、この伴奏パターンデータに基づいて楽音の自動演奏を行う自動演奏装置が知られている。伴奏パターンデータとして、コード伴奏用パートやベースパートさらにはリズムパートなどの演奏パート別に、実際の楽器演奏や人の声あるいは自然音などをサンプリングした楽音波形信号（オーディオ波形データ）を使用する場合と、所定の規格に従って定義される楽音制御信号（すなわち、楽音発生命令データ、例えばMIDI規格により定義されたMIDIデータ）を使用する場合とがある。【０００３】
伴奏パターンデータとしてオーディオ波形データを使用する場合、音高変化を来すことなく任意の演奏テンポで楽音を発生するために、タイムストレッチ制御（すなわち時間軸伸縮制御）を行うことが知られている。タイムストレッチ制御としては、オーディオ波形データを時系列に読み出してＲＡＭに書き込むと共に、書き込み時と異なる周波数でＲＡＭから前記書き込まれたオーディオ波形データを時系列に読み出すものが公知となっている。これによれば、ＲＡＭに対するオーディオ波形データ書き込み時とオーディオ波形データ読み出し時の周波数の比を変えることで、オーディオ波形データの記録時と同じ音高のままで演奏テンポのみを変えた楽音を発生させることができる。下記に示す特許文献１には、タイムストレッチ制御を行うことにより音高を変えることなく演奏テンポのみを変えて楽音を生成する装置が示されている。【０００４】
なお、本明細書において「タイムストレッチ」とは、オーディオデータを「時間軸上で圧縮」（時間軸圧縮）することと、オーディオデータを「時間軸上で伸長」（時間軸伸長）することとを意味する。また、本明細書において「楽音」とは、音楽的な音に限るものではなく音声あるいはその他任意の音を包摂する用語として用いるものとする。【０００５】
他方、伴奏パターンデータとしてMIDIデータのような楽音発生命令データを使用する場合、演奏テンポを任意に変えても発生楽音に音高変化を来すことがない。すなわち、演奏テンポを変えるためには、自動演奏装置は、イベントデータ（より詳しくはノートオンイベントやノートオフイベントなどの音符イベント）の読み出し速度を変えればよい。例えば、MIDIデータに含まれる各イベントデータの読み出しタイミングを変えることで楽音の演奏テンポを変える。その一方、各イベントデータの読み出しタイミングを変えても各イベントデータのノートナンバ（音高情報）等の情報は同じままであるので、楽音の音高は変わらない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第2970396号公報
【０００７】
しかし、従来の装置では指定された演奏テンポによっては、オーディオ波形データに基づき発生される楽音の音質が著しく低下する、またオーディオ波形データに基づく楽音の発生タイミングとMIDIデータに基づく楽音の発生タイミングとがずれる、ノイズ性の断続的な音切れが生じる、などの聴感上不自然な印象を与えるという問題があった。これは、伴奏パターンデータとしてMIDIデータを使用する場合には、上記したように各イベントデータの読み出しタイミングを変えるだけで幅広いテンポに対応して何ら問題なく楽音を発生できるのに対して、伴奏パターンデータとしてオーディオ波形データを使用する場合には、演奏テンポが速くなるにつれてオーディオ波形データのＲＡＭへの書き込み制御及び書き込んだオーディオ波形データのＲＡＭからの読み出し制御にかかる処理負荷が大きくなってしまい、MIDIデータに基づく自動演奏制御に比べるとどうしても処理に遅延が生じてしまうことに原因がある。また、処理負荷が大きくなりすぎると、ＣＰＵシステムをフリーズさせてしまうことになり、装置全体に悪影響を与える。例えば、或る演奏パートをオーディオ波形データに基づき自動演奏し、別の演奏パートをＭＩＤＩデータに基づき自動演奏している場合、ＣＰＵシステムのフリーズによって、オーディ波形データに基づく演奏パートのみならず、ＭＩＤＩデータに基づく演奏パートの自動演奏も停止してしまうという不都合を招く。また、装置が自動演奏以外の他の任意のアプリケーションを同時に実行している場合は、それらのアプリケーションもフリーズしてしまうという不都合を招く。【０００８】
また、指定された演奏テンポが速すぎても遅すぎてもオーディオ波形データの記録時のテンポ（基準テンポ）との差が大きければ著しい音質劣化が生じてしまうものであった。この音質劣化はタイムストレッチ制御における波形制御、より具体的には演奏テンポに応じた再生位置をジャンプ制御してジャンプ前後の再生位置に対応する各波形を接続する際に生じ得るものであり、特にオーディオ波形データが伴奏パターンデータとして使われているときには、指定された演奏テンポと基準テンポとが大きく乖離してジャンプ前後の再生位置が大きく離れてしまう場合が多く起こり得ることから、こうした音質劣化の生じる恐れが比較的に大きい。
【発明の概要】
【０００９】
本発明は上述の点に鑑みてなされたもので、オーディオ波形データを任意の演奏テンポで時間軸伸縮制御して再生する場合に生じるおそれのある処理の遅延及び音質の劣化に対処することを目的とする。
【００１０】
本発明に係る自動演奏装置は、任意の基準テンポに従う音楽演奏の波形データを記憶する記憶部と、可変の演奏テンポを指定する情報を取得する取得部と、前記演奏テンポと前記基準テンポとの関係に応じて、前記波形データの再生を制限すべきか否かを判定する判定部と、前記記憶部に記憶された前記波形データを再生するオーディオ再生部であって、前記演奏テンポに従って前記波形データを再生するために、前記演奏テンポと前記基準テンポとの関係に応じて、再生すべき前記波形データの時間軸伸縮制御を行うものであり、かつ、前記判定部が再生を制限すべきと判定した場合は、前記波形データの再生を停止すること及び再生処理の分解能を下げて前記波形データの再生を持続することの一方を行うように構成された前記オーディオ再生部とを具備する。
【００１１】
記憶部に記憶した任意の基準テンポに従う音楽演奏の波形データを用いて、可変の演奏テンポで該波形データを再生するために、該演奏テンポと該基準テンポとの関係に応じて、再生すべき該波形データの時間軸伸縮制御が行われる。本発明によれば、該演奏テンポと該基準テンポとの関係に応じて、該波形データの再生を制限すべきか否かが判定され、再生を制限すべきと判定された場合は、該波形データの再生を停止すること及び再生処理の分解能を下げて前記波形データの再生を持続することの一方を行う。例えば、演奏テンポと前記基準テンポとの間に、時間軸伸縮制御の処理の遅れの影響により、該演奏テンポより遅れた楽音を生成させ得るような、又は音質の低い楽音を生成させ得るような、あるいは処理システムをフリーズさせるような、乖離がある場合に、該波形データの再生を制限すべきと判定される。波形データの再生の制限は、例えば、該波形データの再生を停止することからなる。このように、演奏テンポと基準テンポとの関係が、処理の遅延又は音質の劣化を来すような演奏テンポで波形データを再生することになるような関係である場合、該波形データの再生を停止することにより、該所望の演奏テンポよりも遅れた楽音の生成あるいはノイズ性の断続的な音切れ若しくは音質の著しく低下した楽音の生成等の問題を解決することができ、さらには、処理システムがフリーズすることを防止してフリーズに伴う種々の不都合が発生することを未然に防止することができる。別の例として、波形データの再生を制限すべきと判定された場合、再生処理の分解能を下げて前記波形データの再生を持続することが行われる。例えば、再生処理の分解能を下げることは、波形データの時間軸伸縮制御の分解能を下げることからなる。このように、再生処理の分解能を下げるにより、処理の遅れを防ぎ、所望の演奏テンポから遅れることを防止することができる。
【００１２】
なお、このような波形データの再生停止制御においては、同時に再生される他の演奏パートがある場合、一部の演奏パートの再生を停止しても、再生停止されない他の演奏パートの存在により、自動演奏にそれほど重大な支障を与えることがないと期待される。例えば、MIDIデータに基づく楽音を同時に発生しているような場合であれば、MIDIデータに基づく楽音発生は確実に続行される。また、各演奏パート毎に独立に定義される条件に従って、各演奏パート毎に該演奏パートの前記波形データの再生を制限すべきか否かを判定するように構成することにより、一部の演奏パートの波形データの再生を停止しても、他の演奏パートの波形データの再生は停止されずに、自動演奏が続行されるようにすることが可能である。
【００１３】
一例として、前記判定部は、前記演奏テンポが前記基準テンポに比べて速過ぎるという所定の第１の条件を充足する場合、前記波形データの再生を制限すべきと判定し、前記再生部は、前記判定手段による前記第１の条件に基づく再生を制限すべきとの判定に応じて、前記波形データの再生を停止すること及び再生処理の分解能を下げて前記波形データの再生を持続することの一方を行うようにしてよい。これにより、処理の遅れを来すおそれがあるような、基準テンポに比べて速過ぎる演奏テンポに対して、波形データの再生を停止すること、あるいは再生処理の分解能を下げることで、対処することができる。
【００１４】
一例として、前記判定部は、前記演奏テンポが前記基準テンポに比べて遅過ぎるという所定の第２の条件を充足する場合、前記波形データの再生を制限すべきと判定し、前記再生部は、前記判定手段による前記第２の条件に基づく再生を制限すべきとの判定に応じて、前記波形データの再生を停止することを行うようにしてよい。これにより、音質の劣化を来すおそれがあるような、基準テンポに比べて遅過ぎる演奏テンポに対して、波形データの再生を停止することで、対処することができる。
【００１５】
一例として、ＭＩＤＩ形式データのような楽音発生命令データに基づき楽音波形を生成する楽音発生部をさらに備え、前記判定部による再生を制限すべきとの判定に応じて、前記オーディオ再生部は、前記波形データの再生を停止することを行い、かつ、前記楽音発生部は、前記再生停止する波形データに対応する楽音波形を、前記楽音発生命令データに基づき生成するようにしてよい。これにより、波形データの再生を停止する代りに、ＭＩＤＩ形式データのような楽音発生命令データに基づく楽音波形を生成し、演奏を代替させることができる。
【００１６】
本発明によれば、所望の演奏テンポより遅れた楽音を生成し得る又は音質の低い楽音を生成し得る、基準テンポと所定値以上に乖離した演奏テンポを取得した場合には、あえて楽音波形信号の読み出しを行わないで楽音を生成しないようにしたことから、ユーザに対し聴感上不自然な印象を与えることのない演奏を行うことができる、という効果が得られる。
【００１７】
本発明は、装置の発明として構成し、実施することができるのみならず、方法の発明として構成し実施することができる。また、本発明は、コンピュータまたはＤＳＰ等のプロセッサによって実行可能なプログラムの形態で実施することができるし、そのようなプログラムを記憶した一時的ではないコンピュータ読み取り可能な記憶媒体の形態で実施することもできる。
【図面の簡単な説明】
【００１８】
以下、この発明のいくつかの好ましい実施例を、単なる一例として、添付図面に従って、詳細に説明する。【００１９】
【図１】この発明に係る自動演奏装置を適用した電子楽器のハードウエア構成例を示すブロック図である。
【図２】スタイルデータのデータ構成を示す概念図である。
【図３】オーディオ再生部の機能を説明するための機能ブロック図である。
【図４】演奏テンポ限界値テーブルのデータ構成を示す概念図である。
【図５】自動演奏処理の一実施例を示すフローチャートである。
【図６】オーディオデータの読込処理の一実施例を示すフローチャートである。
【図７】図６に示した処理に後続するオーディオデータの読込処理を示すフローチャートである。
【図８】図７に示した処理に後続するオーディオデータの読込処理を示すフローチャートである。
【図９】図８に示した処理に後続するオーディオデータの読込処理を示すフローチャートである。
【図１０】楽音生成処理の一実施例を示すフローチャートである。
【図１１】図１０に示した処理に後続する楽音生成処理を示すフローチャートである。
【図１２】フェードアウト処理の一実施例を示すフローチャートである。
【発明を実施するための形態】
【００２０】
図１は、この発明に係る自動演奏装置を適用した電子楽器のハードウエア構成例を示すブロック図である。本実施形態に示す電子楽器は、マイクロプロセッサユニット（ＣＰＵ）１、リードオンリメモリ（ＲＯＭ）２、ランダムアクセスメモリ（ＲＡＭ）３からなるマイクロコンピュータの制御の下に各種の処理が実行されるようになっている。ＣＰＵ１は、この電子楽器全体の動作を制御するものである。このＣＰＵ１に対して、データ及びアドレスバス１Ｄを介してＲＯＭ２、ＲＡＭ３、記憶装置４、演奏操作子５、パネル操作子６、表示部７、オーディオ再生部８、ＭＩＤＩ音源部９、楽音制御回路１０、インタフェース１１がそれぞれ接続されている。
【００２１】
更に、ＣＰＵ１には、タイマ割込み処理（インタラプト処理）における割込み時間や各種時間を計時するタイマ１Ａが接続されている。例えば、タイマ１Ａは、楽音を自動演奏する際の演奏テンポや、記憶装置４等から時系列に読み出したオーディオデータを一時的にＲＡＭ３に書き込んだり、また一時的に書き込まれたオーディオデータをＲＡＭ３から読み出したりする際の周波数などを設定するためのテンポクロックパルスを発生する。タイマ１ＡからのテンポクロックパルスはＣＰＵ１に対して処理タイミング命令として与えられたり、あるいはＣＰＵ１に対してインタラプト命令として与えられたりする。ＣＰＵ１は、これらの命令に従って各種処理を実行する。
【００２２】
ＲＯＭ２は、ＣＰＵ１により実行あるいは参照される各種制御プログラムや各種データ等を格納する。ＲＡＭ３は、ＣＰＵ１が所定のプログラムを実行する際に発生する各種データなどを一時的に記憶するワーキングメモリとして、あるいは現在実行中のプログラムやそれに関連するデータを一時的に記憶するメモリ等として使用される。ＲＡＭ３の所定のアドレス領域がそれぞれの機能に割り当てられ、レジスタやフラグ、テーブル、テンポラリメモリなどとして利用される。
【００２３】
記憶装置４には、オーディオ波形データを含むスタイルデータ（後述する図２参照）やMIDIデータ（図示せず）などの各種データ等を多数記憶することが可能な内蔵データベースが構成される。また、これらの他に、ＣＰＵ１が実行する各種制御プログラム等を記憶するようにしてもよい。なお、上述したＲＯＭ２に制御プログラムが記憶されていない場合、この記憶装置４（例えばハードディスク）に制御プログラムを記憶させておき、それをＲＡＭ３に読み込むことにより、ＲＯＭ２に制御プログラムを記憶している場合と同様の動作をＣＰＵ１に実行させることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。なお、記憶装置４はハードディスク（HD）に限られず、フレキシブルディスク（FD）、コンパクトディスク（CD‐ROM・CD‐RAM）、光磁気ディスク（MO）、あるいはDVD（Digital Versatile Disk）等の様々な形態の記憶媒体を利用する記憶装置であればどのようなものであってもよい。あるいは、フラッシュメモリなどの半導体メモリであってもよい。
【００２４】
演奏操作子５は、例えば楽音の音高を選択するための複数の鍵を備えた鍵盤等のようなものであり、各鍵に対応してキースイッチを有しており、この演奏操作子５は演奏者自身の手弾きによるマニュアル演奏のために使用できるのは勿論のこと、コード（和音）を入力する入力手段などとして使用することもできる。勿論、演奏操作子５は鍵盤等の形態に限らず、楽音の音高を選択するための弦を備えたネック等のような形態のものなど、どのようなものであってもよい。
【００２５】
パネル操作子（スイッチ等）６は、例えばスタイルデータを選択する選択スイッチ、演奏テンポを設定するテンポ設定スイッチ、自動演奏の開始／停止を指示する再生／停止ボタン、コード（和音）を入力する入力操作子、音色・効果などのパラメータを設定する設定スイッチ等、各種の操作子を含んで構成される。勿論、音高、音色、効果等を選択・設定・制御するための数値データ入力用のテンキーや文字データ入力用のキーボード、あるいは表示部７に表示された各種画面の位置を指定するポインタを操作するマウスなどの各種操作子を含んでいてもよい。
【００２６】
表示部７は、例えば液晶表示パネル（LCD）やCRT等から構成されるディスプレイであって、上記スイッチ操作に応じて各種画面（図示を省略したが、例えばスタイル選択画面や演奏テンポ設定画面など）を表示するのは勿論のこと、スタイルデータの内容などの各種情報あるいはＣＰＵ１の制御状態などを表示することもできる。演奏者は該表示部７に表示されるこれらの各種情報を参照することで、スタイルデータの選択や演奏テンポの設定などを容易に行うことができる。
【００２７】
オーディオ再生部８は、複数のトラック（演奏パート）の各トラック（演奏パート）毎に再生波形信号の同時発生が可能であり、データ及びアドレスバス１Ｄを経由して与えられる任意のスタイルデータに含まれる演奏パート毎のオーディオ波形データに基づいて各パート単位に再生波形信号を生成し出力する。
【００２８】
MIDI音源部９は、複数のトラック（演奏パート）の各トラック（演奏パート）毎に再生波形信号の同時発生が可能であり、データ及びアドレスバス１Ｄを経由して与えられるMIDIデータ（楽音発生命令データ）を入力し、このMIDIデータに含まれる各種のイベント情報に基づいて再生波形信号を生成し出力する。MIDI音源部９はコンピュータを用いて構成されており、そこにおいてMIDIデータに基づく自動演奏制御は、コンピュータが所定のアプリケーションプログラムを実行することにより実施される。なお、楽音発生命令データの形式は、MIDI形式に限らず、他の形式であってもよい、
【００２９】
なお、MIDI音源部９はコンピュータプログラムの形態に限らず、DSP（ディジタル・シグナル・プロセッサ）によって処理されるマイクロプログラムの形態でも実施可能であり、また、この種のプログラムの形態に限らず、ディスクリート回路又は集積回路若しくは大規模集積回路等を含んで構成された専用ハードウエア装置の形態で実施してもよい。さらに、MIDI音源部９の楽音合成方式は波形メモリ方式に限らず、ＦＭ方式、物理モデル方式、高調波合成方式、フォルマント合成方式等を採用してもよく、またこれらの各種楽音合成方式のいずれを単独または複数を組み合わせてもよい。
【００３０】
上記オーディオ再生部８及びMIDI音源部９は共に楽音制御回路１０に接続されており、楽音制御回路１０ではそれらから発生された再生波形信号に所定のディジタル信号処理を施して効果を付与するとともにこれらを混合（加算）し、スピーカなどのサウンドシステム１０Ａに出力する。すなわち、ここに示す楽音制御回路１０は、信号混合（加算）回路、D/A変換回路、音量制御回路などを含んで構成されてなる。
【００３１】
インタフェース１１は、当該装置と図示しない外部機器（電子楽器やサーバ装置など）との間でスタイルデータやMIDIデータなどの各種データ、制御プログラムなどの各種情報を送受信するためのインタフェースである。このインタフェース１１は、例えばMIDIインタフェース，ＬＡＮ，インターネット，電話回線等であってよく、また有線あるいは無線のものいずれかでなく双方を具えていてよい。例えばスタイルデータなどは、インタフェース１１を介して接続された通信ネットワーク上のサーバ装置にアクセスして取得してもよい。
【００３２】
なお、演奏操作子５や表示部７あるいはMIDI音源部９などを１つの装置本体に内蔵したものに限らず、それぞれが別々に構成され、MIDIインタフェースや各種ネットワーク等の通信手段を用いて各装置を接続するように構成されたものであってもよいことは言うまでもない。
なお、本発明に係る自動演奏装置は電子楽器に限らず、パーソナルコンピュータ、PDA（携帯情報端末）や携帯電話等の携帯通信端末、あるいはゲーム装置など、少なくともオーディオ波形データに基づいて楽音の自動演奏を行うことのできるものであればどのような形態の装置・機器に適用してもよい。
【００３３】
図２は、電子楽器に構成されたデータベースに記憶されるスタイルデータのデータ構成を示す概念図である。スタイルデータは、予め電子楽器内に記憶されている(つまり電子楽器のメーカが作成した)ものに限らず、ユーザが新規に作成したものを追加記憶する、メーカやその他の利用者が新規に作成し外部機器（例えばサーバ装置）に登録したものを取得して、既存のデータと差し替えあるいは追加記憶することもできるようになっている。
【００３４】
スタイルデータ（自動演奏データ）は、スタイル属性情報と実体データ（トラックデータ及びノート変換用データ）とを含む。スタイル属性情報はデータベースに登録する情報（各伴奏スタイルがどのような楽曲、音楽ジャンルにおいて利用するのに適するかを検索可能としたもの）であって、スタイル名とその他のスタイル属性情報とを含む。スタイル名は、それぞれの伴奏スタイル固有の名称である。その他のスタイル属性情報は、例えば伴奏スタイルのイメージと合致する実際の楽曲名や伴奏スタイルのイメージを連想することが出来るキーワード、拍子情報やテンポ情報（推奨テンポすなわち基準テンポ）、音色等である。
【００３５】
トラックデータは、複数セクション（イントロ、メイン、フィルイン、エンディング等）の各セクションにつき、複数トラック（コードバッキングパート、べースパート、リズムパート等）毎に用意された基本となる伴奏パターンデータであって、音符イベント及び発音タイミング等のMIDI形式のイベント列からなるMIDIデータが割り当てられていてもよいし、実際の楽器演奏や人の声あるいは自然音などをサンプリングしたオーディオ波形データが割り当てられていてもよい。本実施形態においては、１つのトラックに対しオーディオ波形データ及びMIDIデータの両方が割り当てられていてもよい。ただし、MIDIデータはオーディオ波形データに基づき発生される楽音と同様の楽音を発生することのできるデータパターンである。これらの伴奏パターンデータは、セクションごとに異なる１〜複数小節の長さであってよい。なお、スタイルデータ内にオーディオ波形データやMIDIデータを記憶することに限らない。つまり、スタイルデータの記憶場所とオーディオ波形データやMIDIデータの記憶場所とは異なっていてよい。
【００３６】
MIDIデータは所定の基準和音（基準コード）に基づいて作成されており、演奏時に指定される和音（コード）に従って和音変換される。所定の基準和音とは、例えば音名Ｃを根音とする各種和音（Ｃメジャー、Ｃマイナー、Ｃセブンス等）であり、伴奏パターンデータ中の音高を演奏時に任意に指定される和音に合うように変換される。演奏時に指定する和音は可変であってよく、予めノート変換用データに演奏進行順に規定しておいてもよいし、ユーザが自動演奏中に適宜に入力してもよい。なお、ノート変換用データは和音変換の際に用いるテーブル等、和音変換の特性を設定するための情報を記憶していてもよい。
【００３７】
次に、オーディオ再生部８による再生波形信号の生成について説明する。図３は、オーディオ再生部８の機能を説明するための機能ブロック図である。図３において、図中の矢印はデータの流れを表す。
【００３８】
図３に示すように、オーディオ再生部８は、データ読み出し部８ａと時間軸制御部８ｂとを含んでなる。データ読み出し部８ａは、記憶装置４あるいはＲＯＭ２等に記憶されているスタイルデータのうち選択済みのスタイルデータに含まれるオーディオ波形データをパート（トラック）毎に読み出してＲＡＭ３等に設けられたパート別の一時記憶部３ａに書き込む（転送する）。このときに、記憶装置４から一演奏パターン分のオーディオ波形データの最後まで読み出した場合には、当該一演奏パターン分のオーディオ波形データの先頭に戻ってデータ読み出しが繰り返される。ただし、オーディオ波形データの一時記憶部３ａへの書き込み制御及び一時記憶部３ａからの前記書き込んだオーディオ波形データの読み出し制御に係る負荷の大きくなる演奏テンポ、あるいは音質劣化が大きくなる演奏テンポが指定された場合、つまりは推奨テンポ（基準テンポ）とかけ離れた演奏テンポが指定された場合、データ読み出し部８ａは一時記憶部３ａへのオーディオ波形データの書き込み（転送）を停止する。なお、典型的には、記憶装置４等に記憶されるオーディオ波形データは、任意のパートの楽器演奏を任意のテンポで実際に行うことにより得られる波形データを記憶したものである。このように記憶されているオーディオ波形データの演奏テンポを推奨テンポ若しくは基準テンポと言うことにする。
【００３９】
一時記憶部３ａは、例えば書き込まれたオーディオ波形データが古い順に読み出された場合にデータを読み出した分だけ記憶領域の空領域が増加する所謂ＦＩＦＯ（First-In/First-out）バッファメモリとして構成されている。こうしたバッファメモリでは、データ書き込みするアドレスを指し示すデータ書き込みポインタと、データ読み出しするアドレスを指し示すデータ読み出しポインタとを非同期で制御できるようになっている。したがって、データ書き込み速度とデータ読み出し速度とを異ならせて、データの書き込みと読み出しとを同時並行で処理することができる。
【００４０】
時間軸制御部８ｂは、一時記憶部３ａに書き込まれたオーディオ波形データを所与の周波数に従い読み出す。このとき、データの書き込み速度（周波数）と読み出し速度（周波数）の比を変えることにより、元のオーディオ波形データの音高を変えることなく再生時間長を短くしたり長くしたりする時間軸の調整を行うことができる。再生時間長を短くするにはオーディオ波形データの間引きを行い、再生時間長を長くするにはオーディオ波形データの補間を行う。例えば、ユーザが再生演奏のテンポを変更する指示を行ったとき、指示されたテンポに応じてオーディオ波形データのタイムストレッチ制御を行う。こうした波形制御によって音高を変化させずに時間軸を圧縮したり伸張したりするタイムストレッチ制御の方法には種々の方法があるが、それらは公知であることからここでの詳細な説明は省略する。時間軸制御部８ｂからパート別に発生される再生波形信号は、楽音制御回路１０に出力される。
【００４１】
本実施形態において、ＣＰＵ１は、所定条件の下でオーディオ波形データの読み出しを停止するようデータ読み出し部８ａを制御する。データ読み出し部８ａによる記憶装置４等からのオーディオ波形データの読み出しが止められると、一時記憶部３ａにオーディオ波形データが書き込まれなくなる。記憶装置４等からのオーディオ波形データの読み出しを停止する条件は、予め用意された演奏テンポ限界値テーブルに記憶されている。そこで、演奏テンポ限界値テーブルについて説明する。図４は、演奏テンポ限界値テーブルのデータ構成を示す概念図である。
【００４２】
図４に示すように、演奏テンポ限界値テーブルには、スタイル名で示されるスタイルデータ毎に、伴奏パターンデータがオーディオ波形データであるパートの番号、演奏テンポの限界値（倍率）、同時再生時の優先順位、対応するMIDIデータの有無が記憶されている。伴奏パターンデータがオーディオ波形データであるパートの番号は、スタイル名で示されるスタイルデータに含まれる複数パートのうち、伴奏パターンデータとしてオーディオ波形データが割り当てられているパート番号（トラック番号）を示す。
【００４３】
演奏テンポの限界値は、タイムストレッチ制御の処理遅れ等によって楽音の自動演奏に支障を生じさせることのないテンポの限界値や、聴感上音質に支障が現われないテンポの限界値を上限値及び下限値によって示す。本実施形態では、一例として、演奏テンポ限界値は演奏テンポの推奨テンポに対する倍率（又は差であってもよい）によって示されており、例えば上限値を上回る演奏テンポが設定された場合には、一時記憶部３ａを介してのオーディオ波形データの書き込み制御及び読み出し制御に係る負荷が大きいためにタイムストレッチ制御が遅れて自動演奏に支障が生じるものと看做される。下限値を下回る演奏テンポが設定された場合には、タイムストレッチ制御において読み出す波形位置を調整する（ジャンプする）ことに伴う波形接続劣化が著しいものと看做される。すなわち、これら上限値及び下限値は、タイムストレッチ制御に伴う波形制御に影響して前記取得した演奏テンポより遅れた楽音を生成し得る又は音質の低い楽音を生成し得る閾値である。また、これら上限値及び下限値により定義される演奏テンポ限界値は「単独時の限界値」と「複数時の限界値」とがあり、単独時の限界値は伴奏パターンデータがオーディオ波形データであるパートを単独で自動演奏するときに採用され、複数時の限界値は伴奏パターンデータがオーディオ波形データである複数のパートを同時に自動演奏するとき、つまりはタイムストレッチ制御のための処理負荷が単独時に比べて元々大きいときに採用される。
【００４４】
同時再生時の優先順位は、伴奏パターンデータがオーディオ波形データである複数のパートを自動演奏する際に、複数時の限界値（上限値）よりも速い演奏テンポ又は複数時の限界値（下限値）よりも遅い演奏テンポが指示されたと判断された場合に、オーディオ波形データの読み出しを止めて再生波形信号を生成しない対象とするパートを順位によって示すものである。例えば、図４に示したスタイル名「BBBBB」のスタイルデータに基づく自動演奏時に、複数時の限界値（上限値）「1.4」を超える速い演奏テンポが指示された場合には第「２」順位のパート「１６」の再生波形信号が生成されない。また、スタイル名「CCCCC」のスタイルデータに基づく自動演奏時に、複数時の限界値（上限値）「1.0」を超える速い演奏テンポが指示された場合には第「３」順位のパート「１５」の再生波形信号が生成されず、さらに複数時の限界値（上限値）「1.1」を超える速い演奏テンポが指示された場合には（複数時の限界値（上限値）「1.4」を超えていなくとも）第「２」順位のパート「１４」の再生波形信号が生成されない。なお、遅い演奏テンポが指示された場合には、複数時の限界値（下限値）を参照して同様に判断すればよい。
【００４５】
対応するMIDIデータの有無は、伴奏パターンデータとしてオーディオ波形データの他に、当該オーディオ波形データに対応する伴奏を実現するMIDIデータが割り当てられているか否かを示す。「有」の場合には、当該パートにオーディオ波形データとMIDIデータからなる２つの伴奏パターンデータが割り当てられており、その場合には、限界値を超える演奏テンポが指示された場合に、オーディオ波形データの代わりにMIDIデータに基づいて楽音を発生させることができる。なお、オーディオ波形データに対応するMIDIデータが割り当てられている場合には、演奏者がMIDIデータの「有」又は「無」を適宜に設定できてよい。
【００４６】
図３の説明に戻り、オーディオ波形データに基づく楽音の再生時に演奏テンポの変化によって処理負荷が増大する主な要因は、演奏テンポが速くなればなるほどタイムストレッチ制御に係る処理負荷が大きくなることにある。具体的には、オーディオ波形データの一時記憶部３ａへの書き込み速度及び書き込みデータ量、また一時記憶部３ａから前記書きこまれたオーディオ波形データを読み出す速度及び読み出しデータ量が増加することに伴い処理負荷が増す。
【００４７】
そこで、本発明の一実施形態では、演奏テンポの限界値（図４参照）に基づき演奏テンポが特にテンポアップの限界に達したと判定された場合、オーディオ波形データの再生を停止する、すなわち、例えばデータ読み出し部８ａによる記憶装置４等からのオーディオ波形データの読み出しを止めて一時記憶部３ａに対して新たなオーディオ波形データを書き込まないようにする（書き込みを停止する）ことで処理負荷を軽減するようにしている。すなわち、上記の演奏テンポの限界値のうち上限値については、オーディオ波形データの一時記憶部３ａへの書き込み制御及び一時記憶部３ａからの前記書き込まれたオーディオ波形データの読み出し制御に係る負荷が、再生波形信号を生成するのに支障のない負荷に収まる演奏テンポの限界を示すものであると言える。
【００４８】
記憶装置４等からのオーディオ波形データの読み込みを止めている間は、データ書き込みするアドレスを指し示すデータ書き込みポインタについては停止される一方で、データ読み出しするアドレスを指し示すデータ読み出しポインタについては停止させることなくそのまま動かしておく。ただし、データ読み出しポインタを動かしていてもデータの読み出しを行わずに、かわりに無音の再生波形信号を生成し出力する。つまり、オーディオ波形データの読み込みを止めている間に何も出力しないとノイズが出てしまうことがあるため、無音の再生波形信号を生成して出力する。なお、演奏テンポ限界値テーブルにおいて対応するMIDIデータが「有」の場合には（図４参照）、再生波形信号の生成を停止することに伴って実質的にミュートされる楽音に引き続き、対応するMIDIデータに基づいて後続の楽音を発生させるようにするとよい。
【００４９】
また、演奏テンポがテンポ限界値に達した場合に、該当する楽音が直ちにミュート状態になると「ブチッ」といった雑音が発生してしまい聴感上よくないので、楽音制御回路１０は対象の楽音をフェードアウト制御する。一方、楽音制御回路１０は、ミュート状態が解除された場合には対象の楽音をフェードイン制御する。これらフェードアウト制御及びフェードイン制御にかける時間は、指示された演奏テンポに依存しない時間に設定することができる。例えば、フェードアウトにかける時間を「ｔ１」、フェードインにかける時間を「ｔ２」とした場合、「ｔ１」が時間軸制御部８ｂの出力側で例えば「５ｍｓ」などの固定時間に設定されると「ｔ２」も固定時間に設定される。ただし、固定時間にすると音質はよくなるが、演奏テンポによっては時間軸制御部８ｂへの入力量が急激に変化し、極端に負荷が増大する恐れがある。これを避けるために、時間軸制御部８ｂの入力側でタイムストレッチ制御のために一時記憶部３ａにおいて記憶装置４等からのオーディオ波形データの読み込みを止めた時点までに記憶されたオーディオ波形データを用いてフェードアウト制御することが考えられるが、それを採用することなく、演奏テンポによってフェードアウト制御／フェードイン制御にかける時間を変えることのできるようにするとよい。
【００５０】
次に、ＣＰＵ１が実行する「自動演奏処理」について説明する。図５は、自動演奏処理の一実施例を示すフローチャートである。当該処理は、電子楽器の電源オンに応じて開始され、電子楽器の電源オフに応じて終了される。なお、説明を理解し易くするために、自動演奏中にセクション変更やスタイルデータ変更がなされないものとする。また、伴奏パターンデータとしてオーディオ波形データを使用するパートはリズムパートつまりコード（和音）入力に伴って音高変換を行う必要のないパートであり、そのリズムパートがトラック番号「１５」とトラック番号「１６」のそれぞれに割り当てられているものとする。リズムパート以外のパートには、伴奏パターンデータとしてMIDIデータが割り当てられている。この場合、２つの一時記憶部３ａ（Data15とData16と記す）とミュートフラグ（MuteF15とMuteF16と記す）が確保される。さらに、テンポアップされた場合について主に説明する。
【００５１】
ステップＳ１は、初期設定を実行する。初期設定としては、例えばスタイルデータの選択、コード情報（和音情報）の入力方法の設定、初期テンポの設定、一時記憶部３ａ（Data15とData16）の初期化、一時記憶部３ａ（Data15とData16）における各データ書き込みポインタ（共通ポインタであってよい）及びデータ読み出しポインタのリセット、ミュートフラグ（MuteF15とMuteF16）のリセット（０をセット）、自動演奏許可フラグ（RUNフラグと記す）のリセット（０をセット）、現在コード（現在和音）及び直前コード（直前和音）記憶用レジスタの初期化などがある。
【００５２】
ステップＳ２は、スタイルデータの変更やコード情報（和音情報）の入力方法の変更あるいは初期テンポの変更などといった自動演奏に係る設定変更が行われたか否かを判定する。これらの設定変更が行われたと判定した場合には（ステップＳ２のＹＥＳ）、自動演奏停止処理を実行する（ステップＳ３）。自動演奏停止処理では、例えばタイマの停止、RUNフラグのリセット、発音中の全ての楽音の消音などを行う。その後、ステップＳ１の処理に戻る。設定変更が行われていないと判定した場合には（ステップＳ２のＮＯ）、電源オフなどの終了操作が行われたか否かを判定する（ステップＳ４）。
【００５３】
終了操作が行われたと判定した場合には（ステップＳ４のＹＥＳ）、終了処理（ステップＳ５）を実行した後に本処理を終了する。終了処理では、例えばタイマの停止や発音中の全ての楽音の消音などを行う。一方、終了操作が行われていないと判定した場合には（ステップＳ４のＮＯ）、演奏者の鍵盤操作などのユーザ演奏操作つまりはマニュアル演奏操作が行われたか否かを判定する（ステップＳ６）。ユーザ演奏操作が行われたと判定した場合には（ステップＳ６のＹＥＳ）、該演奏操作に対応した楽音の発音や消音などの演奏処理（ステップＳ７）を実行してステップＳ８の処理へ進む。これにより、自動演奏中において演奏者の演奏操作に応じたマニュアル演奏の楽音が反映され得る。ユーザ演奏操作が行われていないと判定した場合には（ステップＳ６のＮＯ）、上記ステップＳ７の処理を行うことなくステップＳ８の処理へ進む。
【００５４】
ステップＳ８は、自動演奏開始指示を受け付けたか否かを判定する。自動演奏開始指示を受け付けたと判定した場合には（ステップＳ８のＹＥＳ）、RUNフラグに「１」をセット、選択済みのスタイルデータの読み出し（ロード）、直前コード及び現在コードのリセット、タイマ起動などの処理（ステップＳ９）を実行してからステップＳ１０の処理へ進む。自動演奏開始指示を受け付けていないと判定した場合には（ステップＳ８のＮＯ）、上記ステップＳ９の処理を行うことなくステップＳ１０の処理へ進む。
【００５５】
ステップＳ１０は、自動演奏停止指示を受け付けたか否かを判定する。自動演奏停止指示を受け付けたと判定した場合には（ステップＳ１０のＹＥＳ）、RUNフラグのリセット（０をセット）、一時記憶部３ａ（Data15とData16）の初期化、ミュートフラグ（MuteF15とMuteF16）のリセット、タイマ停止などの処理（ステップＳ１１）を実行してからステップＳ１２の処理へ進む。自動演奏停止指示を受け付けていないと判定した場合には（ステップＳ１０のＮＯ）、上記ステップＳ１１の処理を行うことなくステップＳ１２の処理へ進む。
【００５６】
ステップＳ１２は、RUNフラグに「１」がセットされているか否かを判定する。RUNフラグに「１」がセットされていないと判定した場合には（ステップＳ１２のＮＯ）、ステップＳ２の処理に戻る。一方、RUNフラグに「１」がセットされていると判定した場合には（ステップＳ１２のＹＥＳ）、自動演奏のために設定されている現在の演奏テンポ情報を取得する（ステップＳ１３）。ステップＳ１４は、現在の演奏テンポ情報の変更等に応じた再生波形信号の作り直しが必要なタイミングであるか否かを判定する。再生波形信号の作り直しが必要なタイミングであると判定した場合には（ステップＳ１４のＹＥＳ）、「オーディオ波形データの読込処理」（ステップＳ１５）を実行してからステップＳ１６の処理へ進む。オーディオ波形データの読込処理については後述する（図６参照）。再生波形信号の作り直しが必要なタイミングでないと判定した場合には（ステップＳ１４のＮＯ）、上記ステップＳ１５の処理を行うことなくステップＳ１６の処理へ進む。
【００５７】
ステップＳ１６は、コード情報（和音情報）の入力を受け付けたか否かを判定する。コード情報の入力態様は初期設定されたコード情報の入力方法（ステップＳ１参照）によって決まり、例えば演奏者による所定鍵域におけるコード（和音）入力操作やコード名の直接入力や予めコード（和音）に対応付けられた番号の指定操作などに従ってコード情報は随時に入力される。コード情報の入力を受け付けたと判定した場合には（ステップＳ１６のＹＥＳ）、現在コード（現在の和音）を直前コード（直前の和音）としてセットし、入力されたコード情報を現在コードにセットする（ステップＳ１７）。ここで、初回コード情報の入力時において直前コードは初期状態（コード情報なし）となる。その後、ステップＳ１８の処理へ進む。コード情報の入力を受け付けていないと判定した場合には（ステップＳ１６のＮＯ）、上記ステップＳ１７の処理を行うことなくステップＳ１８の処理へ進む。コード情報の入力は、例えば予め作成されたコード進行列を演奏テンポに従って順次に読み出すことにより行われてもよいし、演奏者のメロディなどの演奏を元に自動検出されたコードを入力することにより行われてもよい。
【００５８】
ステップＳ１８は、伴奏パターンデータを元に生成した再生波形信号を再生するタイミングか否かを判定する。再生波形信号を再生するタイミングでないと判定した場合には（ステップＳ１８のＮＯ）、ステップＳ２の処理へ戻る。再生波形信号を再生するタイミングであると判定した場合には（ステップＳ１８のＹＥＳ）、「楽音生成処理」（ステップＳ１９）を実行してから、ステップＳ２の処理へ戻る。楽音生成処理については後述する（図１０参照）。
【００５９】
「オーディオ波形データの読込処理」（図５のステップＳ１５参照）について、図６〜図９を用いて説明する。図６〜図９は、オーディオ波形データの読込処理の一実施例を示すフローチャートである。ただし、ここでは図示の都合上、一連のオーディオ波形データの読込処理を４つに分けて示してある。
【００６０】
図６に示すように、ステップＳ２１は、読み出したスタイルデータから推奨テンポ（基準テンポ）情報を取得する。ステップＳ２２は、テンポ倍率を求める。テンポ倍率は、現在の演奏テンポ情報の推奨テンポ情報に対する倍率（比）を算出することにより求まる。ステップＳ２３は、読込パートを「なし」に初期設定する。ステップＳ２４は、ミュートフラグ（MuteF15とMuteF16）が共にリセット状態「０」であるか否かを判定する。ミュートフラグの何れか一方でもリセット状態にないと判定した場合には（ステップＳ２４のＮＯ）、図７に示すステップＳ４１の処理にジャンプする。ミュートフラグ（MuteF15とMuteF16）が共にリセット状態であると判定した場合には（ステップＳ２４のＹＥＳ）、テンポ倍率がパート15及びパート16の各複数時の限界値（この例では上限値、以下同じ）よりも小さいか否かを判定する（ステップＳ２５）。なお、テンポ倍率と各限界値との比較は図４に示した演奏テンポ限界値テーブルに基づき行われる。テンポ倍率がパート15及びパート16の各複数時の限界値よりも小さいと判定した場合には（ステップＳ２５のＹＥＳ）、読込パートを「パート15とパート16」に設定して（ステップＳ２６）、図９に示すステップＳ３４の処理に進む。
【００６１】
テンポ倍率がパート15及びパート16の各複数時の限界値よりも小さくないと判定した場合には（ステップＳ２５のＮＯ）、テンポ倍率がパート15及びパート16のうち優先順位の高いいずれかのパートの単独時の限界値よりも小さいか否かを判定する（ステップＳ２７）。テンポ倍率がパート15及びパート16のうち優先順位の高いいずれかのパートの単独時の限界値よりも小さいと判定した場合には（ステップＳ２７のＹＥＳ）、優先順位の低い方のパートのミュートフラグを「１」にセットすると共に（ステップＳ２８）、読込パートを優先順位の高いいずれかのパートにセットする（ステップＳ２９）。それから、図９に示すステップＳ３４の処理に進む。
【００６２】
一方、テンポ倍率がパート15及びパート16のうち優先順位の高いいずれかのパートの単独時の限界値よりも小さくないと判定した場合には（ステップＳ２７のＮＯ）、テンポ倍率がパート15及びパート16のうち優先順位の低いいずれかのパートの単独時の限界値よりも小さいか否かを判定する（ステップＳ３０）。テンポ倍率がパート15及びパート16のうち優先順位の低いいずれかのパートの単独時の限界値よりも小さいと判定した場合には（ステップＳ３０のＹＥＳ）、優先順位の高い方のパートのミュートフラグを「１」にセットすると共に（ステップＳ３１）、読込パートを優先順位の低いいずれかのパートにセットする（ステップＳ３２）。その後、図９に示すステップＳ３４の処理に進む。テンポ倍率がパート15及びパート16のうち優先順位の低いいずれかのパートの単独時の限界値よりも小さくないと判定した場合には（ステップＳ３０のＮＯ）、ミュートフラグ（MuteF15とMuteF16）を共に「１」にセットして（ステップＳ３３）、本処理を終了する。
【００６３】
図７に示すように、ステップＳ４１は、ミュートフラグ（MuteF15とMuteF16）の何れかがリセット状態「０」であるか否かを判定する。ミュートフラグの何れかがリセット状態であると判定した場合には（ステップＳ４１のＹＥＳ）、図８に示すステップＳ５４の処理に進む。
【００６４】
ミュートフラグの両方ともがセット状態「１」であると判定した場合には（ステップＳ４１のＮＯ）、テンポ倍率がパート15及びパート16の各複数時の限界値よりも小さいか否かを判定する（ステップＳ４２）。テンポ倍率がパート15及びパート16の各複数時の限界値よりも小さいと判定した場合には（ステップＳ４２のＹＥＳ）、ミュートフラグ（MuteF15とMuteF16）をリセットしてMuteF15とMuteF16のいずれをもリセット状態にすると共に（ステップＳ４３）、読込パートを「パート15とパート16」に設定し（ステップＳ４３）、図９に示すステップＳ３４の処理に進む。
【００６５】
テンポ倍率がパート15及びパート16の各複数時の限界値よりも小さくないと判定した場合には（ステップＳ４２のＮＯ）、テンポ倍率がパート15及びパート16の各単独時の限界値より小さいか否かを判定する（ステップＳ４５）。テンポ倍率がパート15及びパート16の各単独時の限界値より小さいと判定した場合には（ステップＳ４５のＹＥＳ）、優先順位の高い方のパートのミュートフラグをリセットすると共に（ステップＳ４６）、読込パートを優先順位の高いいずれかのパートにセットして（ステップＳ４７）、図９に示すステップＳ３４の処理に進む。
【００６６】
テンポ倍率がパート15及びパート16の各単独時の限界値より小さくないと判定した場合には（ステップＳ４５のＮＯ）、テンポ倍率がパート１５の単独時の限界値より小さいか否かを判定する（ステップＳ４８）。テンポ倍率がパート15の単独時の限界値より小さいと判定した場合には（ステップＳ４８のＹＥＳ）、セット状態のMuteF15をリセットすると共に（ステップＳ４９）、読込パートをパート15にセットして（ステップＳ５０）、図９に示すステップＳ３４の処理に進む。
【００６７】
テンポ倍率がパート15の単独時の限界値より小さくないと判定した場合には（ステップＳ４８のＮＯ）、テンポ倍率がパート16の単独時の限界値より小さいか否かを判定する（ステップＳ５１）。テンポ倍率がパート16の単独時の限界値より小さいと判定した場合には（ステップＳ５１のＹＥＳ）、セット状態のMuteF16をリセットすると共に（ステップＳ５２）、読込パートをパート１６にセットして（ステップＳ５３）、図９に示すステップＳ３４の処理に進む。テンポ倍率がパート16の単独時の限界値より小さくないと判定した場合には（ステップＳ５１のＮＯ）、本処理を終了する。
【００６８】
図８に示すように、ステップＳ５４は、テンポ倍率がパート15及びパート16の各複数時の限界値よりも小さいか否かを判定する。テンポ倍率がパート15及びパート16の各複数時の限界値よりも小さいと判定した場合には（ステップＳ５４のＹＥＳ）、セット状態のミュートフラグをリセットしてMuteF15とMuteF16のいずれをもリセット状態にすると共に（ステップＳ５５）、読込パートを「パート15とパート16」に設定し（ステップＳ５６）、図９に示すステップＳ３４の処理に進む。
【００６９】
テンポ倍率がパート15及びパート16の各複数時の限界値よりも小さくないと判定した場合には（ステップＳ５４のＮＯ）、テンポ倍率がミュートフラグがリセット状態であるいずれかのパート（15又は16）の単独時の限界値より小さいか否かを判定する（ステップＳ５７）。テンポ倍率がミュートフラグがリセット状態であるパートの単独時の限界値より小さいと判定した場合には（ステップＳ５７のＹＥＳ）、読込パートをミュートフラグがリセット状態のパートにセットして（ステップＳ５８）、図９に示すステップＳ３４の処理に進む。
【００７０】
テンポ倍率がミュートフラグがリセット状態であるパートの単独時の限界値より小さくないと判定した場合には（ステップＳ５７のＮＯ）、テンポ倍率がミュートフラグがセット状態であるいずれかのパート（15又は16）の単独時の限界値より小さいか否かを判定する（ステップＳ５９）。テンポ倍率がミュートフラグがセット状態であるパートの単独時の限界値より小さいと判定した場合には（ステップＳ５９のＹＥＳ）、読込パートをミュートフラグがセット状態のパートにセットする（ステップＳ６０）、リセット状態のミュートフラグをセットする（ステップＳ６１）、読込パートのミュートフラグをリセットする（ステップＳ６２）。その後、図９に示すステップＳ３４の処理に戻る。テンポ倍率がミュートフラグがセット状態であるパートの単独時の限界値より小さくないと判定した場合には（ステップＳ５９のＮＯ）、リセット状態のミュートフラグをセットする（ステップＳ６３）。その後、本処理を終了する。
【００７１】
図９に示すように、ステップＳ３４は、上述のようにして設定された読込パートに「パート15とパート16」がセットされているか否かを判定する。読込パートに「パート15とパート16」がセットされていると判定した場合には（ステップＳ３４のＹＥＳ）、記憶装置４等からパート15とパート16の各波形データを現在のタイミングにあった位置からそれぞれ読み出して、パート15とパート16の各一時記憶部３ａ（Data15とData16）に対してそれぞれのデータ書き込みポインタによって示される記憶位置から上書きすると共に、それぞれのデータ書き込みポインタを更新する（ステップＳ３５）。その後、本処理を終了する。
【００７２】
読込パートに「パート15とパート16」がセットされていないと判定した場合には（ステップＳ３４のＮＯ）、読込パートに「パート15」がセットされているか否かを判定する（ステップＳ３６）。読込パートに「パート15」がセットされていると判定した場合には（ステップＳ３６のＹＥＳ）、記憶装置４等からパート15の波形データを現在のタイミングにあった位置から読み出して、パート15の一時記憶部３ａ（Data15）に対してデータ書き込みポインタによって示される記憶位置から上書きすると共に、データ書き込みポインタを更新する（ステップＳ３７）。このようにData15へのオーディオ波形データの書き込み処理にあわせて、パート16の一時記憶部（Data16）と共通のデータ書き込みポインタを更新する。その際には、記憶装置４等からの波形データの読み出しを止めることによってパート16の一時記憶部（Data16）へのオーディオ波形データの書き込み処理が停止されることから、Data15においてオーディオ波形データが上書きされた区間に対応するData16の該当区間に記憶されていたオーディオ波形データを消去する。その後、本処理を終了する。
【００７３】
読込パートに「パート15」がセットされていないと判定した場合には（ステップＳ３６のＮＯ）、読込パートに「パート16」がセットされているか否かを判定する（ステップＳ３８）。読込パートに「パート16」がセットされていないと判定した場合には（ステップＳ３８のＮＯ）、本処理を終了する。
【００７４】
読込パートに「パート16」がセットされていると判定した場合には（ステップＳ３８のＹＥＳ）、記憶装置４等からパート16のオーディオ波形データを現在のタイミングにあった位置から読み出して、パート16の一時記憶部（Data16）に対してData16のデータ書き込みポインタによって示される記憶位置から上書きすると共に、Data16のデータ書き込みポインタを更新する（ステップＳ３９）。このようにData16へのオーディオ波形データの書き込み処理にあわせて、パート15の一時記憶部（Data15）と共通のデータ書き込みポインタを更新する。その際には、記憶手段４からのオーディオ波形データの読み出しを止めることによってパート15の一時記憶部（Data15）へのオーディオ波形データの書き込み処理が停止されることから、Data16においてオーディオ波形データが上書きされた区間に対応するData15の該当区間に記憶されていたオーディオ波形データを消去する。その後、本処理を終了する。
【００７５】
このように、オーディオ波形データの読込処理では、読込パートであるパートについては記憶装置４等からオーディオ波形データを読み出して一時記憶部３ａへの書き込みを行うが、読込パートでないパートについては記憶装置４等からオーディオ波形データを読み出さずに一時記憶部３ａへの書き込みを行わない。上述したように、読込パートはテンポ倍率と演奏テンポの限界値によって決まることからすれば、指定された演奏テンポに応じた再生波形信号を生成するために必要なタイムストレッチ制御に係る処理負荷、つまりはオーディオ波形データの一時記憶部３ａへの書き込み制御及び一時記憶部３ａからの前記書き込まれたオーディオ波形データの読み出し制御に係る負荷が大きい、あるいは波形接続劣化が大きいと判定されるパートは読込パートにセットされない。
【００７６】
次に、「楽音生成処理」（図５のステップＳ１９参照）について、図１０及び図１１を用いて説明する。図１０及び図１１は、楽音生成処理の一実施例を示すフローチャートである。ただし、ここでは図示の都合上、一連の楽音生成処理を２つに分けて示してある。
【００７７】
図１０に示すように、ステップＳ７１は、スタイルデータに含まれる伴奏パターンデータを割り当て済みの自動演奏パートのいずれかを対象パートとする。ステップＳ７２は、対象パートの伴奏パターンデータがMIDIデータであるか否かを判定する。対象パートの伴奏パターンデータがMIDIデータであると判定した場合には（ステップＳ７２のＹＥＳ）、対象パートのMIDIデータから現在のタイミングにあるイベントデータ（音符イベント）を読み出し、直前のコード（和音）と現在のコード（和音）を基に必要に応じて音高を変更した再生波形信号を生成し出力する（ステップＳ７９）。その後、図１１に示すステップＳ８５の処理へ進む。
【００７８】
対象パートの伴奏パターンデータがMIDIデータでないつまりオーディオ波形データであると判定した場合には（ステップＳ７２のＮＯ）、対象パートはパート15であるか否かを判定する（ステップＳ７３）。対象パートがパート15でないと判定した場合には（ステップＳ７３のＮＯ）、図１１に示すステップＳ８０の処理へ進む。一方、対象パートがパート15であると判定した場合には（ステップＳ７３のＹＥＳ）、MuteF15がリセット状態「０」であるか否かを判定する（ステップＳ７４）。MuteF15がリセット状態であると判定した場合には（ステップＳ７４のＹＥＳ）、Data15に書き込まれたオーディオ波形データを現在の演奏テンポ情報に合うように読み出してタイムストレッチ制御を行うことにより再生波形信号を生成し、出力する（ステップＳ７８）。その後、図１１に示すステップＳ８５の処理へ進む。
【００７９】
MuteF15がセット状態にあると判定した場合には（ステップＳ７４のＮＯ）、「フェードアウト処理」を実行する（ステップＳ７５）。フェードアウト処理については後述する（図１２参照）が、このフェードアウト処理は場合によって行わなくてもよい。ステップＳ７６は、対象パートのオーディオ波形データに対応するMIDIデータがあるか否かを判定する。対象パートのオーディオ波形データに対応するMIDIデータがないと判定した場合には（ステップＳ７６のＮＯ）、図１１に示すステップＳ８５の処理へ進む。対象パートのオーディオ波形データに対応するMIDIデータがあると判定した場合には（ステップＳ７６のＹＥＳ）、対象パートのオーディオ波形データに対応するMIDIデータから現在のタイミングにあるイベントデータ（音符イベント）を読み出し、直前のコードと現在のコードを基に必要に応じて音高を変更し、再生波形信号を生成し出力する（ステップＳ７７）。その後、図１１に示すステップＳ８５の処理へ進む。
【００８０】
図１１に示すように、ステップＳ８０は、MuteF16はリセット状態「０」であるか否かを判定する。MuteF16がリセット状態であると判定した場合には（ステップＳ８０のＹＥＳ）、Data16に書き込まれた波形データを現在の演奏テンポ情報にあうように読み出してタイムストレッチ制御を行って再生波形信号を生成し出力する（ステップＳ８４）。その後、ステップＳ８５の処理へ進む。一方、MuteF16がセット状態にあると判定した場合には（ステップＳ８０のＮＯ）、「フェードアウト処理」を実行する（ステップＳ８１）。フェードアウト処理については後述する（図１２参照）が、このフェードアウト処理は場合によって行わなくてもよい。
【００８１】
ステップＳ８２は、対象パートのオーディオ波形データに対応するMIDIデータがあるか否かを判定する。このオーディオ波形データに対応するMIDIデータとは、オーディオ波形データの演奏パターン（伴奏パターン）とそっくり同一であることを要せず、オーディオ波形データの演奏パターン（伴奏パターン）に代替し得る演奏パターン（伴奏パターン）を持つMIDIデータであればよい。対象パートのオーディオ波形データに対応するMIDIデータがないと判定した場合には（ステップＳ８２のＮＯ）、ステップＳ８５の処理へ進む。対象パートのオーディオ波形データに対応するMIDIデータがあると判定した場合には（ステップＳ８２のＹＥＳ）、対象パートのオーディオ波形データに対応するMIDIデータから現在のタイミングにあるイベントデータ（音符イベント）を読み出し、直前のコードと現在のコードを基に必要に応じて音高を変更した再生波形信号を生成し出力する（ステップＳ８３）。
【００８２】
ステップＳ８５は、上記処理を行っていない自動演奏パートがあるか否かを判定する。上記処理を行っていない自動演奏パートがあると判定した場合には（ステップＳ８５のＮＯ）、上記処理を行っていない自動演奏パートを対象パートとして（ステップＳ８６）、図１０に示すステップＳ７２の処理に戻って上記したステップＳ７２〜Ｓ８６までの処理を繰り返す。上記処理を行っていない自動演奏パートがないと判定した場合には（ステップＳ８５のＹＥＳ）、本処理を終了する。
【００８３】
次に、「フェードアウト処理」（図１０のステップＳ７５及び図１１のステップＳ８１参照）について説明する。図１２は、フェードアウト処理の一実施例を示すフローチャートである。
【００８４】
ステップＳ９１は、現在の演奏テンポ情報に基づきフェードアウトの時間範囲を算出する。ステップＳ９２は、現在のタイミングはフェードアウトの時間範囲内であるか否かを判定する。現在のタイミングはフェードアウトの時間範囲内でないと判定した場合には（ステップＳ９２のＮＯ）、「無音」の再生波形信号を生成し、現在の演奏テンポ情報にあわせて出力して（ステップＳ９６）、本処理を終了する。
【００８５】
他方、現在のタイミングはフェードアウトの時間範囲内であると判定した場合には（ステップＳ９２のＹＥＳ）、ミュートフラグ（MuteF15とMuteF16）に基づきミュート対象のパートがパート15（MuteF15が「１」である場合）又はパート16（MuteF16が「１」である場合）のいずれであるかを判定する（ステップＳ９３）。ミュート対象パートがパート15であると判定した場合には（ステップＳ９３のＹＥＳ）、MuteF15に「１」がセットされる直前までにData15に書き込まれたオーディオ波形データを、現在の演奏テンポ情報にあうように読み出してタイムストレッチ制御を行って再生波形信号を生成すると共に、音量を現在のタイミングのフェードアウトの時間範囲内での時間位置に応じて調整しながら再生波形信号を出力する（ステップＳ９４）。他方、ミュート対象パートがパート16であると判定した場合には（ステップＳ９３のＮＯ）、MuteF16に「１」がセットされる直前までにData16に書き込まれたオーディオ波形データを、現在の演奏テンポ情報に合うように読み出してタイムストレッチ制御を行うことにより再生波形信号を生成すると共に、音量を現在のタイミングのフェードアウトの時間範囲内での時間位置に応じて調整しながら再生波形信号を出力する（ステップＳ９５）。
【００８６】
楽音制御回路１０では、波形再生時に或るまとまったサンプル数分の再生波形信号を一度に受け取り、それを自動的に直接１サンプルずつ取り出して、MIDIデータのイベントに応じて生成された複数トラック分の再生波形信号を信号混合回路（図示せず）により混合（加算）してD/A変換回路（図示せず）に供給する。また、楽音制御回路１０は、再生波形信号を混合する際に各トラックの音量を制御するための乗算回路（図示せず）を有する。さらに、楽音制御回路１０は、１サンプルずつ読み出した再生波形信号を音量制御するための乗算回路（図示せず）をトラック毎に有しており、そこに「音量０」を示すパラメータをＣＰＵ１が指示するようにすればフェードアウト制御を実現することができる。フェードイン制御の実現には、ユーザ操作の値や伴奏パターンデータにおける設定値など目標音量を示す情報をミュート解除時にＣＰＵ１が供給するようにすればよい。
【００８７】
なお、上述した実施例においてはテンポアップされたときにオーディオ波形データの再生を制限する制御を例に説明したが、テンポダウンされたときにもオーディオ波形データの再生を制限するようにするとよい。演奏テンポが推奨テンポ（基準テンポ）よりかなり遅く設定された場合には、ＣＰＵ１の負荷の点では問題ないが音質が劣化する点では問題である。そこで、演奏テンポが遅くなる場合における演奏テンポの限界値（図４に示した下限値）を設定しておき、これによってオーディオ波形データに基づく楽音の発生を実行するか否かを判断することのできるようにしてよい。すなわち、図４に示したように演奏テンポの限界値として上限値と下限値とを設定しておき、設定された演奏テンポに基づくテンポ倍率がこれらの範囲内に収まる場合にオーディオ波形データの読み出しを継続させ、これらの範囲を外れた場合にオーディオ波形データの読み出しを停止させるようにするとよい。
【００８８】
なお、上記実施例では、演奏テンポと基準テンポ（推奨テンポ）との関係（例えば演奏テンポの基準テンポに対する比）に応じて、オーディオ波形データの再生を制限すべきか否かが判定され、再生を制限すべきと判定された場合は、該オーディオ波形データの再生を停止するようにしているが、これに限らず、再生処理の分解能を下げてオーディオ波形データの再生を持続するようにしてもよい。例えば、再生処理の分解能を下げるために、時間軸制御部８ｂによるオーディオ波形データの時間軸伸縮制御の分解能を下げるようにするとよい。例えば、オーディオ波形データの時間軸伸縮制御の分解能を下げることは、時間軸伸縮制御の対象として記憶装置４から読み出すオーディオ波形データのサンプリング周波数を低下させることに基づき実現できる。このように、記憶装置４から読み出すオーディオ波形データのサンプリング周波数を下げ、これに伴い時間軸伸縮制御の分解能を下げることにより、ＣＰＵ１の処理負荷を軽減することができる。この場合は、時間軸伸縮制御の分解能の低下によりデジェネレートされたオーディオ波形データが生成されることになるが、全く再生停止してしまう場合に比べて、演奏音を出すことができるので、幾分有利かもしれない。例えば、再生停止したオーディオ波形データに代替し得る同じ演奏パートの同じ又は似たようなＭＩＤＩデータが存在していない場合は、そのようなデジェネレートされたオーディオ波形データの生成が有利に活用し得る。そのためには、具体的には、上記実施例における各パートのミュートフラグのセット状態に応答して、当該パートについて時間軸伸縮制御の分解能を下げる制御を行えばよい。
【００８９】
なお、請求の範囲で言う「波形データ」とは、以上説明した実施例及び変形例で言う「オーディオ波形データ」に対応している。また、以上説明した実施例及び変形例において、スタイルデータと共にオーディオ波形データを記憶している記憶装置４（あるいはＲＯＭ２又はその他の記憶手段）は、請求の範囲で言う「任意の基準テンポに従う音楽演奏の波形データを記憶する記憶部」として機能する。また、ＣＰＵ１及びそれによって実行されるステップＳ２１（図６）等による処理は、請求の範囲で言う「可変の演奏テンポを指定する情報を取得する取得部」として機能する。また、ＣＰＵ１及びそれによって実行されるステップＳ２２，Ｓ２５，Ｓ２７，Ｓ２８，Ｓ３０，Ｓ３１，Ｓ３３（図６）等による処理は、請求の範囲で言う「前記演奏テンポと前記基準テンポとの関係に応じて、前記波形データの再生を制限すべきか否かを判定する判定部」として機能する。また、オーディオ再生部８、ＣＰＵ１及びそれによって実行されるステップＳ７４，Ｓ７５，Ｓ７８（図１０）、ステップＳ８０，Ｓ８１，Ｓ８４（図１１）等による処理は、請求の範囲で言う「前記記憶部に記憶された前記波形データを再生するオーディオ再生部であって、前記演奏テンポに従って前記波形データを再生するために、前記演奏テンポと前記基準テンポとの関係に応じて、再生すべき前記波形データの時間軸伸縮制御を行うものであり、かつ、前記判定部が再生を制限すべきと判定した場合は、前記波形データの再生を停止すること及び再生処理の分解能を下げて前記波形データの再生を持続することの一方を行うように構成された前記オーディオ再生部」として機能する。
【００９０】
また、上述した実施例におけるテンポアップされたときにオーディオ波形データの再生を制限する制御に関与する前記ＣＰＵ１及びそれによって実行されるステップＳ２２，Ｓ２５，Ｓ２７，Ｓ２８，Ｓ３０，Ｓ３１，Ｓ３３（図６）等による処理は、請求の範囲で言う「前記演奏テンポが前記基準テンポに比べて速過ぎるという所定の第１の条件を充足する場合、前記波形データの再生を制限すべきと判定する判定部」として機能し、これに応じた前記ＣＰＵ１及びステップＳ７４，Ｓ７５，Ｓ７８（図１０）、ステップＳ８０，Ｓ８１，Ｓ８４（図１１）等による処理は、請求の範囲で言う「前記判定部による前記第１の条件に基づく再生を制限すべきとの判定に応じて、前記波形データの再生を停止すること及び再生処理の分解能を下げて前記波形データの再生を持続することの一方を行うオーディオ再生部」として機能する。
【００９１】
また、上述した変形例におけるテンポダウンされたときにオーディオ波形データの再生を制限する制御に関与するＣＰＵ１及び各ステップの処理は、請求の範囲で言う「前記演奏テンポが前記基準テンポに比べて遅過ぎるという所定の第２の条件を充足する場合、前記波形データの再生を制限すべきと判定する判定部」として機能し、かつ、「前記判定部による前記第２の条件に基づく再生を制限すべきとの判定に応じて、前記波形データの再生を停止することを行うオーディオ再生部」として機能する。
【００９２】
また、上記実施例におけるＭＩＤＩ音源部９及びこれに関連するＣＰＵ１による処理は、請求の範囲で言う「ＭＩＤＩ形式データのような楽音発生命令データに基づき楽音波形を生成する楽音発生部」として機能し、オーディオ再生部８、ＣＰＵ１及びステップＳ７７（図１０）等の処理は、請求の範囲で言う「前記判定部による再生を制限すべきとの判定に応じて、前記波形データの再生を停止することを行い、かつ、前記楽音発生部は、前記再生停止する波形データに対応する楽音波形を、前記楽音発生命令データに基づき生成するオーディオ再生部」として機能する。
【００９３】
以上のように、本発明に係る自動演奏装置によると、任意の基準テンポに従って演奏されたオーディオ波形データに基づいて任意の演奏テンポのオーディオ波形データを生成するために時間軸伸縮制御を行う場合に、取得した演奏テンポと基準テンポとの関係に基づいて該オーディオ波形データの再生を制限するか否かを判定する。ここで、演奏テンポと前記基準テンポとの間に、時間軸伸縮制御の処理の遅れの影響により、該演奏テンポよりも遅れた楽音を生成させ得るような、又は音質の低い楽音を生成させ得るような、あるいは処理システムをフリーズさせるような、乖離がある場合に、該オーディオ波形データの再生を制限すべきと判定される。オーディオ波形データの再生を制限すべきと判定された場合、該オーディオ波形データの再生を停止すること及び再生処理の分解能を下げて該オーディオ波形データの再生を持続することの一方が行われる。演奏テンポと基準テンポとの関係が、処理の遅延又は音質の劣化を来すような演奏テンポでオーディオ波形データを再生することになるような関係である場合、該オーディオ波形データの再生を停止することにより、該所望の演奏テンポよりも遅れた楽音の生成あるいはノイズ性の断続的な音切れ若しくは音質の著しく低下した楽音の生成等の問題を解決することができ、さらには、処理システムがフリーズすることを防止してフリーズに伴う種々の不都合が発生することを未然に防止することができる。一方、再生処理の分解能を下げることは、例えば、波形データの時間軸伸縮制御の分解能を下げることからなる。このように、再生処理の分解能を下げるにより、処理の遅れを防ぎ、所望の演奏テンポから遅れることを防止することができる。
【００９４】
以上、図面に基づいて実施形態の一例を説明したが、本発明はこれに限定されるものではなく、様々な実施形態が可能であることは言うまでもない。例えば、スタイルデータが伴奏パターンデータとしてオーディオ波形データと当該オーディオ波形データに対応するMIDIデータとを有する場合、上述した実施例では、オーディオ波形データの読み出しを停止することによりオーディオ波形データに基づく楽音を発生させない代わりに、MIDIデータの再生により楽音を発生させるようにしたがこれに限らない（図１０のステップＳ７９参照）。例えば、自動演奏の開始にあわせてMIDIデータに基づく楽音生成制御を開始させておき、演奏テンポによってMIDIデータに基づき生成される楽音をミュートするかミュートしないかを制御するようにしてもよい。すなわち、演奏テンポがオーディオ波形データに基づく楽音発生に影響がないテンポであれば、MIDIデータに基づき生成された楽音をミュートしておき、オーディオ波形データに基づく楽音を発生させる。他方、演奏テンポがオーディオ波形データに基づく楽音の発生に影響するテンポであれば、MIDIデータに基づき生成された楽音のミュートを解除してMIDIデータに基づき生成された楽音を発生させる。
【００９５】
なお、この自動演奏装置を電子楽器に適用する場合、電子楽器は鍵盤楽器の形態に限らず、弦楽器や管楽器、あるいは打楽器等どのようなタイプの形態でもよい。
【００９６】
なお、自動演奏の開始／停止は再生／停止ボタンのユーザ操作に応じて指示されるものに限らず、ユーザ演奏操作の開始を自動検出することにより自動演奏の開始を指示し、ユーザ演奏操作の終了を自動検出することにより（例えば１０秒程度演奏入力がない場合など）自動演奏の停止を指示するようにしてもよい。自動演奏の停止が指示された場合、直ちに自動演奏を停止するようにしてもよいし、あるいは伴奏パターンデータを最後まで若しくは適当な音の区切れ目などまで自動演奏を行ってから停止するようにしてもよい。
【図１】
2014003072.tif 000003
【図２】
2014003072.tif 000004
【図３】
2014003072.tif 000005
【図４】
2014003072.tif 000006
【図５】
2014003072.tif 000007
【図６】
2014003072.tif 000008
【図７】
2014003072.tif 000009
【図８】
2014003072.tif 000010
【図９】
2014003072.tif 000011
【図１０】
2014003072.tif 000012
【図１１】
2014003072.tif 000013
【図１２】
2014003072.tif 000014
【国際調査報告】
2014003072.tif 000015
2014003072.tif 000016