(57)【特許請求の範囲】
【請求項１】
時系列的な音符群を指定するステップと、
前記音符群の構成音符に従う楽器の生演奏に基づいて、各音符毎に演奏タイミング情報及び音高情報を含み且つ演奏タイミングにゆらぎのある演奏データを作成するステップと、
作成された演奏データから前記音符群の音符数分の演奏データを抽出するステップと、
抽出された演奏データを前記音符群中の少なくとも１つの音符に従って修正するステップと
を含む演奏データ作成方法。
【請求項２】
前記修正するステップでは、前記抽出された演奏データに基づく演奏区間の長さが前記音符群で表わされる区間長と一致又は近似するように前記抽出された演奏データ中の演奏タイミング情報を修正する請求項１記載の演奏データ作成方法。
【請求項３】
前記修正するステップでは、前記音符群で表わされる音高に従って前記抽出された演奏データ中の音高情報を修正する請求項１又は２記載の演奏データ作成方法。
【請求項４】
前記作成するステップにおいて前記演奏データは各音符毎に前記演奏タイミング情報として発音タイミング情報を含み、前記抽出するステップでは、前記抽出された演奏データに基づく演奏区間の最後の音符の次の音符に関する発音タイミング情報を前記作成された演奏データから抽出して前記抽出された演奏データに含ませる請求項１〜３のいずれかに記載の演奏データ作成方法。
【請求項５】
前記作成するステップでは、前記音符群中の音符数より少ない所定の音符数に対応して前記演奏データを作成し、前記抽出するステップでは、前記作成された演奏データにおいて先頭音符を含めて複数音符分の演奏データを抽出した後該先頭音符を除いて必要音符数分の演奏データを抽出すると共に先に抽出された演奏データと後で抽出された演奏データとを接続することにより前記音符群の音符数分の演奏データを得る請求項１〜４のいずれかに記載の演奏データ作成方法。
【請求項６】
和音の反復演奏を表わす音符群を指定するステップと、
前記和音を構成する複数音のうちの１音に相当する音符に従う楽器の反復的な生演奏に基づいて、各音符毎に演奏タイミング情報及び音高情報を含み且つ演奏タイミングにゆらぎのある演奏データを作成するステップと、
作成された演奏データから前記音符群中の和音数分の演奏データを抽出するステップと、
抽出された演奏データに基づく演奏区間の長さが前記音符群で表わされる区間長と一致又は近似するように前記抽出された演奏データ中の演奏タイミング情報を修正する第１の修正ステップと、
この第１の修正ステップで修正を受けた演奏データを前記和音の構成音数より１少ない数分だけ複製するステップと、
複製に係る演奏データ中の音高情報を前記和音を構成する複数音のうちの他の音の音高に従って修正する第２の修正ステップと
を含む演奏データ作成方法。
【請求項７】
前記作成するステップにおいて前記演奏データは各音符毎に音量情報を含み、前記第１の修正ステップで修正を受けた演奏データ中の音量情報と前記複製に係る演奏データ中の音量情報とを前記和音の発音タイミングにて異ならせるように修正するステップを更に含む請求項６記載の演奏データ作成方法。
【請求項８】
前記作成するステップにおいて前記演奏データは各音符毎に前記演奏タイミング情報として発音タイミング情報を含み、前記第１の修正ステップで修正を受けた演奏データ中の発音タイミング情報と前記複製に係る演奏データ中の発音タイミング情報とを前記和音の発音タイミングにて異ならせるように修正するステップを更に含む請求項６又は７記載の演奏データ作成方法。
【請求項９】
発音タイミング及び音高を異にする複数音の反復演奏を表わす音符群を指定するステップと、
前記複数音に相当する複数音符に従う楽器の反復的な生演奏に基づいて、各音符毎に演奏タイミング情報及び音高情報を含み且つ演奏タイミングにゆらぎのある演奏データを作成するステップと、
作成された演奏データから前記音符群中の前記複数音対応の音符組の組数分の演奏データを抽出するステップと、
抽出された演奏データを前記音符群中の少なくとも１つの音符に従って修正するステップと
を含む演奏データ作成方法。
【請求項１０】
前記修正するステップでは、前記抽出された演奏データに基づく演奏区間の長さが前記音符群で表わされる区間長と一致又は近似するように前記抽出された演奏データ中の演奏タイミング情報を修正する請求項９記載の演奏データ作成方法。
【請求項１１】
前記作成するステップにおいて前記演奏データは各音符毎に前記演奏タイミング情報として消音タイミング情報と含み、前記修正するステップでは、前記演奏区間の最後の音符に関する消音タイミング情報が前記演奏区間外の消音タイミングを指示するのを許容する請求項１０記載の演奏データ作成方法。
【請求項１２】
前記作成するステップでは、前記音符群中の前記複数音対応の音符組の組数より少ない所定の音符組数に対応して前記演奏データを作成し、前記抽出するステップでは、前記作成された演奏データにおいて先頭組の音符を含めて複数組の音符に関する演奏データを抽出した後該先頭組の音符を除いて必要組数の音符に関する演奏データを抽出すると共に先に抽出された演奏データと後で抽出された演奏データとを接続することにより前記複数音対応の音符組の組数分の演奏データを得る請求項９〜１１のいずれかに記載の演奏データ作成方法。
【請求項１３】
楽曲を自動演奏するための演奏データを記憶する第１の記憶手段と、
時系列的な音符群毎に該音符群の構成音符に従う楽器の生演奏に基づいて作成された演奏データであって各音符毎に演奏タイミング情報及び音高情報を含み且つ演奏タイミングにゆらぎのある演奏データを記憶する第２の記憶手段と、
前記楽曲中で所望の時系列的な音符群を指定する指定手段と、
この指定手段で指定された音符群に対応する演奏データを前記第２の記憶手段から読出す読出手段と、
前記第２の記憶手段から読出された演奏データから、前記指定手段で指定された音符群の音符数分の演奏データを抽出する抽出手段と、
この抽出手段で抽出された演奏データを前記指定手段で指定された音符群中の少なくとも１つの音符に従って修正する第１の修正手段と、
前記第１の記憶手段の演奏データにおいて前記指定手段で指定された音符群に関する演奏データを前記第１の修正手段で修正を受けた演奏データに従って修正する第２の修正手段と、
この第２の修正手段で修正された演奏データを含む前記第１の記憶手段の演奏データに従って前記楽曲の自動演奏を行なう自動演奏手段と
を備えた自動演奏装置。
【請求項１４】
複数の時系列的な音符群に変換可能な演奏記号を前記楽曲中で指示する指示手段と、この指示手段で指示された演奏記号を前記複数の時系列的な音符群に変換する変換手段とを更に備え、前記指定手段では、前記変換手段での変換に係る複数の時系列的な音符群のうち所望の音符群を指定する請求項１３記載の自動演奏装置。
【請求項１５】
楽曲を自動演奏するための演奏データを記憶する第１の記憶手段と、
時系列的な音符群毎に該音符群の構成音符に従う楽器の生演奏に基づいて作成された演奏データであって各音符毎に演奏タイミング情報及び音高情報を含み且つ演奏タイミングにゆらぎのある演奏データを記憶する第２の記憶手段と、
前記楽曲中で所望の時系列的な音符群を指定する指定手段と
を備えたコンピュータにおいて使用される記録媒体であって、
前記指定手段で指定された音符群に対応する演奏データを前記第２の記憶手段から読出すステップと、
前記第２の記憶手段から読出された演奏データから、前記指定手段で指定された音符群の音符数分の演奏データを抽出する抽出ステップと、
この抽出ステップで抽出された演奏データを前記指定手段で指定された音符群中の少なくとも１つの音符に従って修正する第１の修正ステップと、
前記第１の記憶手段の演奏データにおいて前記指定手段で指定された音符群に関する演奏データを前記第１の修正ステップで修正を受けた演奏データに従って修正する第２の修正ステップと、
この第２の修正ステップで修正された演奏データを含む前記第１の記憶手段の演奏データに従って前記楽曲の自動演奏を行なうステップと
をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、自動演奏等に用いるに好適なゆらぎ性（のりやゆらぎ）を有する演奏データを作成する方法と、作成された演奏データを使用する自動演奏装置と、自動演奏用のプログラムを記録した記録媒体とに関し、特に生演奏等に基づく基準演奏データから所望の音符群の演奏データを抽出すると共に抽出演奏データを音符群に従って修正することにより所望の音符群の演奏データ作成を可能にしたものである。
【０００２】
【従来の技術】
従来、所望の楽曲に関するゆらぎ性の演奏データに基づいて楽譜通りの演奏データを修正してゆらぎの程度を変更した自動演奏用の演奏データを作成する方法が知られている（例えば、特開平１０−２０８５６号公報参照）。
【０００３】
【発明が解決しようとする課題】
上記した従来技術によると、基準演奏データとしてのゆらぎ性の演奏データを参照して演奏データを修正するので、例えば楽曲の一部の音符群にゆらぎ性を付与したり、ゆらぎ性を付与する音符群を変更したりするには新たに基準演奏データを用意する必要があり、処理が複雑となる不都合があった。また、楽曲の一部で音符数や音高が変更された場合にも同様の不都合があった。
【０００４】
この発明の目的は、所望の音符群毎にゆらぎ性の演奏データを簡単に作成することができる新規な演奏データ作成方法を提供することにある。
【０００５】
この発明の他の目的は、自動演奏される楽曲の一部に簡単にゆらぎ性を付与することができる新規な自動演奏装置を提供することにある。
【０００６】
【課題を解決するための手段】
この発明に係る第１の演奏データ作成方法は、
時系列的な音符群を指定するステップと、
前記音符群の構成音符に従う楽器の生演奏に基づいて、各音符毎に演奏タイミング情報及び音高情報を含み且つ演奏タイミングにゆらぎのある演奏データを作成するステップと、
作成された演奏データから前記音符群の音符数分の演奏データを抽出するステップと、
抽出された演奏データを前記音符群中の少なくとも１つの音符に従って修正するステップと
を含むものである。
【０００７】
第１の演奏データ作成方法によれば、時系列的な音符群の構成音符（例えば１６分音符）に対応したゆらぎ性の演奏データを生演奏に基づいて作成すると共に、音符群中の音符数（例えば８個）分の演奏データを作成に係る演奏データから抽出する。そして、抽出に係る演奏データを音符群中の少なくとも１つの音符に従って修正する。この結果、生演奏に基づくゆらぎ性を有し且つ音符群に適合した演奏データが得られ、自動演奏等に用いることができる。
【０００８】
第１の演奏データ作成方法において、抽出に係る演奏データに基づく演奏区間の長さが音符群で表わされる区間長と一致又は近似するように抽出に係る演奏データ中の演奏タイミング情報（例えば発音タイミング情報、消音タイミング情報等）を修正すると、音符群中の音符数が変更されても、データ抽出の際に音符数を変更するだけで対処することができ、作成に係る演奏データを変更しなくてよい。また、音符群で表わされる音高に従って抽出に係る演奏データ中の音高情報を修正すると、音符群中の音高が変更されても、変更に係る音高に応じて音高情報を修正すればよく、作成に係る演奏データを変更しなくてよい。従って、処理が簡単となる。
【０００９】
この発明に係る第２の演奏データ作成方法は、
和音の反復演奏を表わす音符群を指定するステップと、
前記和音を構成する複数音のうちの１音に相当する音符に従う楽器の反復的な生演奏に基づいて、各音符毎に演奏タイミング情報及び音高情報を含み且つ演奏タイミングにゆらぎのある演奏データを作成するステップと、
作成された演奏データから前記音符群中の和音数分の演奏データを抽出するステップと、
抽出された演奏データに基づく演奏区間の長さが前記音符群で表わされる区間長と一致又は近似するように前記抽出された演奏データ中の演奏タイミング情報を修正する第１の修正ステップと、
この第１の修正ステップで修正を受けた演奏データを前記和音の構成音数より１少ない数分だけ複製するステップと、
複製に係る演奏データ中の音高情報を前記和音を構成する複数音のうちの他の音の音高に従って修正する第２の修正ステップと
を含むものである。
【００１０】
第２の演奏データ作成方法によれば、第１の演奏データ作成方法と同様の作用効果が得られる。その上、第１の修正ステップで修正を受けた演奏データを和音の構成音数（例えば２）より１少ない数分だけ複製すると共に、複製に係る演奏データ中の音高情報を対応する和音構成音の音高に従って修正するようにしたので、単音系の少ない演奏データに基づいて和音系の演奏データを作成することができる。
【００１１】
この発明に係る第３の演奏データ作成方法は、
発音タイミング及び音高を異にする複数音の反復演奏を表わす音符群を指定するステップと、
前記複数音に相当する複数音符に従う楽器の反復的な生演奏に基づいて、各音符毎に演奏タイミング情報及び音高情報を含み且つ演奏タイミングにゆらぎのある演奏データを作成するステップと、
作成された演奏データから前記音符群中の前記複数音対応の音符組の組数分の演奏データを抽出するステップと、
抽出された演奏データを前記音符群中の少なくとも１つの音符に従って修正するステップと
を含むものである。
【００１２】
第３の演奏データ作成方法によれば、第１の演奏データ作成方法と同様の作用効果が得られる。その上、発音タイミング及び音高を異にする複数音に相当する複数音符に従う反復的な生演奏に基づいてゆらぎ性の演奏データを作成するようにしたので、前後の音が時間的に重なって発音されるような自然なゆらぎ性を有する複音系の演奏データを作成することができる。
【００１３】
この発明に係る自動演奏装置は、
楽曲を自動演奏するための演奏データを記憶する第１の記憶手段と、
時系列的な音符群毎に該音符群の構成音符に従う楽器の生演奏に基づいて作成された演奏データであって各音符毎に演奏タイミング情報及び音高情報を含み且つ演奏タイミングにゆらぎのある演奏データを記憶する第２の記憶手段と、
前記楽曲中で所望の時系列的な音符群を指定する指定手段と、
この指定手段で指定された音符群に対応する演奏データを前記第２の記憶手段から読出す読出手段と、
前記第２の記憶手段から読出された演奏データから、前記指定手段で指定された音符群の音符数分の演奏データを抽出する抽出手段と、
この抽出手段で抽出された演奏データを前記指定手段で指定された音符群中の少なくとも１つの音符に従って修正する第１の修正手段と、
前記第１の記憶手段の演奏データにおいて前記指定手段で指定された音符群に関する演奏データを前記第１の修正手段で修正を受けた演奏データに従って修正する第２の修正手段と、
この第２の修正手段で修正された演奏データを含む前記第１の記憶手段の演奏データに従って前記楽曲の自動演奏を行なう自動演奏手段と
を備えたものである。
【００１４】
この発明の自動演奏装置によれば、指定手段で所望の音符群を指定すると、指定に係る音符群に対応する演奏データが第２の記憶手段から読出されると共に、読出しに係る演奏データから指定に係る音符群の音符数分の演奏データが抽出される。抽出された演奏データは、指定に係る音符群に従って修正され、第１の記憶手段の演奏データにおいて指定に係る音符群に関する演奏データが修正に係る演奏データに従って修正される。楽曲の自動演奏は、修正に係る演奏データを含む第１の記憶手段の演奏データに従って行なわれる。この結果、自動演奏される楽曲にあっては、指定に係る音符群に対応する演奏個所に読出しに係る演奏データ（生演奏に基づく演奏データ）に基づくゆらぎ性が付与される。
【００１５】
【発明の実施の形態】
以下では、トレモロ演奏を例にとってこの発明を詳細に説明する。楽典によると、トロモロ演奏は、時間的に細かい多数の音符を繰返し演奏するものである。一般に、トレモロ記号は、図１（Ａ）に例示するように音符ＮにひげＨを付して表わされ、図１（Ｂ）に示すようなトレモロ演奏用の音符に変換されて演奏される。トレモロ演奏用音符の種類は、ひげＨの本数に応じて決定され、ひげＨの本数が１本であれば８分音符、２本であれば１６分音符、３本であれば３２分音符となる。トレモロ演奏用音符の個数は、音符ＮをひげＨの本数に応じた種類の音符に分割した数である。
【００１６】
図１の例では、音符Ｎが２分音符であり、ひげＨの本数が２本であるので、トレモロ演奏用音符は、８個の１６分音符となる。他の例として、音符Ｎが４分音符であり、ひげＨの本数が３本である場合は、８個の３２分音符がトレモロ演奏用音符となる。
【００１７】
ところで、自然楽器の生演奏では、トレモロ音の数がトレモロ演奏用音符の数と同じであるとしても、各トレモロ音毎に音長や音量が一定していない場合が多く、その方が自然な演奏に聞こえる。すなわち、生演奏では、演奏者が意識した又はしないテンポのゆらぎ、音量のゆらぎ等の様々な不均一性や不安定性が生々しさや自然らしさに大きく寄与している。
【００１８】
図２は、トレモロの生演奏の一例を示すもので、横軸が時間を表わし、縦軸が音高を表わす。Ｂ１〜Ｂ７は、いずれも拍頭タイミングを示し、Ｔ１，Ｔ２…Ｔ８，Ｔ９…は、図１（Ｂ）の音符Ｎ１，Ｎ２…Ｎ８等に対応するトレモロ音を示す。各トレモロ音の音長は、黒バーの長さで表わされる。図２によれば、トレモロ音の音長にばらつきがあることがわかる。図２には示されていないが、トレモロ音の音量にもばらつきがある。
【００１９】
楽曲の自動演奏において、自然な演奏、美しい演奏、生々しい演奏を実現するために、生演奏に基づいて自動演奏用のゆらぎ性の演奏データを作成することが考えられる。図３は、図２の生演奏に基づいて作成された演奏データの一例を示すものである。トレモロ音Ｔ１に関しては、タイミングデータＴＭ１１とノートオンイベントデータＮＥ１１とベロシティデータＶＬ１１とを含むオンイベントデータの組が配置されると共にオンイベントデータの組の後にタイミングデータＴＭ１２とノートオフイベントデータＮＥ１２とを含むオフイベントデータの組が配置される。Ｔ２以降の各トレモロ音に関しても、同様にしてオンイベントデータの組及びオフイベントデータの組が配置される。従って、例えばトレモロ音Ｔ８に関するオフイベントデータの組（タイミングデータＴＭ８２及びノートオフイベントデータＮＥ８２）の後には、トレモロ音Ｔ９に関するオンイベントデータの組（タイミングデータＴＭ９１、ノートオンイベントデータＮＥ９１及びベロシティデータＶＬ９１）が配置される。
【００２０】
ＴＭ１１，ＴＭ９１等のタイミングデータは、対応するトレモロ音の発音タイミングを指示するものである。ＮＥ１１，ＮＥ９１等のノートオンイベントデータは、対応するトレモロ音の音高をノートナンバで指示するものである。ＶＬ１１，ＶＬ９１等のベロシティデータは、対応するトレモロ音の音量を指示するものである。ＴＭ１２，ＴＭ８２等のタイミングデータは、対応するトレモロ音の消音タイミングを指示するものである。ＮＥ１２，ＮＥ８２等のノートオフイベントデータは、対応するトレモロ音の音高をノートナンバで指示するものである。各タイミングデータは、前のイベント（前のイベントがなければ拍頭）からの時間を例えば後述するテンポクロック信号のカウント値により表わすものである。
【００２１】
図３に示したような演奏データを自動演奏用データとして用いて自動演奏を行なうことも可能である。しかし、トレモロ演奏用音符における音符数や音高の変更に対応して新たに生演奏に基づく演奏データを用意する必要があるので、図３に示したような演奏データをそのまま自動演奏に用いるのは得策でない。そこで、この発明では、図３に示したような演奏データをトレモロ演奏用音符に基づいて適宜加工して新たな演奏データを作成する。
【００２２】
次に、図４，５を参照してこの発明に係るトレモロ演奏データ作成方法を詳しく説明する。図５には、処理ステップＳ１〜Ｓ７を示す。
【００２３】
ステップＳ１では、例えば楽譜表示画面において図４（Ａ）に示すようなトレモロ記号を指定する。そして、ステップＳ２では、指定されたトレモロ記号に基づいて図１（Ｂ）に示したようにトレモロ演奏用音符の種類と数とを求める。図４（Ａ）の例では、音符種類は１６分音符、音符数は８個となる。
【００２４】
次に、ステップＳ３では、ステップＳ２で求めた音符種類に対応した生演奏データを用意する。このためには、予めデータベースに音符種類毎に生演奏に基づく生演奏データを記憶しておき、求めた音符種類に対応する生演奏データをデータベースから読出すようにするとよい。一例として、図４（Ｂ）の生演奏に基づいて図３に示したような生演奏データが用意される。
【００２５】
次に、ステップＳ４では、ステップＳ３で用意した生演奏データからステップＳ２で求めた音符数に対応した演奏区間の演奏データを抽出する。図４（Ｃ）は、このときの抽出処理の一例を示すもので、図４（Ｂ）の生演奏に基づく生演奏データからは、トレモロ音Ｔ１〜Ｔ８に対応する演奏データが抽出される。このようにして抽出された演奏データを図６に示す。図６において、図３と同様の部分には同様の符号を付してあり、Ｔ１〜Ｔ８の区間のデータ及びタイミングデータＦＴＭが抽出された演奏データである。ここで、タイミングデータＦＴＭは、図３に示したようにトレモロ音Ｔ９の発音タイミング（ＴＭ８２の消音タイミングからの時間）を表わすものである。このようにＴ１〜Ｔ８の区間の終了タイミングを区間最後のトレモロ音Ｔ８の消音タイミングに合わせるのではなく、Ｔ８の次のトレモロ音Ｔ９の発音タイミングに合わせるようにすると、Ｔ１〜Ｔ８の区間のデータに後続の演奏データを接続する場合に区間最後の無音時間を反映させて自然な感じを出すことができる。また、タイミングデータＦＴＭの後に終端マークデータFMDを付加すると、データ接続時に終端確認が容易となる。
【００２６】
次に、ステップＳ５では、抽出に係る演奏区間の長さをトレモロ演奏用音符の合計長さ（図４（Ａ）の音符の長さに相当）に一致又は近似させるように抽出に係る演奏区間の演奏データ中のタイミング値を修正する。このときに修正されるタイミング値は、発音タイミングや消音タイミング等の演奏タイミングの値であり、図６の例では、タイミングデータＴＭ１１，ＴＭ１２…ＴＭ８１，ＴＭ９１の値である。図４（Ｄ）は、図４（Ｃ）に示すように抽出した区間の長さをステップＳ５で修正した一例を示すもので、修正後の区間長は、２拍に相当する長さになっている。
【００２７】
次に、ステップＳ６では、トレモロ音Ｔ１〜Ｔ８の音高がトレモロ演奏用音符の音高に一致しているか判定し、一致していなければトレモロ演奏用音符の音高に合わせて抽出に係る演奏データ中のノートナンバを修正する。このとき修正されるノートナンバは、図６の例では、イベントデータＮＥ１１，ＮＥ１２…ＮＥ８１，ＮＥ８２のノートナンバである。
【００２８】
この後、ステップＳ７では、ベロシティ値（音量レベル）の修正処理を行なう。すなわち、生演奏データ中のベロシティ値は、自動演奏で求められるベロシティ値と必ずしも一致しないので、トレモロ演奏用音符における先頭音符の音量に従って抽出に係る演奏データ中のベロシティ値を修正する。先頭音符の音量は、楽譜上で図４（Ａ）のトレモロ記号に関して表示される。まず、先頭音符の音量に対応したベロシティ値とトレモロ音Ｔ１のオンイベントデータ中のベロシティ値との差を求めた後、トレモロ音Ｔ１のオンイベントデータ中のベロシティ値を先頭音符の音量に対応したベロシティ値に書換える。そしてＴ１以外のＴ２〜Ｔ８の各トレモロ音のオンイベントデータ中のベロシティ値を先に求めたベロシティ値の差に応じて加減算処理により修正する。
【００２９】
この結果、例えばトレモロ音Ｔ１の音量がベロシティ値にして「２０」増大（又は減少）したのであれば、トレモロ音Ｔ２〜Ｔ８の音量もベロシティ値にして「２０」増大（又は減少）することになり、しかもＴ２〜Ｔ８の区間の演奏データにあっては生演奏時のトレモロ音の音量のばらつき状態が維持される。
【００３０】
図７は、短い生演奏データに基づいて長い演奏データを作成する方法の一例を示すものである。この場合、生演奏データとしては、図７（Ａ）に示すようにトレモロ音Ｔ１〜Ｔ１２に対応する区間の演奏データが用意される。このとき用意される演奏データは、終端タイミングＥＤを指示するデータとして、トレモロ音Ｔ１２の次のトレモロ音の発音タイミングを指示するタイミングデータを含んでいる。
【００３１】
図５のステップＳ４では、用意された生演奏データから図７（Ｂ）に示すように先頭のトレモロ音Ｔ１から終端タイミングＥＤまでの全データを抽出した後、先頭のトレモロ音Ｔ１に関するデータを除いてトレモロ音Ｔ２から後の必要数のトレモロ音に関するデータを抽出し、１回目の抽出データと２回目の抽出データとを接続する。図７において、ＲＨは、２回目の抽出データの先頭位置を示す。２回目の抽出処理で先頭のトレモロ音Ｔ１を除外するのは、トレモロ演奏で先頭音符が強調されることによるもので、自然さを出すのに役立つ。場合によっては、２回目以降の抽出処理で先頭から２音以上を除外するようにしてもよい。
【００３２】
図８は、図７の方法におけるデータ接続状況を示すものである。１回目の抽出データの末尾には、トレモロ音Ｔ１２のオフイベントデータの組の後タイミングデータＦＴＭ（終端タイミングＥＤを指示するデータ）に続けて終端マークデータＦＭＤが配置されている。２回目の抽出データは、トレモロ音Ｔ２のタイミングデータＴＭ２１を除外してトレモロ音Ｔ２のノートオンイベントデータＮＥ２１を先頭データとして含むものとする。１回目及び２回目の抽出データを接続する際には、終端マークデータＦＭＤの代りにノートオンイベントデータＮＥ２１をタイミングデータＦＴＭに接続する。この後は、必要に応じて、上記したと同様の抽出・接続処理を行ない、図５のステップＳ５以降の処理を行なう。
【００３３】
図９は、短い生演奏データに基づいて長い演奏データを作成する方法の他の例を示すもので、図７と同様の部分には同様の符号を付して詳細な説明を省略する。
【００３４】
図９の方法の特徴は、図９（Ａ）に示すようにトレモロ音Ｔ１２の発音タイミングを終端タイミングＥＤとした点にある。この場合、図９（Ｂ）に示すように１回目の抽出データ中でトレモロ音Ｔ１２は発音されない。
【００３５】
図１０は、図９の方法におけるデータ接続状況を示すものである。１回目の抽出データの末尾には、トレモロ音Ｔ１１のオフイベントデータの組の後トレモロ音Ｔ１２のタイミングデータ（発音タイミングを示すもの）ＴＭ２に続けてトレモロ音Ｔ１２のノートオンイベントデータＮＥ２が配置されている。２回目の抽出データは、図８の場合と同様である。１回目及び２回目の抽出データを接続する際には、ノートオンイベントデータＮＥ２の代りにノートオンイベントデータＮＥ２１をタイミングデータＴＭ２に接続する。この後は、必要に応じて、上記したと同様の抽出・接続処理を行ない、図５のステップＳ５以降の処理を行なう。
【００３６】
次に、複音トレモロに関する演奏データ作成方法を説明する。複音トレモロの場合には、１つのトレモロ記号について複数の演奏形態がありうるので、最初に演奏形態を決定し、演奏形態に応じた生演奏データを用意する必要がある。
【００３７】
一例として、図１１（Ａ）と図１２（Ａ）には、同一の複音トレモロ記号を示す。このトレモロ記号は、図１１（Ｂ）に示すように和音反復型のトレモロ演奏用音符に変換されて演奏されることもあれば、図１２（Ｂ）に示すように交互音演奏型のトレモロ演奏用音符に変換されて演奏されることもある。例えばバイオリンのように複音発音が可能で繰返し演奏も容易な楽器の場合には、図１１（Ｂ）に示すように和音の反復演奏を行なう。一方、管楽器のように複音発音ができない場合やピアノのように複数発音は可能でも複音の繰返し演奏が難しい場合には、図１２（Ｂ）に示すように和音構成音を交互に演奏するのが一般的である。
【００３８】
図１１（Ｂ）のトレモロ演奏に関して演奏データを作成する場合は、図５に関して前述したと同様の方法を用いることができる。この場合、生演奏データとしては、図１１（Ｂ）に示すように１６分音符の複音トレモロ演奏に基づくデータを用意する。
【００３９】
図１１（Ｂ）のトレモロ演奏に関して演奏データを作成するための他の方法としては、図１３に示すように和音を構成する複数音のうちの１音の反復演奏に基づく生演奏データを用いる方法もある。この方法では、用意する生演奏データの量が少なくて済む利点がある。
【００４０】
図１３（Ａ）のステップでは、所望の複音トレモロ記号を指定する。一例として、２分音符Ｎ１１，Ｎ１２と２本のひげとを有する複音トレモロ記号を指定する。そして、指定に係るトレモロ記号に基づいて図１１（Ｂ）に示したようにトレモロ演奏音符の種類と数とを求める。音符数は、上下音符のいずれか一方の数とする。図１１（Ｂ）の例では、音符種類が１６分音符、音符数が８となる。
【００４１】
次に、図１３（Ｂ）のステップでは、先に求めた音符種類に対応した生演奏データを用意する。この生演奏データは、和音演奏に基づくものではなく、和音を構成する複数音のうちの１音の反復演奏に基づくものとする。図１３（Ｂ）の例では、音符Ｎ１１に対応する１６分音符のトレモロ演奏に基づく生演奏データを用意する。
【００４２】
次に、図１３（Ｃ）のステップでは、先に用意した生演奏データから先に求めた音符数に対応した演奏区間の演奏データを抽出する。この抽出処理は、図５のステップＳ４に関して前述したと同様にして行ない、生演奏データの方が短ければ図７又は９で述べたと同様に抽出・接続処理を行なう。図１３（Ｃ）の例では、トレモロ音Ｔ１〜Ｔ８に対応する第１系列の演奏データを抽出する。この演奏データには、トレモロ音Ｔ８の次のトレモロ音の発音タイミングを指示するタイミングデータが含まれている。
【００４３】
次に、図１３（Ｄ）のステップでは、図５のステップＳ５に関して前述したと同様にして抽出演奏データ中のタイミング値を修正して抽出に係る演奏区間の長さを調整する。図１３（Ｄ）の例では、トレモロ音Ｔ１〜Ｔ８を含む演奏区間の長さを２拍に相当する長さに調整する。
【００４４】
次に、図１３（Ｅ）のステップでは、修正を受けた演奏区間の演奏データを和音構成音の数より１少ない数分だけ複製する。図１３（Ｅ）の例では、和音構成音の数が２であるので、トレモロ音Ｔ１〜Ｔ８に対応する第１系列の演奏データを１回コピーしてトレモロ音ｔ１〜ｔ８に対応する第２系列の演奏データを得る。
【００４５】
この後、複製に係る演奏データ中のノートナンバ（音高）を和音を構成する複数音のうちの他の音の音高に従って修正する。図１３（Ｅ）の例では、トレモロ音ｔ１〜ｔ８に対応する演奏データ中のノートナンバを図１３（Ａ）の音符Ｎ１２の音高に従って修正する。また、トレモロ音Ｔ１〜Ｔ８の音高が音符Ｎ１１の音高に従っていないときは、トレモロ音Ｔ１〜Ｔ８に対応する演奏データ中のノートナンバーを音符N１１の音高に従って修正する。
【００４６】
上記した処理によれば、図１３（Ｅ）に示すように和音を構成する２音に対応した２系列の演奏データが得られる。しかしながら、これら２系列の演奏データにあっては、同時に発音される２音毎に音量が同じであると共に発音タイミングが同じであり、和音感が不自然となるのを免れない。そこで、この発明では、２系列の演奏データ間で和音の発音タイミングにてベロシティ値を異ならせるように修正すると共に発音タイミング値を異ならせるように修正する。
【００４７】
ベロシティ値修正処理においては、図１４に示すように和音を最低音ＭＬ、中間音ＭＴ及び最高音ＭＨで構成する共に最低音、中間音及び最高音の音量をそれぞれＶＭＬ、ＶＭＴ及びＶＭＨとした場合、音量の大小関係をＶＭＨ＞ＶＭＬ＞ＶＭＴのように定めると、和音としてのバランスがよくなる傾向がある。例えば、ベロシティ値を０〜１２７の範囲内の値にして音量制御を行なうときは、最高音に対して最低音のベロシティ値を−５〜−１０程度の値に、中間音のベロシティ値を−１０〜−２０程度の値にそれぞれ設定するとよい。また、常に決められた値だけ音量を小さくするのでなく、小さくなり加減をランダムに変化させるとよい。例えば、最低音のベロシティ値は、最高音に対して−１０に設定し、しかも経時的に±１０の範囲でランダムに変化させるとよい。
【００４８】
上記のようなベロシティ値修正処理でもかなり自然な不均一性を与えることができるが、和音の要素に応じて例えば根音は大きく、３度音は小さくというように音量制御を行なうと、さらに自然な不均一性を与えることができる。
【００４９】
図１３（Ｅ）の２系列の演奏データに対するベロシティ値修正処理においては、まず最高音であるトレモロ音ｔ１〜ｔ８に対応した第２系列の演奏データについてベロシティ値を修正する。すなわち、音符Ｎ１２に関して指定された音量（最高音対応のトレモロ演奏用音符における先頭音符の音量）に対応したベロシティ値とトレモロ音ｔ１のオンイベントデータ中のベロシティ値との差を求めた後、トレモロ音ｔ１のオンイベントデータ中のベロシティ値を先頭音符の音量に対応したベロシティ値に書換える。そして、ｔ１以外のｔ２〜ｔ８の各トレモロ音のオンイベントデータ中のベロシティ値を先に求めたベロシティ値の差に応じて加減算処理により修正する。
【００５０】
次に、最低音Ｔ１〜Ｔ８対応した第１系列の演奏データについてベロシティ値を修正する。この場合、音符Ｎ１１に関して指定された音量（最低音対応のトレモロ演奏用音符における先頭音符の音量）に対応したベロシティ値が音符Ｎ１２に関して指定された音量に対応するベロシティ値より所定値（例えば１０）だけ低いものとする（このように所定値だけ低くなければ、所定値だけ低くする）。そして、音符Ｎ１１に関して指定された音量に対応したベロシティ値を用いて第２系列の演奏データの場合と同様にして第１系列の演奏データ中のベロシティ値を修正する。この結果、トレモロ音Ｔ１〜Ｔ８に対応するベロシティ値は、トレモロ音ｔ１〜ｔ８に対応するベロシティ値に比べてそれぞれ所定値（例えば１０）だけ低いものとなる。
【００５１】
上記した処理によれば、第１系列の演奏データにおける各ベロシティ値は、第２系列の演奏データにおける対応するベロシティ値とは所定値だけ異なるものの、第１系列の演奏データをコピーしたのが第２系列の演奏データであるため、第１及び第２系列の演奏データにあっては、トレモロ音の音量のばらつき状態が同様である。このような音量のばらつき状態を異なるならせるためには、第１又は第２の演奏データのうち少なくとも一方の演奏データに対して前述したようにベロシティ値をランダムに修正する処理を施すことができる。
【００５２】
発音タイミング値修正処理においては、第１系列の演奏データ中の発音タイミング値を和音の発音タイミング毎に所定範囲内でランダムに設定すると共に、第２系列の演奏データ中の発音タイミング値を和音の発音タイミング毎に所定範囲内でランダムに設定する。この場合、所定範囲を例えば±５の範囲とすることで時間的なばらつきを表現することができる。時間変化量をあまり大きくすると、時間的なばらつきというより和音に聞こえなくなるので、適当な値を選定する必要がある。４分音符の分解能を４８０とした場合、４分音符＝１２０程度のテンポのときには時間変化量は、５〜１０程度の値とするのが適当である。
【００５３】
図１２（Ｂ）のトレモロ演奏に関して演奏データを作成する場合は、単音の生演奏データを用いてもよいが、複音の生演奏データを用いた方がよい。ピアノを例にとると、単音トレモロは、同音連打であり、前後の音の発音時間が重なることは機構上あり得ない。これに対し、複音トレモロは、前後の音の発音時間が重なることが可能であり、むしろ重なる方が自然である。
【００５４】
図１５は、複音の生演奏データを用いる演奏データ作成方法を示すものである。図１５（Ａ）のステップでは、図１３（Ａ）の場合と同様の複音トレモロの記号を指定する。そして、指定に係るトレモロ記号に基づいて図１２（Ｂ）に示したようにトレモロ演奏用音符の種類と数を求める。音符数は、上下の２音符を１組として組数で求める。図１２（Ｂ）の例では、音符種類が１６分音符、音符数が４組となる。
【００５５】
次に、図１５（Ｂ）のステップでは、先に求めた音符種類に対応した複音の生演奏データを用意する。図１５（Ｂ）の例では、図１２（Ｂ）に示すように発音タイミング及び音高を異にする２つの１６分音符の反復演奏に基づく生演奏データを用意する。この例では、音高が異なる交互の音（例えばＴ１１とＴ２１、Ｔ２１とＴ１２等）の発音時間に重なりがあるのがわかる。
【００５６】
次に、図１５（Ｃ）のステップでは、先に用意した生演奏データから先に求めた音符数に対応した演奏区間の演奏データを抽出する。図１５（Ｃ）の例では、４組の音符に対応した演奏区間の演奏データ（トレモロ音Ｔ１１〜Ｔ１４，Ｔ２１〜Ｔ２４に関する演奏データ）を抽出する。この演奏データには、トレモロ音Ｔ１４の次のトレモロ音Ｔ１５の発音タイミングを指示するタイミングデータが含まれると共に、トレモロ音Ｔ２４の次のトレモロ音Ｔ２５の発音タイミングを指示するタイミングデータが含まれている。トレモロ音Ｔ２４の消音タイミングは、トレモロ音Ｔ１５の発音タイミングより後になっている。これは、発音時間の重なりによるものである。
【００５７】
次に、図５のステップＳ５に関して前述したと同様にして抽出演奏データ中のタイミング値を修正して抽出に係る演奏区間の長さを調整する。図１５（Ｃ）の例では、トレモロ音Ｔ１１〜Ｔ１４を含む演奏区間の長さを２拍に相当する長さとし、トレモロ音Ｔ２４の消音タイミングが該演奏区間外となるのを許容している。このようにすると、自然感を出すのに役立つ。この後は、必要に応じて、図５のステップＳ６，Ｓ７で述べたと同様にして音高や音量の修正処理を行なうことができる。
【００５８】
図１６は、短い複音トレモロ演奏データに基づいて長い複音トレモロ演奏データを作成する方法を示すものであり、図１５と同様の部分には同様の符号を付して詳細な説明を省略する。
【００５９】
図１６（Ａ）のステップでは、図１５（Ｂ）で述べたと同様の生演奏データをトレモロ音Ｔ１１〜Ｔ１４，Ｔ２１〜Ｔ２４に対応する演奏区間分だけ用意する。この生演奏データは、トレモロ音Ｔ１４の次のトレモロ音Ｔ１５の発音タイミングを指示するタイミングデータを含むと共に、トレモロ音Ｔ２４の次のトレモロ音Ｔ２５の発音タイミングを指示するタイミングデータを含んでいる。ＥＮは、２拍に相当する演奏区間の終了タイミングを表わす。
【００６０】
図１６（Ｂ）のステップでは、用意された生演奏データから先頭組のトレモロ音Ｔ１１，Ｔ２１〜末尾組のトレモロ音Ｔ１４，Ｔ２４の演奏データ（トレモロ音Ｔ１５，Ｔ２５の発音タイミングを指示するタイミングデータを含む）を抽出した後、先頭組のトレモロ音Ｔ１１，Ｔ２１に関する演奏データを除いて第２組のトレモロ音Ｔ１２，Ｔ２２〜末尾組のトレモロ音Ｔ１４，Ｔ２４の演奏データ（トレモロ音Ｔ１５，Ｔ２５の発音タイミングを指示するタイミングデータを含む）を抽出する。図１６において、ＲＨは、２回目の抽出データの先頭位置を示す。２回目の抽出処理で先頭組のトレモロ音Ｔ１１，Ｔ２１を除外するのは、複音トレモロ演奏で先頭組の音符が強調されることによるもので、自然さを出すのに役立つ。
【００６１】
１回目の抽出データと２回目の抽出データとは、図１７に示すようにして接続する。すなわち、トレモロ音Ｔ１４のオフイベントデータの組にトレモロ音Ｔ１２のオンイベントデータの組を接続すると共に、トレモロ音Ｔ１２のオンイベントデータの組にトレモロ音Ｔ２４のオフイベントデータの組を接続し、トレモロ音Ｔ２４のオフイベントデータの組にトレモロ音Ｔ２２のオンイベントデータの組を接続する。ここで、トレモロ音Ｔ１２のタイミングデータとしては、トレモロ音Ｔ１５の発音タイミングＴＭ１５を指示するタイミングデータを用い、トレモロ音Ｔ２２のタイミングデータとしては、トレモロ音Ｔ２５の発音タイミングＴＭ２５を指示するタイミングデータを用いる。このようにすると、末尾組の音符の演奏後の無音時間を反映させて自然な感じを出すことができる。
【００６２】
この後は、必要に応じて、上記したと同様の抽出・接続処理を行ない、図１５（Ｃ）で述べた区間長調整以降の処理を行なう。
【００６３】
図１８は、種々の複音トレモロ記号について複音トレモロ演奏用音符への変換を例示するものである。
【００６４】
図１８（Ａ）〜（Ｃ）は、いずれも単音と複音の反復によるトレモロ演奏の例である。図１８（Ｃ）の例では、反復の組合せが楽譜上に明示的に示されているが、図１８（Ａ）及び（Ｂ）の例では、楽譜に反復の組合せが明示されていない。明示されていなければ、反復の組合せは自由であるが、指の機能上通常の奏法に従うことになる。
【００６５】
図１８（Ａ）の例では、右手で弾くとすれば、２：１（複音＋単音）に分割するのが一般的であり、左手で弾くとすれば、１：２（単音＋複音）に分割するのが一般的である。すなわち、親指が単音になり、その他の指が複音になるというのが通例である。親指の方が他の指よりも力が強いので、バランスをとると自然にこのような組合せになるものと考えられる。従って、楽譜全体を見て、特定のトレモロ記号が右手又は左手のいずれで演奏されるのか判定できるときは、その判定結果に従って分割形態を決定する。
【００６６】
図１８（Ｄ）及び（Ｅ）には、同一の複音トレモロ記号に基づく２通りのトレモロ演奏用音符を示す。図１８（Ｄ）の例は、１：３（単音＋複音）に分割したものであり、図１８（Ｅ）の例は、２：２（複音＋複音）に分割したものである。右手演奏を想定すれば、一般的には図１８（Ｄ）のような演奏になる。しかし、ある種の効果を狙って図１８（Ｅ）のような演奏を行なうことがないわけではない。従って、どの分割形態にするのか予め決定すればよい。
【００６７】
楽譜全体を見ただけでは、特定のトレモロが右手又は左手のいずれで演奏するのか不明の場合もありうる。このような場合は、いずれか一方の手を使うという場面であろうから、右手で演奏を行なうものとして分割形態を決定すればよい。
【００６８】
上記のように分割形態を決定した後は、決定に係る分割形態に相当するトレモロ演奏用音符に従って生演奏を行ない、生演奏データを用意する。そして、用意した生演奏データを用いて図１５，１６で述べたようにしてゆらぎ性の演奏データを作成する。
【００６９】
図１９は、この発明の一実施形態に係る自動演奏装置を備えた電子楽器の回路構成を示すものである。この電子楽器は、パーソナルコンピュータ等の小型コンピュータによって楽音発生、自動演奏等が制御されるようになっている。
【００７０】
バス１０には、ＣＰＵ（中央処理装置）１２、ＲＯＭ（リード・オンリィ・メモリ）１４、ＲＡＭ（ランダム・アクセス・メモリ）１６、検出回路１８，２０、表示制御回路２２、タイマ２４、インターフェース２６、記憶装置２８、音源装置３０、ＤＳＰ（ディジタル・シグナル・プロセッサ）３２、サウンドシステム３４等が接続されている。
【００７１】
ＣＰＵ１２は、ＲＯＭ１４にストアされたプログラムに従って楽音発生、自動演奏等のための各種処理を実行するもので、これらの処理については図２０〜２４を参照して後述する。
【００７２】
ＲＡＭ１６は、ＣＰＵ１２による各種処理に際してフラグ、レジスタ等として利用される多数の記憶領域を含むもので、この発明の実施に関係する記憶領域としては、走行／停止フラグＲＵＮ、ゆらぎ付加フラグＵＡ，ゆらぎ強化フラグＵＢ、楽曲演奏データ記憶部ＭＡ，ＭＢ、基準演奏データ記憶部ＲＡ、抽出演奏データ記憶部ＲＢ等が設けられている。
【００７３】
検出回路１８は、鍵盤３６から鍵操作情報を検出するものである。検出回路２０は、操作子群３８から各種操作子の操作情報を検出するものである。操作子群３８は、パネル面に設けられた種々の操作子と、文字及び数字入力可能なキーボードと、ポインティングデバイスとしてのマウスとを含んでいる。この発明の実施に関係する操作子としては、ゆらぎ付加スイッチ、ゆらぎ強化スイッチ、スタート／ストップスイッチ等が設けられている。また、マウスやキーボードは、選曲操作、トレモロ記号指定操作等に用いられる。
【００７４】
表示制御回路２２は、表示器４０の表示動作を制御することにより各種の表示（例えば楽譜表示）を可能にするものである。
【００７５】
タイマ２４は、与えられるテンポデータＴＤに対応する周期でテンポクロック信号ＴＣＬとしてクロックパルスを発生するものである。テンポクロック信号ＴＣＬは、割込命令としてＣＰＵ１２に供給される。ＣＰＵ１２は、テンポクロック信号ＴＣＬとしてのクロックパルスが発生されるたびに図２４の割込処理を開始する。この割込処理により記憶部ＭＡ又はＭＢの楽曲演奏データに基づいて自動演奏が行なわれる。
【００７６】
インターフェース２６は、ＭＩＤＩ（Musical  Instrument  Digital  Interface）規格に適合したもので、ＭＩＤＩ機器等の外部機器４２との間で楽音制御情報、演奏情報等の情報通信を行なうために設けられたものである。
【００７７】
記憶装置２８は、ＨＤ（ハードディスク）、ＦＤ（フロッピーディスク）、ＣＤ（コンパクトディスク）、ＤＶＤ（ディジタル多目的ディスク）、ＭＯ（光磁気ディスク）等のうち１又は複数種類の記憶媒体を着脱可能なものである。記憶装置２８に所望の記憶媒体を装着した状態では、記憶媒体からＲＡＭ１６へデータを転送可能である。また、装着した記憶媒体がＨＤやＦＤのように書込可能なものであれば、ＲＡＭ１６のデータを記憶媒体に転送可能である。この実施形態では、多数の楽曲の演奏データを記憶した記憶媒体から所望の楽曲の演奏データを選択して読出して自動演奏を行なうことができる。
【００７８】
プログラム記憶手段としては、ＲＯＭ１４の代りに記憶装置２８の記憶媒体（前述のＨＤ,ＣＤ,ＤＶＤ,ＭＯ等）を用いることができる。この場合、記憶媒体に記憶したプログラムは、記憶装置２８からＲＡＭ１６へ転送する。そして、ＲＡＭ１６に記憶したプログラムに従ってＣＰＵ１２を動作させる。このようにすると、プログラムの追加やバージョンアップ等を容易に行なうことができる。記憶装置２８を通信ネットワークに接続することにより、編集対象とする楽曲演奏データや基準演奏データの取得が可能になると共に、プログラムの更新も容易になる。
【００７９】
音源装置３０は、多数（例えば６４個）の楽音発生チャンネルを有するものである。鍵盤３６での押鍵操作及び／又は記憶部ＭＡ又はＭＢからのデータ読出しに基づいて発音要求があると、ＣＰＵ１２は、各発音要求に対応する発音命令信号とノートナンバ（音高情報）とベロシティ値（音量情報）とを空き状態のいずれかの楽音発生チャンネルに割当てる。このため、割当てに係る楽音発生チャンネルからは、ノートナンバに対応した音高を有する楽音信号がベロシティ値に対応した音量で発生される。また、鍵盤３６での離鍵操作及び／又は記憶部ＭＡ又はＭＢからのデータ読出しに基づいて消音要求があると、ＣＰＵ１２は、各消音要求に係るノートナンバに対応した楽音信号を発生中の楽音発生チャンネルに消音命令信号を供給して発生中の楽音信号の減衰を開始させる。
【００８０】
ＤＳＰ３２は、音源装置３０からのディジタル形式の楽音信号に対して音色、音量、音響等の各種効果を付与可能なもので、付与すべき効果は、操作子群３８中のパネル操作子の操作に基づいてＣＰＵ１２により指示される。
【００８１】
サウンドシステム３４は、ディジタル／アナログ変換器、出力アンプ、スピーカ等を含むもので、ＤＳＰ３２からの楽音信号を音響に変換する。
【００８２】
図２０，２１は、メインルーチンの処理の流れを示すもので、このルーチンは、電源オン等に応じてスタートする。ステップ５０では、初期設定処理を行ない、各種のフラグ、レジスタ等を初期設定する。
【００８３】
次に、ステップ５２では、選曲操作ありか判定する。表示器４０の画面には、選択可能な楽曲の曲名等が表示される。ユーザは、表示された楽曲のうち所望の楽曲をマウス操作等により選択することができる。ステップ５２の判定結果が肯定的（Ｙ）であればステップ５４に移る。
【００８４】
ステップ５４では、記憶装置２８（又はＲＯＭ１４）から選択に係る楽曲の演奏データを読出して記憶部ＭＡ，ＭＢに格納する。そして、ステップ５６では、記憶部ＭＢの演奏データに基づいて表示器４０の画面に楽譜を表示する。なお、記憶装置２８（又はＲＯＭ１４）の各楽曲演奏データは、楽譜通りのもので、ゆらぎ性を有していないものとする。
【００８５】
ステップ５２の判定結果が否定的（Ｎ）であったとき又はステップ５６の処理が終ったときは、ステップ５８でゆらぎ付加スイッチ（ＳＷ）の操作ありか判定する。この判定の結果が肯定的（Ｙ）であればステップ６０でフラグＵＡの内容を反転（０ならば１に、１ならば０に）する。
【００８６】
ステップ５８の判定結果が否定的（Ｎ）であったとき又はステップ６０の処理が終ったときは、ステップ６２でゆらぎ強化スイッチ（ＳＷ）の操作ありか判定する。この判定の結果が肯定的（Ｙ）であればステップ６４でフラグＵＢの内容を反転する。
【００８７】
ステップ６２の判定結果が否定的（Ｎ）であったとき又はステップ６４の処理が終ったときは、ステップ６６でスタート／ストップスイッチ（ＳＷ）の操作ありか判定する。この判定の結果が肯定的（Ｙ）であればステップ６８でフラグＲＵＮの内容を反転する。
【００８８】
ステップ６６の判定結果が否定的（Ｎ）であったとき又はステップ６８の処理が終ったときは、ステップ７０でフラグＲＵＮの値が０から１に変化したか判定する。この判定の結果が肯定的（Ｙ）であれば、ステップ７２で記憶部ＭＡ，ＭＢ内の先頭位置に読出位置をセットする。これは、演奏データを読出すための準備処理である。
【００８９】
ステップ７０の判定結果が否定的（Ｎ）であったとき又はステップ７２の処理が終ったときは、ステップ７４でＲＵＮの値が１から０に変化したか判定する。この判定の結果が肯定的（Ｙ）であればステップ７６で自動演奏音の消音処理を行なう。すなわち、音源装置３０において自動演奏音信号として発生中のすべての楽音信号を減衰開始させる。
【００９０】
ステップ７４の判定結果が否定的（Ｎ）であったとき又はステップ７６の処理が終ったときは、ステップ７８でトレモロ記号の指定操作ありか判定する。ユーザは、表示器４０の画面に表示された楽譜においてゆらぎ付加を望むトレモロ記号をマウス操作等により指定することができる。ステップ７８の判定結果が肯定的（Ｙ）であればステップ８０に移る。
【００９１】
ステップ８０では、フラグＵＡが１か（ゆらぎ付加モードか）判定する。この判定の結果が肯定的（Ｙ）であればステップ８２でゆらぎ付加処理のサブルーチンを実行する。このサブルーチンについては、図２２を参照して後述する。
【００９２】
ステップ７８の判定結果が否定的（Ｎ）であったとき、ステップ８０の判定結果が否定的（Ｎ）であったとき又はステップ８２の処理が経ったときは、ステップ８４でフラグＵＡ，ＵＢが共に１か判定する。この判定結果が肯定的（Ｙ）であればステップ８６で記憶部ＭＢの演奏データを所定範囲内でランダムに修正する。例えば、演奏データ中の発音タイミング値及びベロシティ値をそれぞれ所定範囲内でランダムに修正する。この結果、ステップ８２のゆらぎ付加処理でゆらぎ性が付加された演奏データは、ゆらぎ性が一層強化される。
【００９３】
ステップ８４の判定結果が否定的（Ｙ）であったとき又はステップ８６の処理が終ったときは、ステップ８８でその他の処理を行なう。その他の処理としては、鍵盤３６での鍵操作に基づく楽音発生処理、パネル操作子の操作に基づく各種楽音パラメータ（例えば音色、効果、自動演奏テンポ等）の設定処理等がある。
【００９４】
ステップ８８の後は、ステップ９０で電源オフ等の終了指示ありか判定する。この判定の結果が否定的（Ｎ）であればステップ５２に戻り、ステップ５２以降の処理を上記したと同様に繰返す。ステップ９０の判定結果が肯定的（Ｙ）になると、処理エンドとする。
【００９５】
図２２は、ゆらぎ付加処理の流れを示すものである。ステップ１００では、図２１のステップ７８での指定に係るトレモロ記号に基づいて図５のステップＳ２で述べたと同様にしてトレモロ演奏用音符の種類と数とを求める。
【００９６】
次に、ステップ１０２では、先に求めた音符種類に対応する生演奏データをデータベースから読出して記憶部ＲＡに基準演奏データとして格納する。データベースとしては、記憶装置２８（又はＲＯＭ１４）が用いられ、これには予め音符種類毎に生演奏データが記憶されている。図１１，１２に関して前述したように１つのトレモロ記号に複数通りの演奏形態がある場合には、表示器４０の画面に複数通りの演奏形態（トレモロ演奏用音符）を表示し、ユーザによるトレモロ記号の指定時に、ユーザに所望の演奏形態を指定させる。そして、ステップ１０２では、ユーザの指定した演奏形態に対応する生演奏データを読出して記憶部ＲＡに格納する。このようにすると、作成される演奏データにユーザの好みを一層反映させることができる。
【００９７】
次に、ステップ１０４では、記憶部ＲＡの演奏データから、先に求めた音符数に対応する演奏区間の演奏データを抽出して記憶部ＲＢに格納する。このときの抽出処理は、図５のステップＳ４で述べたと同様にして行なうことができる。
【００９８】
次に、ステップ１０６では、図５のステップＳ５〜Ｓ７で述べたと同様にしてトレモロ演奏用音符に従って記憶部ＲＢの演奏データ中の演奏タイミング値、ノートナンバ、ベロシティ値を修正する。この結果、記憶部ＲＢでは、生演奏に基づくゆらぎ性の演奏データの作成が完了したことになる。
【００９９】
この後、ステップ１０８では、記憶部ＲＢの演奏データに従って記憶部ＭＢの演奏データを修正する。演奏データの修正は、一例として図２３に示すようにして行なう。
【０１００】
すなわち、記憶部ＭＢには、選択に係る楽曲の演奏データが格納されており、指定に係るトレモロ記号に対応する演奏データは、トレモロ音ＴＮ１のオンイベントデータの組からトレモロ音ＴＮＭのオフイベントデータの組までのデータとする。一方、記憶部ＲＢには、指定に係るトレモロ記号に対応する演奏データとして、トレモロ音Ｔｎ１のオンイベントデータの組からトレモロ音Ｔｎｍのオフイベントデータの組までのデータと、トレモロ音Ｔｎｍの次のトレモロ音の発音タイミングを指示するタイミングデータＦＴＭと、終端マークを表わすデータＦＭＤとが格納されている。トレモロ音ＴＮ１のタイミングデータは、直前のトレモロ音の消音タイミングから拍頭までの時間を表わし、トレモロ音Ｔｎ１のタイミングデータは、拍頭からの時間を表わすものとすると、ＴＮ１のタイミング値にＴｎ１のタイミング値を加算したものを新たなＴＮ１のタイミング値とする。また、ＴＮ１のノートオンイベントデータからＴＮＭのノートオフイベントデータまでのデータをＴｎ１のノートオンイベントデータからＴｎｍのノートオフイベントデータまでのデータに従って書換える。さらに、ＴＮＭの次のトレモロ音ＴＮＮのタイミングデータをタイミングデータＦＴＭに従って書換える。これは、区間最後の無音時間を記憶部ＭＢの演奏データに反映させるためである。上記のように演奏データの修正が終ったときは、図２０，２１のルーチンにリターンする。
【０１０１】
図２４は、自動演奏のための割込処理を示すもので、ステップ１００では、フラグＲＵＮが１か判定する。この判定の結果が否定的（Ｎ）であれば、以下に述べるような処理が不要であるので、図２０，２１のルーチンにリターンする。
【０１０２】
ステップ１００の判定結果が肯定的（Ｙ）であったときは、ステップ１１２に移り、フラグＵＡが１か（ゆらぎ付加モードか）判定する。この判定の結果が否定的（Ｎ）であればステップ１１４で再生タイミングか判定する。この判定は、記憶部ＭＡにおける読出位置のタイミングデータが示すタイミング値と、テンポクロック信号ＴＣＬを計数するテンポカウンタ（ＲＡＭ１６内にある）のカウント値とが一致したか調べることにより行なうことができる。ステップ１１４の判定結果が否定的（Ｎ）であったときは、図２０，２１のルーチンにリターンする。
【０１０３】
ステップ１１４の判定結果が肯定的（Ｙ）であったときは、ステップ１１６で記憶部ＭＡから再生タイミングであるとされたタイミングデータと組をなすイベントデータを読出す。このとき読出されるイベントデータは、ノートオンイベントデータ及びベロシティデータ、ノートオフイベントデータ又は他のイベント（例えば音色や音量の変更イベント）データである。
【０１０４】
次に、ステップ１１８では、読出されたのがノートイベントデータか判定する。この判定の結果が肯定的（Ｙ）であればステップ１２０でノートオンイベントデータか判定する。この判定結果が肯定的（Ｙ）であればステップ１２２で発音処理を行なう。すなわち、読出しに係るノートオンイベントデータ中のノートナンバと、ベロシティデータ中のベロシティ値と、発音命令信号とを空き状態の楽音発生チャンネルの１つに割当てて楽音信号を発生させる。そして、図２０，２１のルーチンにリターンする。
【０１０５】
ステップ１２０の判定結果が否定的（Ｎ）であったときは、ノートオフイベントであったことになり、ステップ１２４で消音処理を行なう。すなわち、読出しに係るノートオフイベントデータ中のノートナンバと同じノートナンバに従って楽音信号を発生中である楽音発生チャンネルに対して消音命令信号を供給して該楽音信号を減衰開始させる。そして、図２０，２１のルーチンにリターンする。
【０１０６】
ステップ１１８の判定結果が否定的（Ｎ）であったときは、ステップ１２６で読出データに応じた処理を行なう。例えば、読出データがトータルボリュームに相当する音量の変更を指示するデータであれば、該データに従って音量を変更する。なお、上記したようにイベントデータを読出したときは、読出位置が次のイベントデータ中のタイミングデータの位置に変更される。
【０１０７】
上記したステップ１１４〜１２６の処理によれば、記憶部ＭＡの演奏データに基づいてゆらぎ性のない自動演奏を行なうことができる。
【０１０８】
ステップ１１２の判定結果が肯定的（Ｙ）であった（ゆらぎ付加モードであった）ときは、ステップ１２８で再生タイミングか判定する。この判定は、記憶部ＭＢにおける読出位置のタイミングデータが示すタイミング値と、前述のテンポカウンタのカウント値とが一致したか調べることにより行なうことができる。ステップ１２８の判定結果が否定的（Ｎ）であったときは、図２０，２１のルーチンにリターンする。
【０１０９】
ステップ１２８の判定結果が肯定的（Ｙ）であったときは、ステップ１３０で記憶部ＭＢから再生タイミングであるとされたタイミングデータと組をなすイベントデータを読出す。このとき読出されるイベントデータは、ステップ１１６で述べたと同種類のものである。
【０１１０】
次に、ステップ１３２では、読出されたのがノートイベントデータか判定する。この判定の結果が肯定的（Ｙ）であればステップ１２０でノートオンイベントデータか判定する。この判定の結果が肯定的（Ｙ）であれば、ステップ１２２で前述したと同様に発音処理を行ない、楽音信号を発生させる。
【０１１１】
ステップ１２０の判定結果が否定的（Ｎ）であったときは、ステップ１２４で前述したと同様に消音処理を行ない、楽音信号の減衰を開始させる。
【０１１２】
ステップ１３２の判定結果が否定的（Ｎ）であったときは、ステップ１２６に移り、前述したと同様に読出データに応じた処理を行なう。
【０１１３】
上記したステップ１２８〜１３２，１２０〜１２６の処理によれば、記憶部ＭＢの演奏データ（すなわち、図２３で述べたように生演奏に基づいて作成されたゆらぎ性の演奏データをトレモロ部に有する演奏データ）に基づいてトレモロ部のゆらぎ性を強調した自動演奏を行なうことができる。また、ゆらぎ強化モードにすると、トレモロ部のゆらぎ性が一層強化されると共に、トレモロ部以外の部分にもゆらぎ性が付与される。
【０１１４】
この発明は、上記した実施形態に限定されるものではなく、種々の改変形態で実施可能なものである。例えば、次のような変更が可能である。
【０１１５】
（１）記憶部ＭＢの演奏データは、記憶装置２８の記憶媒体に転送し、他の機会に本電子楽器又は他の電子楽器で該記憶媒体の演奏データに基づいて自動演奏を行なうようにしてもよい。
【０１１６】
（２）音量設定のための演算処理としては、加減算処理に限らず、乗除算処
理を用いるようにしてもよい。但し、１個所の処理において、加減算処理と乗除算処理とを併用しない方がよい。
【０１１７】
（３）演奏データとしては、トレモロの演奏データに限らず、アルペジオ、トリル、グリッサンド等の音符群の演奏データを作成するようにしてもよい。
【０１１８】
（４）演奏データのフォーマットは、イベントの発生時刻を１つ前のイベントからの相対時間で表わす「イベント＋相対時間」方式に限らず、イベントの発生時刻を曲や小節内の絶対時間で表わす「イベント＋絶対時間」方式、音符の音高と音符長及び休符と休符長で曲の内容を表す「音高（休符）＋符長」方式、イベント発生の最小時間単位毎に記憶領域を確保し、イベントの発生時刻に対応する記憶領域にイベントを記憶する方式等の任意の方式を用いることができる。
【０１１９】
【発明の効果】
以上のように、この発明によれば、時系列的な音符群中の音符種類に対応したゆらぎ性の基準演奏データを用意すると共に、音符群中の音符数に対応する演奏区間の演奏データを基準演奏データから抽出し、抽出に係る演奏区間の演奏データを音符群中の少なくとも１つの音符に従って修正するようにしたので、所望の音符群毎にゆらぎ性の演奏データを簡単に作成することができると共に同一種類の音符については基準演奏データの変更が不要であり、処理が簡単となる効果が得られる。
【０１２０】
また、抽出された演奏区間の演奏データ中の演奏タイミング情報や音高情報を音符群の区間長や音高に従ってそれぞれ修正するようにしたので、音符群中の音符数や音高が変更されても、基準演奏データの変更が不要であり、処理が簡単となる効果が得られる。
【０１２１】
その上、所望の音符群を指定すると共に指定に係る音符群に対応する演奏データをこの発明の方法で作成し、作成に係る演奏データに従って自動演奏用の演奏データの一部を修正するようにしたので、自動演奏される楽曲の一部に簡単にゆらぎ性を付与したり、ゆらぎ性を付与する音符群を簡単に変更したりすることができ、生演奏に近似した自動演奏を手軽に楽しめる効果が得られる。
【図面の簡単な説明】
【図１】  トレモロ記号のトレモロ演奏用音符への変換の一例を示す図である。
【図２】  トレモロの生演奏の一例を示す図である。
【図３】  図２の生演奏に基づいて作成された演奏データの一例を示す図である。
【図４】  この発明に係るトレモロ演奏データ作成方法の一例を示す図である。
【図５】  図４の方法を説明するためのフローチャートである。
【図６】  図４，５の方法で作成された演奏データの一例を示す図である。
【図７】  短い生演奏データに基づいて長い演奏データを作成する方法の一例を示す図である。
【図８】  図７の方法におけるデータ接続状況を示す図である。
【図９】  短い生演奏データに基づいて長い演奏データを作成する方法の他の例を示す図である。
【図１０】  図９の方法におけるデータ接続状況を示す図である。
【図１１】  複音トレモロ記号のトレモロ演奏用音符への変換の一例を示す図である。
【図１２】  複音トレモロ記号のトレモロ演奏用音符への変換の他の例を示す図である。
【図１３】  この発明に係る複音トレモロ演奏データ作成方法の一例を示す図である。
【図１４】  図１３の方法における和音構成音の音量設定を説明するための図である。
【図１５】  この発明に係る複音トレモロ演奏データ作成方法の他の例を示す図である。
【図１６】  短い複音トレモロ生演奏データに基づいて長い複音トレモロ演奏データを作成する方法の一例を示す図である。
【図１７】  図１６の方法におけるデータ接続状況を示す図である。
【図１８】  種々の複音トレモロ記号について複音トレモロ演奏用音符への変換を例示する図である。
【図１９】  この発明の一実施形態に係る自動演奏装置を備えた電子楽器の回路構成を示すブロック図である。
【図２０】  メインルーチンの一部を示すフローチャートである。
【図２１】  メインルーチンの残部を示すフローチャートである。
【図２２】  ゆらぎ付加のサブルーチンを示すフローチャートである。
【図２３】  演奏データ修正の一例を示す図である。
【図２４】  割込処理を示すフローチャートである。
【符号の説明】
１０：バス、１２：ＣＰＵ、１４：ＲＯＭ、１６：ＲＡＭ、１８，２０：検出回路、２２：表示制御回路、２４：タイマ、２６：インターフェース、２８：記憶装置、３０：音源装置、３２：ＤＳＰ、３４：サウンドシステム、３６：鍵盤、３８：操作子群、４０：表示器、４２：外部機器、ＲＵＮ：走行／停止フラグ、ＵＡ：ゆらぎ付加フラグ、ＵＢ：ゆらぎ強化フラグ、ＭＡ，ＭＢ：楽曲演奏データ記憶部、ＲＡ：基準演奏データ記憶部、ＲＢ：抽出演奏データ記憶部。
【図１】
0003837981.tif 000002
【図２】
0003837981.tif 000003
【図３】
0003837981.tif 000004
【図４】
0003837981.tif 000005
【図５】
0003837981.tif 000006
【図６】
0003837981.tif 000007
【図７】
0003837981.tif 000008
【図８】
0003837981.tif 000009
【図９】
0003837981.tif 000010
【図１０】
0003837981.tif 000011
【図１１】
0003837981.tif 000012
【図１２】
0003837981.tif 000013
【図１３】
0003837981.tif 000014
【図１４】
0003837981.tif 000015
【図１５】
0003837981.tif 000016
【図１６】
0003837981.tif 000017
【図１７】
0003837981.tif 000018
【図１８】
0003837981.tif 000019
【図１９】
0003837981.tif 000020
【図２０】
0003837981.tif 000021
【図２１】
0003837981.tif 000022
【図２２】
0003837981.tif 000023
【図２３】
0003837981.tif 000024
【図２４】
0003837981.tif 000025