説明

ピアノロール表示装置およびピアノロール表示プログラム

【課題】ピアノロールにより自動演奏を行う自動ピアノを模擬することができるピアノロール表示装置およびピアノロール表示プログラムを提供する。
【解決手段】ピアノロール図には、鍵が押下されている時間を黒い長方形の音符線21aで示し、鍵盤の鍵の配置を模擬して横方向に音高を表し、右方へ行くほど音高が高い鍵について表示している。また、縦方向は、時間を表し、上方から下方へ時間が進行する事象を示している。したがってピアノロール図は、演奏の進行に伴って下方から上方(矢印Aの方向)へスクロールされる。表示画面において、横方向に引かれている実線は、小節線を示し、この表示画面では、上方の小節線の間隔が広く、下方の小節線の間隔が狭く描かれている。これは、上方の間隔が広い部分では、テンポが遅く、間隔が短い部分では、テンポが速いことを意味している。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自動演奏を行うための自動演奏情報に従ってピアノロール表示を行うピアノロール表示装置およびピアノロール表示プログラムに関する。
【背景技術】
【0002】
従来、自動演奏を行う自動演奏情報をグラフィック表示する表示装置が知られている。このグラフィック表示の一つの方法として、ピアノロールと呼ばれる自動演奏を行うための自動演奏情報が記録された紙を模擬して表示画面に表示を行うという方法がある。
【0003】
ピアノロールとは、オルガン式オルゴールや自動ピアノに取り付けて使用する自動演奏情報が穿孔された紙製のロールのことである。このロールを順次送り、空気圧で穿孔部を読み取り、ハンマー等を動作させる仕組みで、19世紀末頃から作られたものである。
【0004】
特開2001−51586号公報には、演奏指示装置として、ピアノロールのように音符を表示する装置が開示されている。この装置では、押鍵から離鍵までの鍵の操作範囲をスクロールバーで表示し、曲の再生に従ってスクロールバーがロールダウンし、演奏者に押鍵または離鍵のタイミングが指示されるとしている。
【特許文献1】特開2001−51586号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、従来のピアノロール形式で表示を行うものは、演奏テンポを設定した場合は、その設定された演奏テンポの値に応じてピアノロールの表示をスクロールする速度を変えていたため、実際のピアノロールとは異なり、違和感があるという問題点があった。すなわち、実際のピアノロールでは、ロールを送る速度は一定であり、ピアノロールに穿孔された音符に対応する孔の長さが異なるのである。
【0006】
また、実際のピアノロール紙による自動ピアノ装置では、ロール紙を巻き戻したり、早送りをした場合に、瞬時に送られるのではなく、所定の速度で送られる。また、巻戻し、または早送りを開始した場合や、停止した場合、および巻き戻し、または、戻し早送りを行っている場合は、機械が動作する音を発生していたが、従来のピアノロール形式で表示する装置では、瞬時に巻き戻しが行われたり、機械的な音を発生することがなく、実際のピアノロールを演奏する自動ピアノとは異なり、リアリティに欠けるという問題点もあった。
【0007】
本発明は、上記問題点を解決するためになされたものであり、ピアノロールにより自動演奏を行う自動ピアノを模擬することができるピアノロール表示装置およびピアノロール表示プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
この目的を達成するために、請求項1記載のピアノロール表示装置は、自動演奏情報を記憶する自動演奏情報記憶手段と、その自動演奏情報記憶手段に記憶された自動演奏情報に基づいて音符に対応する図形を表示する表示画面とを備えたものであり、演奏テンポを設定する演奏テンポ設定手段と、前記演奏テンポ設定手段により設定された演奏テンポに応じて前記表示画面に表示される音符の長さに対応する図形の長さを設定する音符長さ設定手段と、前記表示画面を演奏テンポに関わらず一定速度でスクロールするスクロール手段とを備えている。
【0009】
請求項2記載のピアノロール表示装置は、請求項1記載のピアノロール表示装置において、前記演奏テンポ設定手段により設定された演奏テンポに応じて楽音を発生するように音源に指示を送る自動演奏手段を備えている。
【0010】
請求項3記載のピアノロール表示装置は、請求項2記載のピアノロール表示装置において、前記スクロール手段は、前記自動演奏手段が演奏している演奏場所が前記表示画面に表示されるようにスクロールする。
【0011】
請求項4記載のピアノロール表示装置は、請求項1から3のいずれかに記載のピアノロール表示装置において、前記表示画面に小節線を表示する小節線設定手段を備えている。
【0012】
請求項5記載のピアノロール表示装置は、請求項1から4のいずれかに記載のピアノロール表示装置において、前記表示画面に表示される楽譜の表示位置を任意に設定する表示位置設定手段を備え、前記スクロール手段は、前記表示位置設定手段により設定された楽譜の表示位置まで前記一定速度より速い速度で表示画面をスクロールする。
【0013】
請求項6記載のピアノロール表示装置は、請求項1から5のいずれかに記載のピアノロール表示装置において、前記スクロール手段が前記一定速度より速い速度で表示画面をスクロールする場合に擬音を発生する擬音発生手段を備えている。
【0014】
請求項7記載のピアノロール表示プログラムは、自動演奏情報を記憶する自動演奏情報記憶手段と、その自動演奏情報記憶手段に記憶された自動演奏情報に基づいて音符に対応する図形を表示する表示画面とを備えたピアノロール表示装置により実行されるものであり、演奏テンポを設定する演奏テンポ設定ステップと、その演奏テンポ設定手段により設定された演奏テンポに応じて前記表示画面に表示される音符の長さに対応する図形の長さを設定する音符長さ設定ステップと、前記表示画面を演奏テンポに関わらず一定速度でスクロールするスクロールステップとを備えている。
【0015】
請求項8記載のピアノロール表示プログラムは、請求項7記載のピアノロール表示プログラムにおいて、前記演奏テンポ設定ステップにより設定された演奏テンポに応じて楽音を発生するように音源に指示を送る自動演奏ステップを備えている。
【0016】
請求項9記載のピアノロール表示プログラムは、請求項8記載のピアノロール表示プログラムにおいて、前記スクロールステップは、前記自動演奏ステップが演奏している演奏場所が前記表示画面に表示されるようにスクロールする。
【0017】
請求項10記載のピアノロール表示プログラムは、請求項7から9のいずれかに記載のピアノロール表示プログラムにおいて、前記表示画面に小節線を表示する小節線設定ステップを備えている。
【0018】
請求項11記載のピアノロール表示プログラムは、請求項7から10のいずれかに記載のピアノロール表示プログラムにおいて、前記表示画面に表示される楽譜の表示位置を任意に設定する表示位置設定ステップを備え、前記スクロールステップは、前記表示位置設定ステップにより設定された楽譜の表示位置まで前記一定速度より速い速度で表示画面をスクロールする。
【発明の効果】
【0019】
請求項1記載の請求項1記載のピアノロール表示装置によれば、演奏テンポを設定する演奏テンポ設定手段と、演奏テンポ設定手段により設定された演奏テンポに応じて表示画面に表示される音符の長さに対応する図形の長さを設定する音符長さ設定手段と、表示画面を演奏テンポに関わらず一定速度でスクロールするスクロール手段とを備えているので、表示画面に表示されるピアノロールは、実際のピアノロールと同等の表示となり、違和感のない表示が行われるという効果がある。
【0020】
請求項2記載のピアノロール表示装置によれば、請求項1記載のピアノロール表示装置の奏する効果に加え、演奏テンポ設定手段により設定された演奏テンポに応じて楽音を発生するように音源に指示を送る自動演奏手段を備えているので、自動演奏に合致したピアノロールの表示が行われ、自動ピアノを模擬することができるという効果がある。
【0021】
請求項3記載のピアノロール表示装置によれば、請求項2記載のピアノロール表示装置の奏する効果に加え、スクロール手段は、自動演奏手段が演奏している演奏場所が表示画面に表示されるようにスクロールするので、自動演奏が行われている楽譜上の場所をピアノロール上で確認することができるという効果がある。
【0022】
請求項4記載のピアノロール表示装置によれば、請求項1から3のいずれかに記載のピアノロール表示装置の奏する効果に加え、表示画面に小節線を表示する小節線設定手段を備えているので、ピアノロールに表示される図形と音符との関係を把握しやすいという効果がある。
【0023】
請求項5記載のピアノロール表示装置によれば、請求項1から4のいずれかに記載のピアノロール表示装置の奏する効果に加え、表示画面に表示される楽譜の表示位置を任意に設定する表示位置設定手段を備え、スクロール手段は、表示位置設定手段により設定された楽譜の表示位置まで一定速度より速い速度で表示画面をスクロールするので、ピアノロールの早送りや巻き戻しを行った際に、実際のピアノロールが早送りや巻き戻しされる様子を模擬することができるという効果がある。
【0024】
請求項6記載のピアノロール表示装置によれば、請求項1から5のいずれかに記載のピアノロール表示装置の奏する効果に加え、スクロール手段が一定速度より速い速度で表示画面をスクロールする場合に擬音を発生する擬音発生手段を備えているので、ピアノロールを早送りや巻き戻しを行った際に、よりよく実際のピアノロールが早送りや巻き戻しされる様子を模擬することができるという効果がある。
【0025】
請求項7記載のピアノロール表示プログラムによれば、演奏テンポを設定する演奏テンポ設定ステップと、その演奏テンポ設定手段により設定された演奏テンポに応じて表示画面に表示される音符の長さに対応する図形の長さを設定する音符長さ設定ステップと、表示画面を演奏テンポに関わらず一定速度でスクロールするスクロールステップとを備えているので、表示画面に表示されるピアノロールは、実際のピアノロールと同等の表示となり、違和感のない表示が行われるという効果がある。
【0026】
請求項8記載のピアノロール表示プログラムによれば、請求項7記載のピアノロール表示プログラムの奏する効果に加え、演奏テンポ設定ステップにより設定された演奏テンポに応じて楽音を発生するように音源に指示を送る自動演奏ステップを備えているので、自動演奏に合致したピアノロールの表示が行われ、自動ピアノを模擬することができるという効果がある。
【0027】
請求項9記載のピアノロール表示プログラムによれば、請求項8記載のピアノロール表示プログラムの奏する効果に加え、スクロールステップは、自動演奏手段が演奏している演奏場所が表示画面に表示されるようにスクロールするので、自動演奏が行われている楽譜上の場所をピアノロール上で確認することができるという効果がある。
【0028】
請求項10記載のピアノロール表示プログラムによれば、請求項7から9のいずれかに記載のピアノロール表示プログラムの奏する効果に加え、表示画面に小節線を表示する小節線設定ステップを備えているので、ピアノロールに表示される図形と音符との関係を把握しやすいという効果がある。
【0029】
請求項11記載のピアノロール表示プログラムによれば、請求項7から10のいずれかに記載のピアノロール表示プログラムの奏する効果に加え、表示画面に表示される楽譜の表示位置を任意に設定する表示位置設定ステップを備え、スクロールステップは、表示位置設定ステップにより設定された楽譜の表示位置まで一定速度より速い速度で表示画面をスクロールするので、ピアノロールの早送りや巻き戻しを行った際に、実際のピアノロールが早送りや巻き戻しされる様子を模擬することができるという効果がある。
【発明を実施するための最良の形態】
【0030】
以下、本発明の好ましい実施形態について、添付図面を参照して説明する。図1は、本発明の一実施形態であるピアノロール表示装置1の電気的構成を示したブロック図である。
【0031】
ピアノロール表示装置1は、CPU2と、ROM3と、RAM4と、操作子5と、表示器6と、音源7と、フラッシュメモリ8と、鍵盤9と、アンプ10と、スピーカ11とにより構成されている。
【0032】
CPU2は、演算装置であり、ROM3に記憶される制御プログラムに従って自動演奏やピアノロール表示などの処理を行う。CPU2には、所定の時間単位で計時を行うタイマ2aが備えられている。
【0033】
ROM3は、CPU2により実行される各種の制御プログラム3aやその制御プログラム3aを実行する際に参照される固定値データが記憶されている。制御プログラムの一つが自動演奏を行うとともにピアノロールを表示する制御プログラムである。
【0034】
RAM4は、CPU2が、ROM3に記憶されている制御プログラムの実行に当たって各種のデータ等を一時的に記憶するワーキングエリアと、表示器6にピアノロール図を表示した際に、表示データを記憶する表示データ記憶エリアとを有する書き換え可能なメモリである。RAM4には、自動演奏を行っているか、早送りを行っているか、巻き戻しを行っているかを示すフラグを記憶するフラグメモリ4aと、現在設定されているテンポの値を記憶するテンポ値メモリ4bと、ピアノロール図を描画する際に変数などが記憶される表示パラメータメモリ4cとが備えられている。
【0035】
操作子5は、自動演奏の開始や停止などの指示を行うスイッチや、自動演奏が行われる際の音量などを調整する操作子である。図2を参照して、本発明に関わる操作子について後述する。
【0036】
表示器6は、LCDにより構成される表示器であって、ピアノロール図が表示される。表示態様については、図2を参照して後述する。
【0037】
音源7は、CPU2により指示される音高、音量、音色で楽音を形成するもので、各種楽器(例えば、ピアノ、フルート、バイオリンなど)の波形や、実際のピアノロール紙を早送りおよび巻き戻しを行う際のローラの回転音やロール紙が高速で巻き取られる際、および巻き取りを開始する際や巻き取りを終了した際に発生する機械的な音を模擬する擬音を記憶し、その波形を読み出すことにより楽音を形成する。音源7により形成された楽音は、アンプ10により増幅されてスピーカ11により放音される。
【0038】
フラッシュメモリ8は、ピアノロール表示装置1に備えられたスロット(図示なし)に着脱自在に装着される書き換え可能で不揮発性のメモリであり、自動演奏を行うための自動演奏情報8aを記憶する。自動演奏情報8aは、楽曲に対応し、楽曲のタイトルや、作曲者などの情報とともに、時間経過に従って演奏を行う演奏情報により構成され、図3を参照して後述する。
【0039】
鍵盤9は、複数の白鍵および黒鍵により構成される楽器用の鍵盤であって、発生される楽音の音高を指定するとともに、押鍵により発音の開始を指示し離鍵により発音の停止を指示するものである。
【0040】
鍵盤9を演奏することにより音源7から演奏音が発生され、その演奏を記録することにより、自動演奏情報を形成することができる。
【0041】
次に、図2を参照して、表示器6に表示される表示画面と、自動演奏を行う際に操作される操作子について説明する。図2は、ピアノロール表示装置1の操作パネルに配置された表示器6と4つのスイッチを示すパネル図である。
【0042】
表示画面には、ピアノロール図が表示される。この実施形態では、ピアノロール図には、鍵が押下されている時間を黒い長方形の音符線21aで示し、鍵盤の鍵の配置を模擬して横方向に音高を表し、右方へ行くほど音高が高い鍵について表示している。
【0043】
また、縦方向は、時間を表し上方から下方へ時間が進行する事象を示している。したがってピアノロール図は、演奏の進行に伴って下方から上方(矢印Aの方向)へスクロールされる。
【0044】
表示画面中に、縦方向に長く黒く表示されている長方形の音符線21aが、鍵盤を押下していることを示す。表示画面において、縦方向に引かれている破線21cは、5線譜の位置を示し、同図において、右方の5線が高音部(右端の破線から順に、F,D,B,G,Eの各音高を示す)、左方の5線が低音部(中央のやや太い破線の左隣の破線から順に、A,F,D,B,Gの各音高を示す)に対応し、中央のやや太い破線は、中央Cの音高を示している。
【0045】
また、表示画面において、横方向に引かれている実線は、小節線を示し、この表示画面では、上方の小節線の間隔が広く、下方の小節線の間隔が狭く描かれている。これは、上方の間隔が広い部分では、テンポが遅く、間隔が短い部分では、テンポが速いことを意味している。
【0046】
表示器6の下方には、4つの自動演奏を行う際に操作されるスイッチが配置されてる。左側から順に、巻き戻しスイッチ5a、プレイスイッチ5b、ストップスイッチ5c、早送りスイッチ5dである。巻き戻しスイッチ5aが操作されると、現在の曲の演奏位置が先頭まで高速で戻され、プレイスイッチ5bが操作されると、現在位置から演奏が開始される。ストップスイッチ5cが操作されると、演奏している場所で停止し、早送りスイッチ5dが操作されると、現在位置が曲の終わり方向へ高速で送られる。
【0047】
自動演奏が行われる場合は、自動演奏情報に従って演奏が行われるとともに、その自動演奏情報に対応するピアノロール図が、表示器6に表示される。巻き戻しまたは早送りが指示された場合は、自動演奏情報に基づく演奏は行われず、ピアノロール紙が巻き取られる機械音を模擬した音が発生されるとともに、ピアノロール図が高速でスクロールされる(図4(a)、参照)。巻き取りを開始した場合は、巻き取りを開始した機械音を、また、巻き取りを終了した場合は、機械が停止する機械音を模擬した音が音源7により形成される。
【0048】
次に、図3を参照して自動演奏情報について説明する。図3は、自動演奏情報を示すテーブルである。この実施形態における自動演奏情報は、イベントの種類と、次のイベントまでの時間(delta)とを、一組のデータとして時間経過に従って順次記憶するものである。
【0049】
図3に示すテーブルにおいて、まず第一行に記述されたデータは、イベントの種類がテンポの値を80(拍/分)とし、次のイベントまでの時間を0(単位は、ティック)とすると記述されている。ここで、ティックとは、1拍を所定の数で除した値であり、ここでは、1拍を96で除した値をティックとする。読み出されたテンポの値は、RAM4に設けられたテンポ値メモリ4bに記憶される。
【0050】
次の行に記述されたデータは、イベントの種類がノートオンであり、次のイベントまでの時間を96ティックとしている。ここで、ノートオンとは、MIDI規格でいう鍵盤が押下されたことを示すデータであり、図3では、音高を示すノートナンバを2列目に示し、押鍵速度を表すベロシティは、省略して示す。以下同様に、イベントと次のイベントまでの時間により自動演奏情報は構成される。
【0051】
次に、図4を参照して、自動演奏時以外の時に表示器6に表示されるピアノロール図について説明する。図4(a)は、巻き戻しを行っている場合に表示されるピアノロール図である。従来の、ピアノロールを表示するものでは、巻き戻しを指示すると瞬時に曲の先頭に演奏位置が移動され、味気ないものであったが、本発明では、演奏時とは逆の方向に高速でスクロール表示を行い、実際の自動ピアノなどのように、機械的にピアノロール紙を巻き取る様子を模擬する。
【0052】
図4(b)は、ピアノロール図の曲頭を表示する図であり、ピアノロール紙の先頭部分を模擬して表示する。
【0053】
次に、図5〜図8を参照して、CPU2が制御プログラムを実行することより行われるピアノロール表示処理について説明する。図5は、ピアノロール表示装置1の電源が投入されることにより起動されるメインルーチンを示すフローチャートで、このメインルーチンは、ピアノロール表示装置1の電源が遮断されるまで繰り返し実行される。
【0054】
まず、初期設定を行う(S1)。この初期設定としては、表示画面に図4(b)に示す曲頭を示す表示を行う。なお、ここでは、説明を簡単にするために、複数の曲の演奏情報がフラッシュメモリ8に記憶され、選曲がすでに行われているものとする。また、タイマ2aを所定の時間間隔(例えば、1msec)で計時を行うように設定し、タイマ割り込みを禁止するように設定する。
【0055】
次に、プレイスイッチ5bが操作されて演奏の開始が指示されたか否かを判断する(S2)。プレイスイッチ5bが操作された場合は(S2:Yes)、タイマ割り込みを許可するように設定するとともに、RAM4に設けられたフラグメモリ4aに記憶されたフラグを自動演奏であることを示す値に設定する(S3)。
【0056】
プレイスイッチが操作されていない場合(S2:No)、または、S3の処理を終了した場合は、ストップスイッチ5cが操作されて演奏の停止が指示されたか否かを判断する(S4)。
【0057】
ストップスイッチ5cが操作された場合は(S4:Yes)、タイマ割り込みを禁止するように設定する(S5)。この時、自動演奏中であれば、発音中の楽音の発音を停止するように音源7に指示し、早送り中であれば、早送りの擬音の発生を停止し、巻戻し中であれば、巻き戻しの擬音の発生を停止するように音源7に指示を送る。
【0058】
ストップスイッチ5cが操作されていない場合(S4:No)、または、S5の処理を終了した場合は、巻戻しスイッチ5aが操作されて巻き戻しが指示されたか否かを判断する(S6)。巻き戻しスイッチ5aが操作された場合は(S6:Yes)、タイマ割り込みを許可し、巻き戻しを示すフラグをフラグメモリ4aに記憶すると共に、ピアノロール紙の巻戻しを開始する機械音を模擬する音を発生し、その後は巻き戻しを行っている模擬音を発生するように音源7に指示を送る(S7)。
【0059】
巻き戻しスイッチ5aが操作されていない場合(S6:No)、または、S7の処理を終了した場合は、早送りスイッチ5dが操作されて早送りが指示されたか否かを判断する(S8)。早送りスイッチ5dが操作された場合は(S8:Yes)、タイマ割り込みを許可し、早送りを示すフラグをフラグメモリ4aに記憶すると共に、ピアノロール紙の早送りを開始する機械音を模擬する音を発生し、その後は早送りを行っている模擬音を発生するように音源7に指示を送る(S9)。早送りスイッチ5dが操作されていない場合(S8:No)、または、S9の処理を終了した場合は、S2の処理に戻る。
【0060】
次に、図6を参照して、タイマ割り込み処理について説明する。図6は、タイマ割り込み処理を示すフローチャートである。フラグメモリ4aに記憶したフラグを参照し、現在自動演奏中であるか否かを判断する(S11)。現在、自動演奏中である場合は(S11:Yes)、Δtickの値を演算する(S12)。このΔtickは、タイマ割り込みが発生する時間間隔に対応するティック数である。上記の通り、タイマ割り込みの時間間隔を1msec、ティックを1拍を96で分割した値とし、テンポ値(テンポ値メモリ4bに記憶されている)をtempoとすると、
Δtick=(tempo×96)/(60×1000)
次に、現在の自動演奏を開始した時からのティック数tickを求め(S13)、このΔtickの間にイベントが存在するか否かを判断する(S14)。上述の通り、自動演奏情報は、イベントの種類と次のイベントまでの時間を記憶しているので、予め各イベントの演奏開始からの時刻を演算して記憶しておいてもよいし、すでに処理を終了したイベントまでの累算した時間を記憶し、次のイベントの時刻が、現在時間に達しているか否かを判断してもよい。
【0061】
Δtickの間にイベントが存在する場合は(S14:Yes)、そのイベントについての処理を行う(S15)。すなわち、イベントがノートオンやノートオフなどの楽音の発生に関する情報である場合には、音源7にその情報を送信し、テンポの値を示す情報である場合は、そのテンポ値をRAM4のテンポ値メモリ4bに記憶する。
【0062】
S14の判断処理においてイベントが存在しない場合(S14:No)、またはS15の処理を終了した場合は、表示器6に表示するピアノロール図を更新する(S16)。この更新処理については、図7および図8を参照して後述する。
【0063】
S11の判断処理において、フラグメモリ4aに記憶したフラグにより、現在、自動演奏中ではないと判断した場合は(S11:No)、そのフラグにより現在、早送りに設定されているか否かを判断する(S21)。現在、早送りに設定されている場合は(S21:Yes)、tickの値に、値FDを加算してtickの値を進める(S22)。この値FDは、早送りの際に高速でピアノロール図をスクロールするための値であって、例えば、1拍のtick数(96)などとする。
【0064】
次に、tickの値が曲の終わりに達したか否かを判断する(S23)。曲の終わりに達した場合は(S23:Yes)、ピアノロール紙を早送りする擬音に変わり、ピアノロール紙の早送りを停止した時の擬音を発生し、タイマ割り込みを禁止するように設定する(S24)。曲の終わりに達していない場合(S23:No)、またはS24の処理を終了した場合は、S16のピアノロール表示処理に進む。
【0065】
S21の判断処理において、フラグメモリ4aに記憶したフラグにより、現在、早送り中ではないと判断した場合は(S21:No)、現在、巻き戻しに設定されているので、tickの値から値BDを加算してtickの値を戻す(S31)。この値BDは、巻戻しの際に高速でピアノロール図を逆方向へスクロールするための値であって、例えば、1拍のtick数(96)などとする。
【0066】
次に、tickの値が曲の初め(曲頭)に達したか否かを判断する(S32)。曲の初めに達した場合は(S32:Yes)、ピアノロール紙を巻戻しする擬音に変わり、ピアノロール紙の巻き戻しを停止した時の擬音を発生し、タイマ割り込みを禁止するように設定する(S33)。曲の初めに達していない場合(S32:No)、またはS33の処理を終了した場合は、S16のピアノロール表示処理に進む。
【0067】
次に、図7および図8を参照して上記S16のピアノロール表示処理について説明する。図7は、ピアノロール表示処理を示すフローチャートである。このピアノロール表示処理では、現在のtickの値が、表示器6の縦方向の中央付近に位置するように表示され、表示される範囲を時刻t0からt1までの自動演奏情報とする。ここで、この処理において使用される変数について説明する。これらの変数は、RAM4に備えられた表示パラメータメモリに記憶される。
「time」は、描画を行う際の現在時刻を示し、
「wait」は、時刻timeから、次のイベントまでの時間であり、
map[n]は、ノートマップを表し、いずれかの鍵nが押下されていることを示すフラグである。また、「tempoD」は、表示を行う際に参照するテンポ値であり、テンポ値メモリ4bに記憶されるテンポ値とは、異なる。
【0068】
描画処理において、まず、時刻t0におけるテンポ値をtempoDに代入し、押鍵状態にある鍵に対応するフラグmap[n]に1を代入し、waitの値を求める(S41)。これらの値は、曲の先頭から順次、演奏情報について処理することにより得られるものであり、前回表示処理を行った際の時刻t0における各値を記憶しておいて、その状態から今回のt0までの変化を処理することにより得ることができる。
【0069】
次に、timeを時刻t0とし(S42)、timeが時刻t1に達していないかを判断する(S43)。timeが時刻t1に達した場合は(S43:No)、全表示画面の描画を終了してことになるのでこの描画処理を終了し、timeが時刻t1に達していない場合は(S43:Yes)、dtをwaitと(t1−time)とのいずれか小さい値とし(S44)、map[n]が1である音高についての音符線を描画する(S45)。この音符線は、音高nについて、時間がtimeからtime+dtまでの線分である。
【0070】
なお、この時間dtの間に、小節線を有する場合は、その小節線の時刻に対応する表示画面の時刻に、横線を描画する。
【0071】
次に、時間dtに対応する自動演奏情報を読み進める(S46)。この読み進める処理については、図8を参照して後述する。次に、現在時間timeをdtだけ進め(S47)、S43の処理に戻る。
【0072】
次に、図8を参照して、自動演奏情報を読み進める処理について説明する。図8は、自動演奏情報を読み進める処理を示すフローチャートである。
【0073】
この自動演奏情報を読み進める処理では、まず、変数waitをdtを引いた値にする(S51)。そのwaitの値が0より小さいか等しいかを判断し(S52)、waitの値が0より小さいか等しい場合は(S52:Yes)、自動演奏情報を読み進めて、次のイベントとそのイベントに対応して記憶されているdeltaとを得る(S53)。
【0074】
次に、そのイベントの種類がテンポ値を示すものであるか否かを判断し(S54)、テンポ値を示すものである場合は(S54:Yes)、tempoDの値を、その値に書き換える(S55)。
【0075】
イベントの種類が、テンポ値を示すものではない場合は(S54:No)、イベントの種類がノートオンであるか否かを判断し(S56)、ノートオンである場合には(S56:Yes)、フラグmap[n]を1とする(S57)。
【0076】
イベントの種類が、ノートオンではない場合は(S56:No)、イベントの種類がノートオフであるか否かを判断し(S58)、ノートオフである場合には(S58:Yes)、フラグmap[n]を0とする(S59)。
【0077】
イベントの種類がノートオフではない場合(S58:No)、または、S55、S57S59の処理を終了した場合は、waitの値を、wait+delta/tempoDとし(S60)、S52の処理に戻る。
【0078】
ここで、deltaの値をテンポ値で除算するので、ピアノロール図は、テンポ値が大きい場合は、時間軸が圧縮され、テンポ値が小さい場合は、時間軸が伸長されて表示される。従って、同じ音符長であっても、ピアノロール図として表示される図形の長さは、短くなり、逆にテンポの値が小さい場合は、図形の長さが長く表示される。
【0079】
S52の判断処理において、waitの値が正の値となった場合は、この自動演奏情報を読み進める処理を終了する。
【0080】
以上実施形態に基づいて説明したように、本発明によれば、ピアノロール図は、テンポの値に関係なく、一定の速度でスクロールされ、実際の自動ピアノなどのピアノロール紙を用いた装置の様子を忠実に再現することができる。
【0081】
また、早送りや、巻き戻しを行う際にも、実際の自動ピアノなどのピアノロール紙が早送り、または、巻き戻しされる際の機械音などが模擬されるので、より忠実に自動ピアノなどのピアノロール紙を用いた装置を模擬することができる。
【0082】
なお、請求項記載の演奏テンポ設定手段および演奏テンポ設定ステップは、図8に記載のフローチャートのS55の処理が該当し、音符長さ設定手段および音符長さ設定ステップは、図7に記載のフローチャートのS45の処理が該当し、スクロール手段およびスクロールステップは、図6に示すフローチャートのS16の処理が該当し、自動演奏手段おおび自動演奏ステップは、図6に示すフローチャートのS15の処理が該当し、小節線設定手段および小節線設定ステップは、図7に示すフローチャートのS45の処理が該当し、表示位置設定手段および表示位置設定ステップは、図5に示すフローチャートのS6からS9の処理が該当する。
【0083】
以上、実施形態に基づき本発明を説明したが、本発明は上記実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
【0084】
例えば、上記実施形態では、鍵盤9等を有する電子楽器に組み込まれたピアノロール表示装置1に本発明が適用されるものとしたが、パーソナルコンピュータにおいて、液晶などの表示装置にピアノロールを表示するようにしてもよい。
【0085】
また、上記実施形態では、自動演奏情報に基づいて、自動演奏が行われるとともに、その自動演奏情報に基づいてピアノロールを表示するものとしたが、自動演奏情報に従ってピアノロール形式により演奏指示を行い、伴奏パートの自動演奏情報に従って伴奏パートの自動演奏を行うようにしてもよい。この場合は、伴奏パートの進行に同期してピアノロール表示が行われる。
【0086】
また、上記実施形態では、テンポの値は、自動演奏情報に時間経過に従って記憶されているものとしたが、操作パネルにテンポの値を任意に設定する操作子を備え、その操作子の操作に応じてテンポ値を設定するようにしてもよい。
【0087】
また、上記実施形態では、タイマ割り込みの発生に応じて、自動演奏の楽音の発生や停止を行うとともに、ピアノロールの表示を更新するものとしたが、表示の更新の頻度を低く(例えば、30msec毎)してもよい。
【0088】
また、上記実施形態では、ピアノロール図は、演奏の進行に従って下から上にスクロールするものとしたが、逆に上から下にスクロールするようにしたり、横方向へスクロールするようにしてもよい。また、図9(a)に示すように、立体的な表示として、ピアノロール紙が、手前から奥の方へ搬送されるような表示としてもよい。
【0089】
また、上記実施形態では、鍵を押下している部分を示す音符線は、同一の太さの線分としたが、図9(b)に示すように、音量に応じて太さを変えたり、楽音の音量に応じてグレイスケールを変えるなどの表示を行っても良い。図9(b)では、オルガンの場合には、音量により太さを変え、ピアノの場合には、押鍵直後は、濃い黒で表示し、音量が次第に小さくなるのを模擬して、次第に薄くなるように表示している。また、図9(b)最下列に示すように、鍵を押下する位置に正方形を図示し、その正方形の大きさにより、押鍵速度の大きさを表すようにしてもよい。
【図面の簡単な説明】
【0090】
【図1】本発明の実施形態におけるピアノロール表示装置の電気的構成を示すブロック図である。
【図2】操作子とピアノロール図が表示される表示画面とを有するピアノロール表示装置の操作パネルを示すパネル図である。
【図3】自動演奏情報を示すテーブルである。
【図4】(a)は、巻き戻しを行っている場合に表示されるピアノロール図であり、(b)は、ピアノロールの曲頭を示す図である。
【図5】メイン処理を示すフローチャートである。
【図6】タイマ割り込み処理を示すフローチャートである。
【図7】描画処理を示すフローチャートである。
【図8】描画処理において、自動演奏情報を読み進める処理を示すフローチャートである。
【図9】ピアノロール図の変形例を示す図である。
【符号の説明】
【0091】
1 ピアノロール表示装置
2 CPU
3 ROM
3a 制御プログラム(ピアノロール表示プログラム)
4 RAM
6 表示器
7 音源(擬音発生手段)
8 フラッシュメモリ(自動演奏情報記憶手段)

