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