(57)【要約】【課題】練習の単調さを解消して、演奏練習に対する意欲を維持させる。【解決手段】ＣＰＵ１は、曲メモリ５に格納されている複数のパートの曲データからなる自動演奏曲の中から、選択されたパートに対する演奏に基づいて、音源９に対して供給する楽音データを生成するとともに、その選択されたパートを除く他のパートの曲データに基づいて音源９に供給する楽音データを生成する際に、ユーザの演奏の評価結果に応じて、他のパートにおける楽音データの音量を制御する。【選択図】        図１
2004317775.tif 000002
【特許請求の範囲】
【請求項１】
複数のパートの曲データからなる自動演奏曲の中から選択されたパートに対する演奏に基づいて所定の音源手段に対して供給する楽音データを生成する第１の楽音生成手段と、
前記選択されたパートを除く他のパートの曲データに基づいて前記音源手段に供給する楽音データを生成する第２の楽音生成手段と、
前記選択されたパートに対する演奏を評価する演奏評価手段と、
前記演奏評価手段の評価結果に応じて前記他のパートにおける楽音データを制御する楽音制御手段と、
を備えた自動演奏装置。
【請求項２】
前記楽音制御手段は、前記演奏評価手段の評価結果に応じて前記他のパートにおける楽音データの音量を制御することを特徴とする請求項１記載の自動演奏装置。
【請求項３】
前記楽音制御手段は、前記演奏評価手段の評価結果に応じて前記他のパートにおける楽音データの音色を制御することを特徴とする請求項１記載の自動演奏装置。
【請求項４】
前記楽音制御手段は、前記評価結果のレベルに応じて前記他のパートの曲データに対して演算処理を行うことを特徴とする請求項１記載の自動演奏装置。
【請求項５】
前記楽音制御手段は、前記評価結果のレベルに応じて生成したパラメータの値と前記他のパートの曲データとを演算することを特徴とする請求項４記載の自動演奏装置。
【請求項６】
前記楽音制御手段は、前記評価結果のレベルに応じて前記第２の楽音生成手段によって生成された楽音データに対して演算処理を行うことを特徴とする請求項１記載の自動演奏装置。
【請求項７】
前記楽音制御手段は、前記評価結果のレベルに応じて生成したパラメータの値と前記第２の楽音生成手段によって生成された楽音データとを演算することを特徴とする請求項６記載の自動演奏装置。
【請求項８】
複数のパートの曲データからなる自動演奏曲の中から選択されたパートに対する演奏に基づいて所定の音源手段に対して供給する楽音データを生成する第１のステップと、
前記選択されたパートを除く他のパートの曲データに基づいて前記音源手段に供給する楽音データを生成する第２のステップと、
前記選択されたパートに対する演奏を評価する第３のステップと、
前記第３のステップの評価結果に応じて前記他のパートにおける楽音データを制御する第４のステップと、
を実行する自動演奏処理のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、自動演奏装置および自動演奏処理のプログラムに関する。
【０００２】
【従来の技術】
自動演奏装置の中には、ユーザの演奏を評価する機能を具備したものがある。そのような従来の自動演奏装置においては、複数のパートを含む楽曲データを記憶する記憶手段と、前記記憶手段から前記楽曲データを読み出す読出し手段と、ユーザの演奏を演奏データとして入力する演奏データ入力手段と、前記楽曲データの特定区間でのみ、前記入力された演奏データと前記楽曲データを比較して前記ユーザの演奏を評価する演奏評価手段とを有する。この場合において、具体的には、演奏タイミング（鍵盤や打楽器の押鍵開始や終了のタイミング）や打撃の強さ（ベロシティの大きさ）などを比較して評価する。そして、演奏評価の結果は、ディスプレイに表示される（例えば、特許文献１参照。）。
【０００３】
【特許文献１】
特開２００２−９１４４３号公報（段落番号「００１２」、「００７４」）
【０００４】
【発明が解決しようとする課題】
しかしながら、上記従来の技術においては、演奏評価の結果をディスプレイに表示するだけでは、ユーザに効果的な演奏練習を行わせることは容易ではない。特に、現代のように、ユーザの多くはテレビ、ラジオ、映画、ゲームなどの様々なメディアの影響を受けて多様な感性をもっているので、単に演奏評価を表示するようないわゆるワンパターンの方法では、演奏練習に対する意欲を維持させることは困難である。
【０００５】
本発明は、多様な感性をもっている現代のユーザに対して、演奏練習という生真面目な行為に、ゲーム性やギャグの性格をもたせることによって、練習の単調さを解消して、演奏練習に対する意欲を維持させることのできる自動演奏装置および自動演奏処理のプログラムを提供することを目的とする。
【０００６】
【課題を解決するための手段】
請求項１に記載の自動演奏装置は、複数のパートの曲データからなる自動演奏曲（実施形態においては、図１の曲メモリ５に記憶されている自動演奏曲に相当する）の中から選択されたパートに対する演奏に基づいて所定の音源手段（実施形態においては、図１の音源９に相当する）に対して供給する楽音データを生成する第１の楽音生成手段（実施形態においては、図１のＣＰＵ１の機能に相当する）と、選択されたパートを除く他のパートの曲データに基づいて音源手段に供給する楽音データを生成する第２の楽音生成手段（実施形態においては、図１のＣＰＵ１の機能に相当する）と、選択されたパートに対する演奏を評価する演奏評価手段（実施形態においては、図１のＣＰＵ１の機能に相当する）と、演奏評価手段の評価結果に応じて他のパートにおける楽音データを制御する楽音制御手段（実施形態においては、図１のＣＰＵ１の機能に相当する）とを備えた構成になっている。
【０００７】
請求項１に記載の自動演奏装置において、楽音制御手段は、演奏評価手段の評価結果に応じて他のパートにおける楽音データの音量を制御するように構成してもよい。
また、請求項１に記載の自動演奏装置において、楽音制御手段は、演奏評価手段の評価結果に応じて前記他のパートにおける楽音データの音色を制御するように構成してもよい。
また、請求項１に記載の自動演奏装置において、楽音制御手段は、評価結果のレベルに応じて前記他のパートの曲データに対して演算処理（実施形態においては、乗算処理又は減算処理に相当する）を行うように構成してもよい。
さらにこの場合において、楽音制御手段は、評価結果のレベルに応じて生成したパラメータの値と他のパートの曲データとを演算するように構成してもよい。
また、請求項１に記載の自動演奏装置において、楽音制御手段は、評価結果のレベルに応じて第２の楽音生成手段によって生成された楽音データに対して演算処理（実施形態においては、乗算処理又は減算処理に相当する）を行うように構成してもよい。
さらにこの場合において、楽音制御手段は、評価結果のレベルに応じて生成したパラメータの値と第２の楽音生成手段によって生成された楽音データとを演算するように構成してもよい。
【０００８】
請求項８に記載の自動演奏処理のプログラムは、複数のパートの曲データからなる自動演奏曲（実施形態においては、図１の曲メモリ５に記憶されている自動演奏曲に相当する）の中から選択されたパートに対する演奏に基づいて所定の音源手段（実施形態においては、図１の音源９に相当する）に対して供給する楽音データを生成する第１のステップと、選択されたパートを除く他のパートの曲データに基づいて音源手段に供給する楽音データを生成する第２のステップと、選択されたパートに対する演奏を評価する第３のステップと、第３のステップの評価結果に応じて他のパートにおける楽音データを制御する第４のステップととを実行する。上記各ステップは、図１のＣＰＵ１によって実行されるフローチャートにおいて対応する処理に相当する。
【０００９】
【発明の実施の形態】
以下、本発明による自動演奏装置の第１ないし第３の実施形態について、図を参照して説明する。
図１は、各実施形態における自動演奏装置の構成を示すブロック図である。この図において、ＣＰＵ１は、システムバス２を介して、プログラムＲＯＭ３、ワークＲＡＭ４、曲メモリ５、鍵盤６、スイッチ部７、表示部８、および音源９に接続され、これら各部との間で、コマンドおよびデータを授受しながら、この装置全体を制御する。
【００１０】
プログラムＲＯＭ３は、ＣＰＵ１によって実行される自動演奏処理のプログラム、起動時のイニシャライズにおける初期データなどをあらかじめ記憶している。ワークＲＡＭ４は、プログラムの実行に必要な各種のレジスタやフラグのエリアを持っている。曲メモリ５は、複数の自動演奏曲の曲データすなわちイベントデータを記憶している。各自動演奏曲は、複数のパート（ピアノ、フルート、ベース、ドラム、ギターなど）の曲データで構成されている。鍵盤６は、演奏操作に応じてノートおよびベロシティをＣＰＵ１に入力する。スイッチ部７は、曲メモリ５に記憶されている曲を選択するスイッチ、自動演奏を開始又は停止するスタート／ストップスイッチなどで構成されている。
表示部８は、自動演奏曲のあるパートを演奏する場合に、その曲の楽譜や演奏に対する評価結果などを表示する。音源９は、ＣＰＵ１からの楽音データおよび発音指示（ノートオンコマンド）や消音指示（ノートオフコマンド）に応じて、複数の発音チャンネル（例えば、１６チャンネル）によってポリ演奏が可能である。この場合において、選択されたパートの演奏に応じてそのパートの音色の楽音信号を発生するだけでなく、他のパートの曲データに応じて各パートの音色の楽音信号を発生して、発音回路１０に出力する。発音回路１０は、Ｄ／Ａ変換回路、フィルタ回路、増幅回路、スピーカなどで構成され、音源９から出力される楽音信号に応じて楽音を発生する。
なお、図には示していないが、ＣＰＵ１の演奏指示に応じて点灯してガイド表示を行なうＬＥＤが各鍵ごとに設けられている。
【００１１】
次に、第１の実施形態における動作について、図２ないし図１４に示すＣＰＵ１のフローチャートを参照して説明する。
図２（１）は、ＣＰＵ１のメインフローチャートであり、図２（２）は、一定時間ごとのタイマインタラプト処理のフローチャートである。図２（１）において、まず、イニシャライズを行なって（ステップＡ１）、ワークＲＡＭ４の各種のレジスタをクリアし、各種のフラグを「０」にリセットし、タイマインタラプトを禁止する。イニシャライズの後は、スイッチ部７の各スイッチのオンおよびオフを検出するスイッチ処理（ステップＡ２）、曲メモリ５から選択された評価対象の曲データを読み出して演奏指示を行う自動演奏処理（ステップＡ３）、鍵盤６を走査して演奏すなわち押鍵および離鍵の鍵変化を検出する鍵盤処理（ステップＡ４）、評価対象の曲データの演奏を評価する評価処理（ステップＡ５）、およびその他の処理（ステップＡ６）を繰り返し実行する。
このメインフローチャートにおいて、一定時間ごとのタイマインタラプトが入ると、図２（２）のタイマインタラプト処理を実行し、タイマレジスタＴＩＭＥの値をデクリメントする（ステップＡ７）。
【００１２】
図３は、メインフローにおけるステップＡ２のスイッチ処理のフローチャートである。まず、曲選択処理を実行し（ステップＢ１）、次に、スタート／ストップスイッチ処理を実行する（ステップＢ２）。次に、その他のスイッチ処理を行い（ステップＢ３）、メインフローに戻る。
図４は、スイッチ処理におけるステップＢ１の曲選択スイッチ処理のフローチャートである。スタートフラグＳＴＦが「０（演奏停止）」であるか否かを判別し（ステップＣ１）、このフラグが「１（自動演奏）」である場合にはこのフローを終了するが、このフラグが「０」である場合には、曲選択のスイッチが操作されたか否かを判別する（ステップＣ２）。スイッチの操作がない場合にはこのフローを終了するが、スイッチが操作されたときは、そのスイッチが曲選択であるか否かを判別し（ステップＣ３）、曲選択である場合には、そのスイッチによって指定された選択曲の番号をレジスタＭにストアする（ステップＣ）。そのスイッチが曲選択でない場合には、演奏パートを選択するスイッチであるか否かを判別し（ステップＣ５）、演奏パートを選択する場合には、そのスイッチによって指定されたパート番号をレジスタＰＴにストアする（ステップＣ６）。そして、このフローを終了する。
【００１３】
図５は、図３におけるステップＢ３のスタート／ストップスイッチ処理のフローチャートである。スタート／ストップスイッチがオンされたか否かを判別し（ステップＤ１）、オンされない場合にはこのフローを終了するが、オンされたときはフラグＳＴＦの値を反転する（ステップＤ２）。そして、ＳＴＦの値が「１」であるか否かを判別する（ステップＤ３）。ＳＴＦの値が「１」である場合には自動演奏を開始して、レジスタＭの選択曲の番号で指定される曲（Ｍ）の先頭アドレスをレジスタＡＤにストアする（ステップＤ４）。また、曲（Ｍ）のテンポをレジスタＴＥＭＰＯにストアする（ステップＤ５）。
【００１４】
次に、ＡＤにより指定される先頭アドレスの曲データのタイムを読出し（ステップＤ６）、そのタイムをレジスタＴＩＭＥにストアする（ステップＤ７）。そして、ＴＥＭＰＯに基づくタイマインタラプトの周期を設定する（ステップＤ８）。次に、曲の進行に応じて曲開始からの音符をカウントするレジスタＮを「０」にクリアし（ステップＤ９）、演奏結果を評価するための所定数の音符をカウントするレジスタＴを「０」にクリアする（ステップＤ１０）。次に、タイマインタラプトの禁止を解除する（ステップＤ１１）。したがって、ＴＥＭＰＯに基づく周期ごとにＴＩＭＥの値がデクリメントされる。
ステップＤ３において、ＳＴＦが「１」から「０」に反転したときは、自動演奏の停止であるので、タイマインタラプトを禁止して（ステップＤ１２）、鍵盤６のガイド表示をすべて消灯する（ステップＤ１３）。そして、メインフローに戻る。
【００１５】
図６ないし図８は、メインフローにおけるステップＡ３の自動演奏処理のフローチャートである。ＳＴＦが「１」であるか否かを判別し（ステップＥ１）、ＳＴＦが「１」で自動演奏状態である場合には、タイマインタラプトごとにデクリメントされるＴＩＭＥの値が「０」に達したか否かを判別する（ステップＥ２）。ＳＴＦが「０」である場合、又は、ＴＩＭＥの値が「０」に達していない場合には、このフローを終了するが、ＴＩＭＥの値が「０」に達したときは、次の曲データを読み出すために、ＡＤのアドレスを進める（ステップＥ３）。そして、ＡＤのアドレスによる曲データの読出しを行なう（ステップＥ４）。
【００１６】
次に、読出した曲データがＥＮＤすなわち曲の終了であるか否かを判別する（ステップＥ５）。ＥＮＤでない場合には、そのデータがノートオン又はノートオフのイベントであるか否かを判別する（ステップＥ６）。イベントでない場合には、データがタイムであるか否かを判別し（ステップＥ７）、タイムである場合には、そのタイムをＴＩＭＥにストアして（ステップＥ８）、このフローを終了する。一方、読出したデータがイベントである場合には、イベントのパートが鍵盤６で演奏している演奏パートＰＴでないか否かを判別する（ステップＥ９）。演奏パートでなく他のパートである場合には、変換処理を実行する（ステップＥ１０）。この変換処理については後述する。
【００１７】
ステップＥ９において、イベントのパートが演奏パートである場合には、図７のフローチャートにおいて、そのイベントがノートオフであるか否かを判別する（ステップＥ１１）。ノートオフである場合には、イベントのノートに対応する鍵のガイド表示を消灯する（ステップＥ１２）。そして、ガイドフラグＧＵＩＤＥＯＮＦを「０」にリセットし（ステップＥ１３）、評価を行なう所定期間の１つの音符に対する処理が終わったので、Ｔのノート数をインクリメントする（ステップＥ１４）。次に、Ｔのノート数が基準ノート数を超えたか否かを判別する（ステップＥ１５）。
【００１８】
Ｔのノート数が基準ノート数を超えたときは、表示や音声などでユーザに対して支援するか否かを示すフラグＳＨＩＥＮＦを「１（支援）」にセットする（ステップＥ１６）。そして、Ｔのノート数を「０」にクリアする（ステップＥ１７）。Ｔをクリアした後は、後述する演奏評価に用いるフラグＨＹＯＫＡＦが「０」であるか否かを判別し（ステップＥ１８）、「０」である場合には「１（評価実行）」にセットする（ステップＥ１９）。ＨＹＯＫＡＦを「１」にセットした後、若しくは、ＨＹＯＫＡＦが「１」である場合、又は、ステップＥ１５においてＴのノート数が基準ノート数に達しない場合には、曲の最初からのノート数をストアするレジスタＮのノート数をインクリメントする（ステップＥ２０）。そして、図６のステップＥ３に移行してＡＤのアドレスを進める。
【００１９】
図７のステップＥ１１において、イベントがノートオフでない場合には、図８において、イベントがノートオンであるか否かを判別する（ステップＥ２１）。イベントがノートオンである場合には、レジスタＮＯＴＥにイベントのノートをストアする（ステップＥ２３）。次に、イベントのノートに対応して鍵盤６のガイド表示を点灯する（ステップＥ２４）。また、ガイドフラグＧＵＩＤＥＯＮＦを「１」にセットする（ステップＥ２５）。そして、押鍵の有無を示すフラグＫＥＹＯＮＦが「１（押鍵）」であるか否かを判別する（ステップＥ２６）。
【００２０】
ＫＥＹＯＮＦが「１」である場合には、鍵盤６が押鍵されているので、ＮＯＴＥにストアしたイベントのノートと、後述する図９の鍵盤処理においてレジスタＫＥＹにストアされた押鍵のノートとが一致するか否かを判別する（ステップＥ２７）。一致する場合、すなわちＧＵＩＤＥＯＮＦを「１」にセットしたときには、すでに演奏指示する鍵が押鍵されている場合には、評価値をストアするレジスタＰＯＩＮＴの値にαの値を加算する（ステップＥ２８）。一致しない場合、すなわちガイド表示した鍵とは異なる鍵が押鍵されている場合には、ＰＯＩＮＴの値からαを減算する（ステップＥ２９）。αを加算又は減算した後は、評価フラグＨＹＯＫＡＦを「１」にセットする（ステップＥ３０）。
ステップＥ２１において、データがノートオンのイベントでない場合には、その他のイベント処理を行なう（ステップＥ２２）。
ステップＥ３０においてＨＹＯＫＡＦを「１」にセットした後、ステップＥ２６においてＫＥＹＯＮＦが「０」である場合、又は、ステップＥ２２においてその他のイベント処理を行なった後は、図６のステップＥ３に移行してＡＤのアドレスを進める。
【００２１】
図６のステップＥ５において、読み出したデータがＥＮＤである場合には、ＳＴＦを「０」にリセットして（ステップＥ３１）、鍵盤６のガイド表示をすべて消灯する（ステップＥ３２）。また、タイマインタラプトを禁止する（ステップＥ３３）。そして、このフローを終了してメインフローに戻る。
【００２２】
図９は、メインフローにおけるステップＡ４の鍵盤処理のフローチャートである。このフローでは、鍵走査を行なって（ステップＧ１）、鍵変化があるか否かを判別する（ステップＧ２）。鍵変化がない場合には、このフローを終了してメインフローに戻る。鍵変化がオフからオンに変化した場合、すなわち押鍵がされた場合には、その押鍵のノートをレジスタＫＥＹにストアする（ステップＧ３）。そして、ＫＥＹのノートを元にノートオンコマンドを作成し（ステップＧ４）、そのノートオンコマンドを音源９に送出する（ステップＧ５）。そして、ＫＥＹＯＮＦを「１」にセットする（ステップＧ６）。
【００２３】
次に、ＧＵＩＤＥＯＮＦが「１」であるか否かを判別する（ステップＧ７）。このフラグが「０」である場合にはメインフローに戻るが、このフラグが「１」で押鍵指示の鍵のガイド表示が点灯している場合には、ＫＥＹにストアしたノートとＮＯＴＥにストアした押鍵指示のノートとが一致するか否かを判別する（ステップＧ８）。一致した場合、すなわち、押鍵指示された鍵が正確に押鍵された場合には、ＰＯＩＮＴにαの値を加算する（ステップＧ９）。一致しなかった場合、すなわち、押鍵指示された鍵とは異なる鍵が押鍵された場合には、ＰＯＩＮＴからαの値を減算する（ステップＧ１０）。αの値を加算又は減算した後は、ＨＹＯＫＡＦを「１」にセットする（ステップＧ１１）。そして、メインフローに戻る。
【００２４】
ステップＧ２において、鍵変化がオンからオフに変化した場合、すなわち、離鍵がされた場合には、その離鍵のノートをＫＥＹにストアする（ステップＧ１２）。そして、ＫＥＹのノートを元にノートオフコマンドを作成し（ステップＧ１３）、そのノートオフコマンドを音源９に送出する（ステップＧ１４）。次に、ＫＥＹＯＮＦを「０」にリセットする（ステップＦ１５）。そして、このフローを終了してメインフローに戻る。
【００２５】
図１０および図１１は、メインフローにおけるステップＡ５の評価処理のフローチャートである。図１０のフローにおいて、まず、ＨＹＯＫＡＦが「１」であるか否かを判別する（ステップＨ１）。このフラグが「１」である場合にはこれを「０」にリセットする（ステップＨ２）。次に、評価すべき所定期間の配列Ｐ（ｎ）を指定するポインタｎを「０」にセットして（ステップＨ３）、Ｐ（ｎ）にＰ（ｎ＋１）を代入して（ステップＨ４）、ｎの値をインクリメントする（ステップＨ５）。そして、ｎ＋１の値が評価ノート数に達したか否かを判別する（ステップＨ６）。評価ノート数に達していない場合には、ステップＨ４に移行して、ステップＨ６までの処理を繰り返す。
【００２６】
ステップＨ６において、ｎ＋１の値が評価ノート数に達した場合には、ＰＯＩＮＴの値をＰ（ｎ）にストアする（ステップＨ７）。ＰＯＩＮＴの値をストアした後は、フラグＳＨＩＥＮＦが「１」であるか否かを判別し（ステップＨ８）、ＳＨＩＥＮＦが「０」である場合にはこのフローを終了するが、ＳＨＩＥＮＦが「１」である場合には、これをリセットする（ステップＨ９）。
【００２７】
次に、Ｎにストアした曲の最初からの音符数が、あらかじめ設定されている２つの音符数であるＤ１より大きくＤ２より小さい期間にあるか否かを判別する（ステップＨ１０）。すなわち、曲の最初の音符からＤ１までの音符、および、Ｄ２の音符から曲の終了までの範囲を除く期間（評価対象期間）にＮの音符数があるか否かを判別する。Ｎにストアした音符数がこの期間にない場合には、このフローを終了する。
【００２８】
Ｎにストアした音符数がＤ１より大きくＤ２より小さい期間にある場合には、図１１のフローにおいて、配列Ｐ（ｎ）の評価ノート数を指定するポインタｎを「０」にセットする（ステップＨ１１）。次に、評価用レジスタＨＹＯＫＡを「０」にクリアする（ステップＨ１２）。そして、ＨＹＯＫＡにＰ（ｎ）の値を加算する（ステップＨ１３）。次に、ｎの値をインクリメントして（ステップＨ１４）、ｎの値が評価ノート数になったか否かを判別する（ステップＨ１５）。評価ノート数になっていない場合には、ステップＨ１３に移行して、ステップＨ１５までの処理を繰り返す。ステップＨ１５において、ｎの値が評価ノート数になった場合には、このフローを終了する。
【００２９】
図１２は、図６におけるステップＥ１０の変換処理のフローチャートである。この変換処理においては、評価処理における演奏の評価結果であるＨＹＯＫＡの値（すなわち、評価のレベル）に応じて、プログラムＲＯＭ３に格納されている音量変更のテーブルを参照する。図には示さないが、このテーブルは、評価結果のレベルであるＨＹＯＫＡを「行」とし、演奏パート以外の他のパート、例えば、フルート、ベース、ドラム、ギターなどの音色のパート番号を「列」とする配列ＴＡＢＬＥ（ＨＹＯＫＡ，パート番号）であり、各音色のパートごとに評価結果のレベルに応じた音量変更パラメータの値が格納されている。
【００３０】
まず、イベントがノートオンであるか否かを判別して（ステップＦ１）、ノートオンである場合には、イベントのパート番号をポインタｎにセットする（ステップＦ２）。次に、ポインタで指定したパート番号と評価結果に応じて、配列ＴＡＢＬＥ（ＨＹＯＫＡ，ｎ）の音量変更パラメータをレジスタＰＡＲＡＭＥＴＥＲにストアし（ステップＦ３）、イベントのベロシティをレジスタＶＥＬＯＣＩＴＹにストアする（ステップＦ４）。次に、ベロシティ変換処理を実行する（ステップＦ５）。
【００３１】
このベロシティ変換処理においては、演奏の評価結果に応じてベロシティを変更するために演算処理を行うが、その演算処理にはいくつかの方法がある。図１３および図１４は、図１２におけるステップＦ５のベロシティ変換処理の例を示すフローチャートである。
図１３のベロシティ変換処理（１）では、各パート番号において、評価結果が低いほど変更パラメータの値が小さいテーブルを用いて、ＰＡＲＡＭＥＴＥＲにストアされている変更パラメータの値を「１００」で除算し、その除算値とＶＥＬＯＣＩＴＹにストアされているベロシティの値と乗算し、その乗算した値をレジスタＶＥＬにストアする（ステップＦ５１）。そして、図１２のステップＦ６に移行する。したがって、評価結果が低いほど乗算した値が小さくなる。
一方、図１４のベロシティ変換処理（２）では、各パート番号において、評価結果が低いほど変更パラメータの値が大きいテーブルを用いて、ＰＡＲＡＭＥＴＥＲにストアされている変更パラメータの値をＶＥＬＯＣＩＴＹにストアされているベロシティの値から減算し、その減算した値をレジスタＶＥＬにストアする（ステップＦ５２）。そして、図１２のステップＦ６に移行する。したがって、評価結果が低いほど減算した値が小さくなる。
図１２のステップＦ６においては、ＶＥＬの値に基づきイベントのベロシティを変更する。次に、イベントのノートオンデータおよび変更したベロシティのデータを音源９に送出する（ステップＦ７）。そして、このフローを終了して、自動演奏処理のフローに戻る。
【００３２】
以上のように、この第１の実施形態においては、ＣＰＵ１は、曲メモリ５に格納されている複数のパートの曲データからなる自動演奏曲の中から、選択されたパートに対する演奏に基づいて、音源９に対して供給する楽音データを生成するとともに、その選択されたパートを除く他のパートの曲データに基づいて音源９に供給する楽音データを生成する際に、ユーザの演奏の評価結果に応じて、他のパートにおける楽音データのベロシティの値を変換して音量を制御する。
例えば、鍵盤６を演奏してピアノのパートを練習している場合に、その演奏の評価結果が低いときには、他のパートであるフルート、ベース、ドラム、ギターの発音の音量が小さくなる。このため、演奏者は演奏の評価結果が低いことを認識するが、その評価結果の表現方法がテレビや舞台などのお笑い番組のように面白く、評価結果が低いことで劣等感を抱くことが少ない。このように、第１の実施形態の構成によれば、演奏練習という生真面目な行為に、ゲーム性やギャグの性格をもたせることによって堅苦しさを解消して、演奏練習に対する意欲を維持させることができる。
【００３３】
次に、本発明の第２の実施形態について説明する。第２の実施形態における動作の大部分は、上記第１の実施形態における動作と同じであるので、第１の実施形態の図面を援用するとともに、第１の実施形態と異なる部分について説明する。
第２の実施形態における自動演奏処理においては、図６のフローのステップＥ９において、イベントのパートが演奏パートでない場合には、第１の実施形態のように変更処理は行わずに、そのイベントを音源に送出する。
これに対して、評価処理においては、図１１のフローのステップＨ１５において、ｎが評価ノート数に達した場合に、第１の実施形態ではステップＨ１６においてＨＹＯＫＡをストアしたが、この第２の実施形態においては、図１５のステップＨ１７に示すように、パラメータ変換処理を実行する。
【００３４】
図１６は、そのパラメータ変更処理のフローチャートである。まず、各パートをアサイインする音源９のチャンネルを指定するポインタｉの値を「０」にセットして（ステップＪ１）、ｉの値をインクリメントしながら、ステップＪ２からステップＪ８までのループを繰り返す。すなわち、ポインタで指定するｉチャンネルが演奏パートに対応するチャンネルと異なるか否かを判別する（ステップＪ２）。演奏パートのチャンネルと異なる場合には、演奏の評価結果のレベルであるＨＹＯＫＡおよびパート番号ｎに応じて配列ＴＡＢＬＥ（ＨＹＯＫＡ，ｎ）の変更パラメータの値をレジスタＰＡＲＡＭＥＴＥＲにストアし（ステップＪ３）、ｉチャンネルのボリューム値をレジスタｖｏｌｕｍｅにストアする（ステップＪ４）。次に、ボリューム変換処理を実行する（ステップＪ５）。
【００３５】
このパラメータ変換処理においては、演奏の評価結果に応じてボリューム値を変更するために演算処理を行うが、その演算処理にはいくつかの方法がある。図１７および図１８は、図１６におけるステップＪ５のボリューム変換処理の例を示すフローチャートである。
図１７のボリューム変換処理（１）では、各パート番号において、評価結果が低いほど変更パラメータの値が小さいテーブルを用いて、ＰＡＲＡＭＥＴＥＲにストアされている変更パラメータの値を「１００」で除算し、その除算値とｖｏｌｕｍｅにストアされているボリューム値と乗算し、その乗算した値をｖｏｌｕｍｅにストアして更新する（ステップＪ５１）。そして、図１６のステップＪ６に移行する。したがって、評価結果が低いほど乗算した値が小さくなる。
一方、図１８のボリューム変換処理（２）では、各パート番号において、評価結果が低いほど変更パラメータの値が大きいテーブルを用いて、ＰＡＲＡＭＥＴＥＲにストアされている変更パラメータの値をｖｏｌｕｍｅにストアされているボリューム値から減算し、その減算した値をｖｏｌｕｍｅにストアして更新する（ステップＪ５２）。そして、図１６のステップＪ６に移行する。したがって、評価結果が低いほど減算した値が小さくなる。
【００３６】
図１６のステップＪ６においては、ｉチャンネルのボリューム値をｖｏｌｕｍｅに変換する。次に、ｉの値をインクリメントする（ステップＪ７）。ステップＪ２において、ｉチャンネルが演奏チャンネルである場合には、ステップＪ７に移行してｉの値をインクリメントする。そして、ｉの値が最大チャンネルより大きくなったか否かを判別し（ステップＪ８）、最大チャンネル以内である場合には、ステップＪ２に移行してループを繰り返す。ｉの値が最大チャンネルより大きくなったとき、すなわち、演奏パート以外のすべてのパートにおけるパラメータ変更を行った後は、このフローを終了してメインフローに戻る。
【００３７】
以上のように、この第２の実施形態においても、ＣＰＵ１は、曲メモリ５に格納されている複数のパートの曲データからなる自動演奏曲の中から、選択されたパートに対する演奏に基づいて、音源９に対して供給する楽音データを生成するとともに、その選択されたパートを除く他のパートの曲データに基づいて音源９に供給する楽音データを生成する際に、ユーザの演奏の評価結果に応じて、他のパートにおける楽音データのボリューム値を変換して音量を制御する。
このように、第２の実施形態の構成によれば、第１の実施形態と同様に、演奏練習という生真面目な行為に、ゲーム性やギャグの性格をもたせることによって堅苦しさを解消して、演奏練習に対する意欲を維持させることができる。
【００３８】
なお、上記第１および第の実施形態における演算処理を併用した実施形態の構成でもよい。すなわち、演奏の評価結果に応じて、他のパートにおける曲データのベロシティを変換するとともに、ボリューム値を変換する構成にしてもよい。
また、上記第１および第２の実施形態においては、演奏の評価結果が低いときには、他のパートの音量を小さくするように制御をしたが、逆に、他のパートの音量を上げるように制御してもよい。この場合には、演奏者は、自分の演奏の評価が低いことを認識できるが、他のパートの音量が大きくなるので、周囲で聴いている人には演奏の悪さが分からない。すなわち、このような音量制御によれば、ゲーム性やギャグの性格をもたせるのではなく、演奏のレベルが低いことが家族や知人などの周囲の人に目立たないので、周囲を気にせずに演奏することで、演奏練習に対する意欲を維持させることができる。
【００３９】
次に、本発明の第３の実施形態について説明する。上記第１および第２の実施形態においては、演奏の評価結果が低いときには、他のパートの音量を小さくするように制御したが、この第３の実施形態においては、演奏の評価結果に応じて、演奏パート以外の他のパートにおける音色を制御する。
例えば、演奏パートがピアノ音色である場合に、他のパートの音色、すなわち、フルート、ベース、ドラム、ギターなどの音色データは、あらかじめプログラムＲＯＭ３に格納されている。通常、この音色データは、各パートごとに複数の記憶エリア（これを「バンク」という）で構成されている。そして、バンクごとに、クラシック、ロック、ジャズ、サンバなどの音楽ジャンルのバンク「＃０」、「＃１」、「＃３」…で構成されている。
【００４０】
例えば、フルートの音色番号を「０３」とすると、バンク「＃０」におけるクラシックの音色データのアドレスは「００３」、バンク「＃１」におけるロックの音色データのアドレスは「１０３」、バンク「＃２」におけるジャズの音色データのアドレスは「２０３」のようなデータ構成になっている。また、ベースの音色番号を「０４」とすると、バンク「＃０」におけるクラシックの音色データのアドレスは「００４」、バンク「＃１」におけるロックの音色データのアドレスは「１０４」、バンク「＃２」におけるジャズの音色データのアドレスは「２０４」のようなデータ構成になっている。すなわち、音色データのアドレスを「１００」単位で変えた場合には、同じパート例えばフルートの音色ではあるが、クラシック、ロック、ジャズ、サンバなどの音色で発音がなされる。
【００４１】
第３の実施形態においては、演奏の評価結果のレベルに応じて、演奏パート以外の他のパートを現在設定されている音楽ジャンルのバンクから他のバンクに変更する。この場合における演算処理は、音色番号と演奏の評価結果のレベルとからなるテーブルに音色変更パラメータを記憶させておき、各パートごとに評価結果のレベルに対応する音色変更パラメータを読み出して、その音色変更パラメータによってバンクのアドレスを「１００」単位で変更する。
例えば、現在クラシックの演奏によって演奏パートおよび他のパートの発音がされている状態において、演奏のレベルが低下したときは、フルートのパートについては現在のアドレスに「２００」が加算されて、ファンキーなジャズの音色に変更され、ギターのパートは現在のアドレスに「１００」が加算されて、激しいロックの音色に変更される。他のパートも同様に、クラシックの音色から他の音色に変更される。このため、演奏の評価結果が低いほど、全体の音楽的調和が崩れた奇妙な音になってしまう。
このように、第３の実施形態の構成によれば、演奏の評価結果に応じて、演奏パート以外のパートの音色を制御するので、第１および第２の実施形態と同様に、演奏練習という生真面目な行為に、ゲーム性やギャグの性格をもたせることによって堅苦しさを解消して、演奏練習に対する意欲を維持させることができる。
【００４２】
この第３の実施形態の変形例として、演奏の評価結果に応じて、演奏パート以外のパートの音色を制御する場合に、演奏の評価結果が低いときには、壊れた楽器の音色、楽器のボディを叩くような音色、楽器以外の音色などに変更する構成にしてもよい。あるいは、演奏パート以外のパートの音色を変更する代わりに、又は、音色を変更する制御と並行して、「やってられない」、「帰るか」、「ピアノが上手すぎてついていけない」などのように、演奏者を面白おかしくやじったりからかったりする合成音声を発生するような構成にしてもよい。この場合にも、奇妙きてれつな表現で演奏の評価を行うので、演奏者が評価の低いことで深刻にならずにすみ、演奏練習に対する意欲を維持させることができる。
【００４３】
なお、上記各実施形態においては、自動演奏処理のプログラムがあらかじめプログラムＲＯＭ３に格納されている自動演奏装置を例に採って装置の発明について説明したが、本発明は装置の発明に限定されるものではない。例えば、ＦＤ（フレキシブルディスク）、ＣＤ−ＲＯＭなどの外部記憶媒体に記憶されている自動演奏処理のプログラムや、インターネットなどの通信網を介してダウンロードされる自動演奏処理のプログラムを、パソコンなどの汎用の情報処理装置にインストールして実行することも可能である。この場合には、プログラムの発明を構成する。
【００４４】
すなわち、本発明による自動演奏処理のプログラムは、複数のパートの曲データからなる自動演奏曲の中から選択されたパートに対する演奏に基づいて所定の音源手段に対して供給する楽音データを生成する第１のステップと、選択されたパートを除く他のパートの曲データに基づいて音源手段に供給する楽音データを生成する第２のステップと、選択されたパートに対する演奏を評価する第３のステップと、第３のステップの評価結果に応じて他のパートにおける楽音データを制御する第４のステップとを実行する。
【００４５】
【発明の効果】
本発明によれば、複数のパートの曲データからなる自動演奏曲の中から選択されたパートに対する演奏に基づいて所定の音源手段に対して供給する楽音データを生成するとともに、選択されたパートを除く他のパートの曲データに基づいて音源手段に供給する楽音データを生成する際に、選択されたパートに対する演奏を評価して、その評価結果に応じて他のパートにおける楽音データを制御するので、演奏練習という生真面目な行為に、ゲーム性やギャグの性格をもたせることによって堅苦しさを解消して、演奏練習に対する意欲を維持させることができるという効果が得られる。
【図面の簡単な説明】
【図１】本発明の第１ないし第３の実施形態における自動演奏装置の構成を示すブロック図。
【図２】（１）は各実施形態におけるＣＰＵのメインフローチャート、（２）はタイマインタラプトのフローチャート。
【図３】図２におけるスイッチ処理のフローチャート。
【図４】図３における曲選択スイッチ処理のフローチャート。
【図５】図３におけるスタート／ストップスイッチ処理のフローチャート。
【図６】図２における第１の実施形態の自動演奏処理のフローチャート。
【図７】図６に続く自動演奏処理のフローチャート。
【図８】図７に続く自動演奏処理のフローチャート。
【図９】図２における鍵盤処理のフローチャート。
【図１０】図２における第１の実施形態の評価処理のフローチャート。
【図１１】図１０に続く評価処理のフローチャート。
【図１２】図６における第１の実施形態の変換処理のフローチャート。
【図１３】図１２におけるベロシティ変換処理（１）のフローチャート。
【図１４】図１２におけるベロシティ変換処理（２）のフローチャート。
【図１５】図２における第２の実施形態の評価処理の一部のフローチャート。
【図１６】図１５における第２の実施形態のパラメータ変更処理のフローチャート。
【図１７】図１６におけるボリューム変換処理（１）のフローチャート。
【図１８】図１６におけるボリューム変換処理（２）のフローチャート。
【符号の説明】
１  ＣＰＵ
３  プログラムＲＯＭ
４  ワークＲＡＭ
５  曲メモリ
６  鍵盤
７  スイッチ部
８  表示部
９  音源
１０  発音回路
【図１】
2004317775.tif 000003
【図２】
2004317775.tif 000004
【図３】
2004317775.tif 000005
【図４】
2004317775.tif 000006
【図５】
2004317775.tif 000007
【図６】
2004317775.tif 000008
【図７】
2004317775.tif 000009
【図８】
2004317775.tif 000010
【図９】
2004317775.tif 000011
【図１０】
2004317775.tif 000012
【図１１】
2004317775.tif 000013
【図１２】
2004317775.tif 000014
【図１３】
2004317775.tif 000015
【図１４】
2004317775.tif 000016
【図１５】
2004317775.tif 000017
【図１６】
2004317775.tif 000018
【図１７】
2004317775.tif 000019
【図１８】
2004317775.tif 000020