(57)【要約】【課題】曲全体の流れを把握しながら、右手パートの音と左手パートの音を正しく押鍵できたのかを確認することのできる演奏表示装置を提供する。【解決手段】演奏表示装置は、曲データを構成する音ごとに、当該音の属するパートと他のパートとの関係から発音タイプを設定する発音タイプ設定部１１ａと、発音タイプに応じた表示形態のお手本マークを配置したピアノロールを表示手段に生成表示させるピアノロール表示処理部１１ｂと、曲データの再生時に、演奏者により入力された演奏音の音高とタイミングとに基づいて、当該演奏音の上記発音タイプを判定し、該発音タイプ別に表示形態を変えた入力マークをピアノロール上に表示させる入力表示部１１ｃとを備える。【選択図】図２
2014186154.tif 000002
【特許請求の範囲】
【請求項１】
曲データを構成する音ごとに、当該音の属するパートと他のパートとの関係から発音タイプを設定する発音タイプ設定手段と、
上記発音タイプ設定手段によって設定された発音タイプに応じた表示形態のお手本マークを配置したピアノロールを表示手段に生成表示させるピアノロール表示処理手段と、
上記曲データの再生時に、演奏者により入力された演奏音の音高とタイミングとに基づいて、当該演奏音の上記発音タイプを判定し、該発音タイプ別に表示形態を変えた入力マークを上記ピアノロール表示処理手段によって表示された上記ピアノロール上に表示させる入力表示手段と
を具備したことを特徴とする演奏表示装置。
【請求項２】
上記ピアノロール表示処理手段は、上記ピアノロール上の上記お手本マークに上記曲データの各音の長さを表わす音長バーを付加して表示させ、
上記入力表示手段は、上記演奏者によって入力された音の長さを表わす音長バーを上記入力マークに付加して、上記ピアノロール表示処理手段によって表示された上記ピアノロール上に表示させることを特徴とする請求項１記載の演奏表示装置。
【請求項３】
上記曲データの再生に同期させて、上記ピアノロールの表示を更新する表示更新手段と、
この表示更新手段によって更新される上記ピアノロール上に現在の再生位置を示すカーソルを設定するカーソル設定手段と、
をさらに具備し、
上記カーソル設定手段によって設定されたカーソルの一方向に、現在の再生位置より後の上記曲データに基づくピアノロールを上記ピアノロール表示処理手段によって表示させるとともに、
上記カーソル設定手段によって設定されたカーソルの上記一方向と反対方向に、現在の再生位置より前の上記曲データに基づくピアノロールを上記ピアノロール表示処理手段によって表示させ、かつ、現在の再生位置より前に入力された上記演奏音に基づき前記入力マークを前記入力表示手段によって表示させる
ことを特徴とする請求項１または２記載の演奏表示装置。
【請求項４】
上記曲データは、２つのパートからなる曲についてパートを識別可能な情報が付加されたものであり、
上記発音タイプは、上記曲データの２つのパートの両方が同時に発音する第１のタイプと、上記曲データの２つのパートの一方のパートの音を発音中に他方のパートの音を発音する第２のタイプと、上記曲データの２つのパートの一方のパートの音だけを発音する第３のタイプとからなり、
上記お手本マークおよび上記入力マークは、上記第１乃至第３のタイプを識別可能に表示されることを特徴とする請求項１から３のいずれかに記載の演奏表示装置。
【請求項５】
上記お手本マークは、リング状に形成されるとともに、上記第１乃至第３のタイプに応じた色で表示され、
上記入力マークは、上記お手本マークのリング穴に合致する円状に形成されるとともに、上記第１乃至第３のタイプに応じた色で表示され、
演奏者による入力が正しい場合に、上記お手本マークと上記入力マークとが重なって１つの同一色の円として表示されることを特徴とする請求項４記載の演奏表示装置。
【請求項６】
曲データを構成する音ごとに、当該音の属するパートと他のパートとの関係から発音タイプを設定するステップと、
上記発音タイプに応じた表示形態のお手本マークを配置したピアノロールを、表示手段に生成表示させるステップと、
上記曲データの再生時に、演奏者により入力された演奏音の音高とタイミングとに基づいて、当該演奏音の上記発音タイプを判定し、該発音タイプ別に表示形態を変えた入力マークを、上記ピアノロール上に表示させるステップと
を備えたことを特徴とする演奏表示方法。
【請求項７】
コンピュータによって実行される演奏表示のためのプログラムであって、
上記コンピュータに、
曲データを構成する音ごとに、当該音の属するパートと他のパートとの関係から発音タイプを設定する機能と、
上記発音タイプに応じた表示形態のお手本マークを配置したピアノロールを、表示手段に生成表示させる機能と、
上記曲データの再生時に、演奏者により入力された演奏音の音高とタイミングとに基づいて、当該演奏音の上記発音タイプを判定し、該発音タイプ別に表示形態を変えた入力マークを、上記ピアノロール上に表示させる機能と
を実現させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽譜の曲に合わせて押鍵の位置とタイミングを指示する演奏表示装置、演奏表示方法及びプログラムに関する。
【背景技術】
【０００２】
従来、演奏対象とする楽曲のデータを楽譜化して鍵盤の画像と共に表示する楽譜表示装置がある（例えば、特許文献１参照）。この楽譜表示装置では、楽曲の再生時に鍵盤画像の中の該当する鍵に特定のマークを表示することで、押鍵の位置とタイミングを演奏者に指示している。また、右手パートの音と左手パートの音でマークの表示色を変えることで、演奏者にどちらの手で押鍵すべきかを視覚的に分かるようにしている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４６９７６６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述した楽譜表示装置では、現在の押鍵の位置とタイミングを指示するだけであり、曲の右手パートと左手パートの音符の関係性、すなわち、押鍵タイミング、前後関係、離鍵タイミング等が把握しづらいという問題がある。
【０００５】
また、右手パートの音と左手パートの音でマークの表示色を変えてあっても、演奏者がそのマーク色に合わせて実際に押鍵入力したときに、右手パートと左手パートの音符の関係性を正しく演奏できたかどうかを演奏者が即座に判断することはできない。従って、上記特許文献１の発明から両手の協調動作を習得することは困難である。
【０００６】
そこで、本発明は、曲の右手パートと左手パートの音符の関係性を確認しながら、右手パートの音と左手パートの音を正しい関係で演奏できたのか確認することができ、両手の協調動作を容易に習得することのできる演奏表示装置、演奏表示方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る演奏表示装置は、曲データを構成する音ごとに、当該音の属するパートと他のパートとの関係から発音タイプを設定する発音タイプ設定手段と、上記発音タイプ設定手段によって設定された発音タイプに応じた表示形態のお手本マークを配置したピアノロールを、表示手段に生成表示させるピアノロール表示処理手段と、上記曲データの再生時に、演奏者により入力された演奏音の音高とタイミングとに基づいて、当該演奏音の上記発音タイプを判定し、該発音タイプ別に表示形態を変えた入力マークを、上記ピアノロール表示処理手段によって表示された上記ピアノロール上に表示させる入力表示手段とを具備したことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、発音タイプ別に表示形態を変えた押鍵マークを有するピアノロールが表示され、そのピアノロール上に演奏者の押鍵入力による入力マークが上記発音タイプ別に表示形態を変えて表示される。したがって、曲全体の流れを把握しながら、押鍵マークと入力マークとの重ね合わせ状態から右手パートの音と左手パートの音を正しい関係で演奏できたのかを確認することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は本発明の一実施形態に係る演奏システムの構成を示すブロック図である。
【図２】図２は同実施形態における演奏システムのＰＣに備えられたＣＰＵの機能構成を示すブロック図である。
【図３】図３は同実施形態における演奏システムのＰＣに備えられたＲＡＭの構成を示す図である。
【図４】図４は同実施形態における演奏システムのお手本ピアノロールデータの構成を示す図である。
【図５】図５は同実施形態における演奏システムの入力ピアノロールデータの構成を示す図である。
【図６】図６は同実施形態における演奏システムの小節データの構成を示す図である。
【図７】図７は同実施形態における演奏システムの入力音符データの構成を示す図である。
【図８】図８は同実施形態における演奏システムの音高パートデータリストの構成を示す図である。
【図９】図９は同実施形態における演奏システムの楽譜の一例を示す図である。
【図１０】図１０は同実施形態における演奏システムのピアノロール形式の演奏練習画面の一例を示す図である。
【図１１】図１１は同実施形態における演奏システムのカーソル移動とピアノロールの表示更新との関係を示す図である。
【図１２】図１２は同実施形態における演奏システムのカーソル移動とピアノロールの表示更新との関係を示す図である。
【図１３】図１３は同実施形態における演奏システムのカーソル移動とピアノロールの表示更新との関係を示す図である。
【図１４】図１４は同実施形態における演奏システムの演奏練習中の演奏練習画面の状態を示す図である。
【図１５】図１５は同実施形態における演奏システムの押鍵マークと入力マークを拡大して示す図である。
【図１６】図１６は同実施形態における演奏システムの押鍵マークと入力マークの表示色の組み合わせを示す図である。
【図１７】図１７は同実施形態における演奏システムの押鍵マークと入力マークの表示色の組み合わせの意味を説明するための図である。
【図１８】図１８は同実施形態における演奏システムのＰＣによって実行されるメイン処理を示すフローチャートである。
【図１９】図１９は上記図１８のステップＡ１１で実行される両手協調タイプ設定処理を示すフローチャートである。
【図２０】図２０は上記図１８のステップＡ１３で実行されるピアノ演奏練習処理を示すフローチャートである。
【図２１】図２１は上記図２０のステップＣ１５で実行されるお手本ピアノロール表示処理を示すフローチャートである。
【図２２】図２２は上記図２０のステップＣ１６で実行される入力ピアノロール生成処理を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、図面を参照して本発明の実施形態について説明する。
【００１１】
図１は本発明の一実施形態に係る演奏システムの構成を示すブロック図である。
【００１２】
この演奏システムは、ＰＣ（パーソナルコンピュータ）１０と電子楽器２０とで構成される。ＰＣ１０は、本発明の演奏表示装置として用いられる。ＰＣ１０には、主制御部であるＣＰＵ１１と、このＣＰＵ１１に接続されるＲＯＭ１２、ＲＡＭ１３、入力部１４、表示部１５、ＭＩＤＩインタフェース（Ｉ／Ｆ）１６、発音部１７などが設けられている。
【００１３】
ＣＰＵ１１は、ＲＯＭ１２に記憶された各種プログラム１２ａを起動し、入力部１４から入力されたイベントに従って各種処理を実行する。本実施形態において、このＣＰＵ１１には、本発明の演奏表示装置を実現するための各種機能が備えられている（図２参照）。
【００１４】
ＲＯＭ１２には、各種プログラム１２ａの他、後述する演奏表示用の鍵盤の画像データや押鍵マークの画像データなどが記憶されている。上記各種プログラム１２ａには、本発明の演奏表示制御用のプログラムも含まれる。ＲＡＭ１３には、ＣＰＵ１１の処理に必要な各種データが記憶される（図３参照）。
【００１５】
入力部１４は、例えばキーボードやマウスなどの入力デバイスであり、ユーザの入力操作に対応したイベントを発生してＣＰＵ１１に与える。表示部１５は、例えばＬＣＤ（Liquid Crystal Display）等のカラー表示可能な表示デバイスからなり、所定サイズの画面を有し、その画面に後述する鍵盤画像や押鍵マークなどを表示する。
【００１６】
ＭＩＤＩインタフェース１６は、ＭＩＤＩ（musical instrument digital interface）規格の電子楽器２０との間で信号の入出力処理を行う。発音部１７は、サウンドシステムの音源を備え、演奏対象として指定された曲データを楽音に変換して再生出力する。なお、この発音部１７は、電子楽器２０の内部に備えられて、電子楽器２０内の音源によって生成された音が発音されるようになっていても良い。
【００１７】
ここで、本実施形態では、電子楽器２０としては電子ピアノが用いられる。この電子楽器２０は、所定数分の鍵からなる鍵盤２１を備える。この鍵盤２１の各鍵を押鍵／離鍵したしたときに信号（ノートオン／オフ信号、鍵番号、打鍵強さ等）がＭＩＤＩインタフェース１６を介してＰＣ１０に入力される。
【００１８】
なお、図１の例では、ＰＣ１０に電子楽器２０を接続して演奏する構成を示したが、例えば表示部１５の画面に鍵盤の画像（ソフトキーボード）を表示して、入力部１４の操作によって演奏するような構成であっても良い。
【００１９】
また、ＰＣ１０を用いず、電子楽器２０内の各ブロックを用いて、電子楽器２０単体で同様のシステム構成を取ることも可能である。この場合、例えば、入力部１４としては電子ピアノの各種スイッチを、また表示部１５としては電子ピアノの液晶モニタを用いることとしても良い。
【００２０】
図２はＣＰＵ１１の機能構成を示すブロック図である。ＣＰＵ１１には、本発明の演奏表示装置に関わる機能構成として、発音タイプ設定部１１ａ、ピアノロール表示処理部１１ｂ、入力表示部１１ｃ、表示更新部１１ｄ、カーソル設定部１１ｅが設けられている。
【００２１】
発音タイプ設定部１１ａは、曲データを構成する音ごとに、当該音の属するパートと他のパートとの関係から発音タイプを設定する。
【００２２】
ピアノロール表示処理部１１ｂは、発音タイプ設定部１１ａによって設定された発音タイプに応じた表示形態のお手本マークを配置したピアノロールを表示部１５に生成表示させる。
【００２３】
入力表示部１１ｃは、曲データの再生時に、演奏者により入力された演奏音の音高とタイミングとに基づいて、当該演奏音の発音タイプを判定し、該発音タイプ別に表示形態を変えた入力マークを上記ピアノロール表示処理手段によって表示された上記ピアノロール上に表示させる。
【００２４】
また、表示更新部１１ｄは、曲データの再生に同期させて、ピアノロールの表示を更新する。カーソル設定部１１ｅは、表示更新部１１ｄによって更新されるピアノロール上に現在の再生位置を示すカーソルを設定する。
【００２５】
図３はＲＡＭ１３の構成を示す図である。
【００２６】
ＲＡＭ１３には、演奏対象となる曲データに関する各種データとして、お手本ピアノロールデータ１３ａ、入力ピアノロールデータ１３ｂ、一時保存入力ピアノロールデータ１３ｃ、小節データ１３ｄ、入力音符データ１３ｅ、音高パートデータリスト１３ｆが記憶される。これらのデータ１３ａ〜１３ｆの構成について、図４〜図８を参照して説明する。
【００２７】
（ピアノロールデータ）
図４はお手本ピアノロールデータ１３ａの構成を示す図、図５は入力ピアノロールデータ１３ｂの構成を示す図である。
【００２８】
ピアノロールデータは、楽譜の音階部分について、その発音タイミングを時系列に沿った形で表現したデータである。本実施形態では、お手本ピアノロールデータ１３ａと入力ピアノロールデータ１３ｂがある。お手本ピアノロールデータ１３ａは、演奏のお手本用のデータである。これに対し、入力ピアノロールデータ１３ｂは、ユーザの押鍵入力を反映させたデータである。どちらも基本的には同じデータ構成であり、音符毎に構成され、「発音時刻」，「発音時間」，「音高」，「パート」，「音量」，「運指」，「両手協調タイプ」のデータからなる。
【００２９】
ここで、「パート」とは、右手パートまたは左手パートのことである。お手本ピアノロールデータ１３ａでは、曲データによって、音符毎に左右のパートが予め決められている。一方、ユーザによる押鍵入力では、左右どちらで弾いたかは分からない。そこで、ある再生時刻における押鍵入力に対しては、その時刻のお手本ピアノロールデータ１３ａの音符のパートを参照して、左右どちらのパートかを推定した結果をセットしていくものとする。
【００３０】
また、「両手協調タイプ」とは、右手パートと左手パートとの関係性を示すフラグのことであり、後述する発音タイプ別に設定される。
【００３１】
なお、入力ピアノロールデータに関しては、ユーザの押鍵入力による音符データを確定するまでの間（ノートオン／オフが確定するまでの間）、一時的に音符データを保存しておくための一時保存入力ピアノロールデータ１３ｃがある。データ構成については入力ピアノロールデータ１３ｂと同様である。入力ピアノロールデータ１３ｂが入力確定後のデータとして用いられるのに対し、一時保存入力ピアノロールデータ１３ｃは入力が確定するまでの一時保存用として用いられる。
【００３２】
（小節データ）
図６は小節データ１３ｄの構成を示す図である。
【００３３】
小節データ１３ｄは、曲データを小節単位で管理しているデータであり、「開始時刻」，「拍分子」，「拍分母」，「調」のデータからなる。「開始時刻」は、当該小節の部分の再生が開始されたときの時刻である。ピアノロールデータは小節単位で呼び出すことができるので、その小節毎の開始時刻がセットされる。
【００３４】
なお、拍データについて予め設定されていても良いし、プログラム的にその都度算出してセットしても良い。この拍データはピアノロールに拍を反映させる場合に用いる。
【００３５】
（入力音符データ）
図７は入力音符データ１３ｅの構成を示す図である。
【００３６】
入力音符データ１３ｅは、ユーザの押鍵入力によって生成される音符データである。この入力音符データ１３ｅは、例えば、所定数（最大音符保存数）の音符エリアを有する、リングバッファ形式のバッファに所定のデータ形式で格納される。
【００３７】
なお、図中の「システム時刻」は現在の時刻（リアルタイム）を表し、「再生時刻」は再生開始からカウンタされる相対時刻を表している。「システム時刻」はノートオン／オフが完了した音符なのか、ノートオン継続中の音符なのかを判別するときに参照される（図２２参照）。
【００３８】
（音高パートデータリスト）
図８は音高パートデータリスト１３ｆの構成を示す図である。
【００３９】
音高パートデータリスト１３ｆは、曲データに対する音高パートのデータリストである。例えば、現在再生されている楽曲の部分の前後数小節にある各音符を、右手と左手のどちらで押鍵するのかが以下のようなパートフラグで示されている。
【００４０】
・パートフラグ０：所定範囲内で演奏されない音高を表す。  
・パートフラグ１：右手パートの音高を表す。  
・パートフラグ２：左手パートの音高を表す。  
・パートフラグ３：左右の両パートが混在している音高を表す。
【００４１】
この音高パートデータリスト１３ｆは、電子楽器２０の音高数に合わせて用意されている。つまり、電子楽器２０の鍵盤２１に８８個の鍵が設けられていれば、音高パートデータリスト１３ｆは各鍵に対応させて８８個のデータで構成されることになる。
【００４２】
なお、この音高パートデータリスト１３ｆは、特にピアノロールでは使用しないが、ユーザに鍵盤２１上で押鍵すべき鍵を明示する場合に利用できる。すなわち、音高パートデータリスト１３ｆを例えば２小節分用意しておけば、曲データに合わせて鍵盤２１上で次に押鍵すべき鍵を２小節前から左右パート別にユーザに明示することができる。明示の方法としては、例えば鍵盤２１の各鍵にＬＥＤ（light emitting diode）等の発光部を設けておき、曲データの再生に合わせて各鍵に対応した発光部を左右パート別に発光する方法などがある。
【００４３】
ここで、本システムの動作を説明する前に理解を容易にするため、本発明の演奏表示方法について具体例を挙げて説明する。
【００４４】
図９は楽譜の一例を示す図である。図１０はピアノロール形式の演奏練習画面の一例を示す図である。
【００４５】
いま、図９に示すような楽譜に書かれた曲データを再生・練習する場合を想定する。この曲データは右手パート（高音部）と左手パート（低音部）に分けられている。この曲データのピアノ演奏を練習する場合に、ＰＣ１０の表示部１５に図１０に示すようなピアノロール形式の演奏練習画面３０が表示される。
【００４６】
この演奏練習画面３０の縦方向は時間軸（曲の進行）、横方向は音階を表しており、曲データの各音の構成を視覚的に把握できる構成になっている。
【００４７】
図中の３１は鍵盤画像である。この鍵盤画像３１は、曲データの最低音から最高音を包含する音域の鍵盤を模式化した画像であり、演奏練習画面３０の最下部にユーザが実際の鍵盤を見下ろしたようなイメージで横向きに表示されている。
【００４８】
図中の３２はピアノロール表示エリアであり、４つの小節区分エリア３２ａ〜３２ｄで構成されている。また、図中の３３は現在の再生位置(小節）を示すカーソルであり、３４が押鍵位置（再生位置）を示すカーソルバーである。
【００４９】
曲データを再生すると、ピアノロール表示エリア３２の小節区分エリア３２ａ〜３２ｄにリング状の押鍵マーク３５を有するピアノロール４０が小節単位で表示される。押鍵マーク３５は、押鍵の位置とタイミングを示すマークである。この押鍵マーク３５には、音符の長さを表す縦長の音長バー３６が付されている。なお、この押鍵マーク３５と音長バー３６を含んだピアノロール４０は、図４のお手本ピアノロールデータ１３ａに基づいて演奏のお手本用として表示される。
【００５０】
図１０の例では、図９に示した楽譜の９小節目〜１２小節目に対応したピアノロール４０が表示されている。曲データの再生に伴い、ピアノロール４０の表示内容は順次更新される。
【００５１】
図１１乃至図１３は本システムにおけるカーソル移動とピアノロールの表示更新との関係を示す図である。
【００５２】
曲データの再生を開始すると、ピアノロール表示エリア３２には、最初の所定小節（４小節）分のピアノロール４０が表示される。この場合、再生開始小節を１小節目としていれば、図１１に示すように、「１・２・３・４」の各小節に対応したピアノロール４０が表示されることになる。
【００５３】
ここで、再生開始時において、カーソル３３は第１の小節区分エリア３２ａに位置しており、再生開始小節（図１１の例では１小節目）を示している。曲データの再生に伴い、カーソル３３が１小節ずつ上に移動するが、２小節分を移動するまでの間は、ピアノロール４０の表示範囲は更新されない。つまり、図１２に示すように、カーソル３３が第３の小節区分エリア３２ｃに移動するまでは、ピアノロール４０は最初の４小節分「１・２・３・４」を表示している。
【００５４】
その後、ピアノロール４０は、「２・３・４・５」、「５・６・７・８」…といったように１小節単位で順次更新される。すなわち、再生・演奏が１小節進行するたびに、ピアノロール４０の最下段３２ａにあった小節区分が消去され、小節区分３２ｂから３２ｄが一小節分ずつ下へ移動されて小節区分３２ａから３２ｃに表示され、小節区分３２ｄに、現在の小節（３２ｃに移動された小節）の次の小節の曲データが新たに表示される。
【００５５】
このとき、カーソル３３はピアノロール４０の中央付近つまり第３の小節区分エリア３２ｃの位置で固定される。図１３の例は、「５・６・７・８」の４小節分が表示された状態である。このとき、カーソル３３は第３の小節区分エリア３２ｃの位置にあり、７小節目を示している。
【００５６】
このように、カーソル３３をピアノロール４０の中央付近に設定しておくことで、これから演奏すべき楽譜と演奏後の過去の楽譜とを対比させて同一画面上で確認できるといった利点ある。
【００５７】
なお、本実施形態では、図１１に示したように、再生開始時にはカーソル３３を最下段の第１の小節区分エリア３２ａに設定してから上に移動させているが、例えば演奏開始小節を第３の小節区分エリア３２ｃに表示して（その場合、第１の小節区分エリア３２ａと第２の小節区分エリア３２ｂは空白となる）、その位置にカーソル３３を固定的に表示するようにしても良い。
【００５８】
また、ピアノロール４０は小節単位で更新されるが、もっと細かい単位で更新すれば、上から下へと流れるスクロール表示のようにスムーズに更新することも可能である。具体的には、曲データの再生・演奏中に、リアルタイムで現在の再生・演奏中の時刻からプラス・マイナス所定秒（またはプラスマイナス所定小節分）の曲データの範囲をピアノロール４０上に表示することとすれば良い。
【００５９】
ユーザが押鍵するタイミングは、カーソルバー３４の位置にピアノロール４０の押鍵マーク３５が表示されたときである。また、押鍵の操作時間は当該押鍵マーク３５に付された縦長の音長バー３６で指示されている。つまり、カーソルバー３４の位置に音長バー３６が表示されている間は押鍵を続け、音長バー３６が消えたときに離鍵することで、音符と同じ長さで弾くことができる。
【００６０】
ここで、本システムでは、曲データを構成する各音を左右パート別に分類し、その分類結果に基づいて押鍵マーク３５の表示色を各パートの発音タイミングの関係に応じて変えている。「発音タイミング」は、以下のように３種類に分けられる。
【００６１】
・左右同時発音  
右手パートの音と左手パートの音を同時に発音する。  
・片方継続、片方発音  
右左の一方のパートの音を発音中（押鍵中）に他方のパートの音を発音する。  
・片方のみ発音  
右左の一方のパートの音だけを発音する。
【００６２】
押鍵マーク３５は、上記３つの発音タイミングに対応した色で表示される。具体的には、例えば「左右同時発音」のときに赤色、「片方継続、片方発音」のときに黒色、片方のみ発音のときに緑色で表示される。なお、図面上では色の違いを表現できないので、便宜的にハッチングのパターンを変えることで色の違いを表現している。
【００６３】
このように、押鍵マーク３５を発音タイミング別に色分けしておくことで、演奏者であるユーザは、この押鍵マーク３５の色を見ながら左右のパートの発音タイミングや離鍵タイミングを意識して演奏練習を行うことができる。
【００６４】
図１４は演奏練習中の演奏練習画面３０の状態を示している。図中の４２はお手本のピアノロール４０に対し、ユーザの押鍵入力を反映させたピアノロールである。
【００６５】
すなわち、ユーザがカーソルバー３４の位置でピアノロール４０の押鍵マーク３５に合わせて押鍵すると、円形状の入力マーク３７がピアノロール４０上に表示される。押鍵のタイミングが合っていれば、演奏のお手本として表示されているリンク状の押鍵マーク３５の中央部に入力マーク３７が重ねられ、１つの円マークとして表示されることになる。
【００６６】
図１５は本システムの押鍵マーク３５と入力マーク３７を拡大して示す図である。
【００６７】
入力マーク３７（内側の円）は、ユーザの押鍵入力のタイミングと音高を示すマークである。この入力マーク３７についても上記発音タイミング別に色表示される。例えばユーザの押鍵入力による発音タイミングが「左右同時発音」であれば、赤色の入力マーク３７が表示されることになる。このとき、押鍵マーク３５（外側の円）の表示色と一致すれば、正しい発音タイミングであることを意味する。逆に、押鍵マーク３５の表示色と違えば、発音タイミングが誤っていることを意味する。
【００６８】
また、この入力マーク３７には、ユーザの押鍵から離鍵までの長さを表わす縦長の音長バー３８が付加されている。この入力マーク３７に付加された音長バー３８が押鍵マーク３５の音長バー３６の長さと一致していれば、音長（つまり発音時間）が正しいことを意味する。逆に、音長バー３６の長さと違えば、音長が誤っていることを意味する。
【００６９】
図１６および図１７に押鍵マーク３５と入力マーク３７との関係を示す。  
図１６は押鍵マーク３５と入力マーク３７の表示色の組み合わせを示す図である。なお、図面上では表示色を表現できないため、便宜的に色を示す記号を付しておく。図中のＲは赤色、Ｂは黒色、Ｇは緑色であることを示す。図１７は押鍵マーク３５と入力マーク３７の表示色の組み合わせの意味を説明するための図である。
【００７０】
押鍵マーク３５と入力マーク３７が同じ色で表示されていれば、ユーザが正しく押鍵したことになる。一方、押鍵マーク３５と入力マーク３７が押鍵マーク３５と入力マーク３７が異なる色で表示されていれば、ユーザが誤った押鍵をしたことになる。その際、表示色の違いから、どのように発音を間違ったのかを視覚的に判断することができる。
【００７１】
この場合、図１４に示すように、カーソル３３はピアノロール４０の中央付近つまり第３の小節区分エリア３２ｃの位置にある。したがって、ユーザが演奏のお手本として表示されたピアノロール４０を参考にしてカーソル３３の位置で実際に押鍵入力したときに、画面の下半分（小節区分エリア３２ａ〜３２ｂの範囲）で、その押鍵入力した結果を確認することができるとともに、画面の上半分で、これから演奏すべき音とタイミングを確認することができる。
【００７２】
なお、実際にはピアノロール４０上の押鍵マーク３５がカーソルバー３４に到達したタイミングで正確に押鍵入力することは難しく、多少の時間ずれが生じる。そこで、「クォンタイズ（quantize）」の機能を利用して、多少の時間ずれであれば、ジャストのタイミングで入力したとみなして、押鍵マーク３５と入力マーク３７を重ねて表示するものとする。
【００７３】
また、同様に、左手と右手の各パートの発音タイミングの関係についても、両手が完全に同一のタイミングで押鍵することは困難であるので、押鍵入力の時刻にクォンタイズをかけて、多少の時間ずれであれば同一のタイミングで押鍵された等と判定するようにする。クォンタイズとしては、曲の最小音符やテンポ、さらには演奏者の習熟度等にもよるが、例えば、１６分音符、３２分音符、６４分音符などの細かさでクォンタイズし、これより小さい時間ずれは無視するようにすることができる。
【００７４】
次に、本システムの動作について、（ａ）メイン処理、（ｂ）両手協調タイプ設定処理、（ｃ）ピアノ演奏練習処理に分けて説明する。なお、以下のフローチャートで示される処理は、ＰＣ１０に設けられたＣＰＵ１１がＲＯＭ１２に記憶されたプログラム１２ａを読み込むことにより実行される。
【００７５】
（ａ）メイン処理
図１８は本システムにおけるＰＣ１０（ＣＰＵ１１）によって実行されるメイン処理を示すフローチャートである。
【００７６】
ＣＰＵ１１は、演奏対象となる楽曲の曲データを読み込むと（ステップＡ１０）、以下のような処理を実行する。なお、曲データは、予めＲＡＭ１３などに記憶されていても良いし、電子楽器２０あるいは図示せぬ外部機器から入力されることでも良い。
【００７７】
まず、ＣＰＵ１１は、曲データを構成する各音を左右のパート別に分類し、その分類結果に基づいて両手協調タイプ（左右パートの関係性を示すフラグ）を図４のお手本ピアノロールデータ１３ａの「両手協調タイプ」の記憶エリアにセットする（ステップＡ１１）。詳しい処理については、後に図１９を参照して説明する。
【００７８】
ここで、ユーザの指示に従ってピアノロールの作成開始小節と終了小節がセットされる（ステップＡ１２）。ＣＰＵ１１は、そのセットされた小節範囲分のお手本ピアノロールデータ１３ａを参照し、これをＲＡＭ１３の所定のエリアに展開しながら、図１０に示したような演奏練習画面３０を表示部１５に表示し、ユーザにピアノ演奏を練習させる。詳しい処理については、後に図２０を参照して説明する。
【００７９】
ユーザにより練習場所（ピアノロールの範囲）の変更指示があると（ステップＡ１４のＹｅｓ）、ＣＰＵ１１は、その変更指示に従って上記ステップＡ１２に戻り、ピアノロールの作成開始小節と終了小節をセットし直してから、以後の処理を繰り返す。以降、ユーザにより終了指示があるまではステップＡ１３以降の一連の処理を繰り返し（ステップＡ１５のＮｏ）、ユーザにより終了指示があると（ステップＡ１５のＹｅｓ）、ＣＰＵ１１は、ここでの一連の処理を終了する。
【００８０】
なお、ユーザの指示は、ＰＣ１０に備えられた入力部１４などを通じて行われるものとする。
【００８１】
（ｂ）両手協調タイプ設定処理
図１９は上記図１８のステップＡ１１で実行される両手協調タイプ設定処理を示すフローチャートである。
【００８２】
まず、ＣＰＵ１１は、曲データを構成する各音を左右のパート別に分類する（ステップＢ１１〜Ｂ１６）。詳しくは、音符インデックスｉをインクリメントしながら、演奏対象として与えられた曲データのｉで示される音符が右手パートであるか左手パートであるかを調べ、図示せぬ音符インデックスリスト（右）と音符インデックスリスト（左）に振り分けていく。
【００８３】
最後の音符（ｉ＝音符数−１）まで調べた後（ステップＢ１６のＹｅｓ）、ＣＰＵ１１は、これらの音符に対して両手協調タイプ（左右パートの関係性を示すフラグ）を設定していく（ステップＢ１７〜Ｂ２０）。詳しくは、まず、インデックスｊを初期化し（ステップＢ１７）、ステップＢ１８で、音符インデックスリスト（右）を参照して右手パートのｊ番目の音符を基準にし、そのｊで示される右手パートの音符に対する左手パートの音符との関係を調べる。そして、両手協調タイプとして「左右同時発音」，「片方継続、片方発音」，「片方のみ発音」のいずれかのフラグを設定する。
【００８４】
なお、この場合、上述で基準としたｊ番目の右手の音符に両手協調タイプを設定するとともに、両手協調タイプが「左右同時発音」だった場合は、対象となった左手パートの音についても両手協調タイプを設定する。この処理を、音符インデックスリスト（右）のインデックスｊをインクリメントしながら（ステップＢ１９）、音符インデックスリスト（右）の全音符についてループする（ステップＢ２０のＮｏ）。その後（ステップＢ２０のＹｅｓ）、さらに左手パートの音符に対する右手パートの音符との関係を調べてフラグを再設定する。
【００８５】
この場合、右手パートの音符を基準にしてフラグを設定しているので、ステップＢ１８からステップＢ２０の一連のループ処理を終了した時点で（ステップＢ２０のＹｅｓ）、右手パートに音がなく左手パートに音符がある部分については、その左手パートの音符には何も設定されていない状態にある。そこで、音符インデックスリスト（右）にセットされた音符数分の処理を終えたときに（ステップＢ２０のＹｅｓ）、ＣＰＵ１１は、何も設定されなかった左手パートの音符に対して「片方のみ発音」のフラグを設定する（ステップＢ２１）。
【００８６】
このようにして、演奏対象として与えられた曲データに対応した両手協調タイプ付きのお手本ピアノロールデータ１３ａが生成される（図４参照）。
【００８７】
（ｃ）ピアノ演奏練習処理
図２０は上記図１８のステップＡ１３で実行されるピアノ演奏練習処理を示すフローチャートである。このピアノ演奏練習処理は、ユーザによる再生開始から終了の指示（ステップＡ１５）があるまでの間、繰り返し実行される。
【００８８】
まず、ＣＰＵ１１は、再生コントロールを行う（ステップＣ１１）。再生コントロールとは、ユーザの指示に従って曲データの再生、停止、小節スキップ、先頭に戻るなど、再生時刻に関連した処理を行うもの等である。なお、再生処理は一般的なので、その詳しい説明は省略する。また、再生処理自体は別のスレッドで行われていて、本フローチャート上での再生時刻はそのスレッドから随時更新されているものとし、各処理での再生時刻は最新の時刻を用いることができるものとする。
【００８９】
次に、ＣＰＵ１１は、表示部１５にピアノロール形式の演奏練習画面３０を表示する（ステップＣ１２）。図１０に示したように、この演奏練習画面３０には、鍵盤画像３１とピアノロール表示エリア３２が設けられている。
【００９０】
ＣＰＵ１１は、現在時刻から現在演奏・再生中の小節番号を特定し、表示する小節の番号を所定小節数により決定し、図示せぬ表示小節番号リストに保存する（ステップＣ１３）。この表示小節番号リストは、例えばＲＡＭ１３のワークエリアに設けられる。
【００９１】
例えば、ピアノロール表示エリア３２に一度に表示できる小節数が４小節であれば、現在時刻から求めた再生中小節番号の前２小節（図１３の３２ａ、３２ｂに表示する小節）、および後１小節（図１３の３２ｄに表示する小節）の範囲の４小節を表示小節番号リストに保存する。
【００９２】
なお、ユーザによる再生開始の指示を受けた直後であれば、ユーザが指定した再生開始小節を基準にして、そこから前２小節および後１小節の計４小節分の番号を表示小節番号リストに保存することになる。
【００９３】
また、このときに、ＣＰＵ１１は、現在時刻に属する小節とその次の小節の少なくとも２小節分のパート情報（右手パート／左手パート）をお手本ピアノロールデータ１３ａから読み出し、音高パートデータリスト１３ｆにセットする（ステップＣ１４）。
【００９４】
図８で説明したように、この音高パートデータリスト１３ｆを例えば２小節分用意してあらかじめ表示するようにしておけば、鍵盤２１上で次に押鍵すべき鍵を２小節前から左右パート別にユーザに明示することができる。
【００９５】
（お手本ピアノロール表示処理）
次に、ＣＰＵ１１は、図２１に示すようなお手本ピアノロール表示処理を実行し、演奏練習画面３０に設けられたピアノロール表示エリア３２にピアノロール４０の表示を行う（ステップＣ１５）。
【００９６】
図２１は上記図２０のステップＣ１５で実行されるお手本ピアノロール表示処理を示すフローチャートである。
【００９７】
まず、ＣＰＵ１１は、ｉをピアノロールを表示するうちの先頭の小節の小節番号にする。具体的には、ｉ＝「表示小節番号リストに保存された最小の小節番号」に初期化した状態で処理を開始する（ステップＤ１１）。ＣＰＵ１１は、そのｉで示される小節に対応したお手本ピアノロールデータ１３ａを取得し（ステップＤ１２）、当該小節ｉに存在する各音符の発音時刻と発音時間長を演奏練習画面３０の座標データに変換する（ステップＤ１３）。
【００９８】
ＣＰＵ１１は、その座標変換された各音符の発音時刻と発音時間長に基づいて、演奏練習画面３０のピアノロール表示エリア３２に各音符の音長を表示すると共に（ステップＤ１４）、発音タイミングと両手協調タイプを表示する（ステップＤ１５）。
【００９９】
具体的には、各音符の発音時刻と発音時間に基づいて演奏練習画面３０のピアノロール表示エリア３２に各音符を表わすリング形状の押鍵マーク３５と縦長の音長バー３６を表示し、その押鍵マーク３５を両手協調タイプに応じた色で表示する。図１６および図１７に示したように、例えば両手協調タイプが「左右同時発音」のときに赤色、「片方継続、片方発音」のときに黒色、片方のみ発音のときに緑色で押鍵マーク３５が表示される。
【０１００】
ｉをインクリメントしながら（ステップＤ１６）、ｉの値が上記表示小節番号リストの要素のうち最大の小節番号まで処理が終了するまで、上記同様の処理を繰り返す（ステップＤ１７）。ここでは、４小節分の処理が行われるまで一連の処理を繰り返す。これにより、ピアノロール表示エリア３２に所定小節数分のピアノロール４０が表示されることになる。このピアノロール４０の表示は小節単位で順次更新され、上記図１８のステップＡ１２でユーザが指定した終了小節まで再生・演奏が完了するまで順次表示されることになる。
【０１０１】
（入力ピアノロール生成処理）  
演奏者であるユーザは、演奏練習画面３０のピアノロール表示エリア３２に表示されたピアノロール４０を見ながら、電子楽器２０の鍵盤２１を押鍵してピアノ演奏の練習を行う。このときの押鍵入力された信号はＭＩＤＩインタフェース１６を介してＣＰＵ１１に与えられる。これにより、ＣＰＵ１１では、入力ピアノロール生成処理を実行する（ステップＣ１６）。
【０１０２】
この「入力ピアノロール生成処理」は、ユーザの押鍵操作によって入力された音符をピアノロールに反映させるためにある。入力ピアノロールデータは、図５で説明したように、入力ピアノロールデータ１３ｂと一時保存入力ピアノロールデータ１３ｃの２種類が用意されている。一時保存入力ピアノロールデータ１３ｃは、入力ピアノロールデータ１３ｂと同じデータ構造であり、ユーザによる押鍵中の音を一時的に記憶するリストとして用いられる。これに対し、入力ピアノロールデータ１３ｂは、入力確定リストとして用いられる。なお、一時保存入力ピアノロールデータ１３ｃは、電子楽器２０の鍵盤２１の鍵盤数と同数用意しておけば、全ての鍵の押鍵に対応することができる。
【０１０３】
一方、一時保存入力ピアノロールデータ１３ｃのバッファ数として、いわゆるシンセサイザーの同時発音ポリフォニック数の考えにならって、想定される同時発音数分用意しておくこととしても良く。このようにすることで、極めて短い間に複数回の打鍵がなされたような場合でも対応できる。以下では、前者の鍵盤２１の鍵盤数と同数のバッファがあるものとして説明する。
【０１０４】
ノートオン信号が入力されると、入力音符データの構造を持つバッファを経由して、演奏された音の情報が取得され、一時的なリスト（一時保存入力ピアノロールデータ１３ｃ）の入力音高に対応する場所（バッファ）に発音時刻、推定パート、音量、さらに、両手協調タイプが入力される。ノートオン継続状態では、一時的なリストで、入力音高に対応する場所の発音時間に、現在の再生時刻に基づいて算出される押鍵時間に対応する値が代入され続ける。
【０１０５】
ここで、ノートオフ信号が入力されると、一時的なリストで入力音高に対応するアドレスの発音時間が確定し、入力確定リスト（入力ピアノロールデータ１３ｂ）にコピーされる。このとき、一時的なリストの入力音高に対応する場所のデータを初期化しておく。
【０１０６】
このような処理は、継続中の音を表示しながら、ノートオフ後の音も表示するためにある。図２２を参照して詳しく説明する。
【０１０７】
図２２は上記図２０のステップＣ１６で実行される入力ピアノロール生成処理を示すフローチャートである。
【０１０８】
まず、電子楽器２０の鍵盤２１のそれぞれについて、ノートオン・オフの状態を検索するために、入力音符ポインタｉ＝０に初期化した状態で（ステップＥ１１）、ＣＰＵ１１は、ノートオン信号が検出されたか否かを判断する（ステップＥ１２）。ノートオン信号が入力された場合、つまり、ユーザが鍵盤２１上の鍵を押鍵した場合（ステップＥ１２のＹｅｓ）、ＣＰＵ１１は、一時保存入力ピアノロールデータ１３ｃの入力音高に対応する場所に発音時刻、推定パートをセットする（ステップＥ１３）。
【０１０９】
このときの「発音時刻」は、再生時の時間を基準にした押鍵時の時刻をセットする（図７の入力音符データ１３ｅの「ノートオン時の再生時刻」）
また、図５で説明したように、ユーザによる押鍵入力では、左右どちらで弾いたかは分からない。そこで、その再生時刻におけるお手本ピアノロールデータ１３ａの音符のパートを参照して、左右どちらのパートかを推定した結果を「推定パート」としてセットする。
【０１１０】
次に、ＣＰＵ１１は、ノートオンされた音符（入力音高）と一時保存入力ピアノロールデータ１３ｃの全ての音符とを比較して両手協調タイプを判断し、その両手協調タイプを示すフラグを一時保存入力ピアノロールデータ１３ｃにセットする（ステップＥ１４）。
【０１１１】
この場合、同じ発音時刻に他方のパートの音符がなければ、両手協調タイプとして「片方のみ発音」のフラグがセットされる。同じ発音時刻に他方のパートの音符があれば、両手協調タイプとして「左右同時発音」のフラグがセットされる。また、他方のパートの音符があり、その音符の発音時間内に当該パートの音符が発音されたのならば、両手協調タイプとして「片方継続、片方発音」のフラグがセットされる。
【０１１２】
なお、実際には、入力音符ポインタｉを順に更新しながら、鍵一つ一つを順に調べることとなる。このため、同時に発音されている鍵のうち、先に調査された鍵については、一旦「片方のみ発音」のフラグがセットされるが、その後に調査された鍵について、同時刻の押鍵であると判断された場合は、これら両方の音高（鍵）について、「左右同時発音」のフラグを立てるようにする。
【０１１３】
また、すでに述べた通り、両手が完全に同一のタイミングで押鍵することは困難であるので、押鍵入力の時刻にクォンタイズをかけて、多少の時間ずれであれば、同一のタイミングで押鍵されたと判定するようにする。
【０１１４】
このようにして、ノートオン時に一時保存入力ピアノロールデータ１３ｃの入力音高に対応する場所に発音時刻、推定パート、音量、さらに、両手協調タイプがセットされる。また、ＣＰＵ１１は、現在時刻（システム時刻）をノートオン時刻として図示せぬ作業用一時保存バッファエリアにセットする（ステップＥ１５）。
【０１１５】
ＣＰＵ１１は、入力音符ポインタｉをインクリメントしながら、電子楽器２０の鍵盤２１のそれぞれについて、同様の処理を行ってノートオン・オフの状態を検索する（ステップＥ１６，Ｅ１７）。
【０１１６】
一方、ＣＰＵ１１は、入力音符ポインタｉで示される現在対象となっている鍵について、ノートオンイベントが検出されなかった場合（ステップＥ１２のＮｏ）、入力音符ポインタｉで示される鍵盤が前回以降引き続いてオン状態（押鍵状態）が継続している状態であるか否かを判別する（ステップＥ１８）。
【０１１７】
ノートオン継続中の音符であれば（ステップＥ１８のＹｅｓ）、ＣＰＵ１１は、一時保存入力ピアノロールデータ１３ｃにセットされた当該音符の発音時刻を読み出し、その発音時刻と現在時刻（システム時刻）の差分から発音時間（発音継続時間長）を計算し、一時保存入力ピアノロールデータ１３ｃにセットする（ステップＥ１９）。また、ＣＰＵ１１は、図示せぬ作業用一時保存バッファエリアにオン継続時刻を一時保存しておく（ステップＥ２０）。
【０１１８】
また、ＣＰＵ１１は、入力音符ポインタｉで示される現在対象となっている鍵について、ノートオン継続中でなかった場合（ステップＥ１８のＮｏ）、入力音符ポインタｉで示される現在対象となっている鍵についてノートオフが検出されたか否かを判別する（ステップＥ２１）。
【０１１９】
ノートオフされたことが検出されると（ステップＥ２１のＹｅｓ）、ＣＰＵ１１は、一時保存入力ピアノロールデータ１３ｃに一時保存された当該音符の発音時間を確定する。この時点で当該音符のノートオン／オフ時刻および発音時間が確定したので、ＣＰＵ１１は、一時保存入力ピアノロールデータ１３ｃのデータを確定データとして入力ピアノロールデータ１３ｂにコピーし、一時保存入力ピアノロールデータ１３ｃの方は初期化しておく（ステップＥ２２）。また、ＣＰＵ１１は、図示せぬ作業用一時保存バッファエリアにノートオフ時刻を一時保存しておく（ステップＥ２３）。
【０１２０】
このようして、ユーザが押鍵入力した音符に関する入力ピアノロールデータ１３ｂが生成される。この入力ピアノロールデータ１３ｂは、ユーザが押鍵入力した音符の位置とタイミングを示す入力マーク３７と音長を表わす音長バー３８を表示するために用いる。
【０１２１】
図２０に戻って、ＣＰＵ１１は、入力ピアノロールデータ１３ｂの入力音符の発生時刻と音高のデータに基づいて円形状の入力マーク３７を演奏練習画面３０のピアノロール表示エリア３２の中の該当する位置に表示する。
【０１２２】
また、ＣＰＵ１１は、入力ピアノロールデータ１３ｂの両手協調タイプのフラグに基づいて発音タイプを判断し、その発音タイプに応じた色で入力マーク３７を着色する（ステップＣ１７）。さらに、ＣＰＵ１１は、入力ピアノロールデータ１３ｂの入力音符の発音時間のデータに基づいて、押鍵から離鍵までの長さを表す音長バー３８を当該入力マーク３７に付加して表示する（ステップＣ１８）。
【０１２３】
この状態が図１４である。  
ユーザが押鍵入力した音符の入力マーク３７と音長バー３８がピアノロール４０上に表示されている。ユーザがピアノロール４０を見ながら、正しい押鍵の位置で正しく押鍵していれば、押鍵マーク３５と入力マーク３７が重なって１つの円の形で表示されることになる。
【０１２４】
一方、音高を間違えたり、弾くべきでないタイミングで押鍵してしまった場合は、押鍵マーク３５や音長バー３６が存在しない位置に入力マーク３７が表示されてしまうため、ユーザは誤った押鍵であったことを直ちに容易に認識することができる。
【０１２５】
また、発音タイプが正しければ、押鍵マーク３５と同じ色で入力マーク３７が表示される。押鍵マーク３５と違う色で入力マーク３７が表示されていれば、図１６および図１７に示したように、押鍵マーク３５と入力マーク３７の色の組み合わせから、左右のパートをどのように間違えて演奏したのかを即座に把握することができる。また、押鍵マーク３５に付された音長バー３６と入力マーク３７に付された音長バー３８の長さを比較すれば、音長についても確認することができる。
【０１２６】
演奏練習画面３０において、ピアノロール４０は小節単位で順次表示される、ＣＰＵ１１は、このようなピアノロール４０の表示に連動させてカーソル３３を表示する（ステップＣ１９）。
【０１２７】
この場合、図１１乃至図１３で説明したように、再生開始時にはピアノロール４０は最下段の第１の小節区分エリア３２ａより再生開始小節から順に表示され、その位置にカーソル３３が設定される。ＣＰＵ１１は、曲データの再生に伴い、カーソル３３を１小節ずつ上に移動させ、２小節分を移動させた時点で固定し、ピアノロール４０の方を１小節単位で順次更新表示する。したがって、ユーザは現在のカーソル３３の位置で、これから演奏すべき楽譜と演奏後の過去の楽譜とを対比させて同一画面上で確認しながら練習を続けることができる。
【０１２８】
以上のように本実施形態によれば、発音タイプ別に表示形態（具体的には表示色）を変えた押鍵マーク３５を有するピアノロール４０が演奏練習画面３０に表示され、そのピアノロール４０上に演奏者の押鍵入力による入力マーク３７を上記発音タイプ別に表示形態を変えて表示される。
【０１２９】
したがって、ピアノロール４０の表示により曲全体の流れを把握でき、また、押鍵マークと入力マークの表示形態を対比することで、発音タイプの面からも演奏者の演奏が正しく演奏できていたかどうかを画面表示によって直ちに容易に確認することができる。
【０１３０】
また、演奏者がピアノロール４０の押鍵マーク３５を参考にして押鍵入力したときに、押鍵マーク３５と入力マーク３７との重ね合わせ状態から右手パートの音と左手パートの音を正しく押鍵できたのかを確認することができる。
【０１３１】
また、ピアノロール４０上の押鍵マーク３５には曲データの各音の長さを表わす音長バー３６が付加されており、演奏者が押鍵入力したときに入力マーク３７に付加される音長バー３８と対比させることで、音長を含めて確認することができる。
【０１３２】
また、図１１乃至図１３に示したように、曲データの再生に同期させてピアノロール４０の表示を小節単位で更新させたときに、現在の再生位置を示すカーソル３３をそのピアノロール４０の中央付近に設定しておくことで、これから演奏すべき楽譜と演奏後の過去の楽譜とを同一画面上で確認できる。
【０１３３】
したがって、ユーザは、これからすぐ後に弾くべき音のピアノロールと、直前に弾いた押鍵の結果とを、同一画面上で確認でき、例えばユーザが押鍵をミスした場合にどのようにミスしたのかを演奏中に確認することができる。
【０１３４】
なお、ここで演奏した結果は履歴データとしてＲＡＭ１３などに保存しておくことができる。したがって、後にその履歴データを再生表示すれば、演奏が終了した後に改めて自己の演奏を視認可能な形で振り返って、ミスした箇所を詳しく検証することができる。
【０１３５】
また、発音タイプ（「左右同時発音」，「片方継続、片方発音」，「片方のみ発音」）に応じて押鍵マーク３５と入力マーク３７の表示色を変えることで、両者の色の組み合わせてから発音タイプが一致しているか否かを即座に判断することができる。
【０１３６】
また、本発明は、３パート以上を有する曲データに対しても適用可能である。例えば右手・左手パートの他に足鍵盤を有する電子オルガンや、種々の楽器がネットワークで接続された合奏形式の場合であっても適用が可能である。このような場合、例えば、３パートであれば、発音タイプとしては、３パート同時発音、２パート同時発音、単独発音、他パート発音中に発音、などのように分類分けして、押鍵マーク３５と入力マーク３７の表示色等を変えるようにすることが可能である。この場合、さらに具体的に２パート同時発音のケースを右と左、右と足、左と足、等に細分類したり、他の場合も同様に細分類して表示色等を変化させることが可能である。
【０１３７】
この場合、押鍵マーク３５をリング形状とし、入力マーク３７をそのリング穴に合わせた円形状にして、演奏者による押鍵入力が正しい場合に押鍵マーク３５と入力マーク３７とを重ねて１つの同一色の円として表示するようにしている。したがって、押鍵入力の正誤をマークの合成形状から把握しやすく、常に同一色の円になるように押鍵入力することで、正しい演奏を行うことができる。
【０１３８】
また、表示形態については適宜他のものを用いても良い。例えば、形状を四角や三角等の多角形にすることも可能であるし、上記の発音タイプを表示色でなく、内部の模様によって区別することとしても良い。また、円の内側がお手本で外側が実際の演奏としてもよい。さらに、隣接した２つの矩形などの図形で、一方がお手本、他方が実際の演奏などとして表示することも可能である。
【０１３９】
上記の実施形態では、発音タイプ（両手協調タイプ）として「左右同時発音」，「片方継続、片方発音」，「片方のみ発音」の三種を例示したが、これに限られず、種々のタイプを設定することが可能である。タイプの種別数についても、三種では無く、これより多い場合や少ない場合も可能である。
【０１４０】
また、種別を一種類とすれば、例えば、「左右同時発音」の場合に赤のリングを表示しておき、実際の演奏が正しく「左右同時発音」だった場合には中心も赤丸となる一方、実際の演奏が「左右同時発音」にならなかった場合は、空白のままあるいは別の色（黒等）で内部を表示するようにすれば、よりシンプルな表示で本発明を実施することが可能である。
【０１４１】
要するに、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【０１４２】
さらに、上述した実施形態において記載した手法は、コンピュータに実行させることのできるプログラムとして、例えば磁気ディスク（フレシキブルディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリなどの記録媒体に書き込んで各種装置に適用したり、通信媒体により伝送して各種装置に適用することも可能である。本装置を実現するコンピュータは、記録媒体に記録されたプログラムを読み込み、このプログラムによって動作が制御されることにより、上述した処理を実行する。
【０１４３】
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。  
［１］
曲データを構成する音ごとに、当該音の属するパートと他のパートとの関係から発音タイプを設定する発音タイプ設定手段と、
上記発音タイプ設定手段によって設定された発音タイプに応じた表示形態のお手本マークを配置したピアノロールを表示手段に生成表示させるピアノロール表示処理手段と、
上記曲データの再生時に、演奏者により入力された演奏音の音高とタイミングとに基づいて、当該演奏音の上記発音タイプを判定し、該発音タイプ別に表示形態を変えた入力マークを上記ピアノロール表示処理手段によって表示された上記ピアノロール上に表示させる入力表示手段と
を具備したことを特徴とする演奏表示装置。
【０１４４】
［２］
上記ピアノロール表示処理手段は、上記ピアノロール上の上記お手本マークに上記曲データの各音の長さを表わす音長バーを付加して表示させ、
上記入力表示手段は、上記演奏者によって入力された音の長さを表わす音長バーを上記入力マークに付加して、上記ピアノロール表示処理手段によって表示された上記ピアノロール上に表示させることを特徴とする［１］記載の演奏表示装置。
【０１４５】
［３］
上記曲データの再生に同期させて、上記ピアノロールの表示を更新する表示更新手段と、
この表示更新手段によって更新される上記ピアノロール上に現在の再生位置を示すカーソルを設定するカーソル設定手段と、
をさらに具備し、
上記カーソル設定手段によって設定されたカーソルの一方向に、現在の再生位置より後の上記曲データに基づくピアノロールを上記ピアノロール表示処理手段によって表示させるとともに、
上記カーソル設定手段によって設定されたカーソルの上記一方向と反対方向に、現在の再生位置より前の上記曲データに基づくピアノロールを上記ピアノロール表示処理手段によって表示させ、かつ、現在の再生位置より前に入力された上記演奏音に基づき前記入力マークを前記入力表示手段によって表示させる
ことを特徴とする［１］または［２］記載の演奏表示装置。
【０１４６】
［３］
上記曲データは、２つのパートからなる曲についてパートを識別可能な情報が付加されたものであり、
上記発音タイプは、上記曲データの２つのパートの両方が同時に発音する第１のタイプと、上記曲データの２つのパートの一方のパートの音を発音中に他方のパートの音を発音する第２のタイプと、上記曲データの２つのパートの一方のパートの音だけを発音する第３のタイプとからなり、
上記お手本マークおよび上記入力マークは、上記第１乃至第３のタイプを識別可能に表示されることを特徴とする［１］から［３］のいずれかに記載の演奏表示装置。
【０１４７】
［５］
上記お手本マークは、リング状に形成されるとともに、上記第１乃至第３のタイプに応じた色で表示され、
上記入力マークは、上記お手本マークのリング穴に合致する円状に形成されるとともに、上記第１乃至第３のタイプに応じた色で表示され、
演奏者による入力が正しい場合に、上記お手本マークと上記入力マークとが重なって１つの同一色の円として表示されることを特徴とする［４］記載の演奏表示装置。
【０１４８】
［６］
曲データを構成する音ごとに、当該音の属するパートと他のパートとの関係から発音タイプを設定するステップと、
上記発音タイプに応じた表示形態のお手本マークを配置したピアノロールを、表示手段に生成表示させるステップと、
上記曲データの再生時に、演奏者により入力された演奏音の音高とタイミングとに基づいて、当該演奏音の上記発音タイプを判定し、該発音タイプ別に表示形態を変えた入力マークを、上記ピアノロール上に表示させるステップと
を備えたことを特徴とする演奏表示方法。
【０１４９】
［７］
コンピュータによって実行される演奏表示のためのプログラムであって、
上記コンピュータに、
曲データを構成する音ごとに、当該音の属するパートと他のパートとの関係から発音タイプを設定する機能と、
上記発音タイプに応じた表示形態のお手本マークを配置したピアノロールを、表示手段に生成表示させる機能と、
上記曲データの再生時に、演奏者により入力された演奏音の音高とタイミングとに基づいて、当該演奏音の上記発音タイプを判定し、該発音タイプ別に表示形態を変えた入力マークを、上記ピアノロール上に表示させる機能と
を実現させることを特徴とするプログラム。
【符号の説明】
【０１５０】
１０…ＰＣ、１１…ＣＰＵ、１１ａ…発音タイプ設定部、１１ｂ…ピアノロール表示処理部、１１ｃ…入力表示部、１１ｄ…表示更新部、１１ｅ…カーソル設定部、１２…ＲＯＭ、１３…ＲＡＭ、１３ａ…お手本ピアノロールデータ、１３ｂ…入力ピアノロールデータ、１３ｃ…一時保存入力ピアノロールデータ、１３ｄ…小節データ、１３ｅ…入力音符データ、１３ｆ…音高パートデータリスト、１４…入力部、１５…表示部、１６…ＭＩＤＩインタフェース、１７…発音部、２０…電子楽器、２１…鍵盤、３０…演奏練習画面、３１…鍵盤画像、３２…ピアノロール表示エリア、３２ａ〜３２ｄ…小節区分エリア、３３…カーソル、３４…カーソルバー、３５…押鍵マーク、３６…音長バー、３７…入力マーク、３８…音長バー、４０…ピアノロール。
【図１】
2014186154.tif 000003
【図２】
2014186154.tif 000004
【図３】
2014186154.tif 000005
【図４】
2014186154.tif 000006
【図５】
2014186154.tif 000007
【図６】
2014186154.tif 000008
【図７】
2014186154.tif 000009
【図８】
2014186154.tif 000010
【図９】
2014186154.tif 000011
【図１０】
2014186154.tif 000012
【図１１】
2014186154.tif 000013
【図１２】
2014186154.tif 000014
【図１３】
2014186154.tif 000015
【図１４】
2014186154.tif 000016
【図１５】
2014186154.tif 000017
【図１６】
2014186154.tif 000018
【図１７】
2014186154.tif 000019
【図１８】
2014186154.tif 000020
【図１９】
2014186154.tif 000021
【図２０】
2014186154.tif 000022
【図２１】
2014186154.tif 000023
【図２２】
2014186154.tif 000024