JP3932708B2 - Musical sound generating apparatus and recording medium - Google Patents

Musical sound generating apparatus and recording medium Download PDF

Info

Publication number
JP3932708B2
JP3932708B2 JP36571498A JP36571498A JP3932708B2 JP 3932708 B2 JP3932708 B2 JP 3932708B2 JP 36571498 A JP36571498 A JP 36571498A JP 36571498 A JP36571498 A JP 36571498A JP 3932708 B2 JP3932708 B2 JP 3932708B2
Authority
JP
Japan
Prior art keywords
performance information
actual performance
actual
information
performance
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.)
Expired - Fee Related
Application number
JP36571498A
Other languages
Japanese (ja)
Other versions
JP2000187485A (en
Inventor
甫 林田
潔 河村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP36571498A priority Critical patent/JP3932708B2/en
Publication of JP2000187485A publication Critical patent/JP2000187485A/en
Application granted granted Critical
Publication of JP3932708B2 publication Critical patent/JP3932708B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、電子楽器に用いて好適な楽音生成装置よび記録媒体に関する。
【0002】
【従来の技術】
従来より、音楽教室等においては、教師の模範演奏と生徒の演奏とを比較して採点する装置が用いられれている。この装置においては、予め教師の模範演奏を演奏情報として記憶し、この演奏情報が生徒の演奏と比較され、比較結果が出力される。従って、生徒はこの比較結果を見て、次回の演奏において修正すべき点を知ることができる。
【0003】
【発明が解決しようとする課題】
しかし、上記装置においては、比較結果をリアルタイムに確認することができず不便であった。さらに、比較結果に基づいて演奏内容を修正することも不可能であった。
この発明は上述した事情に鑑みてなされたものであり、演奏内容を自動的に修正できる楽音生成装置よび記録媒体を提供することを第1の目的としている。また、模範演奏と実演奏との比較結果をリアルタイムに確認できる楽音生成装置よび記録媒体を提供することを第2の目的としている。
【0004】
【課題を解決するための手段】
上記課題を解決するため請求項1記載の構成にあっては、基準演奏情報を記憶した記憶手段と、演奏者による演奏に基づき実演奏情報を発生する実演奏情報発生手段と、楽音信号を発生する楽音信号発生手段と、前記実演奏情報に基づいて前記楽音信号楽音信号発生手段に対して楽音信号の発生を指示する制御手段であって、前記実演奏情報と前記基準演奏情報とが所定の関係にある場合にのみ、前記基準演奏情報に基づいて前記実演奏情報を修正し、該修正された実演奏情報に基づいて前記楽音信号発生手段に対して楽音信号の発生を指示する制御手段とを有し、前記基準演奏情報および前記実演奏情報は発生すべき楽音信号の音高を指示する音高情報を含み、前記制御手段は、前記基準演奏情報に含まれる音高情報と前記実演奏情報に含まれる音高情報とが一致しない場合であっても、前記基準演奏情報に含まれる音高情報と前記実演奏情報に含まれる音高情報との差が所定値以上である場合、あるいは、前記基準演奏情報に含まれる音高情報と前記実演奏情報に含まれる音高情報とが所定の音程関係にある場合には、前記実演奏情報の修正を行わないことを特徴とする。
さらに、請求項に記載の構成にあっては、基準演奏情報を記憶した記憶手段と、演奏者による演奏に基づき実演奏情報を発生する実演奏情報発生手段と、楽音信号を発生する楽音信号発生手段と、前記実演奏情報に基づいて前記楽音信号楽音信号発生手段に対して楽音信号の発生を指示する制御手段であって、前記実演奏情報と前記基準演奏情報とが所定の関係にある場合にのみ、前記基準演奏情報に基づいて前記実演奏情報を修正し、該修正された実演奏情報に基づいて前記楽音信号発生手段に対して楽音信号の発生を指示する制御手段とを有し、前記制御手段は、前記実演奏情報が前記基準演奏情報を含む所定範囲以内であるか否かを判断し、該所定範囲より外れている場合には前記実演奏情報を前記所定範囲の境界値に修正することを特徴とする。
さらに、請求項に記載の構成にあっては、基準演奏情報を記憶した記憶手段と、演奏者による演奏に基づき実演奏情報を発生する実演奏情報発生手段と、楽音信号を発生する楽音信号発生手段と、前記基準演奏情報と前記実演奏情報との比較結果に基づいて前記楽音信号発生手段に対して楽音信号の発生を指示する制御手段であって、前記実演奏情報の発生が所定時間以上中断した場合、あるいは、前記基準演奏情報に基づき規定されるタイミングから所定時間以上経過しても前記実演奏情報が発生されない場合、前記基準演奏情報に基づいて前記楽音信号発生手段に対して楽音信号の発生を指示する制御手段とを有し、前記制御手段は、モード1およびモード2の動作モードを指定可能であり、前記モード1が指示された場合には、前記実演奏情報の発生が中断した時点から所定時間経過したタイミング、あるいは、前記基準演奏情報に基づき規定されるタイミングから所定時間経過したタイミングに対応する前記基準演奏情報に基づいて前記楽音信号発生手段に対して楽音信号の発生を指示し、前記モード2が指示された場合には、前記実演奏情報の発生が中断したタイミング、あるいは、前記基準演奏情報に基づき規定されるタイミングに対応する前記基準演奏情報に基づいて前記楽音信号発生手段に対して楽音信号の発生を指示するものであることを特徴とする。
さらに、請求項に記載の構成にあっては、コンピュータに、基準演奏情報を記憶する過程と、演奏者による演奏に基づき実演奏情報を発生する過程と、前記実演奏情報と前記基準演奏情報とが所定の関係にある場合にのみ、前記基準演奏情報に基づいて前記実演奏情報を修正し、適宜修正された該実演奏情報に基づいて楽音信号を発生する過程とを実行させるためプログラムであって、前記基準演奏情報および前記実演奏情報は発生すべき楽音信号の音高を指示する音高情報を含み、前記楽音信号を発生する過程にあっては、前記基準演奏情報に含まれる音高情報と前記実演奏情報に含まれる音高情報とが一致しない場合であっても、前記基準演奏情報に含まれる音高情報と前記実演奏情報に含まれる音高情報との差が所定値以上である場合、あるいは、前記基準演奏情報に含まれる音高情報と前記実演奏情報に含まれる音高情報とが所定の音程関係にある場合には、前記実演奏情報の修正を行わないプログラムを記録したことを特徴とする。
さらに、請求項に記載の構成にあっては、コンピュータに、基準演奏情報を記憶する過程と、演奏者による演奏に基づき実演奏情報を発生する過程と、前記実演奏情報と前記基準演奏情報とが所定の関係にある場合にのみ、前記基準演奏情報に基づいて前記実演奏情報を修正し、適宜修正された該実演奏情報に基づいて楽音信号を発生する過程とを実行させるためプログラムであって、前記楽音信号を発生する過程にあっては、前記実演奏情報が前記基準演奏情報を含む所定範囲以内であるか否かを判断し、該所定範囲より外れている場合には前記実演奏情報を前記所定範囲の境界値に修正するプログラムを記録したことを特徴とする。
さらに、請求項に記載の構成にあっては、コンピュータに、基準演奏情報を記憶する過程と、演奏者による演奏に基づき実演奏情報を発生する過程と、前記実演奏情報の発生が所定時間以上中断した場合、あるいは、前記基準演奏情報に基づき規定されるタイミングから所定時間以上経過しても前記実演奏情報が発生されない場合、前記基準演奏情報に基づいて楽音信号を発生する過程とを実行させるためプログラムであって、モード1およびモード2の動作モードを指定可能であり、前記モード1が指示された場合には、前記実演奏情報の発生が中断した時点から所定時間経過したタイミング、あるいは、前記基準演奏情報に基づき規定されるタイミングから所定時間経過したタイミングに対応する前記基準演奏情報に基づいて前記楽音信号を発生し、前記モード2が指示された場合には、前記実演奏情報の発生が中断したタイミング、あるいは、前記基準演奏情報に基づき規定されるタイミングに対応する前記基準演奏情報に基づいて前記楽音信号を発生するプログラムを記録したことを特徴とする。
【0005】
【発明の実施の形態】
1.実施形態の構成
次に、本実施形態の電子楽器の構成を図1を参照し説明する。図において1はCPUであり、後述する制御プログラムに基づいて、バス15を介して他の各部を制御する。2は電子音源であり、CPU1の制御の下、楽音信号を発生させる。この楽音信号は、出力ポート8、アンプ9、スピーカ10またはヘッドホン11を順次介して発音される。
【0006】
12は鍵盤、13はペダルであり、演奏者によって操作される。14は操作パネルであり、電子楽器の音色設定や各種モード設定を行う。3はセンサ部であり、鍵盤12、ペダル13および操作パネル14の操作状態を検出するセンサによって構成されている。4はディスプレイであり、ユーザに対して各種情報を表示する。すなわち、ディスプレイ4は楽曲の進行に伴って模範演奏の演奏情報を楽譜として表示するとともに、演奏者が誤った演奏を行った場合にはその旨の警告メッセージを表示する(詳細は後述する)。
【0007】
5はRAMであり、CPU1のワークメモリとして用いられる。6はROMであり、後述する各種制御プログラムが格納される。7はフロッピーディスクドライブであり、演奏情報等の記録および再生のために用いられる。ここで、演奏情報のデータ構成を図10に示しておく。
【0008】
図において演奏情報はノートオン、ノートオフ等のイベントデータと、各イベントデータ間の相対時間(絶対時間はテンポに応じて変動する)を示すデュレーションデータと、演奏情報の終了を示すエンドデータとから構成される。各イベントデータは、ノートオン/オフの区別を示すデータと、ノートオン/オフに係るノートコードとを含み、さらにノートオンイベントデータは、イベントの強さを示すベロシティを含んでいる。
【0009】
図1に戻り、上記操作パネル14においては、以下のようなスイッチが設けられている。まず、14aはモード切換スイッチであり、モード0,1,2の何れかの動作モードを選択する。ここで、モード0は模範演奏に基づいて演奏支援を行わないモードであり、実演奏の内容は模範演奏と比較されることなくそのまま出力される。モード1,2は演奏支援を行うモードであり、その動作の詳細については実施形態の動作とともに説明する。
【0010】
14bはスタートスイッチであり、自動演奏の開始を指示するためのスイッチである。すなわち、モード0においてはスタートスイッチ14bが押下されると直ちに自動演奏が開始され、モード1,2においては所定の条件の下、自動演奏が開始される(詳細は後述する)。また、14cはストップスイッチであり、上記自動演奏の終了を指示するためのスイッチである。
【0011】
2.実施形態の動作
2.1.モード0の場合の動作
2.1.1.自動演奏オフ
電子楽器の電源が投入されると、図2に示すメインルーチンが起動される。図において処理がステップSP1に進むと、所定の初期設定が行われる。この初期設定の際、動作モードはモード0に設定される。次に、処理がステップSP2に進むと、図4に示す鍵盤処理ルーチンが呼び出される。同ルーチンにおいて処理がステップSP11に進むと、いずれかの鍵が操作されたか否かが判定される。ここで「NO」と判定されると、処理は直ちにメインルーチンに戻る。
【0012】
何れかの鍵が操作された場合は処理はステップSP12に進み、動作モードはモード0であるか否かが判定される。ここで、動作モードはモード0に初期設定されているから「YES」と判定され、処理はステップSP13に進む。ここでは、操作された鍵に関する情報が電子音源2に供給される。
【0013】
すなわち何れかの鍵のキーオンが検出された場合は、キーオン信号、その鍵のノートコードおよびベロシティが電子音源2に供給され、電子音源2において対応する音の発音が開始される。一方、何れかの鍵のキーオフが検出された場合は、キーオフ信号およびその鍵のノートコードが電子音源2に供給され、電子音源2における消音処理が行われる。このように、モード0においては、キーオン、キーオフ等のタイミングが特に修正されることなく発音または消音処理が行われる。
【0014】
次に、メインルーチンに戻り、処理がステップSP3に進むと、図5に示す自動演奏処理ルーチンが呼び出される。図において処理がステップSP31に進むと、モード切換スイッチ14aがオンされたか否かが判定される。スタートスイッチ14bがオンされていなければ「NO」と判定され、処理はステップSP34に進む。ここでは、ストップスイッチ14cがオンされたか否かが判定される。ストップスイッチ14cがオンされていなければ「NO」と判定され、処理はステップSP36に進む。
【0015】
ここでは、フラグBFが“1”であるか否かが判定される。ここで、フラグBFは初期設定(ステップSP1)において“0”に初期化されている。従って、ここでは「NO」と判定され、処理はメインルーチンに戻る。メインルーチンにおいて処理がステップSP4に進むと、パネル処理が行われる。すなわち、操作パネル14の操作状態に応じて自動演奏のテンポ設定や動作モードの設定等が行われる。次に、処理がステップSP5に進むと、その他各種の処理が行われる。以後、ステップSP2〜SP5の処理が繰返される。
【0016】
ところで、設定されたテンポに応じた周期でCPU1に対してタイマ割込みが発生し、図3に示す割込処理ルーチン(図3)が起動される。図において処理がステップSP21に進むと、フラグBFが“1”であるか否かが判定される。ここで「NO」と判定されると、割込処理は直ちに終了し、実質的な処理は行われない。
【0017】
2.1.2.自動演奏オン
ここで、演奏者がスタートスイッチ14bを押下すると、その旨がセンサ部3を介して検出される。その後に自動演奏処理ルーチン(図5)が呼び出され処理がステップSP31に進むと、ここで「YES」と判定され、処理はステップSP32に進む。
【0018】
ここでは、フラグBFが“1”に設定される。次に処理がステップSP33に進むと、アドレスAD1が「1」に設定される。すなわち、模範演奏の演奏データの読出しアドレスが、該演奏データの先頭に設定される。また、ステップSP33においては、アドレスAD1=「1」またはそれ以降の演奏データにおいて、最初のデュレーションデータが読み出され、そのデュレーションデータがレジスタDに格納される。
【0019】
次に、処理がステップSP34を介してステップSP36に進むと、フラグBFは“1”に設定されたから「YES」と判定され、処理はステップSP37に進む。ここでは、動作モードに基づいて処理が分岐される。ここでは、動作モードとしてモード0が選択されているから、処理はステップSP38に進み、モード0処理サブルーチン(図6)が呼び出される。
【0020】
図6において処理がステップSP51に進むと、レジスタDの値が「0」であるか否かが判定される。ここで、「NO」と判定されると処理は呼出元の自動演奏処理ルーチン(図5)に戻り、さらにメインルーチン(図2)に戻る。その後、タイマ割込みが発生し割込処理ルーチン(図3)が起動されると、先にフラグBFが“1”に設定されたからステップSP21において「YES」と判定され、処理はステップSP22に進む。
【0021】
ここでは、レジスタDの値が「1」だけデクリメントされ、レジスタSが「1」だけインクリメントされる。従って、レジスタDは、デュレーションの残り時間を示すレジスタになる。なお、レジスタSは、モード0においては特に使用されないため、その用途に関しては後述する。
【0022】
次に、処理がステップSP23に進むと、フラグCFが“1”であるか否かが判定される。ここで、フラグCFは初期設定(ステップSP1)において“0”に初期化されており、その後に変更されていない。従って、ここでは「NO」と判定され、割込処理が終了する。このように、モード0においては、テンポに応じた周期毎に割込処理ルーチン(図3)が呼び出され、レジスタDがデクリメントされるとともにレジスタSがインクリメントされる。
【0023】
そうすると、やがてレジスタDは「0」になる。その後に自動演奏処理ルーチン(図5)が呼び出されさらにモード0処理サブルーチン(図6)が呼び出されると、ステップSP51において「YES」と判定され、処理はステップSP52に進む。ここでは、次のデュレーションデータが読み出されるまでアドレスAD1が進められ、デュレーションデータが読み出されると、その値が再びレジスタDに格納される。
【0024】
ところで、前回のデュレーションデータから今回のデュレーションデータに至るまでアドレスAD1を進めると、一般的にはその間に一または複数のイベントデータ(キーオン、キーオフ等)が存在する。処理がステップSP53に進むと、これらイベントデータが電子音源2に送出される。これにより、電子音源2においては、楽音信号の発生あるいは消音等の処理が行われる。
【0025】
以上の処理が終了すると、自動演奏処理ルーチン(図5)を介して処理はメインルーチン(図2)に戻る。このように、モード0においては、模範演奏の演奏情報の内容に基づく発音等の処理(ステップSP53)と、演奏者のマニュアル演奏に基づく発音等の処理(ステップSP13)とは全く独立しており、単なる模範演奏の再生や、模範演奏とマニュアル演奏とのアンサンブル等を行うことができる。
【0026】
ここで、演奏者がストップスイッチ14cを押下すると、その旨がセンサ部3を介して検出される。その後に自動演奏処理ルーチン(図5)が呼び出され処理がステップSP34に進むと、ここで「YES」と判定され、処理はステップSP35に進む。ここではフラグBFが“0”に設定され、ステップSP36を介して処理がメインルーチンに戻る。これ以降、タイマ割込みが発生したとしても割込処理ルーチン(図3)では実質的な処理が行われなくなるから、自動演奏は停止することになる。
【0027】
2.2.モード1における動作
2.2.1.自動演奏オフ
ここで、演奏者がモード切換スイッチ14aをモード1にセットすると、ステップSP4においてその旨が検出される。次に、演奏者が何れかの鍵を押下すると、鍵盤処理ルーチンにおいて処理はステップSP11,SP12を順次介してステップSP14に進む。ここでは、フラグAFが“0”に設定され、レジスタSに「0」が代入される。
【0028】
次に、処理がステップSP15に進むと、「模範演奏の正規のタイミングよりも所定時間以上前に鍵の操作があったか否か」が判定される。但し、自動演奏がオフの状態ではここでは必ず「NO」と判定され、処理はステップSP18に進む。ここでは、上述したステップSP13と同様の処理が行われる。
【0029】
すなわち何れかの鍵のキーオンが検出された場合は、キーオン信号、その鍵のノートコードおよびベロシティが電子音源2に供給され、電子音源2において対応する音の発音が開始される。一方、何れかの鍵のキーオフが検出された場合は、キーオフ信号およびその鍵のノートコードが電子音源2に供給され、電子音源2における消音処理が行われる。
【0030】
但し、ステップSP18においては、実演奏におけるノートコードが模範演奏のものとは異なる場合、またはベロシティが模範演奏のものに対して所定範囲以上外れる場合は、実演奏におけるノートコードまたはベロシティは模範演奏におけるこれらの値に置き換えられる。これにより、聞き手に対して、正しいノートコードおよびベロシティで演奏されたものと認識させることができる。
【0031】
さらに、ステップSP18においては、このように演奏情報の修正が行われた場合は、実演奏のノートコードまたはベロシティと、修正後のノートコードまたはベロシティとがディスプレイ4に表示される。例えば、ノートコードが誤った場合には「Aが押鍵されましたが、正しくはA#です」のようなメッセージが表示される。また、ベロシティが不適切であった場合は「Aの押鍵は弱すぎるのでmfに修正しました」のように表示される。
【0032】
これにより、演奏者は、誤った演奏操作を行ったことをリアルタイムに認識することができる。さらに、ディスプレイ4に表示されたメッセージは、模範演奏の演奏情報および実演奏の演奏情報とともにRAM5に記憶される。何れの演奏情報もMIDIデータ形式で記録すると好適である。この記録内容は後にディスプレイ4に表示させたり、フロッピーディスクに転送できるため、演奏者は演奏が終了した後に、メッセージを含めて演奏操作の内容を見直すことも可能である。
【0033】
さて、ステップSP18が終了すると、次に処理はステップSP19に進むが、自動演奏がオフである場合はステップSP19において特に処理は行われない。このように、自動演奏がオフであれば、演奏者によるマニュアル演奏に基づいて発音等の処理が行われるが、ノートコードあるいはベロシティが不適切な場合は自動的に訂正される。
【0034】
2.2.2.自動演奏オン
ここで、演奏者がスタートスイッチ14bを押下すると、その旨がセンサ部3を介して検出される。その後に処理がステップSP2に進み自動演奏処理ルーチン(図5)が呼び出されると、上述したようにステップSP32,33を介して、フラグBFが“1”に設定され、アドレスAD1が「1」に設定される。そして、模範演奏の演奏データの読出しアドレスであるアドレスAD1=「1」またはそれ以降の演奏データにおいて、最初のデュレーションデータがレジスタDに格納される。
【0035】
次に、ステップSP34〜SP37を介してステップSP39に進むと、モード1処理サブルーチン(図7)が呼び出される。図において処理がステップSP61に進むと、レジスタDの内容は「0」であるか否かが判定される。
【0036】
先にステップSP33でセットされたデュレーションデータが「0」でなければ「NO」と判定され、処理は自動演奏処理ルーチン(図5)を介してメインルーチン(図2)に戻る。ここでは、以後、テンポに応じた周期毎に割込処理ルーチン(図3)が呼び出され、レジスタDがデクリメントされるとともにレジスタSがインクリメントされる。
【0037】
(1)適切なタイミングの実演奏に対する処理
ここで、演奏者が何れかの鍵を操作すると、鍵盤処理ルーチンにおいて処理はステップSP11,SP12を順次介してステップSP14に進む。ここでは、フラグAFが“0”に設定され、レジスタSに「0」が代入される。次に、処理がステップSP15に進むと、「模範演奏の正規のタイミングよりも所定時間以上前に鍵の操作があったか否か」が判定される。
【0038】
これは、模範演奏の演奏情報において次のイベントが発生するタイミングと現在時刻との差に基づいて判断される。ここで、模範演奏におけるタイミングと実演奏のタイミングとが近接している場合は「NO」と判定され、処理はステップSP18に進む。
【0039】
すなわち何れかの鍵のキーオンが検出された場合は、キーオン信号、その鍵のノートコードおよびベロシティが適宜修正された後に電子音源2に供給され、電子音源2において対応する音の発音が開始される。次に、処理がステップSP19に進むと、今回の鍵操作に対応するイベントデータのアドレスがアドレスAD2に格納される。
【0040】
以後、タイマ割込みが発生する毎に割込処理ルーチン(図3)が呼び出され、レジスタDがデクリメントされるとともにレジスタSがインクリメントされる。ここで、レジスタSは先にステップSP14が実行された際に「0」に設定されたから、レジスタSは鍵が最後に操作された後の経過時間を指標することになる。
【0041】
メインルーチン(図2)に戻り、処理がステップSP3に進むと、自動演奏処理ルーチン(図5)が呼び出され、そのステップSP39を介してモード1処理サブルーチン(図7)が呼び出される。ここでは、レジスタDが「0」になるまで実質的な処理は行われない。タイマ割込みが繰返えされることにより、やがてレジスタDが「0」になると、ステップSP61において「YES」と判定され処理はステップSP62に進む。
【0042】
ここでは、上述したステップSP52と同様の処理が行われる。すなわち、次のデュレーションデータが読み出されるまでアドレスAD1が進められ、デュレーションデータが読み出されると、その値が再びレジスタDに格納される。次に、処理がステップSP63に進むと、レジスタSの値が所定値を超えたか否かが判定される。ここで、「所定値」は演奏中の楽曲における最長のイベント間隔よりも充分大きい値に設定されている。
【0043】
従って、通常は、レジスタSの値は該所定値に達する前に「0」に戻される(ステップSP14)から、ステップSP63においては「NO」と判定され、処理は自動演奏処理ルーチン(図5)を介してメインルーチンに戻る。以後同様に、適切な実演奏が行われている限りにおいて実演奏におけるイベントのみに基づいて楽音制御が行われ(ステップSP18)、模範演奏に基づく自動演奏は行われない。
【0044】
(2)鍵操作が長時間無かった場合の処理
ステップSP62においてデュレーションデータがレジスタDに格納されると、割込処理ルーチンが実行される毎にステップSP22を介してレジスタDがデクリメントされる。ここで、鍵操作が全く発生しなかった場合は、やがてレジスタDは「0」になり、モード1処理サブルーチンにおいてステップSP62が再び実行される。
【0045】
そして、割込処理ルーチンが実行される毎にステップSP22を介してレジスタDがデクリメントされる。以後、同様の処理が繰返されることになる。ここで、レジスタDの内容はステップSP62が実行される毎に新たな値に設定されるが、レジスタSの値は鍵操作が発生してステップSP14が実行されるまで「0」に再設定されることはない。
【0046】
すなわち、演奏者が鍵操作を行わなければ、割込処理ルーチンのステップSP22が実行される毎にレジスタSがインクリメントされ、その値が時間の経過とともに大きくなる。これにより、レジスタSはやがてステップSP63における所定値を超えることになる。その後にレジスタDが「0」になりモード1処理サブルーチンが呼び出されると、処理はステップSP62に進み、次のデュレーションデータが読出され、レジスタDに格納される。
【0047】
次に、処理がステップSP63に進むと、レジスタSの値は所定値を超えているから「YES」と判定され処理はステップSP64に進む。ここでは、上述したステップSP53と同様に、新たに読出されたイベントデータが電子音源2に送出される。これにより、電子音源2においては、楽音信号の発生あるいは消音等の処理が行われる。
【0048】
それ以降も、演奏者による鍵操作が検出されない限りレジスタSの内容は増えつづけるため、ステップSP63においては常に「YES」と判定されることになる。この結果、モード1処理サブルーチンにおける動作はモード0処理サブルーチン(図6)における動作と全く同様になり、模範演奏に基づく自動演奏が継続されることになる。
【0049】
ここで何らかの鍵操作が検出されると、鍵盤処理ルーチン(図4)において処理はステップSP11,SP12を順次介してステップSP14に進む。ここで、レジスタSには「0」が格納され、フラグAFは“0”に設定される。この鍵操作が模範演奏の正規のタイミングよりも所定時間以上前に為されたものでなかった場合には、処理はステップSP15を介してステップSP18に進み、この鍵操作に基づく発音あるいは消音等の処理が行われることになる。
【0050】
次に、レジスタDが「0」になった後に自動演奏処理ルーチン(図5)が呼び出され、さらにモード1処理サブルーチン(図7)が呼び出されると、処理はステップSP61,SP62を順次介してステップSP63に進む。レジスタSは先にステップSP14において「0」に設定されたから、その後に割込処理ルーチン(図3)が何回か呼び出されたとしても、レジスタSの値は所定値には達しない。従って、ステップSP63においては、再び「NO」と判定されるようになり、模範演奏に基づく自動演奏は停止されることになる。
【0051】
このように、モード1において模範演奏がオン状態になっていると、鍵操作が所定期間以上無かった場合に、その期間内の模範演奏の演奏情報が順次読み飛ばされ(ステップSP62)、該所定期間以後の模範演奏に基づく自動演奏を自動的に開始させることができる。
【0052】
従って、演奏者が実演奏中に演奏すべきパートが解らなくなった場合等においても、レジスタSが所定値に達するまでの若干の空白期間を置いて模範演奏に基づく自動演奏が開始されるから、演奏者の失敗をある程度リカバーすることができる。しかも、演奏すべきパートを演奏者が再び認識できた時は、鍵盤12の操作によって模範演奏に基づく自動演奏が終了するから、しかる後には、演奏者の実演奏に基づく楽音合成処理を継続することができる。
【0053】
(3)鍵操作が早すぎた場合の処理
次に、演奏者の鍵操作が模範演奏の正規のタイミングよりも所定時間以上前に為された場合の処理を説明する。かかる場合に鍵盤処理ルーチン(図4)が呼び出されると、ステップSP11,SP12,SP14を介して処理はステップSP15に進み、ここで「YES」と判定され処理はステップSP16に進む。
【0054】
ステップSP16においては、模範演奏の正規のタイミングと実演奏のタイミングとの差がレジスタRに格納され、さらにフラグCFが“1”にセットされる。次に、処理がステップSP17に進むと、操作された鍵に関する情報(キーオン/キーオフの別、ノートコード、ベロシティ等)がRAM5の所定領域に格納される。このように、鍵操作が早すぎた場合には、電子音源2に対する制御が行われることなく、鍵盤処理ルーチンが終了する。このとき、ステップSP18と同様に、実演奏と模範演奏とを比較して実演奏の情報を修正する。
【0055】
次に、タイマ割込みが発生すると、割込処理ルーチン(図3)においてステップSP21を介して処理はステップSP22に進み、レジスタDがデクリメントされるとともにレジスタSがインクリメントされる。次に、処理がステップSP23に進むと、フラグCFが“1”であるか否かが判定される。フラグCFはステップSP16において“1”にセットされたから「YES」と判定され処理はステップSP24に進む。
【0056】
ステップSP24にあっては、レジスタRがデクリメントされる。次に、処理がステップSP25に進むと、レジスタRの内容は「0」であるか否かが判定される。ここで「NO」と判定されると、割込処理ルーチンは終了する。その後、テンポに応じた周期毎に割込処理ルーチンが呼び出されると、その度にレジスタD,RがデクリメントされるとともにレジスタSがインクリメントされる。
【0057】
やがてレジスタRが「0」になると、ステップSP25において「YES」と判定され処理はステップSP26に進む。ここでは、先に鍵盤処理ルーチン(図4)のステップSP17で記憶された情報(キーオン/キーオフの別、ノートコード、ベロシティ等)が電子音源2に送出され、発音/消音処理等が行われる。
【0058】
このように、モード1において模範演奏がオン状態になっていると、模範演奏の演奏情報と比較して実演奏における鍵操作が早すぎた場合は、その早すぎた期間だけ遅らせて発音等の処理が行われるから、演奏の不自然さを緩和することができる。
【0059】
2.3.モード2における動作(自動演奏オン)
ここで、演奏者がモード切換スイッチ14aをモード2にセットすると、ステップSP4においてその旨が検出される。なお、モード2において自動演奏がオフである状態の処理はモード1の場合と同様であるため、自動演奏がオン状態である時の処理について説明する。
【0060】
(1)適切なタイミングの実演奏に対する処理
ここで、演奏者が適切なタイミングで何れかの鍵を操作すると、モード1の場合と同様に、鍵盤処理ルーチン(図4)においてステップSP14,SP18,SP19の処理が実行される。すなわち、ステップSP14においては、フラグAFが“0”に設定され、レジスタSに「0」が代入され、ステップSP18においては電子音源2に対して操作された鍵の情報が送出され電子音源2において発音または消音処理が開始される。そして、ステップSP19においては、今回の鍵操作に対応するイベントデータのアドレスがアドレスAD2に格納される。
【0061】
以後、タイマ割込みが発生する毎に割込処理ルーチン(図3)が呼び出され、レジスタDがデクリメントされるとともにレジスタSがインクリメントされる。ここで、メインルーチン(図2)において処理がステップSP3に進むと、自動演奏処理ルーチン(図5)が呼び出され、さらにモード2処理サブルーチン(図8)が呼び出される。
【0062】
図8において処理がステップSP71に進むと、レジスタSが所定値を超えているか否かが判定される。この所定値は上述したステップSP62における所定値と同一の値であり、適切なタイミングの実演奏が行われている限りこの条件は充足されない。従って、ここでは「NO」と判定され処理はステップSP76に進む。
【0063】
ここでは、レジスタDが「0」であるか否かが判定される。上記割込処理ルーチン(図3)が繰返されてレジスタDが「0」になった場合は「YES」と判定され処理はステップSP77に進む。ここでは、上記ステップSP52およびSP62と同様の処理が行われる。すなわち、次のデュレーションデータが読み出されるまでアドレスAD1が進められ、デュレーションデータが読み出されると、その値が再びレジスタDに格納される。
【0064】
次に、処理がステップSP78に進むと、フラグAFは“1”であるか否かが判定される。フラグAFは、先の鍵盤処理ルーチン(図4)のステップSP14において“0”に設定されたから「NO」と判定され、処理は自動演奏処理ルーチン(図5)を介してメインルーチン(図2)に戻る。以後同様に、適切なタイミングで実演奏が行われている限りにおいて実演奏におけるイベントのみに基づいて楽音制御が行われ(ステップSP18)、模範演奏に基づく自動演奏は行われない。
【0065】
(2)鍵操作が長時間無かった場合の処理
鍵操作が長時間無かった場合には、モード1の動作と同様に、時間の経過とともにレジスタSの内容が大となり、やがてステップSP71における所定値を超えるようになる。かかる状態でモード2処理サブルーチンが呼び出されると、ステップSP71において「YES」と判定され処理はステップSP72に進む。
【0066】
ここでは、フラグAFが“0”であるか否かが判定される。フラグAFは最後に鍵操作が検出された際に鍵盤処理ルーチン(図4)のステップSP14において“0”に設定されたから、ここでは「YES」と判定され処理はステップSP73に進む。ステップSP73においては、アドレスAD2の次のイベントデータが読出され、該イベントデータが電子音源2に送出される。
【0067】
ここで、アドレスAD2には、図4のステップSP19において、最後の鍵操作に対応するアドレスがセットされている。従って、電子音源2には、「最後の鍵操作の後に行われるべきであった鍵操作」に係るイベントデータが送出されることになる。これにより、該イベントデータに基づく発音あるいは消音処理が直ちに実行されることになる。
【0068】
次に、処理がステップSP74に進むと、先にステップSP73で読出されたイベントデータの次のデュレーションデータがレジスタDに格納されるとともに、このデュレーションデータのアドレスがアドレスAD1に設定される。次に、処理がステップSP75に進むと、フラグAFが“1”に設定される。
【0069】
次に、処理がステップSP76に進むと、レジスタDが「0」であるか否かが判定される。先のステップSP74においてレジスタDに「1」以上の値が設定されたとすると、ここで「NO」と判定され、モード2処理サブルーチンの処理は終了する。処理が自動演奏処理ルーチン(図5)を介してメインルーチン(図2)に戻ると、ステップSP4,SP5,SP2を介して再び自動演奏処理ルーチンおよびモード2処理サブルーチンが呼び出される。
【0070】
ここでは、レジスタSは未だ「0」にリセットされていないため処理はステップSP71を介してステップSP72に進む。ここで、フラグAFは先にステップSP75が実行された際に“1”に設定されたから「NO」と判定され、ステップSP76を介して処理は自動演奏処理ルーチンに戻る。このように、フラグAFが“0”であってレジスタDが「0」でない場合は、モード2処理サブルーチン(図8)においては実質的な処理は行われない。
【0071】
その後、タイマ割込みが繰返されると、割込処理ルーチン(図3)のステップSP22においてレジスタDがデクリメントされつづけるから、やがてレジスタDは「0」になる。その後にモード2処理サブルーチンが呼び出され処理がステップSP76に進むと「YES」と判定され処理はステップSP77に進む。ここでは、上記ステップSP52と同様に、次のデュレーションデータが読み出されるまでアドレスAD1が進められ、読み出されたデュレーションデータがレジスタDに格納される。
【0072】
次に処理がステップSP78に進むと、フラグAFが“1”であるか否かが判定される。フラグAFは先にステップSP75が実行された際に“1”に設定されたから「YES」と判定され、処理はステップSP79に進む。ここでは、上記ステップSP53と同様の処理が行われる。すなわち、ステップSP77で読出されたイベントデータが電子音源2に送出され、該イベントデータに基づく発音・消音処理等が行われることになる。
【0073】
以後同様に、鍵操作が全く検出されなければ、タイマ割込み毎にレジスタDをデクリメントする処理(図3のステップSP22)と、レジスタDが「0」に達した際に次のデュレーションデータをレジスタDにセットする処理(SP77)と、該デュレーションデータとともに読出されたイベントデータに基づいて音源制御を行う処理(SP78)とが繰返され、模範演奏に基づく自動演奏が継続されることになる。
【0074】
ここで何らかの鍵操作が検出されると、モード1の場合と同様の処理が行われる。すなわち、鍵盤処理ルーチン(図4)において処理はステップSP11,SP12を順次介してステップSP14に進み、レジスタSには「0」が格納され、フラグAFは“0”に設定される。この鍵操作が模範演奏の正規のタイミングよりも所定時間以上前に為されたものでなかった場合には、処理はステップSP15を介してステップSP18に進み、この鍵操作に基づく発音あるいは消音等の処理が行われることになる。
【0075】
次に、自動演奏処理ルーチン(図5)が呼び出され、さらにモード2処理サブルーチン(図8)が呼び出されると、ステップSP71において「NO」と判定されるようになる。そして、レジスタDが「0」になった後にステップSP76を介して処理がステップSP77に進むと、次のデュレーションデータが読出され、その値がレジスタDに格納される。但し、鍵操作に際してステップSP14においてフラグAFは“0”に設定されたから、ステップSP78においては「NO」と判定され、ステップSP79の自動演奏処理は行われないことになる。
【0076】
(3)鍵操作が早すぎた場合の処理
鍵操作が早すぎた場合、すなわち演奏者の鍵操作が模範演奏の正規のタイミングよりも所定時間以上前に為された場合の処理は、モード1の場合と同様である。すなわち、ステップSP16において、模範演奏の正規のタイミングと実演奏のタイミングとの差がレジスタRに格納され、さらにフラグCFが“1”にセットされる。
【0077】
また、ステップSP17においては、操作された鍵に関する情報がRAM5の所定領域に格納される。そして、タイマ割込みが発生する毎にステップSP24において、レジスタRがデクリメントされ、レジスタRの内容が「0」になると、先にステップSP17で記憶された情報が電子音源2に送出され、発音/消音処理等が行われる。
【0078】
3.実施形態の効果
(1)上述したように、モード1において自動演奏がオン状態になっていると、鍵操作が所定期間以上無かった場合に、その期間内の模範演奏の演奏情報が順次読み飛ばされ、該所定期間以後の模範演奏に基づく自動演奏を自動的に開始させることができる。この様子を図9(a)〜(c)に示しておく。図9(a)および(b)は各々模範演奏および実演奏の演奏情報である。
【0079】
小節A,Bにおいては、実演奏は模範演奏に追従しているが、小節Bの終了後に途切れている。実演奏が途中で途切れると、所定時間(図示の例では小節C,Dの区間)だけ待機した後、模範演奏に基づく自動演奏が開始される。モード1(同図(c))においては、模範演奏のタイミングと等しくなるように小節Eから自動演奏が開始されるのである。
【0080】
一方、モード2においては、実演奏が途切れた箇所である小節Cから自動演奏が開始される。すなわち、モード2においては、同様な場合において演奏情報が読み飛ばされることなく、該所定時間だけ遅れて自動演奏が開始される。この様子を同図(d)に示しておく。
【0081】
モード1においては、模範演奏の演奏タイミングが維持されるため、演奏者が他の演奏者とともにアンサンブルを行っている場合に選択すると好適である。これは、アンサンブルを行う場合に一部の楽器のタイミングが狂うと、著しい不具合を呈するからである。一方、モード2においては、模範演奏の演奏情報が読み飛ばされることなく再生されるため、特に演奏者が独奏を行っている場合に用いて好適である。このように、本実施形態においては、演奏者は、演奏態様に応じて最適なモードを自由に選択できる。
【0082】
(2)また、ステップSP18の処理が行われることにより、演奏者が本来の鍵に隣接する鍵を押下するなどのミスタッチ等を行った場合に、模範演奏の内容を優先して発音させることができる。さらに、押鍵が強すぎたり弱すぎたりした場合においても、適切なベロシティで発音させることができる。
【0083】
4.変形例
本発明は上述した実施形態に限定されるものではなく、例えば以下のように種々の変形が可能である。
(1)上記実施形態のステップSP18においては、実演奏におけるベロシティが模範演奏のもに対して所定範囲以上外れる場合は、実演奏におけるベロシティは模範演奏のベロシティに置き換えられた。しかし、かかる場合に該所定範囲の上限または下限にベロシティを設定してもよい。
【0084】
例えば、模範演奏のベロシティが「54」であって所定範囲が「±5」(すなわち49〜59)であったとする。ここで実演奏のベロシティが「60」以上である場合は「59」を修正値とし、実演奏のベロシティが「48」以下であれば「49」を修正値にすればよい。これにより、模範演奏に対して大きく外れることが無く、かつ、実演奏のニュアンスを活かしつつ、楽音を発生させることができる。
【0085】
(2)上記実施形態のステップSP17およびステップSP18においては、実演奏におけるノートコードが模範演奏のノートコードと異なる場合には全て模範演奏のノートコードに置換されるようにしたが、ミスタッチは模範演奏のノートコードと近接する範囲内(例えば半オクターブ以内)で通常起こるため、実演奏におけるノートコードと模範演奏のノートコードとの差が所定値以上(例えば半オクターブ以上)の場合には、演奏者が意図的に模範演奏と異なる演奏をしたものと判断してノートコードの置換を行わないようにしてもよい。
【0086】
これはベロシティについても同様であり、実演奏のベロシティが模範演奏のベロシティよりも所定範囲(ステップSP17およびステップSP18で判断される所定範囲よりも大きい)以上外れる場合には演奏者が意図的に模範演奏と異なる実演奏をしたものと判断してベロシティの置換を行わないようにしてもよい。また、実演奏におけるノートコードと模範演奏のノートコードとが協和音程の関係などの所定の関係にある場合には、演奏者が模範演奏のノートコードの協和音程のノートコード等を意図的に指示したと判断して、ノートコードの置換を行わないようにしてもよい。
【0087】
(3)上記実施形態においては、ディスプレイ4で楽譜を表示するようにしたが、これに限らず、鍵盤の各鍵毎にその近傍にLED等の表示器を設け、模範演奏の進行に応じて押下すべき鍵に対応する表示器を点灯するようにしてもよい。
また、ステップSP17およびステップSP18においてどの演奏情報が修正されたかを記憶するようにして、次回の演奏練習時において押下すべき鍵を表示するに際し、前回の演奏練習で修正があった箇所と無かった箇所とで表示態様を異ならせるようにすれば、前回の演奏練習で修正の有った箇所について演奏者の注意を喚起することができ、練習効果が向上する。
【0088】
(4)上記実施形態は演奏者は鍵盤を操作することを想定したものであるが、MIDI信号等の演奏情報が得られる演奏操作子であれば、その形態を問わず利用できることは言うまでもない。さらに、上述した各制御プログラムの内容をCD−ROMあるいはフロッピーディスク等の記録媒体に格納することにより、汎用パーソナルコンピュータにおいて同様の処理を行うことも可能である。
【0089】
(5)また、上記実施形態においては、鍵盤12の実演奏と模範演奏とを比較したが、ペダル13のオンオフあるいは踏み込み量等についても実演奏と模範演奏とを比較し、鍵盤12の場合と同様に演奏情報を修正してもよい。また、電子楽器においては、鍵盤やペダル以外に各種の音色設定操作子が設けられているから、これらの操作情報に関しても同様に修正してもよい。
【0090】
(6)また、上記実施形態のモード2においては、実演奏の操作タイミングが模範演奏の正規のタイミングよりも大幅に遅れた場合、実演奏が途切れた時点の演奏情報に遡って模範演奏が自動演奏される。この際、模範演奏の本来の進行(模範演奏を遡らせなかった場合の進行)に追い付くまでの間は、模範演奏の演奏データのデュレーションを小さく(例えば半分に)して模範演奏の進行速度を早め、模範演奏の本来の進行に追い付いた時点で本来のデュレーションに戻すようにしてもよい。
【0091】
【発明の効果】
以上説明したようにこの発明によれば、入力演奏情報の入力タイミングおよび入力演奏情報と基準演奏情報との比較結果に基づいて楽音信号を生成するから、演奏内容を自動的に修正しつつ発音することができる。
【図面の簡単な説明】
【図1】 本発明の一実施形態の電子楽器のブロック図である。
【図2】 上記電子楽器のメインルーチンのフローチャートである。
【図3】 上記電子楽器の割込処理ルーチンのフローチャートである。
【図4】 上記電子楽器の鍵盤処理ルーチンのフローチャートである。
【図5】 上記電子楽器の自動演奏処理ルーチンのフローチャートである。
【図6】 上記電子楽器のモード0処理サブルーチンのフローチャートである。
【図7】 上記電子楽器のモード1処理サブルーチンのフローチャートである。
【図8】 上記電子楽器のモード2処理サブルーチンのフローチャートである。
【図9】 上記電子楽器の動作説明図である。
【図10】 上記電子楽器に採用される演奏情報の構成を示す図である。
【符号の説明】
2……電子音源、3……センサ部、4……ディスプレイ、5……RAM、6……ROM、7……フロッピーディスクドライブ、8……出力ポート、9……アンプ、10……スピーカ、11……ヘッドホン、12……鍵盤、13……ペダル、14……操作パネル、14a……モード切換スイッチ、14b……スタートスイッチ、14c……ストップスイッチ、15……バス。
[0001]
BACKGROUND OF THE INVENTION
  The present invention relates to a musical tone generator suitable for use in an electronic musical instrument.OhAnd a recording medium.
[0002]
[Prior art]
2. Description of the Related Art Conventionally, in a music classroom or the like, an apparatus for scoring by comparing a model performance of a teacher and a performance of a student is used. In this apparatus, the model performance of the teacher is stored in advance as performance information, the performance information is compared with the performance of the student, and the comparison result is output. Therefore, the student can know the points to be corrected in the next performance by looking at the comparison result.
[0003]
[Problems to be solved by the invention]
  However, the above apparatus is inconvenient because the comparison result cannot be confirmed in real time. Furthermore, it is impossible to correct the performance content based on the comparison result.
  The present invention has been made in view of the above-described circumstances, and a musical tone generating apparatus capable of automatically correcting performance contents.OhIt is a first object to provide a recording medium. In addition, a musical sound generation device that can check the comparison results between model performance and actual performance in real timeOhThe second object is to provide a recording medium.
[0004]
[Means for Solving the Problems]
  In order to solve the above-mentioned problem, in the configuration according to claim 1, a storage means for storing reference performance information, an actual performance information generating means for generating actual performance information based on a performance by the performer, and a musical tone signal are generated. And a control means for instructing the musical sound signal generating means to generate a musical sound signal based on the actual performance information, wherein the actual performance information and the reference performance information are predetermined. Control means for correcting the actual performance information based on the reference performance information only when there is a relationship, and instructing the music signal generation means to generate a music signal based on the corrected actual performance information; HaveAndThe reference performance information and the actual performance information include pitch information that indicates the pitch of a musical sound signal to be generated, and the control means is included in the pitch information and the actual performance information included in the reference performance information. Even when the pitch information does not match, the difference between the pitch information included in the reference performance information and the pitch information included in the actual performance information is a predetermined value or more, or the reference performance When the pitch information included in the information and the pitch information included in the actual performance information are in a predetermined pitch relationship, the actual performance information is not corrected.
  And claims2In the configuration described inStorage means for storing reference performance information, actual performance information generating means for generating actual performance information based on a performance by a performer, musical sound signal generating means for generating musical sound signals, and the musical sound signal based on the actual performance information Control means for instructing generation of a musical sound signal to the musical sound signal generating means, and the actual performance based on the reference performance information only when the actual performance information and the reference performance information are in a predetermined relationship. Control means for correcting information and instructing generation of a musical sound signal to the musical sound signal generating means based on the corrected actual performance information;The control means determines whether or not the actual performance information is within a predetermined range including the reference performance information. If the actual performance information is out of the predetermined range, the actual performance information is set to a boundary value of the predetermined range. It is characterized by correction.
  And claims3In the configuration described inStorage means for storing reference performance information; actual performance information generation means for generating actual performance information based on a performance by a performer; musical sound signal generation means for generating a musical sound signal; the reference performance information and the actual performance information; Control means for instructing the musical tone signal generating means to generate a musical tone signal based on the comparison result of the above, and when the generation of the actual performance information is interrupted for a predetermined time or more, or based on the reference performance information Control means for instructing generation of a musical sound signal to the musical sound signal generating means based on the reference performance information when the actual performance information is not generated even if a predetermined time or more elapses from the timing to be performed,The control means can designate the operation mode of mode 1 and mode 2, and when the mode 1 is instructed, the timing at which a predetermined time has elapsed from the time when generation of the actual performance information is interrupted, or When the tone signal generation means is instructed to generate a tone signal based on the reference performance information corresponding to the timing when a predetermined time has elapsed from the timing specified based on the reference performance information, and the mode 2 is instructed Instructs the tone signal generating means to generate a tone signal based on the reference performance information corresponding to the timing at which the generation of the actual performance information is interrupted or the timing specified based on the reference performance information. It is characterized by being.
  And claims4In the configuration described inThe reference performance information is stored only when the process of storing the reference performance information in the computer, the process of generating actual performance information based on the performance by the performer, and the actual performance information and the reference performance information are in a predetermined relationship. A program for correcting the actual performance information on the basis of information and generating a musical sound signal on the basis of the corrected actual performance information, wherein the reference performance information and the actual performance information are generated. Pitch information that indicates the pitch of the musical tone signal to be generated, and in the process of generating the musical tone signal, the pitch information included in the reference performance information and the pitch information included in the actual performance information; Even if they do not match, the difference between the pitch information included in the reference performance information and the pitch information included in the actual performance information is greater than or equal to a predetermined value, or is included in the reference performance information When the pitch information contained in the high information and the actual performance information is in a predetermined interval relationship is characterized by recording a program that does not perform the correction of the actual performance information.
  And claims5In the configuration described inThe reference performance information is stored only when the process of storing the reference performance information in the computer, the process of generating actual performance information based on the performance by the performer, and the actual performance information and the reference performance information are in a predetermined relationship. A program for correcting the actual performance information based on the information and generating a musical sound signal based on the corrected actual performance information, wherein the musical sound signal is generated Determining whether or not the actual performance information is within a predetermined range including the reference performance information, and correcting the actual performance information to a boundary value of the predetermined range if the actual performance information is out of the predetermined range. Characterized by recording.
  And claims6In the configuration described inA process for storing reference performance information in a computer, a process for generating actual performance information based on a performance by a performer, and a case where generation of the actual performance information is interrupted for a predetermined time or more, or based on the reference performance information A program for executing a process of generating a musical sound signal based on the reference performance information when the actual performance information is not generated even if a predetermined time or more has elapsed from the timing when the operation is performed; A mode can be specified, and when the mode 1 is instructed, a predetermined time elapses from a timing when the generation of the actual performance information is interrupted or a timing defined based on the reference performance information. When the musical tone signal is generated based on the reference performance information corresponding to the elapsed timing and the mode 2 is instructed Includes recording a program for generating the musical sound signal based on the reference performance information corresponding to the timing at which the generation of the actual performance information is interrupted or the timing specified based on the reference performance information. To do.
[0005]
DETAILED DESCRIPTION OF THE INVENTION
1. Configuration of the embodiment
Next, the configuration of the electronic musical instrument of the present embodiment will be described with reference to FIG. In the figure, reference numeral 1 denotes a CPU which controls other units via a bus 15 based on a control program described later. An electronic sound source 2 generates a musical sound signal under the control of the CPU 1. This musical sound signal is generated through the output port 8, the amplifier 9, the speaker 10 or the headphones 11 in order.
[0006]
A keyboard 12 and a pedal 13 are operated by a player. An operation panel 14 is used to set the tone color and various modes of the electronic musical instrument. Reference numeral 3 denotes a sensor unit, which is composed of sensors that detect operation states of the keyboard 12, the pedal 13, and the operation panel 14. Reference numeral 4 denotes a display that displays various types of information to the user. That is, the display 4 displays the performance information of the model performance as a musical score as the music progresses, and displays a warning message to that effect when the performer performs an incorrect performance (details will be described later).
[0007]
A RAM 5 is used as a work memory for the CPU 1. A ROM 6 stores various control programs described later. A floppy disk drive 7 is used for recording and reproducing performance information and the like. Here, the data structure of the performance information is shown in FIG.
[0008]
In the figure, the performance information includes event data such as note-on and note-off, duration data indicating the relative time between the event data (absolute time varies depending on the tempo), and end data indicating the end of the performance information. Composed. Each event data includes data indicating a note on / off distinction and a note code related to note on / off, and the note on event data includes a velocity indicating the strength of the event.
[0009]
Returning to FIG. 1, the operation panel 14 is provided with the following switches. First, 14a is a mode change-over switch that selects one of modes 0, 1, and 2. Here, mode 0 is a mode in which performance support is not performed based on the model performance, and the content of the actual performance is output as it is without being compared with the model performance. Modes 1 and 2 are performance support modes, and the details of the operation will be described together with the operation of the embodiment.
[0010]
Reference numeral 14b denotes a start switch, which is a switch for instructing the start of automatic performance. That is, in the mode 0, the automatic performance starts immediately when the start switch 14b is pressed, and in the modes 1 and 2, the automatic performance is started under a predetermined condition (details will be described later). Reference numeral 14c denotes a stop switch, which is a switch for instructing the end of the automatic performance.
[0011]
2. Operation of the embodiment
2.1. Operation in mode 0
2.1.1. Automatic performance off
When the power of the electronic musical instrument is turned on, the main routine shown in FIG. 2 is started. In the figure, when the process proceeds to step SP1, predetermined initial setting is performed. At the time of this initial setting, the operation mode is set to mode 0. Next, when the processing proceeds to step SP2, the keyboard processing routine shown in FIG. 4 is called. When the process proceeds to step SP11 in this routine, it is determined whether any key has been operated. If "NO" is determined here, the process immediately returns to the main routine.
[0012]
If any key is operated, the process proceeds to step SP12 to determine whether or not the operation mode is mode 0. Here, since the operation mode is initially set to mode 0, “YES” is determined, and the process proceeds to step SP13. Here, information regarding the operated key is supplied to the electronic sound source 2.
[0013]
That is, when the key-on of any key is detected, the key-on signal, the note code of the key, and the velocity are supplied to the electronic sound source 2, and the sound generation of the corresponding sound is started in the electronic sound source 2. On the other hand, when the key-off of any key is detected, the key-off signal and the note code of the key are supplied to the electronic sound source 2 and the mute process in the electronic sound source 2 is performed. As described above, in mode 0, sound generation or mute processing is performed without particularly correcting the timing of key-on, key-off, and the like.
[0014]
Next, returning to the main routine and proceeding to step SP3, the automatic performance processing routine shown in FIG. 5 is called. In the figure, when the process proceeds to step SP31, it is determined whether or not the mode switch 14a is turned on. If the start switch 14b is not turned on, “NO” is determined, and the process proceeds to step SP34. Here, it is determined whether or not the stop switch 14c is turned on. If the stop switch 14c is not turned on, “NO” is determined, and the process proceeds to step SP36.
[0015]
Here, it is determined whether or not the flag BF is “1”. Here, the flag BF is initialized to “0” in the initial setting (step SP1). Therefore, it is determined “NO” here, and the process returns to the main routine. When processing proceeds to step SP4 in the main routine, panel processing is performed. That is, automatic performance tempo setting, operation mode setting, and the like are performed according to the operation state of the operation panel 14. Next, when the process proceeds to step SP5, various other processes are performed. Thereafter, the processing of steps SP2 to SP5 is repeated.
[0016]
Incidentally, a timer interrupt is generated for the CPU 1 at a cycle corresponding to the set tempo, and the interrupt processing routine (FIG. 3) shown in FIG. 3 is started. In the figure, when the process proceeds to step SP21, it is determined whether or not the flag BF is "1". If the determination is “NO”, the interrupt process is immediately terminated and no substantial process is performed.
[0017]
2.1.2. Automatic performance on
Here, when the performer depresses the start switch 14b, this is detected via the sensor unit 3. Thereafter, when the automatic performance processing routine (FIG. 5) is called and the process proceeds to step SP31, “YES” is determined here, and the process proceeds to step SP32.
[0018]
Here, the flag BF is set to “1”. Next, when the process proceeds to step SP33, the address AD1 is set to “1”. That is, the read address for the performance data of the model performance is set at the head of the performance data. In step SP33, the first duration data is read out from the performance data at the address AD1 = "1" or later, and the duration data is stored in the register D.
[0019]
Next, when the process proceeds to step SP36 via step SP34, the flag BF is set to “1”, so “YES” is determined, and the process proceeds to step SP37. Here, the process branches based on the operation mode. Here, since mode 0 is selected as the operation mode, the process proceeds to step SP38, and the mode 0 processing subroutine (FIG. 6) is called.
[0020]
In FIG. 6, when the process proceeds to step SP51, it is determined whether or not the value of the register D is “0”. If "NO" is determined here, the process returns to the caller automatic performance process routine (FIG. 5) and then returns to the main routine (FIG. 2). Thereafter, when a timer interrupt occurs and the interrupt processing routine (FIG. 3) is started, the flag BF is set to “1” first, so “YES” is determined in step SP21, and the process proceeds to step SP22.
[0021]
Here, the value of the register D is decremented by “1”, and the register S is incremented by “1”. Accordingly, the register D becomes a register indicating the remaining duration time. Note that the register S is not particularly used in the mode 0, so its use will be described later.
[0022]
Next, when the process proceeds to step SP23, it is determined whether or not the flag CF is “1”. Here, the flag CF is initialized to “0” in the initial setting (step SP1) and is not changed thereafter. Therefore, it is determined as “NO” here, and the interrupt process is terminated. As described above, in mode 0, the interrupt processing routine (FIG. 3) is called for each cycle according to the tempo, the register D is decremented, and the register S is incremented.
[0023]
Then, the register D eventually becomes “0”. Thereafter, when the automatic performance processing routine (FIG. 5) is called and the mode 0 processing subroutine (FIG. 6) is called, “YES” is determined in step SP51, and the process proceeds to step SP52. Here, the address AD1 is advanced until the next duration data is read, and when the duration data is read, the value is stored in the register D again.
[0024]
When the address AD1 is advanced from the previous duration data to the current duration data, generally one or more event data (key-on, key-off, etc.) exist between them. When the process proceeds to step SP53, these event data are sent to the electronic sound source 2. As a result, the electronic sound source 2 performs processing such as generation of a tone signal or mute.
[0025]
When the above processing is completed, the processing returns to the main routine (FIG. 2) via the automatic performance processing routine (FIG. 5). As described above, in mode 0, the sound generation processing based on the performance information of the model performance (step SP53) and the sound generation processing based on the player's manual performance (step SP13) are completely independent. It is possible to play a mere model performance, ensemble between a model performance and a manual performance, or the like.
[0026]
Here, when the performer depresses the stop switch 14 c, this is detected via the sensor unit 3. Thereafter, when the automatic performance processing routine (FIG. 5) is called and the process proceeds to step SP34, “YES” is determined here, and the process proceeds to step SP35. Here, the flag BF is set to “0”, and the process returns to the main routine via step SP36. Thereafter, even if a timer interruption occurs, the automatic performance stops because no substantial processing is performed in the interrupt processing routine (FIG. 3).
[0027]
2.2. Operation in mode 1
2.2.1. Automatic performance off
Here, when the performer sets the mode changeover switch 14a to mode 1, this is detected in step SP4. Next, when the performer presses any key, the process proceeds to step SP14 through steps SP11 and SP12 in the keyboard processing routine. Here, the flag AF is set to “0”, and “0” is substituted into the register S.
[0028]
Next, when the process proceeds to step SP15, it is determined whether or not a key operation has been performed a predetermined time or more before the regular timing of the model performance. However, when the automatic performance is off, it is always determined as “NO” here, and the process proceeds to step SP18. Here, the same processing as step SP13 described above is performed.
[0029]
That is, when the key-on of any key is detected, the key-on signal, the note code of the key, and the velocity are supplied to the electronic sound source 2, and the sound generation of the corresponding sound is started in the electronic sound source 2. On the other hand, when the key-off of any key is detected, the key-off signal and the note code of the key are supplied to the electronic sound source 2 and the mute process in the electronic sound source 2 is performed.
[0030]
However, in step SP18, when the note code in the actual performance is different from that of the model performance, or when the velocity deviates from a predetermined range or more with respect to that of the model performance, the note code or velocity in the actual performance is in the model performance. Replaced by these values. This allows the listener to recognize that the performance was performed with the correct note code and velocity.
[0031]
Further, in step SP18, when the performance information is corrected in this way, the note code or velocity of the actual performance and the corrected note code or velocity are displayed on the display 4. For example, if the note code is incorrect, a message such as “A is pressed, but is A # correctly” is displayed. If the velocity is inappropriate, a message such as “A key pressed is too weak and has been corrected to mf” is displayed.
[0032]
Thus, the performer can recognize in real time that an incorrect performance operation has been performed. Further, the message displayed on the display 4 is stored in the RAM 5 together with the performance information of the model performance and the performance information of the actual performance. Any performance information is preferably recorded in the MIDI data format. Since the recorded contents can be displayed later on the display 4 or transferred to a floppy disk, the performer can review the contents of the performance operation including the message after the performance is completed.
[0033]
When step SP18 ends, the process proceeds to step SP19. When the automatic performance is off, no particular process is performed in step SP19. Thus, if automatic performance is off, processing such as sound generation is performed based on a manual performance by the performer, but if the note code or velocity is inappropriate, it is automatically corrected.
[0034]
2.2.2. Automatic performance on
Here, when the performer depresses the start switch 14b, this is detected via the sensor unit 3. Thereafter, when the process proceeds to step SP2 and the automatic performance processing routine (FIG. 5) is called, the flag BF is set to “1” and the address AD1 is set to “1” through steps SP32 and 33 as described above. Is set. Then, the first duration data is stored in the register D in the performance data after the address AD1 = “1” which is the read address of the performance data of the model performance.
[0035]
Next, when the process proceeds to step SP39 via steps SP34 to SP37, the mode 1 processing subroutine (FIG. 7) is called. In the figure, when the process proceeds to step SP61, it is determined whether or not the content of the register D is “0”.
[0036]
If the duration data set in step SP33 is not “0”, it is determined as “NO”, and the process returns to the main routine (FIG. 2) via the automatic performance processing routine (FIG. 5). Here, thereafter, an interrupt processing routine (FIG. 3) is called for each cycle corresponding to the tempo, the register D is decremented, and the register S is incremented.
[0037]
(1) Processing for actual performance at appropriate timing
Here, when the performer operates any key, in the keyboard processing routine, the process proceeds to step SP14 through steps SP11 and SP12 in sequence. Here, the flag AF is set to “0”, and “0” is substituted into the register S. Next, when the process proceeds to step SP15, it is determined whether or not a key operation has been performed a predetermined time or more before the regular timing of the model performance.
[0038]
This is determined based on the difference between the timing at which the next event occurs in the performance information of the model performance and the current time. Here, if the timing in the model performance and the timing of the actual performance are close, it is determined as “NO”, and the process proceeds to step SP18.
[0039]
That is, when a key-on of any key is detected, the key-on signal, the note code of that key, and the velocity are appropriately corrected and then supplied to the electronic sound source 2, and the electronic sound source 2 starts sounding the corresponding sound. . Next, when the process proceeds to step SP19, the address of the event data corresponding to the current key operation is stored in the address AD2.
[0040]
Thereafter, an interrupt processing routine (FIG. 3) is called every time a timer interrupt occurs, the register D is decremented and the register S is incremented. Here, since the register S is set to “0” when the step SP14 is executed first, the register S indicates an elapsed time after the key is last operated.
[0041]
Returning to the main routine (FIG. 2) and proceeding to step SP3, the automatic performance processing routine (FIG. 5) is called, and the mode 1 processing subroutine (FIG. 7) is called via the step SP39. Here, substantial processing is not performed until the register D becomes “0”. If the register D eventually becomes “0” by repeating the timer interruption, “YES” is determined in step SP61, and the process proceeds to step SP62.
[0042]
Here, the same processing as step SP52 described above is performed. That is, the address AD1 is advanced until the next duration data is read, and when the duration data is read, the value is stored in the register D again. Next, when the process proceeds to step SP63, it is determined whether or not the value of the register S exceeds a predetermined value. Here, the “predetermined value” is set to a value sufficiently larger than the longest event interval in the music being played.
[0043]
Therefore, normally, the value of the register S is returned to “0” before reaching the predetermined value (step SP14), so it is determined as “NO” in step SP63, and the process is an automatic performance processing routine (FIG. 5). To return to the main routine. Thereafter, similarly, as long as an appropriate actual performance is performed, the musical tone control is performed based only on the event in the actual performance (step SP18), and the automatic performance based on the model performance is not performed.
[0044]
(2) Processing when there is no key operation for a long time
When the duration data is stored in the register D in step SP62, the register D is decremented via the step SP22 every time the interrupt processing routine is executed. Here, if no key operation occurs, the register D eventually becomes “0”, and step SP62 is executed again in the mode 1 processing subroutine.
[0045]
Each time the interrupt processing routine is executed, the register D is decremented via step SP22. Thereafter, the same processing is repeated. Here, the content of the register D is set to a new value every time step SP62 is executed, but the value of the register S is reset to “0” until a key operation occurs and step SP14 is executed. Never happen.
[0046]
That is, if the performer does not perform a key operation, the register S is incremented each time step SP22 of the interrupt processing routine is executed, and the value increases with time. As a result, the register S eventually exceeds the predetermined value in step SP63. Thereafter, when the register D becomes “0” and the mode 1 processing subroutine is called, the process proceeds to step SP 62, and the next duration data is read and stored in the register D.
[0047]
Next, when the process proceeds to step SP63, since the value of the register S exceeds the predetermined value, it is determined “YES”, and the process proceeds to step SP64. Here, similarly to step SP53 described above, the newly read event data is sent to the electronic sound source 2. As a result, the electronic sound source 2 performs processing such as generation of a tone signal or mute.
[0048]
Since then, the contents of the register S continue to increase unless a key operation by the performer is detected, so that it is always determined as “YES” in step SP63. As a result, the operation in the mode 1 processing subroutine is exactly the same as the operation in the mode 0 processing subroutine (FIG. 6), and the automatic performance based on the model performance is continued.
[0049]
If any key operation is detected here, in the keyboard processing routine (FIG. 4), the process proceeds to step SP14 via steps SP11 and SP12 in sequence. Here, “0” is stored in the register S, and the flag AF is set to “0”. If this key operation is not performed more than a predetermined time before the regular timing of the model performance, the process proceeds to step SP18 via step SP15, and the sound generation or mute based on this key operation is performed. Processing will be performed.
[0050]
Next, when the automatic performance processing routine (FIG. 5) is called after the register D becomes “0”, and further the mode 1 processing subroutine (FIG. 7) is called, the processing steps through the steps SP61 and SP62 in sequence. Proceed to SP63. Since the register S was previously set to “0” in step SP14, the value of the register S does not reach the predetermined value even if the interrupt processing routine (FIG. 3) is called several times thereafter. Therefore, in step SP63, it is determined again as “NO”, and the automatic performance based on the model performance is stopped.
[0051]
As described above, when the model performance is in the on state in the mode 1, when the key operation is not performed for a predetermined period or longer, the performance information of the model performance within the period is sequentially skipped (step SP62). The automatic performance based on the model performance after the period can be automatically started.
[0052]
Therefore, even when the performer cannot understand the part to be performed during the actual performance, the automatic performance based on the exemplary performance is started after a slight blank period until the register S reaches a predetermined value. The player's failure can be recovered to some extent. Moreover, when the player can recognize the part to be played again, the automatic performance based on the model performance is ended by operating the keyboard 12, and thereafter, the musical tone synthesis process based on the actual performance of the performer is continued. be able to.
[0053]
(3) Processing when key operation is too early
Next, processing when the player's key operation is performed a predetermined time or more before the regular timing of the model performance will be described. In this case, when the keyboard processing routine (FIG. 4) is called, the process proceeds to step SP15 via steps SP11, SP12, and SP14, where “YES” is determined and the process proceeds to step SP16.
[0054]
In step SP16, the difference between the normal timing of the model performance and the timing of the actual performance is stored in the register R, and the flag CF is set to “1”. Next, when the process proceeds to step SP17, information about the operated key (key on / off, note code, velocity, etc.) is stored in a predetermined area of the RAM 5. As described above, when the key operation is too early, the keyboard processing routine is terminated without controlling the electronic sound source 2. At this time, as in step SP18, the actual performance is compared with the model performance to correct the information on the actual performance.
[0055]
Next, when a timer interrupt occurs, the process proceeds to step SP22 via the step SP21 in the interrupt processing routine (FIG. 3), the register D is decremented and the register S is incremented. Next, when the process proceeds to step SP23, it is determined whether or not the flag CF is “1”. Since the flag CF is set to “1” in step SP16, it is determined as “YES”, and the process proceeds to step SP24.
[0056]
In step SP24, the register R is decremented. Next, when the process proceeds to step SP25, it is determined whether or not the content of the register R is “0”. If “NO” is determined here, the interrupt processing routine ends. Thereafter, when the interrupt processing routine is called for each cycle according to the tempo, the registers D and R are decremented and the register S is incremented each time.
[0057]
When the register R eventually becomes “0”, “YES” is determined in step SP25, and the process proceeds to step SP26. Here, the information stored in step SP17 of the keyboard processing routine (FIG. 4) (key-on / key-off, note code, velocity, etc.) is sent to the electronic sound source 2 for sound generation / mute processing and the like.
[0058]
As described above, when the model performance is in the on state in mode 1, when the key operation in the actual performance is too early compared with the performance information of the model performance, it is delayed for the period that is too early, and the pronunciation is Since processing is performed, the unnaturalness of the performance can be reduced.
[0059]
2.3. Operation in mode 2 (automatic performance on)
Here, when the performer sets the mode changeover switch 14a to mode 2, this is detected in step SP4. Since the process in the state where the automatic performance is off in the mode 2 is the same as that in the mode 1, the process when the automatic performance is in the on state will be described.
[0060]
(1) Processing for actual performance at appropriate timing
Here, when the performer operates any key at an appropriate timing, the processing of steps SP14, SP18, and SP19 is executed in the keyboard processing routine (FIG. 4) as in the case of mode 1. That is, in step SP14, the flag AF is set to “0”, “0” is substituted into the register S, and in step SP18, information on the operated key is sent to the electronic sound source 2, and the electronic sound source 2 Pronunciation or mute processing is started. In step SP19, the address of the event data corresponding to the current key operation is stored in the address AD2.
[0061]
Thereafter, an interrupt processing routine (FIG. 3) is called every time a timer interrupt occurs, the register D is decremented and the register S is incremented. Here, when the processing proceeds to step SP3 in the main routine (FIG. 2), the automatic performance processing routine (FIG. 5) is called, and further the mode 2 processing subroutine (FIG. 8) is called.
[0062]
In FIG. 8, when the process proceeds to step SP71, it is determined whether or not the register S exceeds a predetermined value. This predetermined value is the same value as the predetermined value in step SP62 described above, and this condition is not satisfied as long as an actual performance at an appropriate timing is performed. Accordingly, it is determined as “NO” here, and the process proceeds to step SP76.
[0063]
Here, it is determined whether or not the register D is “0”. When the interrupt processing routine (FIG. 3) is repeated and the register D becomes “0”, it is determined as “YES”, and the process proceeds to step SP77. Here, the same processing as in steps SP52 and SP62 is performed. That is, the address AD1 is advanced until the next duration data is read, and when the duration data is read, the value is stored in the register D again.
[0064]
Next, when the process proceeds to step SP78, it is determined whether or not the flag AF is “1”. Since the flag AF is set to “0” in step SP14 of the previous keyboard processing routine (FIG. 4), it is determined as “NO”, and the processing is performed through the automatic performance processing routine (FIG. 5) and the main routine (FIG. 2). Return to. Thereafter, as long as the actual performance is performed at an appropriate timing, the musical tone control is performed based only on the event in the actual performance (step SP18), and the automatic performance based on the model performance is not performed.
[0065]
(2) Processing when there is no key operation for a long time
If no key operation has been performed for a long time, the contents of the register S increase with the passage of time as in the operation of mode 1, and eventually exceed the predetermined value in step SP71. When the mode 2 processing subroutine is called in this state, “YES” is determined in step SP71, and the process proceeds to step SP72.
[0066]
Here, it is determined whether or not the flag AF is “0”. Since the flag AF is set to “0” in step SP14 of the keyboard processing routine (FIG. 4) when the key operation is detected last time, “YES” is determined here, and the process proceeds to step SP73. In step SP73, the next event data at the address AD2 is read, and the event data is sent to the electronic sound source 2.
[0067]
Here, the address corresponding to the last key operation is set to the address AD2 in step SP19 of FIG. Therefore, event data related to “key operation that should have been performed after the last key operation” is transmitted to the electronic sound source 2. As a result, sound generation or mute processing based on the event data is immediately executed.
[0068]
Next, when the process proceeds to step SP74, the next duration data of the event data previously read in step SP73 is stored in the register D, and the address of this duration data is set to the address AD1. Next, when the process proceeds to step SP75, the flag AF is set to “1”.
[0069]
Next, when the process proceeds to step SP76, it is determined whether or not the register D is “0”. If a value of “1” or more is set in the register D in the previous step SP74, “NO” is determined here, and the processing of the mode 2 processing subroutine ends. When the process returns to the main routine (FIG. 2) via the automatic performance processing routine (FIG. 5), the automatic performance processing routine and the mode 2 processing subroutine are called again via steps SP4, SP5 and SP2.
[0070]
Here, since the register S has not yet been reset to “0”, the process proceeds to step SP72 via step SP71. Here, since the flag AF is set to “1” when step SP75 is executed first, it is determined as “NO”, and the process returns to the automatic performance processing routine via step SP76. Thus, when the flag AF is “0” and the register D is not “0”, no substantial processing is performed in the mode 2 processing subroutine (FIG. 8).
[0071]
Thereafter, when the timer interrupt is repeated, the register D continues to be decremented in step SP22 of the interrupt processing routine (FIG. 3), so that the register D eventually becomes “0”. Thereafter, when the mode 2 process subroutine is called and the process proceeds to step SP76, “YES” is determined, and the process proceeds to step SP77. Here, as in step SP52, the address AD1 is advanced until the next duration data is read, and the read duration data is stored in the register D.
[0072]
Next, when the process proceeds to step SP78, it is determined whether or not the flag AF is “1”. Since the flag AF was set to “1” when step SP75 was executed first, it is determined “YES”, and the process proceeds to step SP79. Here, the same processing as in step SP53 is performed. That is, the event data read in step SP77 is sent to the electronic sound source 2, and sound generation / silence processing based on the event data is performed.
[0073]
Thereafter, similarly, if no key operation is detected, the process of decrementing the register D at every timer interruption (step SP22 in FIG. 3) and the next duration data when the register D reaches “0” are registered in the register D. The process of setting to (SP77) and the process of performing sound source control based on the event data read together with the duration data (SP78) are repeated, and the automatic performance based on the model performance is continued.
[0074]
If any key operation is detected here, the same processing as in mode 1 is performed. That is, in the keyboard processing routine (FIG. 4), the process proceeds to step SP14 sequentially through steps SP11 and SP12, "0" is stored in the register S, and the flag AF is set to "0". If this key operation is not performed more than a predetermined time before the regular timing of the model performance, the process proceeds to step SP18 via step SP15, and the sound generation or mute based on this key operation is performed. Processing will be performed.
[0075]
Next, when the automatic performance processing routine (FIG. 5) is called and the mode 2 processing subroutine (FIG. 8) is called, “NO” is determined in step SP71. Then, when the process proceeds to step SP77 via step SP76 after the register D becomes “0”, the next duration data is read and the value is stored in the register D. However, since the flag AF is set to “0” in step SP14 during the key operation, “NO” is determined in step SP78, and the automatic performance processing in step SP79 is not performed.
[0076]
(3) Processing when key operation is too early
The process when the key operation is too early, that is, when the performer's key operation is performed for a predetermined time or more before the regular timing of the model performance is the same as in the mode 1. That is, in step SP16, the difference between the normal timing of the model performance and the timing of the actual performance is stored in the register R, and the flag CF is set to “1”.
[0077]
In step SP17, information about the operated key is stored in a predetermined area of the RAM 5. Whenever a timer interrupt occurs, the register R is decremented in step SP24, and when the contents of the register R become “0”, the information stored in step SP17 is sent to the electronic sound source 2 to generate sound / mute. Processing is performed.
[0078]
3. Effects of the embodiment
(1) As described above, when the automatic performance is in the on state in the mode 1, when the key operation is not performed for a predetermined period or longer, the performance information of the model performance in the period is sequentially skipped and the predetermined performance is skipped. The automatic performance based on the model performance after the period can be automatically started. This state is shown in FIGS. 9 (a) to 9 (c). FIGS. 9A and 9B show performance information of the model performance and the actual performance, respectively.
[0079]
In bars A and B, the actual performance follows the model performance, but is interrupted after the end of measure B. When the actual performance is interrupted, the automatic performance based on the model performance is started after waiting for a predetermined time (sections C and D in the illustrated example). In mode 1 ((c) in the figure), automatic performance is started from measure E so as to be equal to the timing of the exemplary performance.
[0080]
On the other hand, in mode 2, the automatic performance is started from the bar C where the actual performance is interrupted. That is, in mode 2, in the same case, the performance information is not skipped, and the automatic performance is started with a delay of the predetermined time. This situation is shown in FIG.
[0081]
In mode 1, since the performance timing of the model performance is maintained, it is preferable to select this when the performer is performing an ensemble with other performers. This is because when an ensemble is performed, if some of the instruments are out of timing, a significant defect is exhibited. On the other hand, in the mode 2, the performance information of the model performance is reproduced without being skipped, which is particularly suitable when the performer is performing solo. Thus, in the present embodiment, the performer can freely select an optimal mode according to the performance mode.
[0082]
(2) Also, by performing the processing of step SP18, when the performer performs a mistouch such as pressing a key adjacent to the original key, the contents of the model performance can be preferentially pronounced. it can. Furthermore, even when the key depression is too strong or too weak, it is possible to produce a sound with an appropriate velocity.
[0083]
4). Modified example
The present invention is not limited to the above-described embodiment, and various modifications can be made as follows, for example.
(1) In step SP18 of the above-described embodiment, when the velocity in the actual performance deviates from the predetermined range or more with respect to the model performance, the velocity in the actual performance is replaced with the velocity of the model performance. However, in such a case, the velocity may be set to the upper limit or the lower limit of the predetermined range.
[0084]
For example, it is assumed that the velocity of the model performance is “54” and the predetermined range is “± 5” (ie, 49 to 59). Here, when the velocity of the actual performance is “60” or more, “59” is set as the correction value, and when the velocity of the actual performance is “48” or less, “49” may be set as the correction value. As a result, musical sounds can be generated without greatly deviating from the model performance and while utilizing the nuances of the actual performance.
[0085]
(2) In step SP17 and step SP18 of the above embodiment, when the note code in the actual performance is different from the note code in the model performance, all are replaced with the note code in the model performance. Usually occurs within a range close to the note code (for example, within a half octave), so if the difference between the note code in the actual performance and the note code in the model performance is greater than or equal to a predetermined value (eg, a half octave or more) However, it may be determined that a performance different from the model performance is intentionally performed, and note code replacement is not performed.
[0086]
The same applies to the velocity. When the velocity of the actual performance is out of the predetermined range (greater than the predetermined range determined in step SP17 and step SP18) than the velocity of the exemplary performance, the performer intentionally sets the example. It may be determined that the actual performance is different from the performance and the velocity is not replaced. In addition, if the note code in the actual performance and the note code in the model performance are in a predetermined relationship such as the relationship of the Kyowa interval, the player intentionally indicates the note code of the Kyowa interval in the model performance note code, etc. It may be determined that the note code has not been replaced.
[0087]
(3) In the above embodiment, the score is displayed on the display 4. However, the present invention is not limited to this, and an indicator such as an LED is provided in the vicinity of each key of the keyboard so that the performance of the model performance is progressed A display corresponding to the key to be pressed may be turned on.
Further, when the keys to be pressed in the next performance practice are displayed so as to memorize which performance information has been modified in step SP17 and step SP18, there is no part that has been modified in the previous performance practice. If the display mode is made different depending on the place, the player's attention can be alerted to the place that has been corrected in the previous performance practice, and the practice effect is improved.
[0088]
(4) In the above embodiment, it is assumed that the player operates the keyboard, but it goes without saying that any performance operator can be used as long as the performance information such as MIDI signals can be obtained. Furthermore, by storing the contents of each control program described above in a recording medium such as a CD-ROM or a floppy disk, the same processing can be performed in a general-purpose personal computer.
[0089]
(5) In the above embodiment, the actual performance of the keyboard 12 is compared with the exemplary performance. However, the actual performance and the exemplary performance are compared with respect to the on / off of the pedal 13, the amount of stepping, and the like. Similarly, the performance information may be corrected. In the electronic musical instrument, since various tone color setting operators are provided in addition to the keyboard and pedal, these operation information may be similarly corrected.
[0090]
(6) In the mode 2 of the above embodiment, when the operation timing of the actual performance is significantly delayed from the normal timing of the exemplary performance, the exemplary performance is automatically traced back to the performance information when the actual performance is interrupted. Played. At this time, the duration of the performance data of the model performance is reduced (for example, halved) until the model performance catches up with the original progress of the model performance (the progress when the model performance is not traced back). You may make it return to the original duration as soon as the model performance catches up with the original progress.
[0091]
【The invention's effect】
As described above, according to the present invention, the musical tone signal is generated based on the input timing of the input performance information and the comparison result between the input performance information and the reference performance information. be able to.
[Brief description of the drawings]
FIG. 1 is a block diagram of an electronic musical instrument according to an embodiment of the present invention.
FIG. 2 is a flowchart of a main routine of the electronic musical instrument.
FIG. 3 is a flowchart of an interrupt processing routine of the electronic musical instrument.
FIG. 4 is a flowchart of a keyboard processing routine of the electronic musical instrument.
FIG. 5 is a flowchart of an automatic performance processing routine of the electronic musical instrument.
FIG. 6 is a flowchart of a mode 0 processing subroutine of the electronic musical instrument.
FIG. 7 is a flowchart of a mode 1 processing subroutine of the electronic musical instrument.
FIG. 8 is a flowchart of a mode 2 processing subroutine of the electronic musical instrument.
FIG. 9 is an operation explanatory diagram of the electronic musical instrument.
FIG. 10 is a diagram illustrating a configuration of performance information employed in the electronic musical instrument.
[Explanation of symbols]
2 ... Electronic sound source, 3 ... Sensor part, 4 ... Display, 5 ... RAM, 6 ... ROM, 7 ... Floppy disk drive, 8 ... Output port, 9 ... Amplifier, 10 ... Speaker, DESCRIPTION OF SYMBOLS 11 ... Headphone, 12 ... Keyboard, 13 ... Pedal, 14 ... Operation panel, 14a ... Mode switch, 14b ... Start switch, 14c ... Stop switch, 15 ... Bus