【特許請求の範囲】
【請求項1】
自動演奏情報を記憶する自動演奏情報記憶手段と、その自動演奏情報記憶手段に記憶された自動演奏情報に基づいて音符に対応する図形を表示する表示画面とを備えたピアノロール表示装置において、
演奏テンポを設定する演奏テンポ設定手段と、
前記演奏テンポ設定手段により設定された演奏テンポに応じて前記表示画面に表示される音符の長さに対応する図形の長さを設定する音符長さ設定手段と、
前記表示画面を演奏テンポに関わらず一定速度でスクロールするスクロール手段とを備えていることを特徴とするピアノロール表示装置。
【請求項2】
前記演奏テンポ設定手段により設定された演奏テンポに応じて楽音を発生するように音源に指示を送る自動演奏手段を備えていることを特徴とする請求項1記載のピアノロール表示装置。
【請求項3】
前記スクロール手段は、前記自動演奏手段が演奏している演奏場所が前記表示画面に表示されるようにスクロールすることを特徴とする請求項2記載のピアノロール表示装置。
【請求項4】
前記表示画面に小節線を表示する小節線設定手段を備えていることを特徴とする請求項1から3のいずれかに記載のピアノロール表示装置。
【請求項5】
前記表示画面に表示される楽譜の表示位置を任意に設定する表示位置設定手段を備え、
前記スクロール手段は、前記表示位置設定手段により設定された楽譜の表示位置まで前記一定速度より速い速度で表示画面をスクロールすることを特徴とする請求項1から4のいずれかに記載のピアノロール表示装置。
【請求項6】
前記スクロール手段が前記一定速度より速い速度で表示画面をスクロールする場合に擬音を発生する擬音発生手段を備えていることを特徴とする請求項1から5のいずれかに記載のピアノロール表示装置。
【請求項7】
自動演奏情報を記憶する自動演奏情報記憶手段と、その自動演奏情報記憶手段に記憶された自動演奏情報に基づいて音符に対応する図形を表示する表示画面とを備えたピアノロール表示装置により実行されるピアノロール表示プログラムにおいて、
演奏テンポを設定する演奏テンポ設定ステップと、
その演奏テンポ設定ステップにより設定された演奏テンポに応じて前記表示画面に表示される音符の長さに対応する図形の長さを設定する音符長さ設定ステップと、
前記表示画面を演奏テンポに関わらず一定速度でスクロールするスクロールステップとを備えていることを特徴とするピアノロール表示プログラム。
【請求項8】
前記演奏テンポ設定ステップにより設定された演奏テンポに応じて楽音を発生するように音源に指示を送る自動演奏ステップを備えていることを特徴とする請求項7記載のピアノロール表示プログラム。
【請求項9】
前記スクロールステップは、前記自動演奏ステップが演奏している演奏場所が前記表示画面に表示されるようにスクロールすることを特徴とする請求項8記載のピアノロール表示プログラム。
【請求項10】
前記表示画面に小節線を表示する小節線設定ステップを備えていることを特徴とする請求項7から9のいずれかに記載のピアノロール表示プログラム。
【請求項11】
前記表示画面に表示される楽譜の表示位置を任意に設定する表示位置設定ステップを備え、
前記スクロールステップは、前記表示位置設定ステップにより設定された楽譜の表示位置まで前記一定速度より速い速度で表示画面をスクロールすることを特徴とする請求項7から10のいずれかに記載のピアノロール表示プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate