JP2004317775A - 自動演奏装置および自動演奏処理のプログラム - Google Patents
自動演奏装置および自動演奏処理のプログラム Download PDFInfo
- Publication number
- JP2004317775A JP2004317775A JP2003111373A JP2003111373A JP2004317775A JP 2004317775 A JP2004317775 A JP 2004317775A JP 2003111373 A JP2003111373 A JP 2003111373A JP 2003111373 A JP2003111373 A JP 2003111373A JP 2004317775 A JP2004317775 A JP 2004317775A
- Authority
- JP
- Japan
- Prior art keywords
- performance
- data
- musical
- music
- evaluation result
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Abstract
【解決手段】CPU1は、曲メモリ5に格納されている複数のパートの曲データからなる自動演奏曲の中から、選択されたパートに対する演奏に基づいて、音源9に対して供給する楽音データを生成するとともに、その選択されたパートを除く他のパートの曲データに基づいて音源9に供給する楽音データを生成する際に、ユーザの演奏の評価結果に応じて、他のパートにおける楽音データの音量を制御する。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、自動演奏装置および自動演奏処理のプログラムに関する。
【0002】
【従来の技術】
自動演奏装置の中には、ユーザの演奏を評価する機能を具備したものがある。そのような従来の自動演奏装置においては、複数のパートを含む楽曲データを記憶する記憶手段と、前記記憶手段から前記楽曲データを読み出す読出し手段と、ユーザの演奏を演奏データとして入力する演奏データ入力手段と、前記楽曲データの特定区間でのみ、前記入力された演奏データと前記楽曲データを比較して前記ユーザの演奏を評価する演奏評価手段とを有する。この場合において、具体的には、演奏タイミング(鍵盤や打楽器の押鍵開始や終了のタイミング)や打撃の強さ(ベロシティの大きさ)などを比較して評価する。そして、演奏評価の結果は、ディスプレイに表示される(例えば、特許文献1参照。)。
【0003】
【特許文献1】
特開2002−91443号公報(段落番号「0012」、「0074」)
【0004】
【発明が解決しようとする課題】
しかしながら、上記従来の技術においては、演奏評価の結果をディスプレイに表示するだけでは、ユーザに効果的な演奏練習を行わせることは容易ではない。特に、現代のように、ユーザの多くはテレビ、ラジオ、映画、ゲームなどの様々なメディアの影響を受けて多様な感性をもっているので、単に演奏評価を表示するようないわゆるワンパターンの方法では、演奏練習に対する意欲を維持させることは困難である。
【0005】
本発明は、多様な感性をもっている現代のユーザに対して、演奏練習という生真面目な行為に、ゲーム性やギャグの性格をもたせることによって、練習の単調さを解消して、演奏練習に対する意欲を維持させることのできる自動演奏装置および自動演奏処理のプログラムを提供することを目的とする。
【0006】
【課題を解決するための手段】
請求項1に記載の自動演奏装置は、複数のパートの曲データからなる自動演奏曲(実施形態においては、図1の曲メモリ5に記憶されている自動演奏曲に相当する)の中から選択されたパートに対する演奏に基づいて所定の音源手段(実施形態においては、図1の音源9に相当する)に対して供給する楽音データを生成する第1の楽音生成手段(実施形態においては、図1のCPU1の機能に相当する)と、選択されたパートを除く他のパートの曲データに基づいて音源手段に供給する楽音データを生成する第2の楽音生成手段(実施形態においては、図1のCPU1の機能に相当する)と、選択されたパートに対する演奏を評価する演奏評価手段(実施形態においては、図1のCPU1の機能に相当する)と、演奏評価手段の評価結果に応じて他のパートにおける楽音データを制御する楽音制御手段(実施形態においては、図1のCPU1の機能に相当する)とを備えた構成になっている。
【0007】
請求項1に記載の自動演奏装置において、楽音制御手段は、演奏評価手段の評価結果に応じて他のパートにおける楽音データの音量を制御するように構成してもよい。
また、請求項1に記載の自動演奏装置において、楽音制御手段は、演奏評価手段の評価結果に応じて前記他のパートにおける楽音データの音色を制御するように構成してもよい。
また、請求項1に記載の自動演奏装置において、楽音制御手段は、評価結果のレベルに応じて前記他のパートの曲データに対して演算処理(実施形態においては、乗算処理又は減算処理に相当する)を行うように構成してもよい。
さらにこの場合において、楽音制御手段は、評価結果のレベルに応じて生成したパラメータの値と他のパートの曲データとを演算するように構成してもよい。
また、請求項1に記載の自動演奏装置において、楽音制御手段は、評価結果のレベルに応じて第2の楽音生成手段によって生成された楽音データに対して演算処理(実施形態においては、乗算処理又は減算処理に相当する)を行うように構成してもよい。
さらにこの場合において、楽音制御手段は、評価結果のレベルに応じて生成したパラメータの値と第2の楽音生成手段によって生成された楽音データとを演算するように構成してもよい。
【0008】
請求項8に記載の自動演奏処理のプログラムは、複数のパートの曲データからなる自動演奏曲(実施形態においては、図1の曲メモリ5に記憶されている自動演奏曲に相当する)の中から選択されたパートに対する演奏に基づいて所定の音源手段(実施形態においては、図1の音源9に相当する)に対して供給する楽音データを生成する第1のステップと、選択されたパートを除く他のパートの曲データに基づいて音源手段に供給する楽音データを生成する第2のステップと、選択されたパートに対する演奏を評価する第3のステップと、第3のステップの評価結果に応じて他のパートにおける楽音データを制御する第4のステップととを実行する。上記各ステップは、図1のCPU1によって実行されるフローチャートにおいて対応する処理に相当する。
【0009】
【発明の実施の形態】
以下、本発明による自動演奏装置の第1ないし第3の実施形態について、図を参照して説明する。
図1は、各実施形態における自動演奏装置の構成を示すブロック図である。この図において、CPU1は、システムバス2を介して、プログラムROM3、ワークRAM4、曲メモリ5、鍵盤6、スイッチ部7、表示部8、および音源9に接続され、これら各部との間で、コマンドおよびデータを授受しながら、この装置全体を制御する。
【0010】
プログラムROM3は、CPU1によって実行される自動演奏処理のプログラム、起動時のイニシャライズにおける初期データなどをあらかじめ記憶している。ワークRAM4は、プログラムの実行に必要な各種のレジスタやフラグのエリアを持っている。曲メモリ5は、複数の自動演奏曲の曲データすなわちイベントデータを記憶している。各自動演奏曲は、複数のパート(ピアノ、フルート、ベース、ドラム、ギターなど)の曲データで構成されている。鍵盤6は、演奏操作に応じてノートおよびベロシティをCPU1に入力する。スイッチ部7は、曲メモリ5に記憶されている曲を選択するスイッチ、自動演奏を開始又は停止するスタート/ストップスイッチなどで構成されている。
表示部8は、自動演奏曲のあるパートを演奏する場合に、その曲の楽譜や演奏に対する評価結果などを表示する。音源9は、CPU1からの楽音データおよび発音指示(ノートオンコマンド)や消音指示(ノートオフコマンド)に応じて、複数の発音チャンネル(例えば、16チャンネル)によってポリ演奏が可能である。この場合において、選択されたパートの演奏に応じてそのパートの音色の楽音信号を発生するだけでなく、他のパートの曲データに応じて各パートの音色の楽音信号を発生して、発音回路10に出力する。発音回路10は、D/A変換回路、フィルタ回路、増幅回路、スピーカなどで構成され、音源9から出力される楽音信号に応じて楽音を発生する。
なお、図には示していないが、CPU1の演奏指示に応じて点灯してガイド表示を行なうLEDが各鍵ごとに設けられている。
【0011】
次に、第1の実施形態における動作について、図2ないし図14に示すCPU1のフローチャートを参照して説明する。
図2(1)は、CPU1のメインフローチャートであり、図2(2)は、一定時間ごとのタイマインタラプト処理のフローチャートである。図2(1)において、まず、イニシャライズを行なって(ステップA1)、ワークRAM4の各種のレジスタをクリアし、各種のフラグを「0」にリセットし、タイマインタラプトを禁止する。イニシャライズの後は、スイッチ部7の各スイッチのオンおよびオフを検出するスイッチ処理(ステップA2)、曲メモリ5から選択された評価対象の曲データを読み出して演奏指示を行う自動演奏処理(ステップA3)、鍵盤6を走査して演奏すなわち押鍵および離鍵の鍵変化を検出する鍵盤処理(ステップA4)、評価対象の曲データの演奏を評価する評価処理(ステップA5)、およびその他の処理(ステップA6)を繰り返し実行する。
このメインフローチャートにおいて、一定時間ごとのタイマインタラプトが入ると、図2(2)のタイマインタラプト処理を実行し、タイマレジスタTIMEの値をデクリメントする(ステップA7)。
【0012】
図3は、メインフローにおけるステップA2のスイッチ処理のフローチャートである。まず、曲選択処理を実行し(ステップB1)、次に、スタート/ストップスイッチ処理を実行する(ステップB2)。次に、その他のスイッチ処理を行い(ステップB3)、メインフローに戻る。
図4は、スイッチ処理におけるステップB1の曲選択スイッチ処理のフローチャートである。スタートフラグSTFが「0(演奏停止)」であるか否かを判別し(ステップC1)、このフラグが「1(自動演奏)」である場合にはこのフローを終了するが、このフラグが「0」である場合には、曲選択のスイッチが操作されたか否かを判別する(ステップC2)。スイッチの操作がない場合にはこのフローを終了するが、スイッチが操作されたときは、そのスイッチが曲選択であるか否かを判別し(ステップC3)、曲選択である場合には、そのスイッチによって指定された選択曲の番号をレジスタMにストアする(ステップC)。そのスイッチが曲選択でない場合には、演奏パートを選択するスイッチであるか否かを判別し(ステップC5)、演奏パートを選択する場合には、そのスイッチによって指定されたパート番号をレジスタPTにストアする(ステップC6)。そして、このフローを終了する。
【0013】
図5は、図3におけるステップB3のスタート/ストップスイッチ処理のフローチャートである。スタート/ストップスイッチがオンされたか否かを判別し(ステップD1)、オンされない場合にはこのフローを終了するが、オンされたときはフラグSTFの値を反転する(ステップD2)。そして、STFの値が「1」であるか否かを判別する(ステップD3)。STFの値が「1」である場合には自動演奏を開始して、レジスタMの選択曲の番号で指定される曲(M)の先頭アドレスをレジスタADにストアする(ステップD4)。また、曲(M)のテンポをレジスタTEMPOにストアする(ステップD5)。
【0014】
次に、ADにより指定される先頭アドレスの曲データのタイムを読出し(ステップD6)、そのタイムをレジスタTIMEにストアする(ステップD7)。そして、TEMPOに基づくタイマインタラプトの周期を設定する(ステップD8)。次に、曲の進行に応じて曲開始からの音符をカウントするレジスタNを「0」にクリアし(ステップD9)、演奏結果を評価するための所定数の音符をカウントするレジスタTを「0」にクリアする(ステップD10)。次に、タイマインタラプトの禁止を解除する(ステップD11)。したがって、TEMPOに基づく周期ごとにTIMEの値がデクリメントされる。
ステップD3において、STFが「1」から「0」に反転したときは、自動演奏の停止であるので、タイマインタラプトを禁止して(ステップD12)、鍵盤6のガイド表示をすべて消灯する(ステップD13)。そして、メインフローに戻る。
【0015】
図6ないし図8は、メインフローにおけるステップA3の自動演奏処理のフローチャートである。STFが「1」であるか否かを判別し(ステップE1)、STFが「1」で自動演奏状態である場合には、タイマインタラプトごとにデクリメントされるTIMEの値が「0」に達したか否かを判別する(ステップE2)。STFが「0」である場合、又は、TIMEの値が「0」に達していない場合には、このフローを終了するが、TIMEの値が「0」に達したときは、次の曲データを読み出すために、ADのアドレスを進める(ステップE3)。そして、ADのアドレスによる曲データの読出しを行なう(ステップE4)。
【0016】
次に、読出した曲データがENDすなわち曲の終了であるか否かを判別する(ステップE5)。ENDでない場合には、そのデータがノートオン又はノートオフのイベントであるか否かを判別する(ステップE6)。イベントでない場合には、データがタイムであるか否かを判別し(ステップE7)、タイムである場合には、そのタイムをTIMEにストアして(ステップE8)、このフローを終了する。一方、読出したデータがイベントである場合には、イベントのパートが鍵盤6で演奏している演奏パートPTでないか否かを判別する(ステップE9)。演奏パートでなく他のパートである場合には、変換処理を実行する(ステップE10)。この変換処理については後述する。
【0017】
ステップE9において、イベントのパートが演奏パートである場合には、図7のフローチャートにおいて、そのイベントがノートオフであるか否かを判別する(ステップE11)。ノートオフである場合には、イベントのノートに対応する鍵のガイド表示を消灯する(ステップE12)。そして、ガイドフラグGUIDEONFを「0」にリセットし(ステップE13)、評価を行なう所定期間の1つの音符に対する処理が終わったので、Tのノート数をインクリメントする(ステップE14)。次に、Tのノート数が基準ノート数を超えたか否かを判別する(ステップE15)。
【0018】
Tのノート数が基準ノート数を超えたときは、表示や音声などでユーザに対して支援するか否かを示すフラグSHIENFを「1(支援)」にセットする(ステップE16)。そして、Tのノート数を「0」にクリアする(ステップE17)。Tをクリアした後は、後述する演奏評価に用いるフラグHYOKAFが「0」であるか否かを判別し(ステップE18)、「0」である場合には「1(評価実行)」にセットする(ステップE19)。HYOKAFを「1」にセットした後、若しくは、HYOKAFが「1」である場合、又は、ステップE15においてTのノート数が基準ノート数に達しない場合には、曲の最初からのノート数をストアするレジスタNのノート数をインクリメントする(ステップE20)。そして、図6のステップE3に移行してADのアドレスを進める。
【0019】
図7のステップE11において、イベントがノートオフでない場合には、図8において、イベントがノートオンであるか否かを判別する(ステップE21)。イベントがノートオンである場合には、レジスタNOTEにイベントのノートをストアする(ステップE23)。次に、イベントのノートに対応して鍵盤6のガイド表示を点灯する(ステップE24)。また、ガイドフラグGUIDEONFを「1」にセットする(ステップE25)。そして、押鍵の有無を示すフラグKEYONFが「1(押鍵)」であるか否かを判別する(ステップE26)。
【0020】
KEYONFが「1」である場合には、鍵盤6が押鍵されているので、NOTEにストアしたイベントのノートと、後述する図9の鍵盤処理においてレジスタKEYにストアされた押鍵のノートとが一致するか否かを判別する(ステップE27)。一致する場合、すなわちGUIDEONFを「1」にセットしたときには、すでに演奏指示する鍵が押鍵されている場合には、評価値をストアするレジスタPOINTの値にαの値を加算する(ステップE28)。一致しない場合、すなわちガイド表示した鍵とは異なる鍵が押鍵されている場合には、POINTの値からαを減算する(ステップE29)。αを加算又は減算した後は、評価フラグHYOKAFを「1」にセットする(ステップE30)。
ステップE21において、データがノートオンのイベントでない場合には、その他のイベント処理を行なう(ステップE22)。
ステップE30においてHYOKAFを「1」にセットした後、ステップE26においてKEYONFが「0」である場合、又は、ステップE22においてその他のイベント処理を行なった後は、図6のステップE3に移行してADのアドレスを進める。
【0021】
図6のステップE5において、読み出したデータがENDである場合には、STFを「0」にリセットして(ステップE31)、鍵盤6のガイド表示をすべて消灯する(ステップE32)。また、タイマインタラプトを禁止する(ステップE33)。そして、このフローを終了してメインフローに戻る。
【0022】
図9は、メインフローにおけるステップA4の鍵盤処理のフローチャートである。このフローでは、鍵走査を行なって(ステップG1)、鍵変化があるか否かを判別する(ステップG2)。鍵変化がない場合には、このフローを終了してメインフローに戻る。鍵変化がオフからオンに変化した場合、すなわち押鍵がされた場合には、その押鍵のノートをレジスタKEYにストアする(ステップG3)。そして、KEYのノートを元にノートオンコマンドを作成し(ステップG4)、そのノートオンコマンドを音源9に送出する(ステップG5)。そして、KEYONFを「1」にセットする(ステップG6)。
【0023】
次に、GUIDEONFが「1」であるか否かを判別する(ステップG7)。このフラグが「0」である場合にはメインフローに戻るが、このフラグが「1」で押鍵指示の鍵のガイド表示が点灯している場合には、KEYにストアしたノートとNOTEにストアした押鍵指示のノートとが一致するか否かを判別する(ステップG8)。一致した場合、すなわち、押鍵指示された鍵が正確に押鍵された場合には、POINTにαの値を加算する(ステップG9)。一致しなかった場合、すなわち、押鍵指示された鍵とは異なる鍵が押鍵された場合には、POINTからαの値を減算する(ステップG10)。αの値を加算又は減算した後は、HYOKAFを「1」にセットする(ステップG11)。そして、メインフローに戻る。
【0024】
ステップG2において、鍵変化がオンからオフに変化した場合、すなわち、離鍵がされた場合には、その離鍵のノートをKEYにストアする(ステップG12)。そして、KEYのノートを元にノートオフコマンドを作成し(ステップG13)、そのノートオフコマンドを音源9に送出する(ステップG14)。次に、KEYONFを「0」にリセットする(ステップF15)。そして、このフローを終了してメインフローに戻る。
【0025】
図10および図11は、メインフローにおけるステップA5の評価処理のフローチャートである。図10のフローにおいて、まず、HYOKAFが「1」であるか否かを判別する(ステップH1)。このフラグが「1」である場合にはこれを「0」にリセットする(ステップH2)。次に、評価すべき所定期間の配列P(n)を指定するポインタnを「0」にセットして(ステップH3)、P(n)にP(n+1)を代入して(ステップH4)、nの値をインクリメントする(ステップH5)。そして、n+1の値が評価ノート数に達したか否かを判別する(ステップH6)。評価ノート数に達していない場合には、ステップH4に移行して、ステップH6までの処理を繰り返す。
【0026】
ステップH6において、n+1の値が評価ノート数に達した場合には、POINTの値をP(n)にストアする(ステップH7)。POINTの値をストアした後は、フラグSHIENFが「1」であるか否かを判別し(ステップH8)、SHIENFが「0」である場合にはこのフローを終了するが、SHIENFが「1」である場合には、これをリセットする(ステップH9)。
【0027】
次に、Nにストアした曲の最初からの音符数が、あらかじめ設定されている2つの音符数であるD1より大きくD2より小さい期間にあるか否かを判別する(ステップH10)。すなわち、曲の最初の音符からD1までの音符、および、D2の音符から曲の終了までの範囲を除く期間(評価対象期間)にNの音符数があるか否かを判別する。Nにストアした音符数がこの期間にない場合には、このフローを終了する。
【0028】
Nにストアした音符数がD1より大きくD2より小さい期間にある場合には、図11のフローにおいて、配列P(n)の評価ノート数を指定するポインタnを「0」にセットする(ステップH11)。次に、評価用レジスタHYOKAを「0」にクリアする(ステップH12)。そして、HYOKAにP(n)の値を加算する(ステップH13)。次に、nの値をインクリメントして(ステップH14)、nの値が評価ノート数になったか否かを判別する(ステップH15)。評価ノート数になっていない場合には、ステップH13に移行して、ステップH15までの処理を繰り返す。ステップH15において、nの値が評価ノート数になった場合には、このフローを終了する。
【0029】
図12は、図6におけるステップE10の変換処理のフローチャートである。この変換処理においては、評価処理における演奏の評価結果であるHYOKAの値(すなわち、評価のレベル)に応じて、プログラムROM3に格納されている音量変更のテーブルを参照する。図には示さないが、このテーブルは、評価結果のレベルであるHYOKAを「行」とし、演奏パート以外の他のパート、例えば、フルート、ベース、ドラム、ギターなどの音色のパート番号を「列」とする配列TABLE(HYOKA,パート番号)であり、各音色のパートごとに評価結果のレベルに応じた音量変更パラメータの値が格納されている。
【0030】
まず、イベントがノートオンであるか否かを判別して(ステップF1)、ノートオンである場合には、イベントのパート番号をポインタnにセットする(ステップF2)。次に、ポインタで指定したパート番号と評価結果に応じて、配列TABLE(HYOKA,n)の音量変更パラメータをレジスタPARAMETERにストアし(ステップF3)、イベントのベロシティをレジスタVELOCITYにストアする(ステップF4)。次に、ベロシティ変換処理を実行する(ステップF5)。
【0031】
このベロシティ変換処理においては、演奏の評価結果に応じてベロシティを変更するために演算処理を行うが、その演算処理にはいくつかの方法がある。図13および図14は、図12におけるステップF5のベロシティ変換処理の例を示すフローチャートである。
図13のベロシティ変換処理(1)では、各パート番号において、評価結果が低いほど変更パラメータの値が小さいテーブルを用いて、PARAMETERにストアされている変更パラメータの値を「100」で除算し、その除算値とVELOCITYにストアされているベロシティの値と乗算し、その乗算した値をレジスタVELにストアする(ステップF51)。そして、図12のステップF6に移行する。したがって、評価結果が低いほど乗算した値が小さくなる。
一方、図14のベロシティ変換処理(2)では、各パート番号において、評価結果が低いほど変更パラメータの値が大きいテーブルを用いて、PARAMETERにストアされている変更パラメータの値をVELOCITYにストアされているベロシティの値から減算し、その減算した値をレジスタVELにストアする(ステップF52)。そして、図12のステップF6に移行する。したがって、評価結果が低いほど減算した値が小さくなる。
図12のステップF6においては、VELの値に基づきイベントのベロシティを変更する。次に、イベントのノートオンデータおよび変更したベロシティのデータを音源9に送出する(ステップF7)。そして、このフローを終了して、自動演奏処理のフローに戻る。
【0032】
以上のように、この第1の実施形態においては、CPU1は、曲メモリ5に格納されている複数のパートの曲データからなる自動演奏曲の中から、選択されたパートに対する演奏に基づいて、音源9に対して供給する楽音データを生成するとともに、その選択されたパートを除く他のパートの曲データに基づいて音源9に供給する楽音データを生成する際に、ユーザの演奏の評価結果に応じて、他のパートにおける楽音データのベロシティの値を変換して音量を制御する。
例えば、鍵盤6を演奏してピアノのパートを練習している場合に、その演奏の評価結果が低いときには、他のパートであるフルート、ベース、ドラム、ギターの発音の音量が小さくなる。このため、演奏者は演奏の評価結果が低いことを認識するが、その評価結果の表現方法がテレビや舞台などのお笑い番組のように面白く、評価結果が低いことで劣等感を抱くことが少ない。このように、第1の実施形態の構成によれば、演奏練習という生真面目な行為に、ゲーム性やギャグの性格をもたせることによって堅苦しさを解消して、演奏練習に対する意欲を維持させることができる。
【0033】
次に、本発明の第2の実施形態について説明する。第2の実施形態における動作の大部分は、上記第1の実施形態における動作と同じであるので、第1の実施形態の図面を援用するとともに、第1の実施形態と異なる部分について説明する。
第2の実施形態における自動演奏処理においては、図6のフローのステップE9において、イベントのパートが演奏パートでない場合には、第1の実施形態のように変更処理は行わずに、そのイベントを音源に送出する。
これに対して、評価処理においては、図11のフローのステップH15において、nが評価ノート数に達した場合に、第1の実施形態ではステップH16においてHYOKAをストアしたが、この第2の実施形態においては、図15のステップH17に示すように、パラメータ変換処理を実行する。
【0034】
図16は、そのパラメータ変更処理のフローチャートである。まず、各パートをアサイインする音源9のチャンネルを指定するポインタiの値を「0」にセットして(ステップJ1)、iの値をインクリメントしながら、ステップJ2からステップJ8までのループを繰り返す。すなわち、ポインタで指定するiチャンネルが演奏パートに対応するチャンネルと異なるか否かを判別する(ステップJ2)。演奏パートのチャンネルと異なる場合には、演奏の評価結果のレベルであるHYOKAおよびパート番号nに応じて配列TABLE(HYOKA,n)の変更パラメータの値をレジスタPARAMETERにストアし(ステップJ3)、iチャンネルのボリューム値をレジスタvolumeにストアする(ステップJ4)。次に、ボリューム変換処理を実行する(ステップJ5)。
【0035】
このパラメータ変換処理においては、演奏の評価結果に応じてボリューム値を変更するために演算処理を行うが、その演算処理にはいくつかの方法がある。図17および図18は、図16におけるステップJ5のボリューム変換処理の例を示すフローチャートである。
図17のボリューム変換処理(1)では、各パート番号において、評価結果が低いほど変更パラメータの値が小さいテーブルを用いて、PARAMETERにストアされている変更パラメータの値を「100」で除算し、その除算値とvolumeにストアされているボリューム値と乗算し、その乗算した値をvolumeにストアして更新する(ステップJ51)。そして、図16のステップJ6に移行する。したがって、評価結果が低いほど乗算した値が小さくなる。
一方、図18のボリューム変換処理(2)では、各パート番号において、評価結果が低いほど変更パラメータの値が大きいテーブルを用いて、PARAMETERにストアされている変更パラメータの値をvolumeにストアされているボリューム値から減算し、その減算した値をvolumeにストアして更新する(ステップJ52)。そして、図16のステップJ6に移行する。したがって、評価結果が低いほど減算した値が小さくなる。
【0036】
図16のステップJ6においては、iチャンネルのボリューム値をvolumeに変換する。次に、iの値をインクリメントする(ステップJ7)。ステップJ2において、iチャンネルが演奏チャンネルである場合には、ステップJ7に移行してiの値をインクリメントする。そして、iの値が最大チャンネルより大きくなったか否かを判別し(ステップJ8)、最大チャンネル以内である場合には、ステップJ2に移行してループを繰り返す。iの値が最大チャンネルより大きくなったとき、すなわち、演奏パート以外のすべてのパートにおけるパラメータ変更を行った後は、このフローを終了してメインフローに戻る。
【0037】
以上のように、この第2の実施形態においても、CPU1は、曲メモリ5に格納されている複数のパートの曲データからなる自動演奏曲の中から、選択されたパートに対する演奏に基づいて、音源9に対して供給する楽音データを生成するとともに、その選択されたパートを除く他のパートの曲データに基づいて音源9に供給する楽音データを生成する際に、ユーザの演奏の評価結果に応じて、他のパートにおける楽音データのボリューム値を変換して音量を制御する。
このように、第2の実施形態の構成によれば、第1の実施形態と同様に、演奏練習という生真面目な行為に、ゲーム性やギャグの性格をもたせることによって堅苦しさを解消して、演奏練習に対する意欲を維持させることができる。
【0038】
なお、上記第1および第の実施形態における演算処理を併用した実施形態の構成でもよい。すなわち、演奏の評価結果に応じて、他のパートにおける曲データのベロシティを変換するとともに、ボリューム値を変換する構成にしてもよい。
また、上記第1および第2の実施形態においては、演奏の評価結果が低いときには、他のパートの音量を小さくするように制御をしたが、逆に、他のパートの音量を上げるように制御してもよい。この場合には、演奏者は、自分の演奏の評価が低いことを認識できるが、他のパートの音量が大きくなるので、周囲で聴いている人には演奏の悪さが分からない。すなわち、このような音量制御によれば、ゲーム性やギャグの性格をもたせるのではなく、演奏のレベルが低いことが家族や知人などの周囲の人に目立たないので、周囲を気にせずに演奏することで、演奏練習に対する意欲を維持させることができる。
【0039】
次に、本発明の第3の実施形態について説明する。上記第1および第2の実施形態においては、演奏の評価結果が低いときには、他のパートの音量を小さくするように制御したが、この第3の実施形態においては、演奏の評価結果に応じて、演奏パート以外の他のパートにおける音色を制御する。
例えば、演奏パートがピアノ音色である場合に、他のパートの音色、すなわち、フルート、ベース、ドラム、ギターなどの音色データは、あらかじめプログラムROM3に格納されている。通常、この音色データは、各パートごとに複数の記憶エリア(これを「バンク」という)で構成されている。そして、バンクごとに、クラシック、ロック、ジャズ、サンバなどの音楽ジャンルのバンク「#0」、「#1」、「#3」…で構成されている。
【0040】
例えば、フルートの音色番号を「03」とすると、バンク「#0」におけるクラシックの音色データのアドレスは「003」、バンク「#1」におけるロックの音色データのアドレスは「103」、バンク「#2」におけるジャズの音色データのアドレスは「203」のようなデータ構成になっている。また、ベースの音色番号を「04」とすると、バンク「#0」におけるクラシックの音色データのアドレスは「004」、バンク「#1」におけるロックの音色データのアドレスは「104」、バンク「#2」におけるジャズの音色データのアドレスは「204」のようなデータ構成になっている。すなわち、音色データのアドレスを「100」単位で変えた場合には、同じパート例えばフルートの音色ではあるが、クラシック、ロック、ジャズ、サンバなどの音色で発音がなされる。
【0041】
第3の実施形態においては、演奏の評価結果のレベルに応じて、演奏パート以外の他のパートを現在設定されている音楽ジャンルのバンクから他のバンクに変更する。この場合における演算処理は、音色番号と演奏の評価結果のレベルとからなるテーブルに音色変更パラメータを記憶させておき、各パートごとに評価結果のレベルに対応する音色変更パラメータを読み出して、その音色変更パラメータによってバンクのアドレスを「100」単位で変更する。
例えば、現在クラシックの演奏によって演奏パートおよび他のパートの発音がされている状態において、演奏のレベルが低下したときは、フルートのパートについては現在のアドレスに「200」が加算されて、ファンキーなジャズの音色に変更され、ギターのパートは現在のアドレスに「100」が加算されて、激しいロックの音色に変更される。他のパートも同様に、クラシックの音色から他の音色に変更される。このため、演奏の評価結果が低いほど、全体の音楽的調和が崩れた奇妙な音になってしまう。
このように、第3の実施形態の構成によれば、演奏の評価結果に応じて、演奏パート以外のパートの音色を制御するので、第1および第2の実施形態と同様に、演奏練習という生真面目な行為に、ゲーム性やギャグの性格をもたせることによって堅苦しさを解消して、演奏練習に対する意欲を維持させることができる。
【0042】
この第3の実施形態の変形例として、演奏の評価結果に応じて、演奏パート以外のパートの音色を制御する場合に、演奏の評価結果が低いときには、壊れた楽器の音色、楽器のボディを叩くような音色、楽器以外の音色などに変更する構成にしてもよい。あるいは、演奏パート以外のパートの音色を変更する代わりに、又は、音色を変更する制御と並行して、「やってられない」、「帰るか」、「ピアノが上手すぎてついていけない」などのように、演奏者を面白おかしくやじったりからかったりする合成音声を発生するような構成にしてもよい。この場合にも、奇妙きてれつな表現で演奏の評価を行うので、演奏者が評価の低いことで深刻にならずにすみ、演奏練習に対する意欲を維持させることができる。
【0043】
なお、上記各実施形態においては、自動演奏処理のプログラムがあらかじめプログラムROM3に格納されている自動演奏装置を例に採って装置の発明について説明したが、本発明は装置の発明に限定されるものではない。例えば、FD(フレキシブルディスク)、CD−ROMなどの外部記憶媒体に記憶されている自動演奏処理のプログラムや、インターネットなどの通信網を介してダウンロードされる自動演奏処理のプログラムを、パソコンなどの汎用の情報処理装置にインストールして実行することも可能である。この場合には、プログラムの発明を構成する。
【0044】
すなわち、本発明による自動演奏処理のプログラムは、複数のパートの曲データからなる自動演奏曲の中から選択されたパートに対する演奏に基づいて所定の音源手段に対して供給する楽音データを生成する第1のステップと、選択されたパートを除く他のパートの曲データに基づいて音源手段に供給する楽音データを生成する第2のステップと、選択されたパートに対する演奏を評価する第3のステップと、第3のステップの評価結果に応じて他のパートにおける楽音データを制御する第4のステップとを実行する。
【0045】
【発明の効果】
本発明によれば、複数のパートの曲データからなる自動演奏曲の中から選択されたパートに対する演奏に基づいて所定の音源手段に対して供給する楽音データを生成するとともに、選択されたパートを除く他のパートの曲データに基づいて音源手段に供給する楽音データを生成する際に、選択されたパートに対する演奏を評価して、その評価結果に応じて他のパートにおける楽音データを制御するので、演奏練習という生真面目な行為に、ゲーム性やギャグの性格をもたせることによって堅苦しさを解消して、演奏練習に対する意欲を維持させることができるという効果が得られる。
【図面の簡単な説明】
【図1】本発明の第1ないし第3の実施形態における自動演奏装置の構成を示すブロック図。
【図2】(1)は各実施形態におけるCPUのメインフローチャート、(2)はタイマインタラプトのフローチャート。
【図3】図2におけるスイッチ処理のフローチャート。
【図4】図3における曲選択スイッチ処理のフローチャート。
【図5】図3におけるスタート/ストップスイッチ処理のフローチャート。
【図6】図2における第1の実施形態の自動演奏処理のフローチャート。
【図7】図6に続く自動演奏処理のフローチャート。
【図8】図7に続く自動演奏処理のフローチャート。
【図9】図2における鍵盤処理のフローチャート。
【図10】図2における第1の実施形態の評価処理のフローチャート。
【図11】図10に続く評価処理のフローチャート。
【図12】図6における第1の実施形態の変換処理のフローチャート。
【図13】図12におけるベロシティ変換処理(1)のフローチャート。
【図14】図12におけるベロシティ変換処理(2)のフローチャート。
【図15】図2における第2の実施形態の評価処理の一部のフローチャート。
【図16】図15における第2の実施形態のパラメータ変更処理のフローチャート。
【図17】図16におけるボリューム変換処理(1)のフローチャート。
【図18】図16におけるボリューム変換処理(2)のフローチャート。
【符号の説明】
1 CPU
3 プログラムROM
4 ワークRAM
5 曲メモリ
6 鍵盤
7 スイッチ部
8 表示部
9 音源
10 発音回路
Claims (8)
- 複数のパートの曲データからなる自動演奏曲の中から選択されたパートに対する演奏に基づいて所定の音源手段に対して供給する楽音データを生成する第1の楽音生成手段と、
前記選択されたパートを除く他のパートの曲データに基づいて前記音源手段に供給する楽音データを生成する第2の楽音生成手段と、
前記選択されたパートに対する演奏を評価する演奏評価手段と、
前記演奏評価手段の評価結果に応じて前記他のパートにおける楽音データを制御する楽音制御手段と、
を備えた自動演奏装置。 - 前記楽音制御手段は、前記演奏評価手段の評価結果に応じて前記他のパートにおける楽音データの音量を制御することを特徴とする請求項1記載の自動演奏装置。
- 前記楽音制御手段は、前記演奏評価手段の評価結果に応じて前記他のパートにおける楽音データの音色を制御することを特徴とする請求項1記載の自動演奏装置。
- 前記楽音制御手段は、前記評価結果のレベルに応じて前記他のパートの曲データに対して演算処理を行うことを特徴とする請求項1記載の自動演奏装置。
- 前記楽音制御手段は、前記評価結果のレベルに応じて生成したパラメータの値と前記他のパートの曲データとを演算することを特徴とする請求項4記載の自動演奏装置。
- 前記楽音制御手段は、前記評価結果のレベルに応じて前記第2の楽音生成手段によって生成された楽音データに対して演算処理を行うことを特徴とする請求項1記載の自動演奏装置。
- 前記楽音制御手段は、前記評価結果のレベルに応じて生成したパラメータの値と前記第2の楽音生成手段によって生成された楽音データとを演算することを特徴とする請求項6記載の自動演奏装置。
- 複数のパートの曲データからなる自動演奏曲の中から選択されたパートに対する演奏に基づいて所定の音源手段に対して供給する楽音データを生成する第1のステップと、
前記選択されたパートを除く他のパートの曲データに基づいて前記音源手段に供給する楽音データを生成する第2のステップと、
前記選択されたパートに対する演奏を評価する第3のステップと、
前記第3のステップの評価結果に応じて前記他のパートにおける楽音データを制御する第4のステップと、
を実行する自動演奏処理のプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003111373A JP2004317775A (ja) | 2003-04-16 | 2003-04-16 | 自動演奏装置および自動演奏処理のプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003111373A JP2004317775A (ja) | 2003-04-16 | 2003-04-16 | 自動演奏装置および自動演奏処理のプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004317775A true JP2004317775A (ja) | 2004-11-11 |
Family
ID=33471945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003111373A Pending JP2004317775A (ja) | 2003-04-16 | 2003-04-16 | 自動演奏装置および自動演奏処理のプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004317775A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011059309A (ja) * | 2009-09-09 | 2011-03-24 | Casio Computer Co Ltd | 演奏教習装置および演奏教習プログラム |
JP2011095530A (ja) * | 2009-10-30 | 2011-05-12 | Casio Computer Co Ltd | 自動伴奏装置およびプログラム |
JP2014071215A (ja) * | 2012-09-28 | 2014-04-21 | Brother Ind Ltd | 演奏装置、演奏システム、プログラム |
-
2003
- 2003-04-16 JP JP2003111373A patent/JP2004317775A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011059309A (ja) * | 2009-09-09 | 2011-03-24 | Casio Computer Co Ltd | 演奏教習装置および演奏教習プログラム |
JP2011095530A (ja) * | 2009-10-30 | 2011-05-12 | Casio Computer Co Ltd | 自動伴奏装置およびプログラム |
JP2014071215A (ja) * | 2012-09-28 | 2014-04-21 | Brother Ind Ltd | 演奏装置、演奏システム、プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4748011B2 (ja) | 電子鍵盤楽器 | |
JP5041015B2 (ja) | 電子楽器および楽音生成プログラム | |
JP2004264501A (ja) | 鍵盤楽器 | |
JP2004334051A (ja) | 楽譜表示装置および楽譜表示コンピュータプログラム | |
JPH11296168A (ja) | 演奏情報評価装置、演奏情報評価方法及び記録媒体 | |
JP4808868B2 (ja) | 自動演奏装置 | |
JP2004317775A (ja) | 自動演奏装置および自動演奏処理のプログラム | |
JP2007078724A (ja) | 電子楽器 | |
JP2010117419A (ja) | 電子楽器 | |
JP5630218B2 (ja) | 楽音生成装置および楽音生成プログラム | |
JP5692275B2 (ja) | 電子楽器 | |
JP2006126697A (ja) | 自動伴奏装置 | |
JP7452501B2 (ja) | 自動演奏装置、電子楽器、演奏システム、自動演奏方法、及びプログラム | |
JP5564921B2 (ja) | 電子楽器 | |
JP7331887B2 (ja) | プログラム、方法、情報処理装置、および画像表示システム | |
JP3933070B2 (ja) | アルペジオ生成装置及びプログラム | |
JP4186855B2 (ja) | 楽音制御装置及びプログラム | |
JP4214845B2 (ja) | 自動アルペジオ装置および同装置に適用されるコンピュータプログラム | |
JP2017129611A (ja) | 電子音響装置 | |
JP4218566B2 (ja) | 楽音制御装置及びプログラム | |
JP3752940B2 (ja) | 自動作曲方法、自動作曲装置及び記録媒体 | |
JP3827274B2 (ja) | 音楽的アミューズメントシステム | |
JP4174961B2 (ja) | 演奏装置、演奏方法および情報記録媒体 | |
JP2023043297A (ja) | 情報処理装置、電子楽器、音列生成方法及びプログラム | |
JP4942938B2 (ja) | 自動伴奏装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20060208 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060228 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20060405 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070914 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071009 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071122 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20071218 |