Claims (6)

基準演奏情報を記憶した記憶手段と、
演奏者による演奏に基づき実演奏情報を発生する実演奏情報発生手段と、
楽音信号を発生する楽音信号発生手段と、
前記実演奏情報に基づいて前記楽音信号楽音信号発生手段に対して楽音信号の発生を指示する制御手段であって、前記実演奏情報と前記基準演奏情報とが所定の関係にある場合にのみ、前記基準演奏情報に基づいて前記実演奏情報を修正し、該修正された実演奏情報に基づいて前記楽音信号発生手段に対して楽音信号の発生を指示する制御手段と
を有し、
前記基準演奏情報および前記実演奏情報は発生すべき楽音信号の音高を指示する音高情報を含み、
前記制御手段は、前記基準演奏情報に含まれる音高情報と前記実演奏情報に含まれる音高情報とが一致しない場合であっても、前記基準演奏情報に含まれる音高情報と前記実演奏情報に含まれる音高情報との差が所定値以上である場合、あるいは、前記基準演奏情報に含まれる音高情報と前記実演奏情報に含まれる音高情報とが所定の音程関係にある場合には、前記実演奏情報の修正を行わない
ことを特徴とす楽音生成装置。
Storage means for storing reference performance information;
Actual performance information generating means for generating actual performance information based on the performance by the performer;
A musical sound signal generating means for generating a musical sound signal;
Control means for instructing generation of a musical tone signal to the musical tone signal musical tone signal generating means based on the actual performance information, and only when the actual performance information and the reference performance information are in a predetermined relationship. Correct the actual performance information based on the reference performance information, it has a control means for instructing generation of a tone signal to the tone signal generator unit based on the actual performance information the modified,
The reference performance information and the actual performance information include pitch information indicating the pitch of a musical signal to be generated,
The control means may include the pitch information included in the reference performance information and the actual performance even when the pitch information included in the reference performance information does not match the pitch information included in the actual performance information. When the difference from the pitch information included in the information is a predetermined value or more, or when the pitch information included in the reference performance information and the pitch information included in the actual performance information have a predetermined pitch relationship the musical tone generating apparatus you said not to perform correction of the actual performance information.
基準演奏情報を記憶した記憶手段と、
演奏者による演奏に基づき実演奏情報を発生する実演奏情報発生手段と、
楽音信号を発生する楽音信号発生手段と、
前記実演奏情報に基づいて前記楽音信号楽音信号発生手段に対して楽音信号の発生を指示する制御手段であって、前記実演奏情報と前記基準演奏情報とが所定の関係にある場合にのみ、前記基準演奏情報に基づいて前記実演奏情報を修正し、該修正された実演奏情報に基づいて前記楽音信号発生手段に対して楽音信号の発生を指示する制御手段と
を有し、
前記制御手段は、前記実演奏情報が前記基準演奏情報を含む所定範囲以内であるか否かを判断し、該所定範囲より外れている場合には前記実演奏情報を前記所定範囲の境界値に修正する
ことを特徴とす楽音生成装置。
Storage means for storing reference performance information;
Actual performance information generating means for generating actual performance information based on the performance by the performer;
A musical sound signal generating means for generating a musical sound signal;
Control means for instructing generation of a musical tone signal to the musical tone signal musical tone signal generating means based on the actual performance information, and only when the actual performance information and the reference performance information are in a predetermined relationship. Correct the actual performance information based on the reference performance information, it has a control means for instructing generation of a tone signal to the tone signal generator unit based on the actual performance information the modified,
The control means determines whether or not the actual performance information is within a predetermined range including the reference performance information. If the actual performance information is out of the predetermined range, the actual performance information is set to a boundary value of the predetermined range. tone generation apparatus it said modifying.
基準演奏情報を記憶した記憶手段と、
演奏者による演奏に基づき実演奏情報を発生する実演奏情報発生手段と、
楽音信号を発生する楽音信号発生手段と、
前記基準演奏情報と前記実演奏情報との比較結果に基づいて前記楽音信号発生手段に対して楽音信号の発生を指示する制御手段であって、前記実演奏情報の発生が所定時間以上中断した場合、あるいは、前記基準演奏情報に基づき規定されるタイミングから所定時間以上経過しても前記実演奏情報が発生されない場合、前記基準演奏情報に基づいて前記楽音信号発生手段に対して楽音信号の発生を指示する制御手段と
を有し、
前記制御手段は、モード1およびモード2の動作モードを指定可能であり、前記モード1が指示された場合には、前記実演奏情報の発生が中断した時点から所定時間経過したタイミング、あるいは、前記基準演奏情報に基づき規定されるタイミングから所定時間経過したタイミングに対応する前記基準演奏情報に基づいて前記楽音信号発生手段に対して楽音信号の発生を指示し、前記モード2が指示された場合には、前記実演奏情報の発生が中断したタイミング、あるいは、前記基準演奏情報に基づき規定されるタイミングに対応する前記基準演奏情報に基づいて前記楽音信号発生手段に対して楽音信号の発生を指示するものである
ことを特徴とす楽音生成装置。
Storage means for storing reference performance information;
Actual performance information generating means for generating actual performance information based on the performance by the performer;
A musical sound signal generating means for generating a musical sound signal;
Control means for instructing the musical tone signal generating means to generate a musical tone signal based on a comparison result between the reference performance information and the actual musical performance information, wherein the generation of the actual musical performance information is interrupted for a predetermined time or more Alternatively, if the actual performance information is not generated even after a predetermined time has elapsed from the timing defined based on the reference performance information, a musical sound signal is generated to the music signal generation means based on the reference performance information. have a control means for instructing,
The control means can designate the operation mode of mode 1 and mode 2, and when the mode 1 is instructed, the timing at which a predetermined time has elapsed from the time when generation of the actual performance information is interrupted, or When the tone signal generation means is instructed to generate a tone signal based on the reference performance information corresponding to the timing when a predetermined time has elapsed from the timing specified based on the reference performance information, and the mode 2 is instructed Instructs the tone signal generating means to generate a tone signal based on the reference performance information corresponding to the timing at which the generation of the actual performance information is interrupted or the timing specified based on the reference performance information. tone generation apparatus, characterized in that.
コンピュータに、
基準演奏情報を記憶する過程と、
演奏者による演奏に基づき実演奏情報を発生する過程と、
前記実演奏情報と前記基準演奏情報とが所定の関係にある場合にのみ、前記基準演奏情報に基づいて前記実演奏情報を修正し、適宜修正された該実演奏情報に基づいて楽音信号を発生する過程と
を実行させるためプログラムであって、
前記基準演奏情報および前記実演奏情報は発生すべき楽音信号の音高を指示する音高情報を含み、
前記楽音信号を発生する過程にあっては、
前記基準演奏情報に含まれる音高情報と前記実演奏情報に含まれる音高情報とが一致しない場合であっても、前記基準演奏情報に含まれる音高情報と前記実演奏情報に含まれる音高情報との差が所定値以上である場合、あるいは、前記基準演奏情報に含まれる音高情報と前記実演奏情報に含まれる音高情報とが所定の音程関係にある場合には、前記実演奏情報の修正を行わない
プログラムを記録したコンピュータ読み取り可能な記録媒体。
On the computer,
The process of memorizing the standard performance information,
The process of generating actual performance information based on the performance by the performer,
Only when the actual performance information and the reference performance information have a predetermined relationship, the actual performance information is corrected based on the reference performance information, and a musical sound signal is generated based on the corrected actual performance information. The process of
A program for executing
The reference performance information and the actual performance information include pitch information indicating the pitch of a musical signal to be generated,
In the process of generating the musical sound signal,
Even if the pitch information included in the reference performance information and the pitch information included in the actual performance information do not match, the pitch information included in the reference performance information and the sound included in the actual performance information When the difference from the pitch information is a predetermined value or more, or when the pitch information included in the reference performance information and the pitch information included in the actual performance information are in a predetermined pitch relationship, Do not modify performance information
A computer-readable recording medium on which a program is recorded.
コンピュータに、
基準演奏情報を記憶する過程と、
演奏者による演奏に基づき実演奏情報を発生する過程と、
前記実演奏情報と前記基準演奏情報とが所定の関係にある場合にのみ、前記基準演奏情報に基づいて前記実演奏情報を修正し、適宜修正された該実演奏情報に基づいて楽音信号を発生する過程と
を実行させるためプログラムであって、
前記楽音信号を発生する過程にあっては、
前記実演奏情報が前記基準演奏情報を含む所定範囲以内であるか否かを判断し、該所定範囲より外れている場合には前記実演奏情報を前記所定範囲の境界値に修正する
プログラムを記録したコンピュータ読み取り可能な記録媒体。
On the computer,
The process of memorizing the standard performance information,
The process of generating actual performance information based on the performance by the performer,
Only when the actual performance information and the reference performance information have a predetermined relationship, the actual performance information is corrected based on the reference performance information, and a musical sound signal is generated based on the corrected actual performance information. The process of
A program for executing
In the process of generating the musical sound signal,
It is determined whether or not the actual performance information is within a predetermined range including the reference performance information. If the actual performance information is out of the predetermined range, the actual performance information is corrected to a boundary value of the predetermined range.
A computer-readable recording medium on which a program is recorded.
コンピュータに、
基準演奏情報を記憶する過程と、
演奏者による演奏に基づき実演奏情報を発生する過程と、
前記実演奏情報の発生が所定時間以上中断した場合、あるいは、前記基準演奏情報に基づき規定されるタイミングから所定時間以上経過しても前記実演奏情報が発生されない場合、前記基準演奏情報に基づいて楽音信号を発生する過程と
を実行させるためプログラムであって、
モード1およびモード2の動作モードを指定可能であり、前記モード1が指示された場合には、前記実演奏情報の発生が中断した時点から所定時間経過したタイミング、あるいは、前記基準演奏情報に基づき規定されるタイミングから所定時間経過したタイミングに対応する前記基準演奏情報に基づいて前記楽音信号を発生し、
前記モード2が指示された場合には、前記実演奏情報の発生が中断したタイミング、あるいは、前記基準演奏情報に基づき規定されるタイミングに対応する前記基準演奏情報に基づいて前記楽音信号を発生する
プログラムを記録したコンピュータ読み取り可能な記録媒体。
On the computer,
The process of memorizing the standard performance information,
The process of generating actual performance information based on the performance by the performer,
When the generation of the actual performance information is interrupted for a predetermined time or more, or when the actual performance information is not generated even after a predetermined time has elapsed from the timing defined based on the reference performance information, The process of generating musical sound signals
A program for executing
The operation modes of mode 1 and mode 2 can be specified. When the mode 1 is instructed, based on the timing at which a predetermined time has elapsed from the time when the generation of the actual performance information is interrupted or the reference performance information Generating the musical sound signal based on the reference performance information corresponding to the timing at which a predetermined time has elapsed from the prescribed timing;
When the mode 2 is instructed, the musical tone signal is generated based on the reference performance information corresponding to the timing when the generation of the actual performance information is interrupted or the timing specified based on the reference performance information.
A computer-readable recording medium on which a program is recorded.
JP36571498A 1998-12-22 1998-12-22 Musical sound generating apparatus and recording medium Expired - Fee Related JP3932708B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP36571498A JP3932708B2 (en) 1998-12-22 1998-12-22 Musical sound generating apparatus and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP36571498A JP3932708B2 (en) 1998-12-22 1998-12-22 Musical sound generating apparatus and recording medium

