(57)【特許請求の範囲】
【請求項１】
曲を構成する各音及び当該各音の発音時刻からなる演奏データを記憶する演奏データ記憶手段と、
前記演奏データ記憶手段に記憶される演奏データに含まれる各音の発音時刻に基づき、当該演奏データのビートパターンを分析する分析手段と、
前記分析手段の分析結果に応じて連符判定のためのしきい値を設定するしきい値設定手段と、
前記演奏データ記憶手段に記憶される演奏データ中の処理対象となる音列の各発音時刻と連符パターンとの時刻差を算出する時刻差算出手段と、
前記しきい値設定手段により設定されるしきい値と前記時刻差算出手段により算出される時刻差とに基づいて前記連符パターンを採用するか否かを判別する判別手段と
前記判別手段が連符パターンを採用すると判別された場合、当該連符パターンにしたがって、前記処理対象となる音列の各発音時刻を補正する発音時刻補正手段と
を具備することを特徴とする演奏情報補正装置。
【請求項２】
曲を構成する各音及び当該各音の発音時刻からなる演奏データを記憶する演奏データ記憶手段を有する演奏情報補正装置として用いられるコンピュータに、
前記演奏データ記憶手段に記憶される演奏データに含まれる各音の発音時刻に基づき、当該演奏データのビートパターンを分析する分析ステップと、
前記分析ステップの分析結果に応じて連符判定のためのしきい値を設定するしきい値設定ステップと、
前記演奏データ記憶手段に記憶される演奏データ中の処理対象となる音列の各発音時刻と連符パターンとの時刻差を算出する時刻差算出ステップと、
前記設定されたしきい値と前記算出された時刻差とに基づいて前記連符パターンを採用するか否かを判別する判別ステップと、
前記連符パターンを採用すると判別された場合、当該連符パターンにしたがって、前記処理対象となる音列の各発音時刻を補正する発音時刻補正ステップと
を実行させることを特徴とする演奏情報補正プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、実用に適した見易い楽譜となるように演奏情報を補正する演奏情報補正装置および演奏情報補正プログラムに関する。
【背景技術】
【０００２】
人間の行う演奏は楽譜を機械的に演奏したものと異なり、演奏者の意図による楽譜からのズレ、あるいは意図しないゆらぎなどを含んでいる。そのため演奏情報から楽譜を作成しようとした場合、単純にクオンタイズを行ったのでは上記のズレやゆらぎを反映した実用に適さない楽譜が生成されることも起こり得る。そうした弊害を回避する為、例えば特許文献１には、演奏情報に含まれる各時刻情報を、所定単位の整数倍からなる正規化時刻情報に書き換えるクオンタイズを行う際に、正規化時刻情報と時刻情報との誤差を加味したクオンタイズ、すなわち前イベントにおける正規化時刻情報と時刻情報との誤差を、次イベントのクオンタイズに反映させることで演奏特徴や演奏表現を考慮しつつ演奏情報を正規化する演奏情報編集装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平９−３４４５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、上記特許文献１に開示の装置のように、前イベントにおける正規化時刻情報と時刻情報との誤差を、次イベントのクオンタイズに反映させるだけでは演奏者の意図を汲んだ補正が十分に出来ず、この為、実用に適した見易い楽譜となるように演奏情報を補正することができないという問題がある。
そこで本発明は、このような事情に鑑みてなされたもので、実用に適した見易い楽譜となるように演奏情報を補正することができる演奏情報補正装置および演奏情報補正プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００５】
上記目的を達成するため、請求項１に記載の発明では、曲を構成する各音及び当該各音の発音時刻からなる演奏データを記憶する演奏データ記憶手段と、前記演奏データ記憶手段に記憶される演奏データに含まれる各音の発音時刻に基づき、当該演奏データのビートパターンを分析する分析手段と、前記分析手段の分析結果に応じて連符判定のためのしきい値を設定するしきい値設定手段と、前記演奏データ記憶手段に記憶される演奏データ中の処理対象となる音列の各発音時刻と連符パターンとの時刻差を算出する時刻差算出手段と、前記しきい値設定手段により設定されるしきい値と前記時刻差算出手段により算出される時刻差とに基づいて前記連符パターンを採用するか否かを判別する判別手段と前記判別手段が連符パターンを採用すると判別された場合、当該連符パターンにしたがって、前記処理対象となる音列の各発音時刻を補正する発音時刻補正手段とを具備することを特徴とする。
【０００９】
請求項２に記載の発明では、曲を構成する各音及び当該各音の発音時刻からなる演奏データを記憶する演奏データ記憶手段を有する演奏情報補正装置として用いられるコンピュータに、前記演奏データ記憶手段に記憶される演奏データに含まれる各音の発音時刻に基づき、当該演奏データのビートパターンを分析する分析ステップと、前記分析ステップの分析結果に応じて連符判定のためのしきい値を設定するしきい値設定ステップと、前記演奏データ記憶手段に記憶される演奏データ中の処理対象となる音列の各発音時刻と連符パターンとの時刻差を算出する時刻差算出ステップと、前記設定されたしきい値と前記算出された時刻差とに基づいて前記連符パターンを採用するか否かを判別する判別ステップと、前記連符パターンを採用すると判別された場合、当該連符パターンにしたがって、前記処理対象となる音列の各発音時刻を補正する発音時刻補正ステップとを実行させることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、曲を構成する各音を表す演奏データの発音時刻を検出し、検出した発音時刻を補正するか否かを判別する。そして、発音時刻を補正すると判別した場合には、その検出した発音時刻を補正する。例えば、意図的に発音のタイミングをずらす「タメ」や「前ノリ」と呼ばれる演奏表現に基づき生成された演奏データを検出し、「タメ」に相当する演奏データについてはその発音時刻を拍の前位置に修正し、「前ノリ」に相当する演奏データについてはその発音時刻を拍の後位置に修正するので、実用に適した見易い楽譜として表示されるように演奏情報を補正することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明による第１実施形態の構成を示すブロック図である。
【図２】メインルーチンの動作を示すフローチャートである。
【図３】楽譜情報生成処理の動作を示すフローチャートである。
【図４】演奏情報編集処理の動作を示すフローチャートである。
【図５】演奏情報編集処理の動作を説明するための楽譜である。
【図６】第２実施形態による演奏情報編集処理の動作を示すフローチャートである。
【図７】第２実施形態による演奏情報編集処理の動作を説明するための図である。
【図８】第２実施形態による演奏情報編集処理の動作を説明するための楽譜である。
【図９】第３実施形態による演奏情報編集処理の動作を示すフローチャートである。
【図１０】第３実施形態によるビート分析処理の動作を示すフローチャートである。
【図１１】第３実施形態による連符判定処理の動作を示すフローチャートである。
【図１２】第３実施形態による演奏情報編集処理の動作を説明するための図である。
【図１３】第３実施形態による演奏情報編集処理の動作を説明するための楽譜である。
【図１４】第４実施形態による演奏情報編集処理の動作を示すフローチャートである。
【図１５】第４実施形態による演奏情報編集処理の動作を説明するための図である。
【図１６】第４実施形態による演奏情報編集処理の動作を説明するための楽譜である。
【発明を実施するための形態】
【００１５】
以下、図面を参照して本発明の実施の形態について説明する。
Ａ．第１実施形態
（１）構成
図１は、本発明の実施の第１実施形態による演奏情報補正装置の構成を示すブロック図である。この図において、操作部１０は、電源スイッチの他、キー入力用のキーボードやマウス等の入力操作子を備え、入力操作に対応したイベントを発生する。このイベントはＣＰＵ１１に取り込まれる。ＣＰＵ１１は、ＲＯＭ１２に記憶される各種制御プログラムを実行し、操作部１０が発生するイベントに対応して装置各部を制御するものであり、その特徴的な処理動作については追って詳述する。
【００１６】
ＲＯＭ１２は、プログラムエリアおよびデータエリアを備える。ＲＯＭ１２のプログラムエリアには、ＣＰＵ１１にロードされる各種制御プログラムが記憶される。各種制御プログラムとは、後述するメインルーチン、楽譜情報生成処理および演奏情報編集処理を含む。ＲＯＭ１２のデータエリアには、音符や休符、譜表などを表示するための楽譜表示データが記憶される。
【００１７】
ＲＡＭ１３は、ワークエリアおよびデータエリアを備える。ＲＡＭ１３のワークエリアには、ＣＰＵ１１の処理に用いられる各種レジスタ／フラグデータが一時記憶される。ＲＡＭ１３のデータエリアは、演奏情報エリアおよび楽譜情報エリアから構成される。ＲＡＭ１３の演奏情報エリアには複数曲分の演奏情報が格納される。図示していないが、演奏情報は右手パートおよび左手パートにそれぞれ対応する右手トラックおよび左手トラックから構成される。１つのトラックは、対応する演奏パートを形成する各音を表す演奏データ［０］〜［Ｎ］を有し、その終端には曲の終わりを表すＥＮＤデータを備える。
【００１８】
演奏データは、演奏開始時点からの経過時間（絶対時間）で表される発音時刻ＩＴｉｍｅ、音長ｌＧａｔｅ、音高Ｐｉｔｃｈおよび次の演奏データを指定するポインタｐＮｅｘｔ等から構成される。ＲＡＭ１３の楽譜情報エリアには、後述する楽譜情報生成処理によって上述の演奏データ［０］〜［Ｎ］から派生される音符データ［０］〜［Ｎ］が格納される。
【００１９】
音源１４は、周知の波形メモリ読み出し方式で構成され、ＲＡＭ１３の演奏データエリアからＣＰＵ１１が読み出す演奏データを、指定テンポに同期して再生して楽音信号を出力する。サウンドシステム１５は、音源１４から出力される楽音信号をＤ／Ａ変換した後に増幅してスピーカＳＰから発音する。表示部１６は、ＣＰＵ１１から供給される表示制御信号に応じて楽譜表示したり、装置の動作状態を表示する。インタフェース（Ｉ／Ｆ）部１７は、ＣＰＵ１１の制御の下に外部ＭＩＤＩ機器とＭＩＤＩ形式の演奏データを授受するＭＩＤＩインタフェースを備える。なお、図１には図示していないが、インタフェース（Ｉ／Ｆ）部１７のＭＩＤＩインタフェースに、外部ＭＩＤＩ機器としてキーボード装置が接続される場合、当該キーボード装置の押離鍵操作に対応して生じる演奏データは、ＭＩＤＩインタフェースを介してＲＡＭ１３の演奏データエリアに格納されるようになっている。
【００２０】
（２）動作
次に、図２〜図５を参照して上記構成による第１実施形態の動作について説明する。以下では、先ず最初に全体動作としてメインルーチンの動作を説明した後、楽譜情報生成処理および演奏情報編集処理の各動作について説明する。
【００２１】
ａ．メインルーチンの動作
装置電源の投入に応じて、ＣＰＵ１１は図２に図示するメインルーチンを実行してステップＳＡ１に処理を進め、ＲＡＭ１３のワークエリアに設けられる各種レジスタ／フラグ類をリセットしたり、初期値セットする初期化を実行する。この後、ステップＳＡ２に進み、例えば処理動作（「曲選択」、「設定」および「再生」）を選択的に実行指示させるＧＵＩ画面を表示部１６に画面表示して、ユーザによるキー操作入力待ち状態に設定する。そして、ステップＳＡ３〜ＳＡ５では、キー操作入力待ち状態下で「曲選択」、「設定」および「再生」のいずれかの実行を指示するキー操作入力の有無を判断する。
【００２２】
「曲選択」を指示するキー操作入力が行われると、ステップＳＡ３の判断結果が「ＹＥＳ」になり、ステップＳＡ６に進み、ＲＡＭ１３の演奏データエリアに記憶される複数曲の演奏情報のいずれかを選択する曲選択を実行する。次いで、ステップＳＡ７では、ＲＡＭ１３の演奏データエリアから選択した曲の演奏情報から演奏データを読み込み、ステップＳＡ８を介して楽譜情報生成処理（後述する）を実行した後、ステップＳＡ９を介して楽譜描画処理を実行する。そして、上述のステップＳＡ２に処理を戻してキー操作入力待ち状態に復帰する。
【００２３】
「設定」を指示するキー操作入力が行われると、ステップＳＡ４の判断結果が「ＹＥＳ」になり、ステップＳＡ１０を介して設定処理を実行する。設定処理では、曲選択された演奏データを楽譜として表示するための小節情報を設定する。小節情報とは、例えば音部記号や拍子記号、調記号を指定する他、曲選択された演奏データの各小節位置および各段位置を指定する情報である。こうした設定処理を実行した後は、上述のステップＳＡ２に処理を戻し、キー操作入力待ち状態に復帰する。
【００２４】
「再生」を指示するキー操作入力が行われると、ステップＳＡ５の判断結果が「ＹＥＳ」になり、ステップＳＡ１１に進む。ステップＳＡ１１では、上記ステップＳＡ６にて選択された演奏データを再生する発音処理を実行する。続いて、ステップＳＡ１２では、演奏データ再生に応じて弾くべき鍵の位置をガイドする再生時押鍵マーク処理（後述する）を実行する。次いで、ステップＳＡ１３では、演奏データ再生が曲終端に達したか、あるいは再生終了指示の有無を判断する。演奏データ再生が曲終端に達するまで、あるいは再生終了の指示があるまでは判断結果は「ＮＯ」になり、ステップＳＡ１１〜ＳＡ１３を繰り返す。そして、演奏データ再生が曲終端に達するか、あるいは再生終了が指示されると、ステップＳＡ１３の判断結果が「ＹＥＳ」になり、上述のステップＳＡ２に処理を戻し、キー操作入力待ちの状態に復帰する。
【００２５】
ｂ．楽譜情報生成処理の動作
次に、図３を参照して楽譜情報生成処理の動作を説明する。上述したメインルーチンのステップＳＡ８（図２参照）を介して本処理が実行されると、ＣＰＵ１１はステップＳＢ１に処理を進め、演奏情報編集処理を実行する。演奏情報編集処理では、意図的に発音のタイミングをずらす「タメ」や「前ノリ」と呼ばれる演奏表現に基づき生成された演奏データを、選択された演奏情報の内から検出して実用に適した見易い楽譜として表示されるように発音時刻を補正する。次いで、ステップＳＢ２では、トラック変数を初期化する。これにより、先ず右手トラックが指定される。
【００２６】
続いて、ステップＳＢ３〜ＳＢ８では、右手トラックの演奏データ［０］〜［Ｎ］について「個別処理（ステップＳＢ４）」、「和音処理（ステップＳＢ５）」、「連桁処理（ステップＳＢ６）」を施した後、続いて左手トラックの演奏データ［０］〜［Ｎ］について「個別処理（ステップＳＢ４）」、「和音処理（ステップＳＢ５）」、「連桁処理（ステップＳＢ６）」を施す。
【００２７】
ステップＳＢ４の個別処理では、演奏データ［０］〜［Ｎ］を指定するノートポインタを歩進させながら、当該ノートポインタで指定される演奏データ中の発音開始時刻ＩＴｉｍｅに音長ｌＧａｔｅを加算した時刻と、次の演奏データ中の発音開始時刻ＩＴｉｍｅとの時間差から休符が必要か否かを判断し、休符が必要な場合には、上記時間差に対応する休符を決定すると共に、その休符を表示する小節内での表示位置を設定する。休符が不必要な場合には、ノートポインタで指定される演奏データ中の音長ｌＧａｔｅに対応するノートタイプ（音符種類）を決定すると共に、そのノートタイプ（音符種類）を表示する小節内での表示位置を決定する。
【００２８】
ステップＳＢ５の和音処理では、演奏データ中から発音開始時刻ＩＴｉｍｅが同一のものを和音の音符データとして抽出する。ステップＳＢ６の連桁処理では、演奏データ中から８分音符長以下で連続する音符を探し出し、該当する音符を連桁描画するためのフラグを音符データに付加する。こうして、両トラックの演奏データ［０］〜［Ｎ］から楽譜表示用の音符データを派生し終えると、ステップＳＢ３の判断結果が「ＹＥＳ」になり、本処理を終える。
【００２９】
ｃ．演奏情報編集処理の動作
次に、図４を参照して演奏情報編集処理の動作を説明する。上述した楽譜情報生成処理のステップＳＢ１（図３参照）を介して本処理が実行されると、ＣＰＵ１１は図４に図示する演奏情報編集処理を実行する。演奏情報編集処理では、曲選択された演奏情報を構成する演奏データについて小節単位のループ（ステップＳＣ１）および小節中の音単位のループ（ステップＳＣ２）を開始し、曲先頭の小節から順番に小節中の各音毎の拍位置に対する余りを求める（ステップＳＣ３）。そして、ステップＳＣ４では、現在指定されている対象音が「タメ」に相当するか否かを判断する。
【００３０】
すなわち、ステップＳＣ４では、対象音の発音時刻が拍の前位置から所定値以下であって、前の音との重なりが無く、且つ前の音の発音時刻から１拍以上離れているかどうかを判断する。対象音がこうした判定条件に合致していれば、判断結果は「ＹＥＳ」になり、ステップＳＣ５に進み、「タメ判定」の対象となる音の発音時刻を拍の前位置に修正した後、ステップＳＣ８に進む。
【００３１】
一方、対象音が判定条件に合致していなければ、上記ステップＳＣ４の判断結果は「ＮＯ」になり、ステップＳＣ６に進み、現在指定されている対象音が「前ノリ」に相当するか否かを判断する。すなわち、ステップＳＣ６では、対象音の発音時刻が拍の後位置から所定値以下であって、前の音の消音時刻から一定値以上離れているかどうかを判断する。この判定条件に合致すると、判断結果が「ＹＥＳ」になり、ステップＳＣ７に進み、「前ノリ判定」の対象となる音の発音時刻を拍の後位置に修正した後、ステップＳＣ８に進む。
【００３２】
次いで、ステップＳＣ８では、小節の最終音を処理するまで上記ステップＳＣ２〜ＳＣ７を繰り返す。そして、音単位のループにより小節の最終音を処理し終えると、ステップＳＣ９に進み、最後の小節を処理するまで上記ステップＳＣ１〜ＳＣ８を繰り返す。そして、小節単位のループにより最後の小節を処理し終えると、演奏情報編集処理を完了させる。
【００３３】
このように、第１実施形態では、意図的に発音のタイミングをずらす「タメ」や「前ノリ」と呼ばれる演奏表現に基づき生成された演奏データを検出し、「タメ」に相当する演奏データについてはその発音時刻を拍の前位置に修正し、「前ノリ」に相当する演奏データについてはその発音時刻を拍の後位置に修正するので、実用に適した見易い楽譜として表示されるように演奏情報を補正することができる。
【００３４】
例えば、意図的に発音のタイミングをずらす「タメ」や「前ノリ」と呼ばれる演奏表現に基づき生成された第１音から第４音の演奏データの発音時刻（ティック）が「２０」、「５２０」、「１０００」および「１５００」であったとする。これら第１〜第４音を１６分音符長でクオンタイズすると、図５（ａ）に図示する楽譜となり、さらに３２分音符長でクオンタイズすると、同図（ｂ）に図示する楽譜となってしまい、いずれも実用に適した見易い楽譜とは言い難いものとなる。そこで、上述した演奏情報編集処理により補正すると、同図（ｃ）に図示するように、「タメ」や「前ノリ」と呼ばれる演奏表現に基づき生成された演奏データであっても、実用に適した見易い楽譜として表示されるように演奏情報を補正し得るようになる。
【００３５】
Ｂ．第２実施形態
クオンタイズをいたずらに細かくすると複付点音符や前打音にタイを抱えたような音符が頻出して不自然な楽譜になることも少なくない。そこで、第２実施形態では、演奏者が意図して細かい音符を弾いた部分を検出し、その部分のクオンタイズを細かくする。以下、こうした第２実施形態による演奏情報編集処理の動作について図６〜図８を参照して説明する。
【００３６】
上述した第１実施形態と同様、楽譜情報生成処理のステップＳＢ１（図３参照）を介して本処理が実行されると、ＣＰＵ１１は図６に図示する演奏情報編集処理を実行する。演奏情報編集処理では、曲選択された演奏情報を構成する演奏データについて小節単位のループ（ステップＳＤ１）、対象音が有る間のループ（ステップＳＤ２）および参照音が有る間のループ（ステップＳＤ３）を開始する。なお、ここで言う対象音とは処理するべき音を指し、参照音とは条件判定のために参照する対象音の前後の音を指す。
【００３７】
ステップＳＤ４では、対象音と参照音との間が開いているかどうかを判断する。開いていなければ、判断結果は「ＮＯ」になり、ステップＳＤ５に進む。ステップＳＤ５では、参照音との重なりは所定値以下であるか否かを判断する。所定値以下ならば、判断結果は「ＹＥＳ」になり、後述のステップＳＤ１５に進む。これに対し、参照音との重なりが所定値以下でなければ、上記ステップＳＤ５の判断結果は「ＮＯ」になり、ステップＳＤ６に進み、参照音にさらに一つ後の音を代入する。次いで、ステップＳＤ７では、上記ステップＳＤ３に対応し、参照音がある間は上記ステップＳＤ４〜ＳＤ６を繰り返すようにループさせ、参照音が無くなると、後述のステップＳＤ１５に進む。
【００３８】
さて一方、対象音と参照音との間が開いている場合には、上記ステップＳＤ４の判断結果が「ＹＥＳ」になり、ステップＳＤ８に進む。ステップＳＤ８では、参照音に一つ前の音を代入する。続いて、ステップＳＤ９〜ＳＤ１４では、参照音音が無くなる迄、ステップＳＤ１０〜ＳＤ１３を繰り返す。すなわち、ステップＳＤ９では、参照音が有る間のループを開始する。次いで、ステップＳＤ１０では、対象音と参照音との間が開いているかどうかを判断する。開いていれば、判断結果は「ＹＥＳ」になり、ステップＳＤ１１に進み、クオンタイズの単位を小さくした後、後述のステップＳＤ１５に進む。
【００３９】
これに対し、対象音と参照音との間が開いていなければ、判断結果は「ＮＯ」になり、ステップＳＤ１２に進む。ステップＳＤ１２では、参照音との重なりは所定値以下であるか否かを判断する。所定値以下ならば、判断結果は「ＹＥＳ」になり、後述のステップＳＤ１５に進む。一方、参照音との重なりが所定値以下でなければ、上記ステップＳＤ５の判断結果は「ＮＯ」になり、ステップＳＤ１３に進み、参照音にさらに一つ後の音を代入する。次いで、ステップＳＤ１４では、参照音がある間は上記ステップＳＤ９〜ＳＤ１４を繰り返すようにループさせ、参照音が無くなると、ステップＳＤ１５に進む。
【００４０】
ステップＳＤ１５では、対象音のクオンタイズを実行する。次いで、ステップＳＤ１６では、対象音に次の音を代入する。そして、ステップＳＤ１７では、対象音が有る間は上記ステップＳＤ２以降を繰り返すようにループさせ、参照音が無くなると、ステップＳＤ１８に進む。続いて、ステップＳＤ１８では、小節が有る間は上記ステップＳＤ１以降を繰り返すようにループさせ、曲の終わりに達して小節が無くなると、本処理を完了させる。
【００４１】
以上のように、第２実施形態では、演奏者が意図して細かい音符を弾いた部分を検出し、その部分のクオンタイズを細かくするので、例えば図７に図示する演奏データの一例について上述した演奏情報編集処理を施すと、図８（ａ）に図示する楽譜として表現できる。この場合、同図（ｂ）に図示するティック補正無しの楽譜と比較すると、より自然な楽譜となっているのが判る。したがって、実用に適した見易い楽譜となるように演奏情報を補正することが可能になる。
【００４２】
Ｃ．第３実施形態
通常の４分音符や８分音符などの偶数系の音符と、３連符や５連符などの奇数系の音符が混在すると、演奏のゆらぎにより間違った割付を行い易く混乱した楽譜が生じる。そこで、第３実施形態による演奏情報編集処理では、まず全体のビート傾向を把握し、それに基づき奇数系の音符を適用するか否かのしきい値を変動させる。以下、こうした第３実施形態による演奏情報編集処理の動作について図９〜図１３を参照して説明する。
【００４３】
前述した第１実施形態と同様、楽譜情報生成処理のステップＳＢ１（図３参照）を介して本処理が実行されると、ＣＰＵ１１は図９に図示する演奏情報編集処理を実行する。演奏情報編集処理は、ステップＳＥ１を介して実行されるビート分析処理と、ステップＳＥ２を介して実行される連符判定処理とから構成される。
【００４４】
ステップＳＥ１を介してビート分析処理が実行されると、ＣＰＵ１１は図１０に示すステップＳＦ１に進み、音符単位のループを開始する。次いで、ステップＳＦ２では、拍位置に対する余りを求めて保存する。続いて、ステップＳＦ３では、余りは拍を３等分した位置から所定範囲であるか否かを判断する。この連符判定条件に合致する場合には、判断結果が「ＹＥＳ」になり、ステップＳＦ４に進み、対象音を３分適合音と判定する。一方、連符判定条件に合致しなければ、判断結果は「ＮＯ」になり、ステップＳＦ５に進み、対象音を３分非適合音と判定する。
【００４５】
次いで、ステップＳＦ６では、全ての音について処理し終える迄、上記ステップＳＦ１以降を繰り返すループを行わせ、全ての音について処理し終えた場合に次のステップＳＦ７に進む。ステップＳＦ７では、３分適合音／全音数の値、つまり３分適合音率が閾値より大きいか否かを判断する。３分適合音率が閾値より大きければ、判断結果は「ＹＥＳ」になり、後述する連符判定処理で用いる判定値となる３分適合値を高くして本処理を終える。これに対し、３分適合音率が閾値より小さいと、上記ステップＳＦ７の判断結果が「ＮＯ」になり、後述する連符判定処理で用いる判定値となる３分適合値を低くして本処理を終える。
【００４６】
こうして、ビート分析処理が完了すると、ＣＰＵ１１はステップＳＥ２を介して図１１に図示する連符判定処理のステップＳＧ１に進み、小節単位のループを開始させ、続くステップＳＧ２では拍単位のループを開始させる。そして、ステップＳＧ３では、発音時刻を拍＝４８で正規化する。次いで、ステップＳＧ４では、連符パターン単位のループを開始させ、続くステップＳＧ５では、音符単位のループを開始させる。なお、連符パターンとは、３連符、６連符および９連符の各パターンを指し、各パターンは連符の発音時刻を含む。
【００４７】
次いで、ステップＳＧ６では、連符パターンと各音の発音時刻とを比較する。すなわち、拍＝４８で分割された音列に含まれる各音の発音時刻と連符パターンに含まれる各音の発音時刻との差（連符パターンとの時刻差）を求める。そして、ステップＳＧ７では、連符パターンとの時刻差が、上述のビート分析処理で得た３分適合値より大きいか否かを判断する。連符パターンとの時刻差が３分適合値より大きければ、判断結果は「ＹＥＳ」になり、ステップＳＧ８〜ＳＧ１１において、音符単位、連符パターン単位、拍単位および小節単位のループを行わせ、小節単位のループが完了した時点で本処理を終わらせる。
【００４８】
そして、これら各ループの過程で連符パターンとの時刻差が３分適合値より小さくなると、上記ステップＳＧ７の判断結果が「ＮＯ」になり、ステップＳＧ１２に進み、適合連符パターンを記憶し、続くステップＳＧ１３では、記憶した適合連符パターンに従って発音時刻を正規化して本処理を終える。
【００４９】
したがって、例えば図１２に図示する演奏データについて、第３実施形態による演奏情報編集処理にてティック補正を施すと、図１３（ａ）に図示する楽譜として表現できる。この場合、同図（ｂ）に図示するティック補正無しの楽譜と比較すると、より自然な楽譜となっているのが判る。したがって、実用に適した見易い楽譜として表示されるように演奏情報を補正することが可能になる。
【００５０】
Ｄ．第４実施形態
次に、図１４〜図１６を参照して第４実施形態による演奏情報編集処理の動作を説明する。前述した第１実施形態と同様、楽譜情報生成処理のステップＳＢ１（図３参照）を介して本処理が実行されると、ＣＰＵ１１は図１４に図示する演奏情報編集処理を実行してステップＳＨ１に進み、音符単位のループを開始する。次いで、ステップＳＨ２では、次式（１）に基づきゲート時間補正値ＧＡを算出する。なお、次式（１）のゲート時間とは、現在指定されている音（演奏データ）の音長を表す。
ＧＡ＝１−ゲート時間／拍時間  …（１）
【００５１】
続いて、ステップＳＨ３では、算出されたゲート時間補正値ＧＡが「０」より小さいか否かを判断する。ゲート時間補正値ＧＡが「０」より小さければ、判断結果は「ＹＥＳ」になり、ステップＳＨ４に進み、ゲート時間補正値ＧＡをゼロリセットした後、ステップＳＨ５に進む。これに対し、算出されたゲート時間補正値ＧＡが「０」より大きいと、上記ステップＳＨ３の判断結果が「ＮＯ」となり、ステップＳＨ５に進む。
【００５２】
ステップＳＨ５では、次式（２）に基づき補正後発音時刻を算出する。
補正後発音時刻＝発音時刻＋移動平均値×α×ゲート時間補正値ＧＡ…（２）
なお、この（２）式において、移動平均値とは後述のステップＳＨ６に基づき算出される誤差の移動平均値、αは所定の定数を表す。次いで、ステップＳＨ６では、上記ステップＳＨ５にて算出される補正後発音時刻から補正前発音時刻を減算して誤差を算出する。次に、ステップＳＨ７では、算出した誤差を移動平均に繰込み、移動平均値を更新する。次いで、ステップＳＨ８では、処理すべき音符が有る間は上記ステップＳＨ１以降を繰り返すようにループさせ、曲の終わりに達して処理すべき音符が無くなると、本処理を完了させる。
【００５３】
したがって、例えば図１５に図示する一例の演奏データ（入力Ｉ：発音時刻）を単純にクオンタイズした場合には、図１６（ｂ）に図示する楽譜として表示されるのに対し、上述した第４実施形態による演奏情報編集処理を適用した結果Ｏは、クオンタイズとの誤差を移動平均していき、これに使用するにあたって短い音符ほど強く適用するようにしたので、図１６（ａ）に図示するように、実用に適した見易い楽譜として表示されるように演奏情報を補正することが可能になる。
【符号の説明】
【００５４】
１０  操作部
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  音源
１５  サウンドシステム
１６  表示部
１７  インタフェース部
【図１】
0005413484.tif 000002
【図２】
0005413484.tif 000003
【図３】
0005413484.tif 000004
【図４】
0005413484.tif 000005
【図５】
0005413484.tif 000006
【図６】
0005413484.tif 000007
【図７】
0005413484.tif 000008
【図８】
0005413484.tif 000009
【図９】
0005413484.tif 000010
【図１０】
0005413484.tif 000011
【図１１】
0005413484.tif 000012
【図１２】
0005413484.tif 000013
【図１３】
0005413484.tif 000014
【図１４】
0005413484.tif 000015
【図１５】
0005413484.tif 000016
【図１６】
0005413484.tif 000017