(57)【特許請求の範囲】
【請求項１】
演奏の音高データを入力する音高データ入力処理、
楽曲の音符を表す音符データ列における前記入力された音高データの一致する位置を候補として検出し、検出した候補の次の音符データを割り出し、過去に割り出した前記次の音符データと前記入力された音高データとが一致するか否かを繰り返して検出し、これら入力された音高データと音符データとの一致率が所定値以上の候補を演奏位置として推定するノートトレース処理、
推定された演奏位置に基づいて次に入力されるべき音高データを割り出すとともに、次に入力された音高データに基づいて該演奏位置の正誤を判断し、正しい場合には演奏のテンポを割り出すタイムスケール処理、
を有し、
前記音高データ入力処理が行われるたびに、前記ノートトレース処理、前記タイムスケール処理を実行する演奏位置検出方法。
【請求項２】
前記ノートトレース処理は、入力された音高データと音符データとの一致率および一致数が所定値以上の候補を演奏位置として推定する請求項１に記載の演奏位置検出方法。
【請求項３】
前記ノートトレース処理は、入力された音高データと音符データとの連続不一致数が所定値以上の候補を、前記演奏位置の候補から削除する処理を含む請求項１または請求項２に記載の演奏位置検出方法。
【請求項４】
前記音高データ入力処理は、演奏による楽音を入力する処理、および入力した楽音の音高を表す音高データを抽出する処理からなる請求項１〜請求項３のいずれかに記載の演奏位置検出方法。
【請求項５】
楽曲の音符を表す音符データ列を含む楽譜データを記憶する記憶手段と、
該楽譜データを読み出して表示する表示手段と、
演奏の音高データを入力する入力手段と、
前記音符データ列における前記入力された音高データの一致する位置を候補として検出し、検出した候補の次の音符データを割り出し、過去に割り出した前記次の音符データと前記入力された音高データとが一致するか否かを繰り返して検出し、これら入力された音高データと音符データとの一致率が所定値以上の候補を演奏位置として推定するノートトレース処理、推定された演奏位置に基づいて次に入力されるべき音高データを割り出すとともに、次に入力された音高データに基づいて該演奏位置の正誤を判断し、正しい場合にはテンポを割り出し、該割り出された演奏位置およびテンポに基づいて前記表示手段を制御するタイムスケール処理、を実行する表示制御手段と、
を備え、
前記表示制御手段は、前記入力手段に音高データが入力されるたびに、前記ノートトレース処理、前記タイムスケール処理を実行する楽譜表示装置。
【請求項６】
前記表示制御手段は、入力された音高データと音符データとの一致率および一致数が所定値以上の候補を演奏位置として推定する請求項５に記載の楽譜表示装置。
【請求項７】
前記表示制御手段は、入力された音高データと音符データとの連続不一致数が所定値以上の候補を、前記演奏位置の候補から削除する請求項５または請求項６に記載の楽譜表示装置。
【請求項８】
前記入力手段は、演奏による楽音を入力し、該入力した楽音の音高を表す音高データを抽出する手段である請求項５〜請求項７のいずれかに記載の楽譜表示装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、演奏位置を自動検出する演奏位置検出方法および楽譜表示装置に関する。
【０００２】
【従来の技術】
楽譜の画像を電気的にディスプレイに表示する楽譜表示装置（電子楽譜）が提案されている。この種の電子楽譜において、複数ページの楽譜を表示する場合に演奏者の演奏位置を自動検出して表示するページを更新（ページめくり）できるようになっているものがある。
【０００３】
【発明が解決しようとする課題】
しかし、従来の電子楽譜では、曲の最初から演奏され、途中で止まったりミスタッチしたりしないことが前提で演奏箇所を検出しているため、途中から演奏をスタートする練習時には対応できず、ミスタッチをした場合には演奏位置の検出を誤ってページめくりのタイミングがずれてしまうなどの欠点があった。
【０００４】
この発明は、曲の途中から演奏をスタートした場合やミスタッチをした場合でも演奏位置を正確に検出できる演奏位置検出方法および楽譜表示装置を提供することを目的とする。
【０００５】
【課題を解決するための手段】
この発明は、演奏の音高データを入力する音高データ入力処理、楽曲の音符を表す音符データ列における前記入力された音高データの一致する位置を候補として検出し、検出した候補の次の音符データを割り出し、過去に割り出した前記次の音符データと前記入力された音高データとが一致するか否かを繰り返して検出し、これら入力された音高データと音符データとの一致率が所定値以上の候補を演奏位置として推定するノートトレース処理、推定された演奏位置に基づいて次に入力されるべき音高データを割り出すとともに、次に入力された音高データに基づいて該演奏位置の正誤を判断し、正しい場合には演奏のテンポを割り出すタイムスケール処理、を有し、前記音高データ入力処理が行われるたびに、前記ノートトレース処理、前記タイムスケール処理を実行することを特徴とする。
また、この発明は、楽曲の音符を表す音符データ列を含む楽譜データを記憶する記憶手段と、該楽譜データを読み出して表示する表示手段と、演奏の音高データを入力する入力手段と、前記音符データ列における前記入力された音高データの一致する位置を候補として検出し、検出した候補の次の音符データを割り出し、過去に割り出した前記次の音符データと前記入力された音高データとが一致するか否かを繰り返して検出し、これら入力された音高データと音符データとの一致率が所定値以上の候補を演奏位置として推定するノートトレース処理、推定された演奏位置に基づいて次に入力されるべき音高データを割り出すとともに、次に入力された音高データに基づいて該演奏位置の正誤を判断し、正しい場合にはテンポを割り出し、該割り出された演奏位置およびテンポに基づいて前記表示手段を制御するタイムスケール処理、を実行する表示制御手段と、を備え、前記表示制御手段は、前記入力手段に音高データが入力されるたびに、前記ノートトレース処理、前記タイムスケール処理を実行することを特徴とする。
【０００６】
音符データ列は、複数の音符データからなっており、各音符データは、少なくとも各音符の音高を表す音高情報や音長を表す音長情報を含んでいる。音高情報は例えば、Ｃ３、Ｄ３など音名＋オクターブの形式で表現されていてもよく、また、Ｃ１＝０、Ｃ２＝１２、Ｃ３＝２４とする半音数で表現してもよい。また、演奏の音高データも上記音高情報と同様の形式で入力され、これらの一致／不一致が比較可能になっている。
【０００７】
またこの音高データの入力は、たとえばＭＩＤＩ楽器などから直接音高データとして入力してもよく、楽音をマイクから入力し、この楽音から音高データを抽出してもよい。
【０００８】
入力された音高データと音符データ列上で一致する箇所を検索するノートトレース処理を行う。演奏によって複数の音高データが入力されるが、このうち全てが一致しなくても一致するものが多ければその位置を演奏位置の候補の一つとする。すなわち、入力された音高データと音高が一致する確率の高い音符データ列上の位置を候補とする。このように音符データ列の全体を検索することにより、どの位置から演奏がスタートした場合でも対応することが可能になり、演奏にミスタッチ等があっても正しい演奏位置の検出が可能になる。
【０００９】
そして、このうち最も確率の高い１つの候補または確率の高い複数の候補についてタイムスケール処理をする。タイムスケール処理は、候補としてあげられた演奏位置で次に演奏されるべき音符データの音高情報で入力を待ち受け、これと一致する音高データが入力された候補の位置を演奏位置であると確定する処理である。候補が１つの場合にはその候補の正誤を判断し、候補が複数の場合にはそのうちどの候補が正しいかを判断する。そして、正しい候補が存在する場合、音高データの入力タイミングに基づいてその演奏のテンポを割り出す。上記のように音符データには音長情報も含まれているため、この音長情報と音高データの入力タイミングとを比較することによって演奏のテンポを割り出すことができる。
【００１０】
このように、入力された音高データで音符データ列を検索して候補箇所を割り出す音高データから音符データ列方向の検索処理（ノートトレース処理）と、候補の演奏位置において次に入力されるべき音高データを待ち受ける音符データから音高データ方向の待ち受け処理（タイムスケール処理）を併用したことにより、正確な演奏位置の割り出しが可能になる。
【００１１】
【発明の実施の形態】
図１はこの発明の実施形態である楽譜表示装置のブロック図である。また、図２は同楽譜表示装置が記憶している楽譜データの例を示す図である。楽譜データ記憶部５は、表示部７に表示する楽譜のデータを記憶している。マイク１には、この楽譜の曲を演奏した楽音が入力される。この楽音は、自然楽器、電子楽器など楽器の演奏音でもよく、人による歌唱音声でもよい。また、その場で演奏された楽音であってもよいが、ＣＤなどの再生音でもよい。マイク１から入力された楽音は、ＡＤコンバータ２でデジタルデータに変換される。このデジタル化された楽音信号は、分析部３に入力される。分析部３は、入力された楽音信号を短い区間のフレームに分割し、各フレーム毎にその音声信号の音高データを抽出する。音高データは、入力された楽音信号が１２音階のどの高さであるかを表すデータであり、Ｃ３、Ｄ４などの音名＋オクターブとして表現しても、処理音域の全音高をそれぞれ個別の数値で表してもよい。また、楽音信号の多少の周波数ずれはいずれかの音高に収束させる。
【００１２】
抽出された音高データは、マッチング検出部４に入力される。マッチング検出部４には、この音高データとともに、楽譜データ記憶部５から当該楽音の曲の楽譜データが入力される。
該楽譜データは、楽譜を画像に展開して表示するためのデータであるとともに、この楽譜に表されている音符の音高を示す情報を含んだデータである。図２に示すように、各音符の音高と音長を示す音符データと楽譜に表現される音符以外の各種記号を示す記号データが、その表示位置とともに記憶されている。表示位置は、テンポクロックを単位とする時間軸で表され、上下の位置は、音符データの場合音高で決定され、記号データの場合その記号の種類に応じて予め決められた位置に表示される。楽譜データは複数ページからなっている。
【００１３】
マッチング検出部４は、分析された音高データと楽譜データ中の音符データとを比較して一致する箇所を検出し、この一致箇所をカレントポイントデータとして表示制御部６に出力する。
【００１４】
表示制御部６は、前記楽譜データ記憶部５から所定のページの楽譜データを読み出し、これを楽譜の画像データに展開して表示部７に表示する。どのページの楽譜データを読み出すかは、マッチング検出部４から入力されるカレントポイントデータおよび操作部８から入力される操作情報に基づいて決定される。また、画像に展開した楽譜のうち、現在演奏されている位置を強調表示するようにパターン展開した画像を制御する。この現在演奏されている位置は前記カレントポイントデータおよび同時に入力されるテンポデータに基づいて割り出される。強調表示は、たとえば五線を太線で表示する、音符を大きく表示する、表示色を変えるなどの方式で行う。
【００１５】
操作部８は、表示部７に表示する楽譜のページを手動操作（マニュアル）で変更（ページめくり）するための操作子やスタート時に表示するページを指示するための操作子を備えている。
【００１６】
マッチング検出部４の動作について説明する。マッチング検出部４は、入力された音高データとテンポに基づいて、楽譜データ上の現在演奏されている箇所を検出する。この検出作業を、入力された音高データに基づいて音符データ列をサーチし、一致箇所（候補）を見つけるという演奏→楽譜のマッチング検出作業であるノートトレース、および、音符データのうちもうすぐ演奏されるであろう音符データを割り出し、この音符データに対応する楽音（音高データ）の入力を待ち受けるという楽譜→演奏のマッチング検出作業であるタイムスケールトレースの双方向について行う。
【００１７】
まず、ノートトレースについて説明する。これは、入力された音高データに基づいて音高列を生成し、これをパターンとして楽譜データの音符データ列とのマッチングを検出するものである。
【００１８】
図３を参照してノートトレースの手法を具体的に説明する。この例では、楽譜データの音符データ列がドレミドミレド、ミレミソファレドと並んでいるものとする。同図は第５音のミから弾きはじめられミスタッチなく演奏された場合の例である。すなわち「ミレド…」と演奏された場合の例である。この実施形態では、演奏を練習する場合などで途中から弾きなおしされた場合でも演奏箇所を検出できるようにしている。
【００１９】
まず最初の音高データとしてミが入力される。ミと一致する音符データを楽譜データから検索すると、第３音、第５音、第８音、第１０音がこれに該当する。この第３音、第５音、第８音、第１０音の位置をそれぞれ現在位置の候補２１、２２、２３、２４として記憶する。この候補は入力された音高データが次の音符データ（第４音、第６音、第９音、第１１音）と一致したとき、その位置に移動する。
【００２０】
各候補の候補データは、「音符位置／一致ノート数／不一致ノート数／連続一致数／連続不一致数」で構成され、新たな音高データが入力されるごとに更新される。音符位置は、この候補が現在どの音符データ上にあるかを示すものである。一致ノート数は入力された音高データのうち音符データ列と一致したものの数である。不一致ノート数は入力された音高データのうち音符データ列と一致しなかったものの数である。連続一致数は、入力された音高データが音符データ列と一致したときこれで連続していくつ一致しているかを示す数である。連続不一致数は、入力された音高データが音符データ列と一致しなかったときこれで連続していくつ不一致であるかを示す数である。
【００２１】
上記候補２１〜２４は、最初の１音のみの一致であるため、候補データは、それぞれ、「第３音／１／０／１／０」、「第５音／１／０／１／０」、「第８音／１／０／１／０」、「第１０音／１／０／１／０」である。
【００２２】
次の演奏の音高データとしてレが入力される。前記候補２１〜２４の各々について次の音符がレであるかを検査する。そうすると、候補２２および候補２３の次の音符がレであるため、これらの候補の音符位置をこの音符データの位置に移動して候補データを更新する。候補２２は「第６音／２／０／２／０」、候補２３は「第９音／２／０／２／０」となる。一方、候補２１、２４は、次の音符データがレでないため音高データと不一致となり、候補２１は「第３音／１／１／０／１」となり、候補２４は「第１０音／１／１／０／１」となる。
【００２３】
次に、既存の候補が移動してこなかったレの音符データを検索すると、第２音、第１３音が存在する。これらを新たな現在位置の候補として候補２５、２６とする。候補２５は「第２音／１／０／１／０」、候補２６は「第１３音／１／０／１／０」となる。
【００２４】
さらに次の音高データとしてドが入力されるので、候補２１〜２６について次の音符データがドであるかを検査する。候補２１、候補２２および候補２６の次の音符データがドであるため、これらの候補の音符位置をこの音符データの位置に移動して候補データを更新する。候補２１は「第４音／２／１／１／０」、候補２２は「第７音／３／０／３／０」、候補２６は「第１４音／２／０／２／０」となる。
【００２５】
また、候補２３〜２５は、それぞれ、候補２３は「第９音／２／１／０／１」、候補２４は「第１０音／１／２／０／２」、候補２５は「第２音／１／１／０／１」となる。次に、既存の候補が移動して来なかったドの音符データを検索すると第１音が存在する。これを新たな現在位置の候補として候補２７「第１音／１／０／１／０」となる。
【００２６】
このように、正しい演奏位置であるカレントポイントを示している候補２２は一致数、連続一致数とも大きな値となり、不一致数は少ない（０）。このように候補データを検査することによって正しいカレントポイントを割り出すことができる。また、不一致の場合でも、候補を即座に削除しないで不一致数を記憶しながら残しておくのは、演奏者がミスタッチして間違った音を入力した場合に対応するためである。すなわち演奏者がミスタッチをした場合でも不一致数が１つ増加する程度であり、正しいカレントポイントを割り出す大きな妨げにはならない。たとえば、「ミレド…」と演奏すべきところを「ミレレド…」と演奏した場合でも、候補２２は「第７音／３／１／２／０」となり、やはり有力なカレントポイントの候補である。また、演奏者が音を間違えた場合や音を飛ばした場合には、その次の音からこの図に示した正しい候補の割り出しが開始される。
【００２７】
次に、タイムスケールトレースについて説明する。上記のノートトレースによってカレントポイントの候補が幾つかに絞り込まれる。この絞り込まれた候補付近からそれぞれ１つの音符データを抽出し、この音符データに一致する音高データが所定時刻付近で到来するかを待ち受ける。このとき到来する音高データに基づいてどの候補が実際のカレントポイントであるかを決定するとともに到来タイミングに基づいてテンポ抽出を行い、楽譜データの拍子と合わせることでカレントポイントの表示を予測的に進行させる。
【００２８】
図４，図５は同楽譜表示装置の動作を示すフローチャートである。図４は前記タイムトレース動作を示すフローチャートである。まず、表示制御部６が楽譜データ記憶部５から第１ページの楽譜データを読み出して表示部７に表示する（ステップ１０１：以下単に１０１という）。こののち音高データが入力されるか（１０２）、操作部８から表示ページ変更の指示が入力されるか（１０３）を検出する。表示ページ変更の指示が入力されると（１０３）、その指示されたページの楽譜データを楽譜データ記憶記憶部５から読み出して表示部７に表示する（１０４）。そして、カレントポイントの候補が記憶されている場合にはこれをクリアする（１０５）。
【００２９】
音高データが入力されると（１０２）、この音高データで楽譜データの音符データ列を検索してカレントポイントの候補を検索する（１０６）。この検索処理は、図３を参照して説明した処理であり、既に設定されている候補の更新も含まれる。そして、設定されている各候補のマッチングの程度を判定する（１０７）。マッチングの程度はノート一致率や連続一致／不一致数などで判定される。ノート一致率は、ノート一致数／（ノート一致数＋ノート不一致数）で算出される。１０７ではノート一致率を各候補について算出し、ノート一致率が所定値ｍ１以下の候補および連続不一致数が所定値ｍ２以上の候補はカレントポイントである確率が極めて低いとして候補から外し、候補データを削除する（１０８）。また、ノート一致数が所定値ｍ３以上であり且つノート一致率が所定値ｍ４以上の候補のカレントポイントとして確率の高い候補があれば（１０９）、これをタイムスケールトレースに送信する（１１０）。ｍ１〜ｍ４としては、正しいカレントポイントの候補が選出にもれることなく、また可能性の全くない候補が選出されないように適当な値を決定する。
【００３０】
図５はタイムスケール動作を示すフローチャートである。ノートトレース動作から候補が送られてくるまで待機する（１２０）。ノートトレース動作から候補を受信するとこのカレントポイント候補と楽譜データの音符データ列に基づいて次に送られてくるであろう音高データを予測する（１２１）。そして音高データが入力されるまで待機する（１２２）。音高データが入力されると、この音高データと上記予測した音高データとの一致／不一致を判定する（１２３）。一致した場合には（１２４）、この位置がカレントポイントであると決定し、音高データの入力タイミングに基づいて演奏のテンポを計算し（１２５）、このカレントポイントデータから算出されたテンポで演奏が進むとして表示部の強調表示位置やページ更新を制御する（１２６）。このデータに基づく表示制御を新たな候補が入力され新たなカレントポイントおよびテンポが決定されるまで継続する。また、入力された音高データと予測した音高データとが不一致であった場合には、この候補は正しくないとして放棄して１２０にもどる。
【００３１】
なお、この実施形態の楽譜表示装置では、マイク１−ＡＤコンバータ２−分析部３を設けて、演奏の楽音から音高データを抽出するようにしているが、ＭＩＤＩ端子などの入力端子を設け、他の電子楽器等から出力される音高データをそのまま入力するようにしてもよい。
【００３２】
また、この実施形態では、楽譜表示装置について説明したが、この発明の実施は楽譜表示装置に限定されない。たとえば、演奏の楽音に効果を付与する効果装置に適用した場合、演奏者の演奏位置をこの発明によって認識し、効果設定を自動切換する装置を実現することができる。
【００３３】
【発明の効果】
以上のようにこの発明によれば、音符データ列の全体を検索することにより、どの位置から演奏がスタートした場合でも対応することが可能になり、演奏にミスタッチ等があっても正しい演奏位置の検出が可能になる。また、入力された音高データで音符データ列を検索して候補箇所を割り出す音高データから音符データ列方向の検索処理と、候補の演奏位置において次に入力されるべき音高データを待ち受ける音符データから音高データ方向の待ち受け処理を併用したことにより、正確な演奏位置の割り出しが可能になる。
【図面の簡単な説明】
【図１】この発明の実施形態である楽譜表示装置のブロック図
【図２】同楽譜表示装置に記憶される楽譜データを示す図
【図３】同楽譜表示装置のノートトレース処理を説明する図
【図４】同楽譜表示装置の動作を示すフローチャート
【図５】同楽譜表示装置の動作を示すフローチャート
【符号の説明】
１…マイク、２…ＡＤコンバータ、３…分析部、４…マッチング検出部、５…楽譜データ記憶部、６…表示制御部、７…表示部、８…操作部
【図１】
0004389330.tif 000002
【図２】
0004389330.tif 000003
【図３】
0004389330.tif 000004
【図４】
0004389330.tif 000005
【図５】
0004389330.tif 000006