Publications (2)

Publication Number Publication Date
JP2000187485A JP2000187485A (en) 2000-07-04
JP3932708B2 true JP3932708B2 (en) 2007-06-20

Family

ID=18484934

Family Applications (1)

Application Number Title Priority Date Filing Date
JP36571498A Expired - Fee Related JP3932708B2 (en) 1998-12-22 1998-12-22 Musical sound generating apparatus and recording medium

Country Status (1)

Country Link
JP (1) JP3932708B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3945695B2 (en) * 2002-08-15 2007-07-18 修 宝利 Taisho koto real performance correction program and Taisho koto real performance correction device
CN107924640B (en) * 2015-07-14 2020-09-29 株式会社日立*** Sensory sharing system, operation device, and sensory sharing method
JP7143576B2 (en) * 2017-09-26 2022-09-29 カシオ計算機株式会社 Electronic musical instrument, electronic musical instrument control method and its program
JP7293653B2 (en) * 2018-12-28 2023-06-20 ヤマハ株式会社 Performance correction method, performance correction device and program

Also Published As

Publication number Publication date
JP2000187485A (en) 2000-07-04

Similar Documents

Publication Publication Date Title
JP4117755B2 (en) Performance information evaluation method, performance information evaluation apparatus and recording medium
US20050257667A1 (en) Apparatus and computer program for practicing musical instrument
JPH04153697A (en) Automatic music player
JP6720798B2 (en) Performance training device, performance training program, and performance training method
JP3358292B2 (en) Electronic musical instrument
JP3932708B2 (en) Musical sound generating apparatus and recording medium
JP6728702B2 (en) Electronic audio equipment
JP4203750B2 (en) Electronic music apparatus and computer program applied to the apparatus
JP5897805B2 (en) Music control device
JP4038836B2 (en) Karaoke equipment
JPH10301568A (en) Automatic playing device
JP4103913B2 (en) Performance practice device and recording medium
JP4506147B2 (en) Performance playback device and performance playback control program
JP6720797B2 (en) Performance training device, performance training program, and performance training method
JP3933583B2 (en) Electronic musical instruments
JP4070315B2 (en) Waveform playback device
JP2674452B2 (en) Music player
JP2616656B2 (en) Performance information playback device
JP4743615B2 (en) Electronic musical instrument with practice function
JP5338101B2 (en) Electronic music apparatus and performance processing program
JP2007178890A (en) Automatic playing musical device
JP4254697B2 (en) Electronic musical instruments
JP3620321B2 (en) Automatic accompaniment device
JP6665541B2 (en) Electroacoustic device
JP3480001B2 (en) Automatic performance data editing device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041124

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061212

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070205

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070227

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070312

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110330

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110330

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120330

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130330

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140330

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees