(57)【特許請求の範囲】
【請求項１】
模範演奏データを記憶する模範演奏データ記憶手段と、
演奏者の実演奏により得られる実演奏データを記憶する実演奏データ記憶手段と、
前記実演奏データ記憶手段に記憶された実演奏データと前記模範演奏データ記憶手段に記憶された模範演奏データとを比較し、両演奏データの一致率及び差分を分析するデータ分析手段と、
過去の所定期間における演奏者の実演奏の演奏練習回数及び演奏練習時間に基づいて練習密度を算出する練習密度生成手段と、
この練習密度生成手段にて生成された練習密度と予め設定された仮想の演奏者の練習密度との差分に基づいて前記データ分析手段により得られた一致率及び差分を変更するとともに、当該変更された一致率及び差分に基づいて前記模範演奏データを変更して仮想演奏データを生成する仮想演奏データ生成手段と、
この仮想演奏データ生成手段により生成された仮想演奏データに基づいて自動演奏を行う演奏再生手段と、
を備えたことを特徴とする演奏支援装置。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
この発明は、演奏者の演奏技術の向上を支援する演奏支援装置に関する。
【０００２】
【従来の技術】
演奏支援装置として、例えば鍵盤を備えた装置において押鍵する鍵をガイドする機能を有するものが知られている。このような装置においては、各鍵に対応する位置にＬＥＤ等の発光手段を設けて、次に押鍵する鍵に対応する発光手段を順次点灯させて、演奏を支援する構成になっている。あるいは他の構成として、押鍵位置が間違ったときだけ正しい押鍵位置をガイドするものや、一定時間押鍵がされないときに押鍵位置をガイドするものもある。このようなガイド機能を備えた装置は、音楽教室に出向かなくても一人で練習できる利点がある。
【０００３】
【発明が解決しようとする課題】
しかしながら、従来の演奏支援装置においては一人で練習する場合がほとんどであるため、音楽教室等のように集団で練習する場合と異なり、他者との競争や比較がないため演奏者に対する刺激がなく、演奏者の意欲や向上心を持続させることが困難であった。
この発明の課題は、個人で練習する場合でも仮想の他者との間で競争や比較ができるようにすることである。
【０００４】
【課題を解決するための手段】
この発明は、模範演奏データを記憶する模範演奏データ記憶手段と、演奏者の実演奏により得られる実演奏データを記憶する実演奏データ記憶手段と、前記実演奏データ記憶手段に記憶された実演奏データと前記模範演奏データ記憶手段に記憶された模範演奏データとを比較し、両演奏データの一致率及び差分を分析するデータ分析手段と、過去の所定期間における演奏者の実演奏の演奏練習回数及び演奏練習時間に基づいて練習密度を算出する練習密度生成手段と、この練習密度生成手段にて生成された練習密度と予め設定された仮想の演奏者の練習密度との差分に基づいて前記データ分析手段により得られた一致率及び差分を変更するとともに、当該変更された一致率及び差分に基づいて前記模範演奏データを変更して仮想演奏データを生成する仮想演奏データ生成手段と、この仮想演奏データ生成手段により生成された仮想演奏データに基づいて自動演奏を行う演奏再生手段と、を備えた構成になっている。
この発明によれば、演奏者の実演奏データを分析し、その分析結果に応じて、仮想の競争者の仮想演奏データを生成して、その仮想演奏データに基づいて自動演奏を行うことにより、演奏者に対して自分の演奏を仮想の競争者の演奏と比較させる。
【０００５】
【発明の実施の形態】
以下、この発明の実施形態について、鍵盤を備えた電子楽器を例に採って、図１〜図１８を参照して説明する。図１は実施形態の電子楽器のシステムを示すブロック図、図２〜図１３はこの電子楽器の動作を示すＣＰＵ１のフローチャート、図１４〜図１８は、各メモリに記憶されたデータや後述する実演奏の分析に関する図である。
【０００６】
図１にしめすように、ＣＰＵ１は、そのシステムバスに接続されている各部との間でコマンド及びデータの授受をしてこの電子楽器全体を制御する。以下、システムバスに接続された各部の機能について説明する。鍵盤情報生成装置２は、鍵盤３の操作に応じて鍵番号（キーナンバー）、ベロシティ、音長からなる楽音データをＣＰＵ１に入力する。コントロールスイッチ群４は、ピッチベンド、モジュレーション、ＭＩＤＩオン・オフ等の制御をするスイッチ群である。鍵盤以外の演奏操作子５は、演奏モードや音色設定その他の演奏条件を入力するスイッチ群である。
【０００７】
プログラムＲＯＭ６は、ＣＰＵ１の動作プログラムやイニシャライズの初期データを記憶している。ワークＲＡＭ７は、鍵盤２等から入力されたデータを一時的に記憶し、そのため各種のレジスタやフラグを備えている。模範演奏データメモリ８は、模範となる演奏データを記憶しているとともに、入力されたＭＩＤＩデータを記憶可能な不揮発性のメモリである。被験演奏データメモリ９は、演奏者の実演奏データを記録する。仮想演奏メモリ１０は、演奏者に対抗する仮想の競争者の仮想演奏データを記憶し、演奏者の実演奏に応じて更新される。なお、被験演奏データメモリ９及び仮想演奏メモリ１０は、不揮発性のメモリではないが、電源オフ後もデータが消去されないようにバックアップされている。
【０００８】
独立時計ユニット１１は、実時間を計時するとともに、演奏開始から演奏終了までの演奏時間を出力する。シリアルインタフェース１２は、外部ＭＩＤＩ装置との間においてＭＩＤＩデータを送受信する。表示装置１３は、演奏モードその他演奏状態等を表示する。発音手段１４は、ＣＰＵ１の発音指示又は消音指示及びワークＲＡＭ７から読み出された楽音データに基づいて発音処理又は消音処理を行う。
【０００９】
以下、実施形態の動作について説明する。なお、複数の鍵が同時に押鍵されたり離鍵されたりすることも考えられるが、説明を簡単にするため、この実施形態においては任意の１つの鍵が押鍵されて離鍵された後に、他の鍵が押鍵されるものとする。したがってイベント情報は、図１４に示すように、イベント開始時間、イベント時間（音長）、音高データ（ノート番号）、ベロシティデータで構成されている。
【００１０】
図２はＣＰＵ１のメインフローであり、図３はタイマインタラプトのフローである。タイマインタラプトは３種類あり、図３（１）は練習時間をカウントしてＴＩＭＥにセットする。図３（２）はイベント開始時間をカウントしてＥＶＳＴにセットする。図３（３）はイベント時間（音長）をカウントしてＥＶＴにセットする。メインフローにおいては、所定のイニシャライズ（ステップＳ１）の後、練習密度情報生成を実行する（ステップＳ２）。この練習密度情報生成では、図４に示すように、被験演奏データメモリ９の練習記録エリアの練習日時により、過去１週間の練習日数を割り出す（ステップＳ１１）。練習記録エリアの練習記録データは、図１５に示すように、練習日及びその日の練習時間の形式で被験演奏データメモリ９の練習記憶エリアに記憶されている。図４において、過去１週間の練習時間を累算して、それを練習日数で除算することにより、１回当たりの平均練習時間を得る（ステップＳ１２）。
【００１１】
次に、図１６に示す変換テーブルにより、練習頻度及び平均練習時間に基づいて練習密度を得て、これをワークＲＡＭ７のレジスタＺＭＤにストアする（ステップＳ１３）。そして、図１５に示した練習記憶エリアを更新し、新規記憶分を空ける（ステップＳ１４）。また、現在の日時を時計ユニット１１から取り出して、今回の練習日時として被験演奏データメモリ９の練習記憶エリアにストアする（ステップＳ１５）。次に、時間計数タイマ割込禁止を解除して（ステップＳ１６）、ワークＲＡＭ９の練習時間カウンタＴＩＭＥをクリアする（ステップＳ１７）。そして、図２のメインフローに戻る。
【００１２】
メインフローにおいては、スイッチ処理（ステップＳ３）、演奏処理（ステップＳ４）、演奏記録処理（ステップＳ５）、演奏データ生成処理（ステップＳ６）、演奏再生処理（ステップＳ７）、その他の処理（ステップＳ８）を行い、ステップＳ９において電源がオフされたか否かを判別し、電源がオフでない場合はステップＳ３〜ステップＳ９のループを繰り返し実行する。ステップＳ９において電源がオフされたと判別したときは、被験演奏データメモリ９の練習記録エリアに練習時間としてストアする（ステップＳ１０）。
【００１３】
メインフローのステップＳ３におけるスイッチ処理は、演奏操作子５の模範演奏スイッチ、実演奏スイッチ、仮想演奏スイッチ、スタートスイッチのオン・オフ状態を検出する。そして、図５のフローに示すように、模範演奏スイッチがオンであるか否かを判別し（ステップＳ１８）、オンであるときは模範演奏フラグＭＰＦを１にセットし、実演奏フラグＺＰＦ及び仮想演奏フラグＫＰＦを０にリセットする（ステップＳ１９）。この場合には模範演奏モードになる。実演奏スイッチがオンであるか否かを判別し（ステップＳ２０）、オンであるときはＺＰＦを１にセットし、ＭＰＦ及びＫＰＦを０にリセットする（ステップＳ２１）。この場合には実演奏モードになる。仮想演奏スイッチがオンであるか否かを判別し（ステップＳ２２）、オンであるときはＫＰＦを１にセットし、ＭＰＦ及びＺＰＦを０にリセットする（ステップＳ２３）。この場合には仮想演奏モードになる。
【００１４】
次に、スタートスイッチがオンであるか否かを判別し（ステップＳ２４）、オンであるときはスタートフラグＳＴＦを反転するとともに、記録フラグＲＥＣＦを０にリセットする（ステップＳ２５）。そして、ＳＴＦが１であるか否かを判別し（ステップＳ２６）、このフラグが１でない場合には図３に示すＥＶＳＴタイマ割込みを禁止し（ステップＳ２７）、ＥＶＴタイマ割込みを禁止して（ステップＳ２８）、音源である発音手段１４に対して消音指示をする（ステップＳ２９）。
【００１５】
図５のステップＳ２６においてＳＴＦが１すなわち演奏スタートであるときは、図６のフローにおいて、ポインタＮを０にセットして（ステップＳ３０）、演奏に関する各フラグを検索する。ＭＰＦが１であるか否かを判別し（ステップＳ３１）、このフラグが１であるときは、アドレスレジスタＡＤに模範演奏データの初期アドレスをセットする（ステップＳ３２）。ＭＰＦが０であるときはＺＰＦが１であるか否かを判別し（ステップＳ３３）、このフラグが１であるときは、ＡＤに実演奏データの初期アドレスをセットする（ステップＳ３４）。ＭＰＦ及びＺＰＦがともに０であるときは、ＫＰＦが１であるか否かを判別し（ステップＳ３５）、このフラグが１であるときは、ＡＤに模範演奏データの初期アドレスをセットする（ステップＳ３６）。次に、レジスタＴ１に（ＡＤ＋Ｎ）のデータすなわち初期アドレスのイベント開始時間をセットする（ステップＳ３７）。次に、ＥＶＳＴに０をセットし（ステップＳ３８）、ＥＶＳＴタイマ割込み禁止を解除する（ステップＳ３９）。そして、メインフローに戻る。
【００１６】
図５のステップＳ２４において、スタートスイッチがオンでない場合には、図７のフローにおいて、記録スイッチがオンであるか否かを判別する（ステップＳ４０）。記録スイッチがオンであるときは、ＲＥＣＦを１にセットし（ステップＳ４１）、ＳＴＦを１にセットする（ステップＳ４２）。この場合は自動的に実演奏モードになり、アドレスレジスタＡＤに実演奏の初期アドレスをセットする(ステップＳ４３）。次に、ポインタＮを０にセットし（ステップＳ４４）、ＥＶＳＴに０をセットして（ステップＳ４５）、ＥＶＳＴタイマ割込み禁止を解除する（ステップＳ４６）。この解除の後又はステップＳ４０においてＲＥＣスイッチがオンでない場合は、仮想演奏データを生成するスイッチがオンであるか否かを判別し（ステップＳ４７）、オンであるときには仮想演奏データを生成するフラグＧＥＦを１にセットする（ステップＳ４８）。このフラグをセットした後又はステップＳ４７において仮想演奏データを生成するスイッチがオンでない場合は、練習密度を入力するスイッチがオンであるか否かを判別し（ステップＳ４９）、入力する場合にはレジスタＫＭＤに予め設定してある仮想競争者の練習密度をストアする（ステップＳ５０）。そして、メインフローに戻る。
【００１７】
メインフローの演奏処理は、図８に示すように、ＺＰＦが１であるか否かを判別して（ステップＳ５１）、このフラグが０であるときはメインフローに戻るが、このフラグが１であるときには鍵盤走査を行う（ステップＳ５２）。そして、鍵盤に変化があるか否かを判別する（ステップＳ５３）。すなわち、押鍵イベント又は離鍵イベントがあるか否かを判別する。変化がない場合はメインフローに戻る。オフからオンに鍵変化があったときは、そのときのＥＶＳＴのデータをレジスタＴ１にセットする（ステップＳ５４）。そして、ＥＶＴを０にリセットして（ステップＳ５５）、ＥＶＴタイマ割込み禁止を解除する（ステップＳ５６）。次に、鍵番号をレジスタＮＯＴＥにセットし（ステップＳ５７）、ベロシティデータをレジスタＶＥＬにセットする（ステップＳ５８）。そして、ＮＯＴＥ、ＶＥＬのデータを発音手段１４に送出して発音指示を行う（ステップＳ５９）。次に、押鍵イベントフラグＥＶＦ１に１をセットして（ステップＳ６０）、メインフローに戻る。
【００１８】
ステップＳ５３において、鍵変化がオンからオフに変化したときは、そのときのＥＶＴのデータをレジスタＴ２にセットし（ステップＳ６１）、ＥＶＴタイマ割込み禁止を解除する（ステップＳ６２）。次に、鍵番号をＮＯＴＥにセットし（ステップＳ６３）、ＶＥＬに０をセットする（ステップＳ６４）。そして、発音手段１４に対して消音指示をして（ステップＳ６５）、離鍵イベントフラグＥＶＦ２を１にセットする（ステップＳ６６）。この後、メインフローに戻る。
【００１９】
メインフローにおける演奏記録処理は、図９に示すように、ＲＥＣＦが１であるか否かを判別し（ステップＳ６７）、このフラグが０であるときは演奏記録処理をすることなくメインフローに戻る。このフラグが１であるときは、押鍵イベントフラグＥＶＦ１が１であるか否かを判別する（ステップＳ６８）。このフラグが１であるときは、このフラグを０にリセットして（ステップＳ６９）、被験演奏データメモリ９の初期アドレス（ＡＤ＋Ｎ）にＴ１のイベント開始時間をセットする（ステップＳ７０）。次に、Ｎを２つインクリメントして（ステップＳ７１）、音高データをストアするアドレス（ＡＤ＋Ｎ）にＮＯＴＥの音高データをセットする（ステップＳ７２）。
【００２０】
次に、Ｎをインクリメントして（ステップＳ７３）、ベロシティデータをストアするアドレス（ＡＤ＋Ｎ）にＶＥＬのベロシティデータをセットする（ステップＳ７４）。さらにＮをインクリメントして（ステップＳ７５）、そのアドレスＡＤ＋ＮがデータＥＮＤを超えたか否かを判別する（ステップＳ７６）。アドレスＡＤ＋ＮがデータＥＮＤを超えていない場合はメインフローに戻り、データＥＮＤを超えたときはＲＥＣＦ及びＳＴＦをともに０にリセットして（ステップＳ７７）、演奏記録フラグＦＩＬＦを１にセットする（ステップＳ７８）。そしてメインフローに戻る。
【００２１】
ステップＳ６８において、押鍵イベントフラグＥＶＦ１が０であるときは、離鍵イベントフラグＥＶＦ２が１であるか否かを判別する（ステップＳ７９）。このフラグが０であるとき、すなわち押鍵イベントも離鍵イベントもないときは、演奏記録処理をすることなくメインフローに戻る。ＥＶＦ２が１であるときは、このフラグを０にリセットして（ステップＳ８０）、アドレスのポインタＮを２つデクリメントして（ステップＳ８１）、イベント時間をストアするアドレス（ＡＤ＋Ｎ）にＴ２のイベント時間をセットする（ステップＳ８２）。そして、ＥＶＴタイマ割込みを禁止し（ステップＳ８３）、メインフローに戻る。
【００２２】
メインフローにおける演奏データ生成処理は、図１０に示すように、仮想データ生成フラグＧＥＦが１であるか否かを判別し（ステップＳ８４）、このフラグが１であるときは、演奏記録フラグＦＩＬＦが１であるか否か、すなわち被験演奏データメモリ９に実演奏データが記録されているか否かを判別し（ステップＳ８５）、このフラグが１であるときは実演奏分析（ステップＳ８６）、仮想演奏データ生成（ステップＳ８７）を行う。ステップＳ８４においてＧＥＦが０であるとき、又は、ステップＳ８５においてＦＩＬＦが０であるときは、メインフローに戻る。
【００２３】
図１０のステップＳ８６における実演奏分析は、図１１に示すように、模範演奏と実演奏との比較を行う（ステップＳ８８）。次に、ノートマッチ率の演算（ステップＳ８９）、発音タイミングの演算（ステップＳ９０）、ベロシティの演算（ステップＳ９１）、音符長の演算（ステップＳ９２）を行う。図１７に示すように、ノートマッチ率は、一致した場合の係数を１（１００％）とし、違う鍵を押鍵した場合、余分に押鍵した場合、抜けがあった場合等によって、演算係数が決定する。発音タイミング、ベロシティ及びノートオフタイミングで判定する音長は、差分の度数分布、差分の平均、差分の偏差によって演算する係数が決定する。
【００２４】
図１０のステップＳ８７における仮想演奏データ生成処理は、図１２に示すように、まず、実演奏の練習密度ＺＭＤから予め設定してある仮想競争者の練習密度ＫＭＤを減算した差分値をレジスタＤにセットする（ステップＳ９３）。次に、差分値Ｄを加工率変換テーブルによって加工率ＫＲに変換する（ステップＳ９４）。加工率変換テーブルは、図１８に示すように、練習密度の差分に対する加工率で表される。そして、ＫＲに基づきノートマッチ率を変換し（ステップＳ９５）、ＫＲに基づき発音タイミングを変換し（ステップＳ９６）、ＫＲに基づきベロシティを変換する（ステップＳ９７）。次に、変換されたデータに基づき模範演奏データを変更して、仮想演奏データを作成する（ステップＳ９８）。そして、ＧＥＦを０にリセットして（ステップＳ９９）、メインフローに戻る。
【００２５】
メインフローにおける演奏再生処理は、図６において判別したフラグＭＰＦ、ＺＰＦ、ＫＰＦの値に応じて、模範演奏データ、実演奏データ、仮想演奏データを対応するメモリから読み出して再生する。すなわちこの処理では、図１３に示すように、ＳＴＦが１であるか否かを判別し（ステップＳ１００）、このフラグが０であるときは演奏再生処理をすることなくメインフローに戻る。このフラグが１であるときは、図３（２）のタイマインタラプト（２）ごとにインクリメントされるＥＶＳＴの時間データが図６のステップＳ３７においてセットしたＴ１のイベント開始時間に達したか否かを判別する（ステップＳ１０１）。イベント開始時間に達したときは、アドレスのポインタＮをインクリメントして（ステップＳ１０２）、そのアドレス（ＡＤ＋Ｎ）にセットされているイベント時間をＴ２にセットする（ステップＳ１０３）。次に、ＥＶＴを０にリセットして（ステップＳ１０４）、ＥＶＴ割込み禁止を解除する（ステップＳ１０５）。
【００２６】
次に、Ｎをインクリメントして（ステップＳ１０６）、アドレス（ＡＤ＋Ｎ）の音高データをＮＯＴＥにセットする（ステップＳ１０７）。さらにＮをインクリメントして（ステップＳ１０８）、アドレス（ＡＤ＋Ｎ）のベロシティデータをＶＥＬにセットする（ステップＳ１０９）。さらにＮをインクリメントして（ステップＳ１１０）、対応するアドレスＡＤ＋ＮがデータＥＮＤを超えたか否かを判別する（ステップＳ１１１）。データＥＮＤを超えていない場合には、アドレスのデータ（次のイベントのイベント開始時間）をＴ１にセットする（ステップＳ１１２）。そして、ＮＯＴＥ及びＶＥＬのデータを発音手段１４に送出して発音指示をする（ステップＳ１１３）。ステップＳ１１１において、ＡＤ＋ＮがデータＥＮＤを超えたときは、ＳＴＦを０にリセットし（ステップＳ１１４）、ステップＳ１１３において発音指示をする。発音指示の後は、メインフローに戻る。
【００２７】
ステップＳ１０１において、ＥＶＳＴの時間データがＴ１のイベント開始時間に達していないときは、ステップＳ１１３において発音指示した音高の発音時間が終了したか否かを、ＥＶＴの値がＴ２のイベント時間に達したか否かによって判別する（ステップＳ１１５）。イベント時間に達していない場合には発音時間が終了していないのでメインフローに戻り、イベント時間に達したときは発音時間が終了したのでＥＶＴ割込みを禁止し（ステップＳ１１６）、発音手段１４に対して消音指示をする（ステップＳ１１７）。
【００２８】
このように上記実施形態によれば、ＣＰＵ１は、演奏者の実演奏データを分析するデータ分析手段、演奏データ分析手段による分析結果に応じて演奏者に対抗する仮想の競争者の仮想演奏データを生成するデータ生成手段、及び、仮想演奏データに基づいて自動演奏を行う演奏再生手段を構成する。そして、演奏者の実演奏データを分析し、その分析結果に応じて、仮想の競争者の仮想演奏データを生成して、その仮想演奏データに基づいて自動演奏を行うことにより、演奏者に対して自分の演奏を仮想の競争者の演奏と比較させる。したがって、個人で練習する場合でも仮想の他者との間で競争や比較ができる。
【００２９】
なお、上記実施形態においては、鍵盤を備えた電子楽器を例に採ったが、電子弦楽器や電子管楽器その他の電子楽器にもこの発明を適用することができる。
【００３０】
【発明の効果】
この発明によれば、演奏者の実演奏データを分析し、その分析結果に応じて、仮想の競争者の仮想演奏データを生成して、その仮想演奏データに基づいて自動演奏を行うことにより、演奏者に対して自分の演奏を仮想の競争者の演奏と比較させる。したがって、個人で練習する場合でも仮想の他者との間で競争や比較ができる。
【図面の簡単な説明】
【図１】この発明の実施形態における鍵盤電子楽器のシステムを示すブロック図。
【図２】図１におけるＣＰＵのメインフローチャート。
【図３】図１におけるタイマインタラプトのフローチャート。
【図４】図２における練習密度情報生成処理のフローチャート。
【図５】図２におけるスイッチ処理のフローチャート。
【図６】図５に続くスイッチ処理のフローチャート。
【図７】図５に続くスイッチ処理のフローチャート。
【図８】図２における演奏処理のフローチャート。
【図９】図２における演奏記録処理のフローチャート。
【図１０】図２における演奏データ生成処理のフローチャート。
【図１１】図１０における実演奏分析処理のフローチャート。
【図１２】図１０における仮想演奏データ生成処理のフローチャート。
【図１３】図２における演奏再生処理のフローチャート。
【図１４】各メモリにおけるイベント情報のデータ形式を示す図。
【図１５】被験演奏データメモリの練習記録エリアのデータを示す図。
【図１６】実演奏の練習時間に対する練習密度の変換テーブルを示す図。
【図１７】実演奏分析における演算の対象を示す図。
【図１８】仮想演奏データ生成に用いる加工率変換テーブルを示す図。
【符号の説明】
１  ＣＰＵ
３  鍵盤装置
５  演奏操作子
８  模範演奏データメモリ
９  被験演奏データメモリ
１０  仮想演奏データメモリ
１５  発音手段
【図１】
0003658637.tif 000002
【図２】
0003658637.tif 000003
【図３】
0003658637.tif 000004
【図４】
0003658637.tif 000005
【図５】
0003658637.tif 000006
【図６】
0003658637.tif 000007
【図７】
0003658637.tif 000008
【図８】
0003658637.tif 000009
【図９】
0003658637.tif 000010
【図１０】
0003658637.tif 000011
【図１１】
0003658637.tif 000012
【図１２】
0003658637.tif 000013
【図１３】
0003658637.tif 000014
【図１４】
0003658637.tif 000015
【図１５】
0003658637.tif 000016
【図１６】
0003658637.tif 000017
【図１８】
0003658637.tif 000018
【図１７】
0003658637.tif 000019