(57)【特許請求の範囲】
【請求項１】
伴奏音発生用データと基準演奏データとからなる楽曲データを記憶する手段と、
テンポクロック発生手段と、
該テンポクロック発生手段が発生するテンポクロックに基づいて前記楽曲データを読み出す読出手段と、
該読出手段によって、読み出された伴奏音発生用データを入力して伴奏音を発生する伴奏音発生手段と、
演奏者の演奏に対応してリアルタイム演奏データを発生する演奏手段と、
前記楽曲データ読み出し時間を分割して設定された判定区間毎に、該判定区間時間中に前記演奏手段が発生したリアルタイム演奏データと前記読出手段によって読み出された基準演奏データとの一致度合いであるポイントを算出する比較手段と、
比較手段が今回の判定区間に算出したポイントと比較手段が前回の判定区間に算出した旧ポイントとの比較結果に基づいて前記テンポクロック発生手段が発生するテンポクロックの周期を増加または減少させるテンポ制御手段と、
を備えたことを特徴とする自動伴奏装置。
【請求項２】
前記テンポ制御手段は、前記増加または減少させたテンポクロックの周期が、所定の上限値乃至下限値の範囲から外れた場合、該周期を前記上限値または下限値に修正することを特徴とする請求項１に記載の自動伴奏装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、電子楽器などの楽器の演奏を自動演奏用のデータによる自動演奏データ伴奏する自動伴奏装置に関する。
【０００２】
【従来の技術】
現在、自動演奏による伴奏で歌唱の伴奏をするカラオケ装置が普及している。また、最近は自動伴奏で楽器、特に電子楽器の演奏の伴奏をする装置も提案されている。
【０００３】
【発明が解決しようとする課題】
しかし、従来のカラオケ装置では、マニュアルでテンポを変更しない限り、演奏者の演奏速度や演奏技量に拘らず所定のテンポで伴奏が進行するため、演奏者が伴奏について行けなくなったり、伴奏が遅すぎて演奏を楽しめなかったりする欠点があった。
【０００４】
この発明は、演奏者の巧拙を検出して、伴奏音のテンポを制御することのできる自動伴奏装置を提供することを目的とする。
【０００５】
【課題を解決するための手段】
この発明は、伴奏音発生用データと基準演奏データとからなる楽曲データを記憶する手段と、テンポクロック発生手段と、該テンポクロック発生手段が発生するテンポクロックに基づいて前記楽曲データを読み出す読出手段と、該読出手段によって読み出された伴奏音発生用データを入力して伴奏音を発生する伴奏音発生手段と、演奏者の演奏に対応してリアルタイム演奏データを発生する演奏手段と、前記楽曲データ読み出し時間を分割して設定された判定区間毎に、該判定区間中に前記演奏手段が発生したリアルタイム演奏データと前記読出手段によって読み出された基準演奏データとの一致度合いであるポイントを算出する比較手段と、比較手段が今回の判定区間に算出したポイントと比較手段が前回の判定区間に算出した旧ポイントとの比較結果に基づいて前記テンポクロック発生手段が発生するテンポクロックの周期を増加または減少させるテンポ制御手段と、を備えたことを特徴とする。
また、この発明は、前記テンポ制御手段は、前記増加または減少させたテンポクロックの周期が、所定の上限値乃至下限値の範囲から外れた場合、該周期を前記上限値または下限値に修正することを特徴とする。
【０００６】
この発明では、楽曲データに伴奏音発生用データと基準演奏データを記憶している。伴奏音発生用データは、音源手段などを含む伴奏音発生手段に供給して伴奏音を発生するためのデータであり、基準演奏データは前記伴奏にのって演奏されるメロディなどの標準的演奏データである。楽曲データ読み出し時間を分割して設定された判定区間毎に、判定区間時間中に演奏手段が発生したリアルタイム演奏データと前記基準演奏データとの一致度合いであるポイントを比較手段が算出する。テンポ制御部は、比較手段が今回の判定区間に算出したポイントと比較手段が前回の判定区間に算出した旧ポイントとの比較結果に基づいてテンポクロック発生手段が発生するテンポクロックの周期を増加または減少させることで伴奏のテンポを制御する。テンポ制御は、たとえば、今回のポイントと前回のポイントがよく一致している場合にはテンポを上げ、不一致の部分が多い場合にはテンポを下げるなどである。このように、基準となる演奏データと実際の演奏データとの一致度合いであるポイントを算出して演奏者の巧拙を判断し、今回のポイントと前回のポイントとの一致に基づいてテンポを上下するようにしたことにより、精度の高いテンポ制御を実現することができる。
【０００７】
【発明の実施の形態】
図１はこの発明の実施形態である自動伴奏装置のブロック図である。自動伴奏装置は、シーケンサ２，比較部３，テンポ設定部４，メモリ５および音源１１，サウンドシステム１２で構成されており、このうち、シーケンサ２，比較部３，テンポ設定部４，メモリ５はコンピュータ装置およびソフトウェアで構成することができる。メモリ５には図２に示すような楽曲データが記憶されており、シーケンサ２がテンポ設定部４から入力されるテンポクロックに基づいてこれを読み出す。読み出されたデータは比較部３および音源１１に入力される。比較部３はシーケンサ２から入力されるガイドメロディの音高データとＭＩＤＩキーボード１０から入力されるリアルタイム演奏の音高データとを比較し、その比較結果をテンポ設定部４に伝達する。テンポ設定部４は、入力された比較結果に基づいて判定区間（前回の強迫タイミングから今回の強迫タイミングまでの区間）における、ガイドメロディの音高データ及びガイドメロディの音高データの一致度合いを示すポイントを、演奏している曲の強迫タイミング毎に算出する。そして、テンポ設定部４は、前回算出したポイントと今回算出したポイントを比較して、比較結果に応じてテンポクロックの周期を制御する。たとえば、前回のポイントと今回のポイントがよく一致していればテンポを上昇させ、一致の度合いが低ければテンポを低下させるなどの制御を行う。テンポ設定部４はテンポクロック発振器を備えており、上記比較結果に基づいて決定された周期でテンポクロックを発振出力する。
【０００８】
ＭＩＤＩキーボード１０は、６１鍵程度の鍵数を有する演奏用の鍵盤であり、演奏者の演奏に応じてノートオン／オフデータ，音高データやタッチデータなどを出力する。これらのデータは音源１１に入力されるとともに、ノートオン／オフデータおよび音高データが比較部３に入力される。音源１１はシーケンサ２から入力された伴奏トラック群の演奏データおよびＭＩＤＩキーボード１０から入力されるリアルタイム演奏データに基づいて楽音を発生する。すなわち、伴奏とリアルタイム演奏の合奏音を発生する。音源１１は、発生した楽音信号をサウンドシステム１２に入力する。サウンドシステム１２は入力されたディジタルの楽音信号をアナログ化し、増幅したのち楽音として放音する。
【０００９】
図２は同自動伴奏装置で用いられる楽曲データの構成を示す図である。楽曲データはヘッダ，楽音トラック群およびガイドメロディトラックからなっている。ヘッダはこの楽曲データの曲名などの書誌的データで構成されている。また、楽音トラック群は、テンポなどのコントロールデータを記憶したコントロールトラックおよび複数パートの伴奏音を発音するための複数のシーケンストラックで構成されている。また、ガイドメロディトラックは楽音トラック群の伴奏で演奏するメロディ（単音）を記憶したトラックである。これら楽音トラック群およびガイドメロディトラックのデータの各トラックは、それぞれデュレーションデータとイベントデータの組み合わせからなっている。イベントデータはノートオン／ノートオフやベロシティなど楽音を制御する演奏データで構成されており、デュレーションデータは各イベントデータ間の時間的間隔を示すデータである。各トラックのデータはシーケンサ２によって並行して読み出される。デュレーションデータのカウントはテンポ設定部４から入力されるテンポクロックに基づいて行われる。
【００１０】
図３は同自動伴奏装置に設けられるレジスタの構成を示す図である。同図（Ａ）はシーケンサ２に設けられるレジスタを示している。シーケンサ２は、メモリ５に記憶されている複数トラック（ｎトラック）の楽曲データを各トラック並行して読み出すため、各トラック毎にデュレーションデータをカウントするタイマカウンタ１〜ｎ、および各トラックのデータを指すポインタ１〜ｎを備えている。
【００１１】
同図（Ｂ）は比較部３およびテンポ設定部４に設けられるレジスタの構成を示す図である。ガイドメロディ入力数カウンタは、シーケンサ２から入力されるガイドメロディデータ（音高データ）の入力数をカウントするカウンタエリアである。また、リアルタイム演奏データ入力数カウンタはＭＩＤＩキーボード１０から入力されるリアルタイム演奏データ（音高データ）の入力数をカウントするカウンタエリアである。また、正解数カウンタは、同時に入力されたガイドメロディデータの音高（音名）とリアルタイム演奏データの音高（音名）とが一致した回数をカウントするカウンタエリアである。ガイドメロディ音名レジスタは、シーケンサ２から入力されるガイドメロディの音高データをオクターブ情報を捨象したＣ〜Ｂ（１〜１２）の音名データに変換して記憶するエリアである。また、リアルタイム音名レジスタは、ＭＩＤＩキーボード１０から入力されるリアルタイム演奏データの音高データをオクターブデータを捨象した音名データに変換して記憶するエリアである。なお、ガイドメロディ音名レジスタ，リアルタイム音名レジスタとも０は音名データ無しを示すものとする。ポイントレジスタはリアルタイム演奏データの正解率であるポイントを記憶するエリアであり、旧ポイントレジスタは直前のポイントを記憶するエリアである。また、テンポレジスタはテンポクロックの発生周期を記憶するレジスタである。なお、これらのレジスタは比較部３，テンポ設定部４のどちらに設けてもよいがデータは双方で共有できるものとする。
【００１２】
図４〜図７は同自動伴奏装置の動作を示すフローチャートである。図４はシーケンサ２の動作を示すフローチャートである。図４（Ａ）は自動演奏スタート時の動作を示すフローチャートである。指示により演奏をスタートすると、まず、メモリ５に記憶されている楽曲データのコントロールトラックからテンポデータを読み出し、これを基本テンポとしてテンポ設定部４のテンポレジスタに設定する（ｓ１）。そしてシーケンサ２の全てのタイマカウンタ１〜ｎおよび全てのポインタ１〜ｎをリセットする（ｓ２，ｓ３）。こののち、全トラックについて最初の読出動作を実行する（ｓ４）。
【００１３】
同図（Ｃ）に読出動作のフローチャートを示す。このフローチャートは１トラック分の動作のみを示している。まず、当該トラックのポインタが指し示すデータを読み出し（ｓ１１）、このデータがイベントデータあれば所定の動作部にこれを出力する（ｓ１３）。すなわち、楽音トラックのデータであれば、全てのデータを音源１１に出力する。ガイドメロディトラックのデータであればノートオン／オフデータおよび音高データのみを比較部３に出力する。そしてポインタを歩進して（ｓ１４）、次のデータを読み出す（ｓ１１）。読み出されたデータがデュレーションデータであった場合には（ｓ１２）、このデュレーションデータを当該トラックのタイマカウンタにセットし（ｓ１５）、ポインタを歩進して（ｓ１６）、リターンする。
【００１４】
同図（Ｂ）はテンポクロック割込動作を示すフローチャートである。この動作はテンポ設定部４からテンポクロックが入力される毎に実行される割込動作である。テンポクロック割り込みがあると、全トラックついてこの割込動作が並行して実行される。このフローチャートには１トラック分の動作のみを記す。まず、当該トラックのタイマカウンタの内容を１だけカウントダウンする（ｓ５）。そしてこのカウントダウンによってタイマカウンタの内容が０になったか否かを判断する（ｓ６）。０になれば次のデータの読出タイミングであるためｓ７に進んで読出動作（同図（Ｃ））を実行する。０でなければ、読出タイミングでないため、そのままリターンする（ｓ６）。
【００１５】
以上の動作により、テンポクロックのテンポで複数トラックのデータが並行して読み出される。
【００１６】
図５，図６は比較部３の動作を示すフローチャートである。図５はガイドメロディのイベントデータ（音高データ）が入力されたときの動作を示すフローチャートである。ガイドメロディのイベントデータが入力されると、そのデータがノートオンデータであるか否かを判断する（ｓ２０）。ノートオンのデータであれば、ガイドメロディ入力数カウンタをカウントアップし（ｓ２１）、この音高データをオクターブ情報を捨象した１〜１２の音高データに変換して（ｓ２２）、ガイドメロディ音名レジスタに記憶する（ｓ２３）。そして、リアルタイム音名レジスタにデータ（１〜１２）が記憶されているか否かを判断する（ｓ２４）。記憶されていない場合、すなわち、ＭＩＤＩキーボード１０がオンされていない場合にはそのままリターンする。ＭＩＤＩキーボードがオンされ、リアルタイム音名レジスタにデータが記憶されている場合には、その音名とこの動作で入力されたガイドメロディの音名とを比較する（ｓ２５）。比較の結果これらが一致した場合には（ｓ２６）、正解数カウンタをカウントアップして（ｓ２７）リターンする。
【００１７】
一方、入力されたガイドメロディのデータがノートオフのデータであればガイドメロディ音名レジスタをクリア（０に設定）して（ｓ２８）、リターンする。
【００１８】
図６はＭＩＤＩキーボードからリアルタイム演奏のイベントデータ（音高データ）が入力されたときの動作を示すフローチャートである。リアルタイム演奏のイベントデータが入力されると、そのデータがノートオンデータであるか否かを判断する（ｓ３０）。ノートオンのデータであれば、リアルタイム演奏データ入力数カウンタをカウントアップし（ｓ３１）、この音高データをオクターブ情報を捨象した１〜１２の音高データに変換して（ｓ３２）、リアルタイム音名レジスタに記憶する（ｓ３３）。そして、現在ガイドメロディ音名レジスタにデータ（１〜１２）が記憶されているか否かを判断する（ｓ３４）。記憶されていない場合、すなわち、ガイドメロディが消音している場合にはそのままリターンする。ガイドメロディのノートオンデータが出力されガイドメロディ音名レジスタにデータが記憶されている場合には、その音名とこの動作で入力されたリアルタイム演奏の音名とを比較する（ｓ３５）。比較の結果これらが一致した場合には（ｓ３６）、正解数カウンタをカウントアップして（ｓ３７）リターンする。一方、入力されたリアルタイム演奏データがノートオフのデータであればリアルタイム音名レジスタをクリアして（ｓ３８）、リターンする。
【００１９】
以上の動作により、リアルタイム演奏データおよびガイドメロディデータのいずれか一方の入力時に、他方のレジスタに記憶されている音名データとの比較判定が行われるため、入力が前後しても、同時に音名レジスタに記憶されるデータ同士は必ず１回比較判定されることになり、判定が正確に行われる。また、リアルタイム演奏を間違ってキーオンしなおした場合でも、間違ったキーオンと訂正したキーオンが両方とも比較され、間違い１カウントと正解１カウントが両方とも積算されるようになり、正確な正解率を算出することができる。
【００２０】
図７はテンポ設定部４の動作を示すフローチャートである。この動作は演奏している曲の強拍タイミング毎に実行される。まず、正解数カウンタに記憶されている正解数をガイドメロディ入力数カウンタに記憶されているガイド入力数で除算して１００を掛けた数値、すなわち、ガイドメロディに対する正解のパーセンテージをポイントとして算出する（ｓ４０）。次に、ガイド入力数とリアルタイム演奏データ入力数カウンタに記憶されているリアルタイム入力数とを比較する（ｓ４１）。リアルタイム入力数がガイド入力数よりも多い場合には、誤りを訂正するなどしてメロディよりも多くのキーオンをしているため、上記ポイントを修正する（ｓ４２）。この修正は、ポイントに（ガイド入力数／リアルタイム入力数）を乗算する処理であり、多くキーオンした分だけ正解率のポイントが低くなるように処理される。そして、このポイントを前回のこの動作で算出したポイントである旧ポイントと比較する（ｓ４３，ｓ４４）。この比較の結果、ポイントが増加傾向にある場合には、この増加の程度に合わせてテンポ増加分を決定する（ｓ４５）。また、ポイントが減少傾向にある場合には、この減少の程度に合わせてテンポ減少分を決定する（ｓ４６）。さらに、ポイントに変化がない場合には、現在のポイントの値に応じてテンポ変化分を決定する（ｓ４７）。たとえば、ポイントが４０〜６０であればテンポ変化分は０であり、これよりもポイントが大きければそのポイントの大きさに合わせてテンポ増加分を決定し、ポイントがこれよりも小さければそのポイントに応じてテンポ減少分を決定するなどである。
【００２１】
そして、このようにして算出されたテンポ変化分をそれまで設定されているテンポ値に加算して新たなテンポを算出する（ｓ４８）。そして、この新たなテンポが上限〜下限の範囲内にあるかを判断し（ｓ４９）、この範囲内にない場合には上限または下限のリミット値にテンポを修正する（ｓ５０）。こののち、ガイドメロディ入力数カウンタ，リアルタイム演奏データ入力数カウンタ，正解数カウンタなどのレジスタをクリアし、今回求められたポイントを旧ポイントレジスタに記憶して（ｓ５１）、リターンする。
【００２２】
なお、上記実施形態では、パーソナルコンピュータ１にＭＩＤＩキーボード１０や音源１１を接続したものを説明したが、いわゆるカラオケ装置に上記機能を内蔵し、ＭＩＤＩキーボードを接続するようにしてもよい。また、自動演奏ピアノにこの発明を適用し、演奏者は一方の手のみを演奏し、他方の手の演奏部分を自動演奏で行うようにしてもよい。
【００２３】
【発明の効果】
以上のようにこの発明によれば、演奏手段から入力される演奏信号と伴奏用データと同期して読み出される基準演奏データとを比較し、この比較結果に基づいてテンポを制御するようにしたことにより、演奏者の演奏の上体や巧拙を正確に把握することができ、演奏者の技量に合わせたテンポ制御をすることが可能になる。
【図面の簡単な説明】
【図１】この発明の実施形態である自動伴奏装置のブロック図
【図２】同自動伴奏装置に記憶される楽曲データの構成を示す図
【図３】同自動伴奏装置のメモリの一部構成図
【図４】同自動伴奏装置の動作を示すフローチャート
【図５】同自動伴奏装置の動作を示すフローチャート
【図６】同自動伴奏装置の動作を示すフローチャート
【図７】同自動伴奏装置の動作を示すフローチャート
【符号の説明】
１…パーソナルコンピュータ、２…シーケンサ、３…比較部、
４…テンポ設定部、５…メモリ、１０…ＭＩＤＩキーボード、
１１…音源、１２…サウンドシステム
【図１】
0003728814.tif 000002
【図２】
0003728814.tif 000003
【図３】
0003728814.tif 000004
【図４】
0003728814.tif 000005
【図５】
0003728814.tif 000006
【図６】
0003728814.tif 000007
【図７】
0003728814.tif 000008