(57)【特許請求の範囲】
【請求項１】
複数の鍵を備えた鍵盤を表示する鍵盤表示装置において、
押鍵または離鍵操作された鍵の音高を示す音高情報と操作速度を示す速度情報とを入力する入力手段と、
その入力手段により入力された音高情報に応じた鍵の位置が、速度情報に応じた変化速度で変化するように表示する鍵描画手段とを備えていることを特徴とする鍵盤表示装置。
【請求項２】
鍵が揺動するストロークの最上位の画像と最下位の画像と、最上位と最下位の間の位置における画像とを記憶する鍵状態画像記憶手段を備え、
前記鍵描画手段は、前記鍵状態画像記憶手段が記憶している画像を速度情報に応じた時間間隔で切り替えることにより描画を行うことを特徴とする請求項１記載の鍵盤表示装置。
【請求項３】
自動演奏情報を記憶する自動演奏情報記憶手段と、その自動演奏情報記憶手段に記憶された自動演奏情報に基づいて楽音の発生または停止を指示する情報を発生する自動演奏手段と、自動演奏情報に基づいて鍵盤の鍵が動くように表示する表示手段とを備えた鍵盤表示装置において、
前記自動演奏手段により発生された押鍵または離鍵操作された鍵の音高を示す音高情報と操作速度を示す速度情報とを入力する入力手段と、
その入力手段により入力された音高情報に応じた鍵の位置が、速度情報に応じた変化速度で変化するように表示する鍵描画手段とを備えていることを特徴とする鍵盤表示装置。
【請求項４】
鍵が揺動するストロークの最上位の画像と最下位の画像と、最上位と最下位の間の位置における画像とを記憶する鍵状態画像記憶手段を備え、
前記鍵描画手段は、前記鍵状態画像記憶手段が記憶している画像を速度情報に応じた時間間隔で切り替えることにより描画を行うことを特徴とする請求項３記載の鍵盤表示装置。
【請求項５】
前記鍵描画手段は、前記自動演奏手段が、音源に対して発音の開始を指示するタイミングより前に鍵が押下を開始するように描画することを特徴とする請求項３または４記載の鍵盤表示装置。
【請求項６】
前記速度情報が示す押鍵速度が小さいほど、鍵が押下を開始するように描画するタイミングを早く設定することを特徴とする請求項５記載の鍵盤表示装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表示画面に鍵盤を表示し、押鍵、離鍵情報に従って鍵が押下される様子を表示する鍵盤表示装置および鍵盤表示プログラムに関する。
【背景技術】
【０００２】
従来、表示画面に複数の白鍵と黒鍵からなる鍵盤を表示し、押鍵または離鍵情報に基づいて、押鍵されている状態や、離鍵されている状態を表示する鍵盤表示装置が知られている。
【０００３】
特開２００３−１７７７５３号公報には、鍵盤の各鍵について鍵が押下された状態と離鍵されている状態の画像を記憶し、押下されている場合には、押下された状態を示す画像を、離鍵されている場合には、離鍵された状態の画像を切り替えて表示する装置が開示されている。
【特許文献１】特開２００３−１７７７５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の鍵盤表示装置では、押鍵速度および離鍵速度に対応していないため、離鍵状態から押鍵状態へ、また逆に押鍵状態から離鍵状態へ一瞬で切替られ、実際の鍵盤のように所定の速度での動きとは異なって表示される。よって、従来の表示は、違和感があり、リアリティに欠けるという問題点があった。
【０００５】
本発明は、上記問題点を解決するためになされたものであり、押鍵速度および離鍵速度に応じた速度で鍵の状態の表示が変化する鍵盤表示装置および鍵盤表示プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
この目的を達成するために、請求項１記載の鍵盤表示装置は、複数の鍵を備えた鍵盤を表示するものであり、押鍵または離鍵操作された鍵の音高を示す音高情報と操作速度を示す速度情報とを入力する入力手段と、その入力手段により入力された音高情報に応じた鍵の位置が、速度情報に応じた変化速度で変化するように表示する鍵描画手段とを備えている。
【０００７】
請求項２記載の鍵盤表示装置は、請求項１記載の鍵盤表示装置において、鍵が揺動するストロークの最上位の画像と最下位の画像と、最上位と最下位の間の位置における画像とを記憶する鍵状態画像記憶手段を備え、前記鍵描画手段は、前記鍵状態画像記憶手段が記憶している画像を速度情報に応じた時間間隔で切り替えることにより描画を行う。
【０００８】
請求項３記載の鍵盤表示装置は、自動演奏情報を記憶する自動演奏情報記憶手段と、その自動演奏情報記憶手段に記憶された自動演奏情報に基づいて楽音の発生または停止を指示する情報を発生する自動演奏手段と、自動演奏情報に基づいて鍵盤の鍵が動くように表示する表示手段とを備えたものであり、前記自動演奏手段により発生された押鍵または離鍵操作された鍵の音高を示す音高情報と操作速度を示す速度情報とを入力する入力手段と、その入力手段により入力された音高情報に応じた鍵の位置が、速度情報に応じた変化速度で変化するように表示する鍵描画手段とを備えている。
【０００９】
請求項４記載の鍵盤表示装置は、請求項３記載の鍵盤表示装置において、鍵が揺動するストロークの最上位の画像と最下位の画像と、最上位と最下位の間の位置における画像とを記憶する鍵状態画像記憶手段を備え、前記鍵描画手段は、前記鍵状態画像記憶手段が記憶している画像を速度情報に応じた時間間隔で切り替えることにより描画を行う。
【００１０】
請求項５記載の鍵盤表示装置は、請求項３または４記載の鍵盤表示装置において、前記鍵描画手段は、前記自動演奏手段が、音源に対して発音の開始を指示するタイミングより前に鍵が押下を開始するように描画する。
【００１１】
請求項６記載の鍵盤表示装置は、請求項５記載の鍵盤表示装置において、前記速度情報が示す押鍵速度が小さいほど、鍵が押下を開始するように描画するタイミングを早く設定する。
【発明の効果】
【００１８】
請求項１記載の鍵盤表示装置によれば、操作された鍵の音高を示す音高情報と操作速度を示す速度情報とを入力する入力手段と、その入力手段により入力された音高情報に応じた鍵の位置が、速度情報に応じた変化速度で変化するように表示する鍵描画手段とを備えているので、押鍵速度または離鍵速度に応じた速度で鍵の位置が変化するように表示され、不自然さがなくリアリティの高い表示を行うことができるという効果がある。
【００１９】
請求項２記載の鍵盤表示装置によれば、請求項１記載の鍵盤表示装置の奏する効果に加え、鍵が揺動するストロークの最上位の画像と最下位の画像と、最上位と最下位の間の位置における画像とを記憶する鍵状態画像記憶手段を備え、鍵描画手段は、鍵状態画像記憶手段が記憶している画像を速度情報に応じた時間間隔で切り替えることにより描画を行うので、簡単な処理により鍵が押鍵、離鍵される様子を忠実に表示することができるという効果がある。
【００２０】
請求項３記載の鍵盤表示装置によれば、自動演奏手段により発生された押鍵または離鍵操作された鍵の音高を示す音高情報と操作速度を示す速度情報とを入力する入力手段と、その入力手段により入力された音高情報に応じた鍵の位置が、速度情報に応じた変化速度で変化するように表示する鍵描画手段とを備えているので、自動演奏において押鍵速度または離鍵速度に応じた速度で鍵の位置が変化するように表示され、不自然さがなくリアリティの高い表示を行うことができるという効果がある。
【００２１】
請求項４記載の鍵盤表示装置によれば、請求項３記載の鍵盤表示装置の奏する効果に加え、鍵が揺動するストロークの最上位の画像と最下位の画像と、最上位と最下位の間の位置における画像とを記憶する鍵状態画像記憶手段を備え、鍵描画手段は、鍵状態画像記憶手段が記憶している画像を速度情報に応じた時間間隔で切り替えることにより描画を行うので、簡単な処理により鍵が押鍵、離鍵される様子を忠実に表示することができるという効果がある。
【００２２】
請求項５記載の鍵盤表示装置によれば、請求項３または４記載の鍵盤表示装置の奏する効果に加え、鍵描画手段は、自動演奏手段が、音源に対して発音の開始を指示するタイミングより前に鍵が押下を開始するように描画するので、鍵がストロークの最下位付近に至った時点で、楽音が発生され、押鍵と発音とのタイミングを一致させることできる。よって、不自然さがなく、リアリティの高い表示を行うことができるという効果がある。
【００２３】
請求項６記載の鍵盤表示装置によれば、請求項５記載の鍵盤表示装置の奏する効果に加え、速度情報が示す押鍵速度が小さいほど、鍵が押下を開始するように描画するタイミングを早く設定するので、押鍵速度が小さい場合に、表示される鍵の位置と、発生される楽音とのタイミングを一致させることができるという効果がある。
【発明を実施するための最良の形態】
【００３０】
以下、本発明の好ましい実施形態について、添付図面を参照して説明する。図１は、本発明の一実施形態である鍵盤表示装置１の電気的構成を示したブロック図である。
【００３１】
鍵盤表示装置１は、ＣＰＵ２と、ＲＯＭ３と、ＲＡＭ４と、操作子５と、表示器６と、音源７と、フラッシュメモリ８と、鍵盤９と、アンプ１０と、スピーカ１１とにより構成されている。
【００３２】
ＣＰＵ２は、演算装置であり、ＲＯＭ３に記憶される制御プログラムに従って自動演奏やピアノロール表示などの処理を行う。ＣＰＵ２には、所定の時間単位で計時を行うタイマ２ａが備えられている。
【００３３】
ＲＯＭ３は、ＣＰＵ２により実行される各種の制御プログラムを記憶する制御プログラムメモリ３ａやその制御プログラムに画像の描画を実行する際に用いる画像データ３ｂを記憶する画像メモリ３ｂを備えている。制御プログラムとしては、自動演奏を行うプログラムや、ピアノロールと鍵盤を表示するプログラムなどが記憶されている。
【００３４】
ＲＡＭ４は、ＣＰＵ２が、ＲＯＭ３に記憶されている制御プログラムの実行に当たって各種のデータ等を一時的に記憶するワーキングエリアと、表示器６にピアノロール図を表示した際に、表示データを記憶する表示データ記憶エリアとを有する書き換え可能なメモリである。ＲＡＭ４には、自動演奏を行っているか、早送りを行っているか、巻き戻しを行っているかを示すフラグや、自動演奏開始時における鍵盤の表示と音源の制御との遅延時間を設けるためのフラグＦや、鍵盤９の鍵毎の状態を示すフラグｍａｐ［ｎ］などを記憶するフラグメモリ４ａと、現在設定されているテンポの値を記憶するテンポ値メモリ４ｂと、ピアノロール図および鍵盤の図を描画する際に変数などが記憶される表示パラメータメモリ４ｃとが備えられている。
【００３５】
また、鍵盤の動きを表示するために、自動演奏情報として記憶されたイベントが順次記憶されるＦＩＦＯが形成される。
【００３６】
操作子５は、自動演奏の開始や停止などの指示を行うスイッチや、自動演奏が行われる際の音量などを調整する操作子である。
【００３７】
表示器６は、ＬＣＤにより構成される表示器であって、ピアノロール図が表示される。表示態様については、図２を参照して後述する。
【００３８】
音源７は、ＣＰＵ２により指示される音高、音量、音色で楽音を形成するもので、各種楽器（例えば、ピアノ、フルート、バイオリンなど）の波形や、実際のピアノロール紙を早送りおよび巻き戻しを行う際のローラの回転音やロール紙が高速で巻き取られる際、および巻き取りを開始する際や巻き取りを終了した際に発生する機械的な音を模擬する擬音を記憶し、その波形を読み出すことにより楽音を形成する。音源７により形成された楽音は、アンプ１０により増幅されてスピーカ１１により放音される。
【００３９】
フラッシュメモリ８は、鍵盤表示装置１に備えられたスロット（図示なし）に着脱自在に装着される書き換え可能で不揮発性のメモリであり、自動演奏を行うための自動演奏情報８ａを記憶する。自動演奏情報８ａは、楽曲に対応し、楽曲のタイトルや、作曲者などの情報とともに、時間経過に従って演奏を行う演奏情報により構成され、図３を参照して後述する。
【００４０】
鍵盤９は、複数の白鍵および黒鍵により構成される楽器用の鍵盤であって、発生される楽音の音高を指定するとともに、押鍵により発音の開始を指示し離鍵により発音の停止を指示するものである。鍵盤９を演奏することにより音源７から演奏音が発生され、その演奏を記録することにより、自動演奏情報を形成することができる。
【００４１】
次に、図２を参照して、表示器６に表示される表示画面２１と、自動演奏を行う際に操作される操作子について説明する。図２は、鍵盤表示装置１の操作パネルに配置された表示器６と４つのスイッチを示すパネル図である。
【００４２】
表示画面２１には、上部にピアノロール図が表示され、その下部に鍵盤図２１ｄが表示される。ピアノロール図には、鍵が押下されている時間を黒い長方形の音符線２１ａで示し、鍵盤９の鍵の配置を模擬して横方向に音高を表し、右方へ行くほど音高が高い鍵について表示している。
【００４３】
また、縦方向は、時間を表し上方から下方へ時間が進行する事象を示している。したがってピアノロール図は、演奏の進行に伴って下方から上方（矢印Ａの方向）へスクロールされる。
【００４４】
表示画面２１中に、縦方向に長く黒く表示されている長方形の音符線２１ａが、鍵盤を押下していることを示す。表示画面２１において、縦方向に引かれている破線２１ｃは、５線譜の位置を示し、同図において、右方の５線が高音部（右端の破線から順に、Ｆ，Ｄ，Ｂ，Ｇ，Ｅの各音高を示す）、左方の５線が低音部（中央のやや太い破線の左隣の破線から順に、Ａ，Ｆ，Ｄ，Ｂ，Ｇの各音高を示す）に対応し、中央のやや太い破線は、中央Ｃの音高を示している。
【００４５】
また、表示画面２１において、横方向に引かれている実線は、小節線を示し、この表示画面では、上方の小節線の間隔が広く、下方の小節線の間隔が狭く描かれている。これは、上方の間隔が広い部分では、テンポが遅く、間隔が短い部分では、テンポが速いことを意味している。
【００４６】
鍵盤図２１ｄは、複数の白鍵および黒鍵により構成される鍵盤を３次元的に表示するものであり、自動演奏が行われると、発生する楽音の音高に対応する鍵が押下され、楽音の発生が停止された場合には、鍵が離鍵状態となるように表示される。その際、押鍵速度、または離鍵速度に応じて、鍵の動く速さが変わるように描画される。
【００４７】
また、楽音が発生されるタイミングは、押鍵が開始され所定の深さまで鍵が押下された時であるので、鍵の動きの描画を開始するタイミングから、押鍵速度に応じた時間だけ遅延して楽音が発生される。同様に、離鍵される場合にも、鍵の動きの描画を開始するタイミングから、離鍵速度に応じた時間だけ遅延して楽音の発生が停止される。
【００４８】
表示器６の下方には、４つの自動演奏を行う際に操作されるスイッチが配置されている。左側から順に、巻き戻しスイッチ５ａ、プレイスイッチ５ｂ、ストップスイッチ５ｃ、早送りスイッチ５ｄである。巻き戻しスイッチ５ａが操作されると、現在の曲の演奏位置が先頭まで高速で戻され、プレイスイッチ５ｂが操作されると、現在位置から演奏が開始される。ストップスイッチ５ｃが操作されると、演奏している場所で停止し、早送りスイッチ５ｄが操作されると、現在位置が曲の終わり方向へ高速で送られる。
【００４９】
自動演奏が行われる場合は、自動演奏情報に従って演奏が行われるとともに、その自動演奏情報に対応するピアノロール図が、表示器６に表示される。巻き戻しまたは早送りが指示された場合は、自動演奏情報に基づく演奏は行われず、ピアノロール紙が巻き取られる機械音を模擬した音が発生されるとともに、ピアノロール図が高速でスクロールされる（図４（ａ）、参照）。巻き取りを開始した場合は、巻き取りを開始した機械音を、また、巻き取りを終了した場合は、機械が停止する機械音を模擬した音が音源７により形成される。
【００５０】
次に、図３を参照して自動演奏情報について説明する。図３は、自動演奏情報を示すテーブルである。この実施形態における自動演奏情報は、イベントの種類と、次のイベントまでの時間（ｄｅｌｔａ）とを、一組のデータとして時間経過に従って順次記憶するものである。
【００５１】
図３に示すテーブルにおいて、まず第一行に記述されたデータは、イベントの種類がテンポの値を８０（拍／分）とし、次のイベントまでの時間を０（単位は、ティック）とすると記述されている。ここで、ティックとは、１拍を所定の数で除した値であり、ここでは、１拍を９６で除した値をティックとする。読み出されたテンポの値は、ＲＡＭ４に設けられたテンポ値メモリ４ｂに記憶される。
【００５２】
次の行に記述されたデータは、イベントの種類がノートオンであり、次のイベントまでの時間を９６ティックとしている。ここで、ノートオン、ノートオフとは、ＭＩＤＩ規格でいう鍵盤が押下されたこと、または離鍵されたことをそれぞれ示すデータであり、図３では、音高を示すノートナンバと押鍵速度、または離鍵離鍵速度を示すベロシティ値（１から１２７の値をとる）とを２列目にカンマで区切って示す。以下同様に、イベントと次のイベントまでの時間により自動演奏情報は構成される。
【００５３】
次に、図４を参照して、自動演奏時以外の時に表示器６に表示されるピアノロール図について説明する。図４（ａ）は、巻き戻しを行っている場合に表示されるピアノロール図である。従来の、ピアノロールを表示するものでは、巻き戻しを指示すると瞬時に曲の先頭に演奏位置が移動され、味気ないものであったが、本発明では、演奏時とは逆の方向に高速でスクロール表示を行い、実際の自動ピアノなどのように、機械的にピアノロール紙を巻き取る様子を模擬する。
【００５４】
図４（ｂ）は、ピアノロール図の曲頭を表示する図であり、ピアノロール紙の先頭部分を模擬して表示する。
【００５５】
次に、図５〜図８を参照して、ＣＰＵ２が制御プログラムを実行することより行われるピアノロール表示処理について説明する。図５は、鍵盤表示装置１の電源が投入されることにより起動されるメインルーチンを示すフローチャートで、このメインルーチンは、鍵盤表示装置１の電源が遮断されるまで繰り返し実行される。
【００５６】
まず、初期設定を行う（Ｓ１）。この初期設定としては、表示画面に図４（ｂ）に示す曲頭を示す表示を行う。なお、ここでは、説明を簡単にするために、複数の曲の演奏情報がフラッシュメモリ８に記憶され、選曲がすでに行われているものとする。また、タイマ２ａを所定の時間間隔（例えば、１ｍｓｅｃ）で計時を行うように設定し、タイマ割り込みを禁止するように設定する。
【００５７】
次に、プレイスイッチ５ｂが操作されて演奏の開始が指示されたか否かを判断する（Ｓ２）。プレイスイッチ５ｂが操作された場合は（Ｓ２：Ｙｅｓ）、タイマ割り込みを許可するように設定するとともに、ＲＡＭ４に設けられたフラグメモリ４ａに記憶されたフラグを自動演奏であることを示す値に設定する（Ｓ３）。
【００５８】
プレイスイッチが操作されていない場合（Ｓ２：Ｎｏ）、または、Ｓ３の処理を終了した場合は、ストップスイッチ５ｃが操作されて演奏の停止が指示されたか否かを判断する（Ｓ４）。
【００５９】
ストップスイッチ５ｃが操作された場合は（Ｓ４：Ｙｅｓ）、タイマ割り込みを禁止するように設定する（Ｓ５）。この時、自動演奏中であれば、発音中の楽音の発音を停止するように音源７に指示し、早送り中であれば、早送りの擬音の発生を停止し、巻戻し中であれば、巻き戻しの擬音の発生を停止するように音源７に指示を送る。
【００６０】
ストップスイッチ５ｃが操作されていない場合（Ｓ４：Ｎｏ）、または、Ｓ５の処理を終了した場合は、巻戻しスイッチ５ａが操作されて巻き戻しが指示されたか否かを判断する（Ｓ６）。巻き戻しスイッチ５ａが操作された場合は（Ｓ６：Ｙｅｓ）、タイマ割り込みを許可し、巻き戻しを示すフラグをフラグメモリ４ａに記憶すると共に、ピアノロール紙の巻戻しを開始する機械音を模擬する音を発生し、その後は巻き戻しを行っている模擬音を発生するように音源７に指示を送る（Ｓ７）。
【００６１】
巻き戻しスイッチ５ａが操作されていない場合（Ｓ６：Ｎｏ）、または、Ｓ７の処理を終了した場合は、早送りスイッチ５ｄが操作されて早送りが指示されたか否かを判断する（Ｓ８）。早送りスイッチ５ｄが操作された場合は（Ｓ８：Ｙｅｓ）、タイマ割り込みを許可し、早送りを示すフラグをフラグメモリ４ａに記憶すると共に、ピアノロール紙の早送りを開始する機械音を模擬する音を発生し、その後は早送りを行っている模擬音を発生するように音源７に指示を送る（Ｓ９）。早送りスイッチ５ｄが操作されていない場合（Ｓ８：Ｎｏ）、または、Ｓ９の処理を終了した場合は、Ｓ２の処理に戻る。
【００６２】
次に、図６を参照して、タイマ割り込み処理について説明する。このタイマ割り込み処理は、所定時間（１ｍｓｅｃ）毎に起動され、自動演奏中の場合には、鍵盤の鍵の動作を表示するためのＦＩＦＯに演奏データを積み、自動演奏は、表示の処理よりＤＴＭＡＸだけ遅延した時刻に従って処理を行い、早送りまたは、巻き戻しの場合には、時刻変更を行う。ここで、ＦＩＦＯは、ＲＡＭ４に設けられるファーストイン・ファーストアウト処理を行うメモリである。
【００６３】
演奏者により押鍵または離鍵操作された場合に、操作速度が小さいと、楽音の発生または停止されるまでに時間を要するので、押鍵速度または離鍵速度に応じて楽音の発生開始または停止より先に、鍵の動きを開始するように表示する必要がある。図６は、タイマ割り込み処理を示すフローチャートである。
【００６４】
まず、このタイマ割り込み処理における変数および定数について説明する。
ｗａｉｔ１：表示を行うための待ち時間（単位は、ティック）であり、現在時刻から次のイベントまでの時間である。
ｗａｉｔ２：音源の制御を行うための待ち時間（単位は、ティック）であり、現在時刻から次のイベントまでの時間である。
ｐｔｒ１：表示を行うためのポインタであり、次に読み出す自動演奏情報を示す。
ｐｔｒ２：音源の制御を行うためのポインタであり、次に読み出す自動演奏情報を示す。
ＤＴＭＡＸ：表示における鍵の動作の開始から音源の制御を行うまでの遅延時間の最大値である（定数）。
ｔｉｍｅ：表示における鍵の動作の開始から音源の制御を行うまでの遅延時間を計時するための変数である。
Ｆ：演奏を開始する最初だけ、表示における鍵の動作の開始から音源の制御を行うまでの遅延時間の計時を行うためのフラグであり、演奏を開始した時は、Ｆ＝０であり、遅延時間の計時を終了した後は、Ｆ＝１とする。
ｄｔ：タイマ割り込みの時間間隔（単位は、秒）である。
ｔｉｃｋ：現在時刻をティックで表すものである。
【００６５】
次に、フローチャートに従って、タイマ割り込み処理について、説明する。まず、フラグメモリ４ａに記憶したフラグを参照し、現在自動演奏中であるか否かを判断する（Ｓ６１）。現在、自動演奏中である場合は（Ｓ６１：Ｙｅｓ）、ｗａｉｔ１から時間ｄｔをティック値に変換した値Δｔｉｃｋを引いた値とする（Ｓ６２）。
このΔｔｉｃｋは、タイマ割り込みが発生する時間間隔ｄｔに対応するティック数である。上記の通り、タイマ割り込みの時間間隔を１ｍｓｅｃ、ティックを１拍を９６で分割した値とし、テンポ値（テンポ値メモリ４ｂに記憶されている）をｔｅｍｐｏとすると、
Δｔｉｃｋ＝（ｔｅｍｐｏ×９６）／（６０×１０００）
である。
【００６６】
次に、ｗａｉｔ１が、０以下であるか否かを判断し（Ｓ６３）、０以下である場合は（Ｓ６３：Ｙｅｓ）、ｐｔｒ１が示す演奏情報のイベントをＦＩＦＯ１に積み（Ｓ６４）、ｗａｉｔ１にｐｔｒ１が示すイベントに対応して記憶されているｄｅｌｔａ値を加算し（Ｓ６５）、ｐｔｒを１進め（Ｓ６６）、Ｓ６３の処理に戻る。
【００６７】
Ｓ６３の判断処理で、ｗａｉｔ１が０より大きいと判断した場合は、フラグＦが１か否かを判断する（Ｓ７１）。フラグＦ１が１でない場合は（Ｓ７１：Ｎｏ）、演奏開始直後の遅延時間を計時する処理であって、まず遅延時間を計時する変数ｔｉｍｅをｄｔだけ進め（Ｓ７４）、ｔｉｍｅが、遅延時間であるＤＴＭＡＸに到達したか否かを判断する（Ｓ７５）。遅延時間ＤＴＭＡＸに到達しない場合は（Ｓ７５：Ｎｏ）、この割り込み処理を終了し、遅延時間ＤＴＭＡＸに到達した場合は（Ｓ７５：Ｙｅｓ）、フラグＦを１に設定し（Ｓ７６）、ｗａｉｔ２を、ＤＴＭＡＸからｔｉｍｅを引いた時間をティックを単位とする時間に変換した値に設定する（Ｓ７７）。
【００６８】
一方、Ｓ７１の判断処理においてフラグＦが１である場合は（Ｓ７１：Ｙｅｓ）、現在の時刻をティック数で表したｔｉｃｋの値にΔｔｉｃｋを加算し（Ｓ７２）、ｗａｉｔ２からΔｔｉｃｋを引く（Ｓ７３）。
【００６９】
Ｓ７３の処理を終了した場合、またはＳ７７の処理を終了した場合は、ｗａｉｔ２が、０以下であるか否かを判断し（Ｓ７８）、０以下である場合は（Ｓ７８：Ｙｅｓ）、ｐｔｒ２が示す位置のイベントを処理する（Ｓ７９）。イベントがノートオンやノートオフであれば、これらのメッセージを音源７に送信し、テンポを変更するイベントであれば、テンポ値を変更する。次に、ｗａｉｔ２の値にｐｔｒ２が示すイベントに対応して記憶しているｄｅｌｔａの値を加算し（Ｓ８０）、ｐｔｒ２を１進め（Ｓ８１）、Ｓ７８の処理に戻る。
【００７０】
Ｓ７８の判断処理において、ｗａｉｔ２が０より大きい場合は（Ｓ７８：Ｎｏ）、この割り込み処理を終了する。
【００７１】
Ｓ６１の判断処理において、フラグメモリ４ａに記憶したフラグにより、現在、自動演奏中ではないと判断した場合は（Ｓ６１：Ｎｏ）、そのフラグにより現在、早送りに設定されているか否かを判断する（Ｓ８５）。現在、早送りに設定されている場合は（Ｓ８５：Ｙｅｓ）、ｔｉｃｋの値に、値ＦＤを加算してｔｉｃｋの値を進める（Ｓ８６）。この値ＦＤは、早送りの際に高速でピアノロール図をスクロールするための値であって、例えば、１拍のｔｉｃｋ数（９６）などとする。
【００７２】
次に、ｔｉｃｋの値が曲の終わりに達したか否かを判断する（Ｓ８７）。曲の終わりに達した場合は（Ｓ８７：Ｙｅｓ）、ピアノロール紙を早送りする擬音に変わり、ピアノロール紙の早送りを停止した時の擬音を発生し、タイマ割り込みを禁止するように設定する（Ｓ８８）。曲の終わりに達していない場合（Ｓ８７：Ｎｏ）、またはＳ８８の処理を終了した場合は、このタイマ割り込み処理を終了する。
【００７３】
Ｓ８５の判断処理において、フラグメモリ４ａに記憶したフラグにより、現在、早送り中ではないと判断した場合は（Ｓ８５：Ｎｏ）、現在、巻き戻しに設定されているので、ｔｉｃｋの値から値ＢＤを引いてｔｉｃｋの値を戻す（Ｓ８９）。この値ＢＤは、巻戻しの際に高速でピアノロール図を逆方向へスクロールするための値であって、例えば、１拍のｔｉｃｋ数（９６）などとする。
【００７４】
次に、ｔｉｃｋの値が曲の初め（曲頭）に達したか否かを判断する（Ｓ９０）。曲の初めに達した場合は（Ｓ９０：Ｙｅｓ）、ピアノロール紙を巻戻しする擬音に変わり、ピアノロール紙の巻き戻しを停止した時の擬音を発生し、タイマ割り込みを禁止するように設定する（Ｓ９１）。曲の初めに達していない場合（Ｓ９０：Ｎｏ）、またはＳ９１の処理を終了した場合は、このタイマ割り込み処理を終了する。
【００７５】
次に、図７および図８を参照して表示処理について説明する。図７は、表示処理を示すフローチャートである。この表示処理は、例えば、３０ｍｓｅｃ毎に起動されるもので、図６に示す割り込み処理が１ｍｓｅｃ毎に起動されるので、この割り込み処理が３０回発生する毎に起動される。
【００７６】
この表示処理では、ピアノロール表示と鍵盤表示が行われるが、まず、ピアノロール表示についての詳細を説明する。現在のｔｉｃｋの値が、表示器６の縦方向の中央付近に位置するように表示され、表示される範囲を時刻ｔ０からｔ１までの自動演奏情報とする。ここで、この処理において使用される変数について説明する。これらの変数は、ＲＡＭ４に備えられた表示パラメータメモリに記憶される。
【００７７】
「ｔｉｍｅ」は、描画を行う際の現在時刻を示し、「ｗａｉｔ」は、時刻ｔｉｍｅから、次のイベントまでの時間であり、ｍａｐ［ｎ］は、ノートマップを表し、いずれかの鍵ｎが押下されていることを示すフラグである。また、「ｔｅｍｐｏＤ」は、表示を行う際に参照するテンポ値であり、テンポ値メモリ４ｂに記憶されるテンポ値とは、異なる。
【００７８】
描画処理において、まず、時刻ｔ０におけるテンポ値をｔｅｍｐｏＤに代入し、押鍵状態にある鍵に対応するフラグｍａｐ［ｎ］に１を代入し、ｗａｉｔの値を求める（Ｓ４１）。これらの値は、曲の先頭から順次、演奏情報について処理することにより得られるものであり、前回表示処理を行った際の時刻ｔ０における各値を記憶しておいて、その状態から今回のｔ０までの変化を処理することにより得ることができる。
【００７９】
次に、ｔｉｍｅを時刻ｔ０とし（Ｓ４２）、ｔｉｍｅが時刻ｔ１に達していないかを判断する（Ｓ４３）。ｔｉｍｅが時刻ｔ１に達した場合は（Ｓ４３：Ｎｏ）、ピアノロールの表示画面の描画を終了したことになるので、次に鍵盤の描画処理を行い（Ｓ４８）、鍵盤描画処理を終了した場合、この描画処理を終了する。鍵盤の描画処理については、図１０、図１１、図１２を参照して後述する。
【００８０】
Ｓ４３の判断処理において、ｔｉｍｅが時刻ｔ１に達していない場合は（Ｓ４３：Ｙｅｓ）、ｄｔをｗａｉｔと（ｔ１−ｔｉｍｅ）とのいずれか小さい値とし（Ｓ４４）、ｍａｐ［ｎ]が１である音高についての音符線を描画する（Ｓ４５）。この音符線は、音高ｎについて、時間がｔｉｍｅからｔｉｍｅ＋ｄｔまでの線分である。
【００８１】
なお、この時間ｄｔの間に、小節線を有する場合は、その小節線の時刻に対応する表示画面の時刻に、横線を描画する。
【００８２】
次に、時間ｄｔに対応する自動演奏情報を読み進める（Ｓ４６）。この読み進める処理については、図８を参照して後述する。次に、現在時間ｔｉｍｅをｄｔだけ進め（Ｓ４７）、Ｓ４３の処理に戻る。
【００８３】
次に、図８を参照して、自動演奏情報を読み進める処理について説明する。図８は、自動演奏情報を読み進める処理を示すフローチャートである。
【００８４】
この自動演奏情報を読み進める処理では、まず、変数ｗａｉｔをｄｔを引いた値にする（Ｓ５１）。そのｗａｉｔの値が０より小さいか等しいかを判断し（Ｓ５２）、ｗａｉｔの値が０より小さいか等しい場合は（Ｓ５２：Ｙｅｓ）、自動演奏情報を読み進めて、次のイベントとそのイベントに対応して記憶されているｄｅｌｔａとを得る（Ｓ５３）。
【００８５】
次に、そのイベントの種類がテンポ値を示すものであるか否かを判断し（Ｓ５４）、テンポ値を示すものである場合は（Ｓ５４：Ｙｅｓ）、ｔｅｍｐｏＤの値を、その値に書き換える（Ｓ５５）。
【００８６】
イベントの種類が、テンポ値を示すものではない場合は（Ｓ５４：Ｎｏ）、イベントの種類がノートオンであるか否かを判断し（Ｓ５６）、ノートオンである場合には（Ｓ５６：Ｙｅｓ）、フラグｍａｐ［ｎ］を１とする（Ｓ５７）。
【００８７】
イベントの種類が、ノートオンではない場合は（Ｓ５６：Ｎｏ）、イベントの種類がノートオフであるか否かを判断し（Ｓ５８）、ノートオフである場合には（Ｓ５８：Ｙｅｓ）、フラグｍａｐ［ｎ］を０とする（Ｓ５９）。
【００８８】
イベントの種類がノートオフではない場合（Ｓ５８：Ｎｏ）、または、Ｓ５５、Ｓ５７Ｓ５９の処理を終了した場合は、ｗａｉｔの値を、ｗａｉｔ＋ｄｅｌｔａ／ｔｅｍｐｏＤとし（Ｓ６０）、Ｓ５２の処理に戻る。
【００８９】
ここで、ｄｅｌｔａの値をテンポ値で除算するので、ピアノロール図は、テンポ値が大きい場合は、時間軸が圧縮され、テンポ値が小さい場合は、時間軸が伸長されて表示される。従って、同じ音符長であっても、ピアノロール図として表示される図形の長さは、短くなり、逆にテンポの値が小さい場合は、図形の長さが長く表示される。
【００９０】
Ｓ５２の判断処理において、ｗａｉｔの値が正の値となった場合は、この自動演奏情報を読み進める処理を終了する。
【００９１】
なお、上記実施形態では、ピアノロール図は、演奏の進行に従って下から上にスクロールするものとしたが、逆に上から下にスクロールするようにしたり、横方向へスクロールするようにしてもよい。また、図９（ａ）に示すように、立体的な表示として、ピアノロール紙が、手前から奥の方へ搬送されるような表示としてもよい。
【００９２】
また、上記実施形態では、鍵を押下している部分を示す音符線は、同一の太さの線分としたが、図９（ｂ）に示すように、音量に応じて太さを変えたり、楽音の音量に応じてグレイスケールを変えるなどの表示を行っても良い。図９（ｂ）では、オルガンの場合には、音量により太さを変え、ピアノの場合には、押鍵直後は、濃い黒で表示し、音量が次第に小さくなるのを模擬して、次第に薄くなるように表示している。また、図９（ｂ）最下列に示すように、鍵を押下する位置に正方形を図示し、その正方形の大きさにより、押鍵速度の大きさを表すようにしてもよい。
【００９３】
次に、図１０、図１１、図１２を参照して、鍵盤の描画処理について説明する。図１０は、描画処理の概略について説明するための図であり、図１０（ａ）は、押鍵速度に応じて画像を切り替える処理をグラフにより示すものである。このグラフは、横軸を時間とし、縦軸を鍵の位置（角度）とするものである。一般に鍵は、軸を中心に揺動するように構成されている。離鍵されている状態では、鍵の上面が水平に保持され、この状態の鍵上面の角度を基準（０度：Ａ０）として、鍵を押下するとこの角度が、Ａ１、Ａ２、Ａ３と次第に大きくなり、最大値Ａ＿ＭＡＸに至る。このグラフの実線で示す場合は、押鍵速度が大きい場合を示し、所定時間間隔（例えば、３０ｍｓｅｃ）で鍵を表示するとすれば、黒丸で示すように、Ａ０（離鍵している状態、最上位）から、いきなりＡ＿ＭＡＸ（最下位）まで押下された状態が表示される。
【００９４】
少し押鍵速度が小さい場合には、最上位の表示の次に、最上位と最下位のほぼ中間位置であるＡ２の状態の表示を行い、次に最下位の表示を行う。さらに、押鍵速度が小さい場合には、Ａ０での表示の次に、Ａ０とＡ２の中間位置のＡ１での表示、続いてＡ２での表示、続いてＡ２とＡ＿ＭＡＸとの中間位置であるＡ３での表示、そして最後にＡ＿ＭＡＸでの表示を行う。
【００９５】
図１０（ｂ）は、鍵の状態を示す図の例であり、ここでは、音名がＣおよびＣ＃およびＤの３つの鍵を示し、そのうち音名がＤの鍵が、図において左から右方へ、角度Ａ０、Ａ１、Ａ２、Ａ３、Ａ＿ＭＡＸである場合の状態をそれぞれ示している。これらの画像が、各鍵毎にＲＯＭ３に記憶され、押鍵、離鍵が行われた場合に、時間経過にしたがって角度が求められ、その角度に対応する画像が表示される。
【００９６】
次に、図１１および図１２を参照して、鍵盤描画処理について説明する。図１１は、鍵盤描画処理を示すフローチャートであり、図１２は、図１１に示すフローチャート中のＳ１０９の処理であるノート更新処理を示すフローチャートである。
【００９７】
この鍵盤描画処理においては、各鍵について、状態を示すフラグｓｔａｔｅが記憶される。鍵が離鍵されている状態をＯＦＦ、鍵が押鍵される場合の待機状態をＷＡＩＴ＿ＲＩＳＥ、鍵が押下されている状態をＲＩＳＥ、鍵が最下位で保持されている状態をＯＮ、鍵が離鍵される場合の待機状態をＷＡＩＴ＿ＦＡＬＬ、鍵が離鍵されている状態をＦＡＬＬとする。ｗａｉｔは、待機時間を計時する変数であり、ｎｏｔｅは、鍵盤を構成する各鍵の番号であり、ｖｅｌは、押鍵または離鍵時のベロシティ値であり、ｄａは、押鍵または離鍵時の単位時間当たりの変化角度であり、整数値をとるものとする。なお、この単位時間は、表示を更新する時間間隔（３０ｍｓｅｃ）である。
【００９８】
鍵盤描画処理では、まず、ＦＩＦＯにイベントが記憶されているか否かを判断する（Ｓ１０１）。ＦＩＦＯにイベントが記憶されている場合は（Ｓ１０１：Ｙｅｓ）、ＦＩＦＯからそのイベントを読み出し（Ｓ１０２）、そのイベントがノートオンか否かを判断する（Ｓ１０３）。イベントがノートオンである場合は（Ｓ１０３：Ｙｅｓ）、フラグｓｔａｔｅをＷＡＩＴ＿ＲＩＳＥとし、ｗａｉｔをＤＴＭＡＸからＤＴＭＡＸをそのノートオンのベロシティ値で除した値を引いた値とし、ｄａを、そのベロシティ値に応じた表示時間間隔当たりの鍵の変位角度とする（Ｓ１０４）。
【００９９】
ここで、値ｄａは、ノートオンのベロシティ値をｖｅｌとして、
ｄａ＝Ａ＿ＭＡＸ×ｖｅｌ／ＤＴＭＡＸ
ただし、ｄａは、１以上の値、として表される。
【０１００】
Ｓ１０３の判断処理において、ＦＩＦＯに記憶されたイベントがノートオンではない場合は（Ｓ１０３：Ｎｏ）、そのイベントがノートオフか否かを判断する（Ｓ１０５）。そのイベントがノートオフである場合は（Ｓ１０５：Ｙｅｓ）、フラグｓｔａｔｅをＷＡＩＴ＿ＦＡＬＬとし、ｗａｉｔをＤＴＭＡＸからＤＴＭＡＸをそのノートオフのベロシティ値で除した値を引いた値とし、ｄａを、そのベロシティ値に応じた表示時間間隔当たりの鍵の変位角度とする（Ｓ１０６）。
【０１０１】
この値ｄａは、押鍵時と同様に、ノートオフのベロシティ値をｖｅｌとして、
ｄａ＝Ａ＿ＭＡＸ×ｖｅｌ／ＤＴＭＡＸ
ただし、１以上の値、として表される。
【０１０２】
Ｓ１０４の処理、またはＳ１０６の処理を終了した場合、または、Ｓ１０５の判断処理で、ＦＩＦＯに記憶されたイベントがノートオフではない場合は（Ｓ１０５：Ｎｏ）、Ｓ１０１に戻り、ＦＩＦＯに処理されていないイベントが残っているか否かを判断する。
【０１０３】
Ｓ１０１の判断処理において、ＦＩＦＯにイベントが記憶されていない場合は、変数ｎｏｔｅを０とし（Ｓ１０７）、変数ｎｏｔｅが、最大値に達したか否かを判断する（Ｓ１０８）。変数ｎｏｔｅが最大値に達してない場合は、そのｎｏｔｅが示す鍵についての処理であるノート更新処理を実行する（Ｓ１０９）。このノート更新処理については、図１２を参照して後述する。ノート更新処理を終了した場合は、変数ｎｏｔｅを１増加しＳ１０８の処理に戻る。Ｓ１０８の判断処理において、変数ｎｏｔｅが最大ノートに達した場合は、この鍵盤描画処理を終了する。
【０１０４】
次に、図１２を参照して、Ｓ１０９の処理であるノート更新処理について説明する。図１２は、ノート更新処理を示すフローチャートである。このノート更新処理では、まず、鍵の状態を示すフラグｓｔａｔｅが、ＷＡＩＴ＿ＲＩＳＥであるか否かを判断する（Ｓ１２１）。ｓｔａｔｅが、ＷＡＩＴ＿ＲＩＳＥである場合は（Ｓ１２１：Ｙｅｓ）、待機時間を示す変数ｗａｉｔを１減じる（Ｓ１２２）。
【０１０５】
次に、ｗａｉｔの値が、０以下であるかを判断し（Ｓ１２３）、ｗａｉｔが０以下である場合は（Ｓ１２３：Ｙｅｓ）、ｗａｉｔの値を０とし、フラグｓｔａｔｅをＲＩＳＥに変更する（Ｓ１２４）。Ｓ１２４の処理を終了した場合、またはＳ１２３の判断処理で、ｗａｉｔが０以下ではない場合は（Ｓ１２３：Ｎｏ）このノート更新処理を終了する。
【０１０６】
Ｓ１２１の判断処理において、フラグｓｔａｔｅが、ＷＡＩＴ＿ＲＩＳＥではない場合は（Ｓ１２１：Ｎｏ）、フラグｓｔａｔｅが、ＲＩＳＥであるか否かを判断する（Ｓ１２５）。フラグｓｔａｔｅが、ＲＩＳＥである場合は（Ｓ１２５：Ｙｅｓ）、鍵の角度を示す変数ａｎｇｌｅにｄａを加算する（Ｓ１２６）。
【０１０７】
次に、ａｎｇｌｅの値が、最大値であるＡ＿ＭＡＸ以上であるか否かを判断し（Ｓ１２７）、ａｎｇｌｅの値が、最大値であるＡ＿ＭＡＸ以上である場合は（Ｓ１２７：Ｙｅｓ）、ａｎｇｌｅをＡ＿ＭＡＸ、ｓｔａｔｅをＯＮ、ｄａを０とする（Ｓ１２８）。Ｓ１２８の処理の後、またはａｎｇｌｅの値が、最大値であるＡ＿ＭＡＸ以上ではない場合は（Ｓ１２７：Ｎｏ）、Ｓ１２８の処理をスキップし、現在のａｎｇｌｅの値に応じた鍵状態の表示に更新し（Ｓ１２９）、このノート更新処理を終了する。
【０１０８】
Ｓ１２５の判断処理において、フラグｓｔａｔｅが、ＲＩＳＥではない場合は（Ｓ１２５：Ｎｏ）、フラグｓｔａｔｅが、ＷＡＩＴ＿ＦＡＬＬであるか否かを判断する（Ｓ１３０）。フラグｓｔａｔｅが、ＷＡＩＴ＿ＦＡＬＬである場合は（Ｓ１３０：Ｙｅｓ）、待機時間を示す変数ｗａｉｔを１減じる（Ｓ１３１）。
【０１０９】
次に、ｗａｉｔの値が、０以下であるかを判断し（Ｓ１３２）、ｗａｉｔが０以下である場合は（Ｓ１３２：Ｙｅｓ）、ｗａｉｔの値を０とし、フラグｓｔａｔｅをＦＡＬＬに変更する（Ｓ１３３）。Ｓ１３３の処理を終了した場合、またはＳ１３２の判断処理で、ｗａｉｔが０以下ではない場合は（Ｓ１３２：Ｎｏ）このノート更新処理を終了する。
【０１１０】
Ｓ１３０の判断処理において、フラグｓｔａｔｅが、ＷＡＩＴ＿ＦＡＬＬではない場合は（Ｓ１３０：Ｎｏ）、フラグｓｔａｔｅが、ＦＡＬＬであるか否かを判断する（Ｓ１３４）。フラグｓｔａｔｅが、ＦＡＬＬである場合は（Ｓ１３４：Ｙｅｓ）、鍵の角度を示す変数ａｎｇｌｅからｄａを減算する（Ｓ１３５）。
【０１１１】
次に、ａｎｇｌｅの値が、最小値である０以下であるか否かを判断し（Ｓ１３６）、ａｎｇｌｅの値が、最小値である０以下である場合は（Ｓ１３６：Ｙｅｓ）、ａｎｇｌｅを０、ｓｔａｔｅをＯＦＦ、ｄａを０とする（Ｓ１３７）。Ｓ１３７の処理の後、またはａｎｇｌｅの値が、最小値である０以下ではない場合は（Ｓ１３６：Ｎｏ）、Ｓ１３７の処理をスキップし、現在のａｎｇｌｅの値に応じた鍵状態の表示に更新する（Ｓ１３８）。Ｓ１３８の処理を終了した場合、またはＳ１３４の判断処理でｓｔａｔｅがＦＡＬＬでない場合は（Ｓ１３４：Ｎｏ）、このノート更新処理を終了する。
【０１１２】
以上実施形態に基づいて説明したように、本発明によれば、鍵盤表示部に表示された各鍵は、自動演奏データに記憶されたベロシティ値に応じた速度で変化するように表示が行われるので、不自然さがなくリアリティの高い表示を行うことができる。
【０１１３】
特に、ベロシティ値に応じた楽音が形成される場合には、表示器に表示される鍵の動きと、発生される楽音の音量などの特性が一致し、よりリアリティの高い表示を行うことができる。
【０１１４】
また、押鍵速度、離鍵速度に応じて、表示している鍵が動き始めてから、楽音の発生が開始されるまでの時間、または楽音が消音されるまでの時間が制御されるので、鍵の押下位置と、楽音の発生または、楽音の消音位置とが一致し、違和感がなく、リアリティのある表示を行うことができる。
【０１１５】
なお、請求項記載の入力手段および入力ステップは、図６に記載のフローチャートのＳ６４の処理が該当し、鍵描画手段および鍵描画ステップは、図７に記載のフローチャートのＳ４８の処理が該当し、自動演奏手段および自動演奏ステップは、図６に示すフローチャートのＳ７９の処理が該当する。
【０１１６】
以上、実施形態に基づき本発明を説明したが、本発明は上記実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
【０１１７】
例えば、上記実施形態では、鍵盤９等を有する電子楽器に組み込まれた鍵盤表示装置１に本発明が適用されるものとしたが、パーソナルコンピュータにおいて、液晶などの表示装置にピアノロールを表示するようにしてもよい。
【０１１８】
また、上記実施形態では、自動演奏情報に基づいて、自動演奏が行われるとともに、その自動演奏情報に基づいて鍵盤の鍵が動くように描画するものとしたが、演奏者が鍵盤などを演奏し、その演奏により出力される音高を示す情報と、速度情報を入力して、音高に対応する鍵が、速度情報に応じた速度で動くように描画してもよい。
【０１１９】
また、上記実施形態では、鍵盤の鍵を３次元的に表示し、鍵が操作速度に応じた速度で動くように表示するものとしたが、押鍵状態と離鍵状態とを色の濃度で表し、操作速度に応じて濃度の変化速度を変えるようにしてもよい。
【図面の簡単な説明】
【０１２０】
【図１】本発明の実施形態における鍵盤表示装置の電気的構成を示すブロック図である。
【図２】操作子とピアノロール図および鍵盤が表示される表示画面とを有する鍵盤表示装置の操作パネルを示すパネル図である。
【図３】自動演奏情報を示すテーブルである。
【図４】（ａ）は、巻き戻しを行っている場合に表示されるピアノロール図であり、（ｂ）は、ピアノロールの曲頭を示す図である。
【図５】メイン処理を示すフローチャートである。
【図６】タイマ割り込み処理を示すフローチャートである。
【図７】ピアノロールの描画処理を示すフローチャートである。
【図８】ピアノロールの描画処理において、自動演奏情報を読み進める処理を示すフローチャートである。
【図９】ピアノロール図の変形例を示す図である。
【図１０】鍵盤の鍵の動きの表示の概略を説明するための図であり、（ａ）は、押鍵速度と、表示される画像の関係を示すグラフであり、（ｂ）は、鍵の押下位置に対応する画像の例を示す図である。
【図１１】鍵盤描画処理を示すフローチャートである。
【図１２】ノート更新処理を示すフローチャートである。
【符号の説明】
【０１２１】
１                  鍵盤表示装置
２                  ＣＰＵ
３                  ＲＯＭ（鍵状態画像記憶手段）
３ａ                制御プログラム（ピアノロール表示プログラム）
４                  ＲＡＭ
６                  表示器
７                  音源
８                  フラッシュメモリ（自動演奏情報記憶手段）
【図１】
0004684168.tif 000002
【図２】
0004684168.tif 000003
【図３】
0004684168.tif 000004
【図４】
0004684168.tif 000005
【図５】
0004684168.tif 000006
【図６】
0004684168.tif 000007
【図７】
0004684168.tif 000008
【図８】
0004684168.tif 000009
【図９】
0004684168.tif 000010
【図１０】
0004684168.tif 000011
【図１１】
0004684168.tif 000012
【図１２】
0004684168.tif 000013