(57)【要約】【課題】従来の演奏ナビゲーションは、曲の進行に応じて演奏すべき楽譜上の音符の位置を単にカーソルで指し示しているに過ぎず、この音符に関わる情報を表示するものではなかった。【解決手段】曲データに含まれている拍子に基づいて拍をカウント（Ｓ７０３）し、この拍に対応したカーソル画像を指定する（Ｓ７０６）とともに、曲の進行に応じた座標位置に指定されたカーソル画像を変化させて表示する（Ｓ７１１）構成にしたので、演奏すべき音符の位置に同期して演奏タイミングと当該音符の情報である拍の進行状況を同時に表示する構成にしたことによってユーザーの演奏を補助することを可能とした。【選択図】　　　図７
2004094092.tif 000002
【特許請求の範囲】
【請求項１】
曲情報を記憶する曲情報記憶手段と、
この曲情報に対応する楽譜を表示する楽譜表示手段と、
前記曲情報記憶手段から曲情報を順次読み出す読出し手段と、
この読出し手段により読み出される曲情報の進行に対応する前記楽譜表示手段に表示された楽譜上にカーソルを表示するカーソル表示手段と、
前記読出し手段により読み出された曲情報の進行に対応して前記カーソル表示手段にて表示されるカーソルの形状を可変するカーソル形状可変手段と、
を具備してなる曲進行表示装置。
【請求項２】
前記カーソル形状可変手段は、前記読出し手段によって読み出された曲情報の拍をカウントする拍カウント手段を含み、当該拍カウント手段にてカウントされた前記楽譜上の拍の位置に基づいて、前記カーソル表示手段にて表示されるカーソルの形状を可変することを特徴とする請求項１記載の曲進行表示装置。
【請求項３】
前記カーソル形状可変手段は、前記拍カウント手段にてカウントされた拍数に基づいて前記カーソルの形状を可変することを特徴とする請求項２記載の曲進行表示装置。
【請求項４】
一連の音符情報を含む曲情報を記憶する曲情報記憶手段と、
この曲情報に対応する楽譜を表示する楽譜表示手段と、
前記曲情報記憶手段から音符情報を順次読み出す読出し手段と、
この読出し手段により読み出される音符情報に対応する前記楽譜表示手段に表示された楽譜上にカーソルを表示するカーソル表示手段と、
前記読出し手段により読み出された音符情報に対応して前記カーソル表示手段にて表示されるカーソルの形状を可変するカーソル形状可変手段と、
を具備してなる曲進行表示装置。
【請求項５】
前記楽譜表示手段は、前記楽譜として前記曲情報に対応した一連の音符画像を表示することを特徴とする請求項４記載の曲進行表示装置。
【請求項６】
前記カーソル表示手段は、前記読出し手段により読み出された音符情報に対応する前記楽譜上の音符画像が表示される位置にカーソルを表示することを特徴とする請求項５記載の曲進行表示装置。
【請求項７】
前記音符情報は音符の音高を表す音高情報を含み、前記カーソル形状可変手段は、前記読出し手段により読み出された音符情報に含まれる音高情報に基づいて前記カーソルの形状を可変することを特徴とする請求項４記載の曲進行表示装置。
【請求項８】
曲情報記憶手段に記憶された曲情報に対応する楽譜を表示する機能と、
前記曲情報記憶手段から曲情報を順次読み出す機能と、
読み出される曲情報の進行に対応する楽譜上にカーソルを表示する機能と、
読み出された曲情報の進行に対応して表示されるカーソルの形状を可変する機能と、
を実現するための曲進行表示処理プログラム。
【請求項９】
曲情報記憶手段に記憶された一連の音符情報を含む曲情報に対応する楽譜を表示する機能と、
前記曲情報記憶手段から音符情報を順次読み出す機能と、
読み出される音符情報に対応する楽譜上にカーソルを表示する機能と、
読み出された音符情報に対応して表示されるカーソルの形状を可変する機能と、
を実現するための曲進行表示処理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、曲進行表示装置及び曲進行表示処理プログラムに関する。
【０００２】
【従来の技術】
従来から曲を演奏する際に、ディスプレイ上に演奏される曲に対応する楽譜を表示し、この曲の進行に合わせて楽譜の音符上に縦線状のカーソルを移動表示するようにしたものが知られている。（特許文献１参照）
【０００３】
【特許文献】
特開２００２−４１０３４号公報（第２頁−３頁、第３図）
【０００４】
【発明が解決しようとする課題】
しかしながら、このような従来の楽譜表示装置において、カーソルは曲の進行に同期して楽譜上を移動して、単に、演奏すべき音符がどれかを示すだけであり、拍（ビート）のタイミング或いは音符に含まれている音高（音名）など、曲の進行に合わせて演奏を補助する情報をナビゲーションするという構成にはなっていない。
【０００５】
そこで、本発明は曲の進行に対応して楽譜上の音符を表示する際に、演奏すべきタイミング表示と同期させて、この曲の進行に伴って変化する演奏を補助する情報を同時にナビゲーションすることを目的とする。
【０００６】
【課題を解決するための手段】
請求項１の構成によれば、上記目的を達成するために、曲情報記憶手段は曲情報を記憶しており、楽譜表示手段はこの曲情報に対応する楽譜を表示する。
そして、読出し手段は前記曲情報記憶手段から曲情報を順次読み出し、カーソル表示手段はこの読出し手段により読み出される曲情報の進行に対応して前記楽譜表示手段に表示された楽譜上にカーソルを表示する。
その後、カーソル形状可変手段は前記読出し手段により読み出された曲情報の進行に対応して前記カーソル表示手段にて表示されるカーソルの形状を可変する。
【０００７】
請求項２の構成によれば、カーソル形状可変手段は、拍カウント手段にてカウントされた楽譜上の拍の位置に基づいて、カーソル表示手段にて表示されるカーソルの形状を可変することが望ましい。
【０００８】
請求項３の構成によれば、カーソル形状可変手段は、拍カウント手段にてカウントされた拍数に基づいて前記カーソルの形状を可変することが望ましい。
【０００９】
請求項４の構成によれば、上記目的を達成するために、曲情報記憶手段は一連の音符情報を含む曲情報を記憶しており、楽譜表示手段はこの曲情報に対応する楽譜を表示する。
そして、読出し手段は曲情報記憶手段から音符情報を順次読み出すと、カーソル表示手段はこの読出し手段により読み出される音符情報に対応する前記楽譜表示手段に表示された楽譜上にカーソルを表示する。
その後、カーソル形状可変手段は前記読出し手段により読み出された音符情報に対応して前記カーソル表示手段にて表示されるカーソルの形状を可変する。
【００１０】
請求項５の構成によれば、楽譜表示手段は、楽譜として曲情報に対応した一連の音符画像を表示することが望ましい。
【００１１】
請求項６の構成によれば、カーソル表示手段は、読出し手段により読み出された音符情報に対応する楽譜上の音符画像が表示される位置にカーソルを表示することが望ましい。
【００１２】
請求項７の構成によれば、カーソル形状可変手段は、読出し手段により読み出された音符情報に含まれる音高情報に基づいてカーソルの形状を可変することが望ましい。
【００１３】
請求項８のプログラムによれば、上記目的を達成するための機能として、楽譜を表示する機能は、曲情報記憶手段に記憶されている曲情報に対応する楽譜データを表示し、読出し機能は曲情報記憶手段に記憶されている曲情報を順次読み出し、カーソルを表示する機能は、読み出された曲情報の進行に対応して楽譜上にカーソルを表示し、カーソルの形状を可変する機能は、読み出された曲情報の曲の進行に対応してカーソルの形状を可変して表示するプログラムを具備して成る。
【００１４】
請求項９のプログラムによれば、上記目的を達成するための機能として、楽譜を表示する機能は、曲情報記憶手段に記憶された一連の音符情報を含む曲情報に対応する楽譜を表示し、読み出し機能は、前記曲情報記憶手段から音符情報を順次読み出し、カーソルを表示する機能は、この読み出された音符情報に対応する楽譜上にカーソルを表示し、カーソルの形状を可変する機能は、読み出された音符情報に対応してカーソルの形状を可変して表示する。
【００１５】
【発明の実施の形態】
以下、図１〜図１９を参照して、この発明の曲進行表示装置及び曲進行表示処理プログラムに関する実施形態について説明する。
図１はこの曲進行表示装置の全体構成を示すブロック図である。
図１中、曲データＲＯＭ１０１は複数の曲情報、複数の画像データ、楽譜データを記憶するＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）である。ＲＯＭ内の詳細なデータ構成については後述する。
ＳＷ群１０２は各種機能を選択するモードスイッチ、曲データＲＯＭ１０１に記憶されている曲情報の中から所望の曲データを選択するスイッチ、この選択された曲情報のテンポ、リズム、音色、音量、等各種の楽音パラメータを選択して夫々設定するスイッチ、楽音に各種効果を付与するための効果選択スイッチ等から構成されている。
プログラムＲＯＭ１０３は各種機能の処理を実行するための一連のプログラムを記憶するＲＯＭである。
ワークＲＡＭ１０４はプログラムＲＯＭ１０３のプログラムの処理を実行する際に、一時的に各種データを格納するＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）である。ＣＰＵ１０５は曲進行表示装置の全体をプログラムＲＯＭ１０３に記憶されているプログラムに基づいて各種制御信号を生成して、楽譜表示処理、カーソル表示処理、押鍵表示処理、発音処理、等の実行と制御を行う。
表示部１０６は液晶表示パネル、ブラウン管などの表示体から成り、五線譜、楽譜の音符画像、文字情報、カーソルなどを表示するものである。
鍵盤１０７は複数の鍵から成り、各鍵の押鍵／離鍵操作に伴って曲の音高を指定するものである。
尚、この鍵盤の各鍵には夫々押鍵位置をナビゲーションする発光ダイオードなどから成る発光体が設けられている。
音源１０８は楽音を生成するための波形メモリを有しており、鍵盤１０７或いは曲データＲＯＭ１０１から供給される曲情報に応じた楽音信号を生成して発音回路１０９に出力する。
発音回路１０９は音源１０８から出力される楽音信号をアナログ波形信号に変換し、不要ノイズを除去するなどフィルタリング処理を施した後、増幅してスピーカーから発音する。
ＬＥＤ部１１０は複数の発光ダイオード群からなり、各種モードの選択表示、楽音パラメータの設定表示、鍵ガイド表示、等に用いられている。
鍵ガイド用の発光ダイオードは鍵盤１０７の各鍵に夫々に設けられている。
【００１６】
図２は曲データＲＯＭ１０１に記憶されている曲情報のデータ構成を示す。
この曲情報は複数の曲（１）〜曲（ｎ）を記憶していると共に後述する画像データを記憶している。尚、各曲（１）〜（ｎ）は後述する曲データと楽譜データとから成る。
【００１７】
図３は曲データＲＯＭ１０１の曲情報内に記憶された本発明第１実施形態における画像データのデータ構成を示す。
この画像データは楽譜用ＢＧ画面、カーソル画像、この表示されるカーソルの初期Ｘ座標、Ｙ座標とから成る。
「楽譜用ＢＧ画面」は、複数段から成る五線譜に夫々ト音記号、ヘ音記号を記した音符画像のない楽譜の原紙状態にある画面データである。
「初期Ｘ座標」は、表示部１０６の全楽譜上に最初にカーソルを表示するときの初期位置を指定するためのＸ座標を示す値である。
「Ｙ座標（１）、Ｙ座標（２）、・・・・」は、表示部１０６に、五線譜の段を複数に亘って表示するときに、これらの各段のＹ座標を示す初期値である。
「カーソル画像」は、１拍目カーソル画像〜ｎ拍目カーソル画像までの拍を表す数字画像データである。
【００１８】
図４は図２の曲情報に記憶されている本発明の「曲データ」のデータ構成を示す。
図４中、「曲データ」は、ヘッダ分音符（１）〜音符（ｎ）から成る。
更に、ヘッダ部は拍子、テンポ、その他のデータとから成り、音符は音高と音長のデータとから成る。
【００１９】
図５は図２の曲情報内に記憶されている「楽譜データ」の本発明のデータ構成を示す。
図５中、「楽譜データ」は「音符（１）〜（ｎ）」と「音符画像」とから成り、「音符（１）〜（ｎ）」は音符種と表示部１０６の画面上に表示するためのＸ座標、Ｙ座標とから成る。
次に、「音符画像（１）〜（ｎ）」は各種の音符の形状を画像化したものが記憶されており、例えば全音符、２分音符、４分音符、等の形状を表す音符画像データ、或いは、全休符、２分休符、４分休符、等の形状を表す休符画像データ、各種記号、等の形状を表す記号画像データなどを含む。
【００２０】
図６は本発明のメインフローチャートを示す。
図１のＳＷ群１０２に設けられた電源スイッチがオンされると、ＣＰＵ１０５は図６のＳ６０１の処理を開始してイニシャライズ処理を実行する。この処理によってワークＲＡＭ１０４内のタイマ、カウンター、データの一時保管用の各種レジスタ等はクリアされ、各機能は初期設定される。
次にイニシャライズ処理後、ＣＰＵ１０５はＳ６０２のＳＷ処理を実行する。尚、Ｓ６０２のＳＷ処理は後述する。
次に、ＣＰＵ１０５はＳ６０３の鍵盤処理を実行する。つまり、ユーザーによって鍵盤１０７が演奏操作されるとこれに対応して音高データ、音長データ、ベロシティデータ等、を含む演奏操作データが検出される。
次に、ＣＰＵ１０５はＳ６０４の発音処理を実行し、Ｓ６０３の鍵盤処理で生成された演奏データを音源１０８に出力する。
この演奏データが入力された音源１０８は、楽音波形データを生成して発音回路１０９に出力する。
その後、発音回路１０９は楽音波形データの信号をＤ／Ａ変換した後、増幅してスピーカーから楽音を放音する。
そして、ＣＰＵ１０５はＳ６０５の自動演奏の処理を実行し、曲データＲＯＭ１０１に記憶されている「曲データ」に基づいて、音符データに基づき押鍵すべき鍵を表示し、この音符データの音高に対応する座標位置にカーソルを表示させる。
次に、ＣＰＵ１０５はＳ６０６のその他の処理を実行して再びＳ６０２のＳＷ処理に戻り、ＳＷ群に設けられた電源スイッチがオフされるまでＳ６０２〜Ｓ６０６の処理を繰り返す。
【００２１】
図７はタイマインタラプトに関するフローチャートである。
このタイマインタラプトはＣＰＵ１０５によって定期的な時間間隔でインタラプト処理を実行するもので、選択された曲の拍の進行に応じて夫々指定されたカーソル画像を曲進行に応じた位置に表示するものである。
ＣＰＵ１０５はまずＳ７０１の処理において、３つのタイマＴ１、Ｔ２、Ｔ３をインクリメントする。タイマＴ１は拍をカウントするタイマであり、タイマＴ２は曲データの先頭の音符から最後尾の音符までの演奏所要時間をカウントするタイマであり、タイマＴ３は音符の音長時間をカウントするタイマである。
【００２２】
次にＣＰＵ１０５はＳ７０２の処理を実行し、タイマＴ１のカウント時間が１拍分のクロックの時間に達したか否かを判定する。タイマＴ１のカウント時間が１拍分のクロック数の時間に達していれば判定結果は「Ｙｅｓ」となってＳ７０３の処理を実行し、他方、タイマＴ１が１拍未満のカウント時間であれば判定結果は「Ｎｏ」となり、Ｓ７０８へ進む。このＳ７０８については後述する。
【００２３】
そしてＣＰＵ１０５はタイマＴ１のカウント時間が１拍分のクロックの時間に達するとＳ７０３の処理を実行し、ワークＲＡＭ１０４内の拍カウンタであるＢＥＡＴに１を加算して拍を進行させ、Ｓ７０４の処理に進む。因みに、ＢＥＡＴの初期設定時は「０」となっている。
【００２４】
次に、ＣＰＵ１０５はＳ７０４の処理に進むと、拍カウンタＢＥＡＴの拍数と曲データのヘッダ部に記録されている拍子の値であるＨＹＯＳＩとを比較する。このとき、ＢＥＡＴの拍数がＨＹＯＳＩの拍数を超えた場合、比較結果は「ＹＥＳ」となってＳ７０５の処理に進んで、拍カウンタであるＢＥＡＴを拍の頭であることを示す１に設定し、他方、ＢＥＡＴの拍数がＨＹＯＳＩの拍数以下である場合、比較結果は「Ｎｏ」となるのでステップ８０６の処理に進む。
【００２５】
そしてＣＰＵ１０５はＳ７０６の処理に進むと、拍カウンタＢＥＡＴに記録されている拍数に対応したカーソル画像を表示するために、対象となる画像データが記録されている曲データＲＯＭのアドレスを指定する。
これは拍に対応したカーソル画像を図１８にあるように、第１拍目の音符に対応する位置に１拍目を印す▲１▼のカーソル画像の表示を示し、このカーソル画像は拍の進行に応じて、▲１▼、▲２▼、▲３▼、▲４▼、という具合にカーソルの数文字が順次、小節内で変化して該当する音符上に表示されていく。
【００２６】
そして拍カウンタＢＥＡＴの拍数に対応したカーソル画像が指定されると、ＣＰＵ１０５はＳ７０７の処理に進んで、次の拍のカウントに備えるため拍カウンタＴ１に「０」を書き込みＳ７０８の処理に進む。
【００２７】
次に、ＣＰＵ１０５はＳ７０８の処理を進んで、演奏時間の進行に同期してカーソルをリニア的に移動させるため、当該曲データの読出し開始当初からの経過時間をカウントするタイマＴ２のカウント時間に基づき、カーソルを表示部１０６に表示するためのＸ座標の位置を算出した後、Ｓ７０９の処理に進む。
【００２８】
そして、ＣＰＵ１０５はＳ７０９の処理に進むと、演奏時間の経過に伴い表示部１０６上に表示すべきカーソルのＸ座標位置が当楽譜の五線譜の最終位置まで到達したか否かを判定する。この判定で、Ｘ座標位置が五線譜の最終位置まで到達していれば、判定結果は「ＹＥＳ」となってＳ７１０の処理を実行し、現在のカーソル行ｎの位置をプラス１する。
【００２９】
他方、表示すべきカーソルのＸ座標位置が五線譜の最終位置まで到達していなければ、判定結果は「Ｎｏ」となり改行の必要がないのでＳ７１１の処理に進む。
【００３０】
次にＣＰＵ１０５はＳ７１１の処理を実行し、Ｓ７０８で指定された表示部１０６のＸ座標、Ｓ７１０でカウントされたｎに対応するＹ（ｎ）座標にカーソルを表示した後本ルーティンを終了する。
尚、表示部１０６の１画面は五線譜としてＭ行の表示容量を有している。
この場合、カウントされた行数ｎがｍを超えると画面は新たに更新されて、曲データ、楽譜データ、カーソル画像は夫々新たな画面の１行目の五線譜上に表示される。
このように、カーソル表示においては、曲の進行に同期して五線譜に表示された音符に対応してリニア的に円滑な動きでＸ軸方向に移動しながら拍に対応する位置で拍数を示すカーソル画像を表示する。
そして、カーソル画像が五線譜の終端まで達すると次の行にカーソルを移動して、再びその行の五線譜の終端方向にリニア的に移動表示していく。
【００３１】
次に、図８のＳＷ処理のフローチャートについて説明する。
図８のＳＷ処理は図６メインルーチンのＳ６０２の処理のサブルーティンである。
まずＣＰＵ１０５はステップＳ８０１の処理において、曲選択ＳＷ処理のサブルーティンの処理を実行する。
この詳細なフローチャートの説明は図９を参照して後述するが、このＳ８０１の処理においてＳＷ群１０２に設けられた曲選択スイッチ（図示せず）が操作されると、曲データＲＯＭ１０１に記憶されている複数の曲の中から所望の曲を示す曲番号が指定される。
【００３２】
次に、ＣＰＵ１０５はＳ８０２の処理に進む。このＳ８０２はスタートＳＷ処理のサブルーティンであり、詳細については図１０を参照して後述するが、この処理ではユーザーによってＳＷ群１０２に設けられた演奏ナビゲーションのスタートスイッチ（図示せず）がオンされると、選択されている曲データのヘッダ部を読み出すものである。この処理の後にＳ８０３の処理に進んで、その他のＳＷ処理が実行される。
【００３３】
次に、図９の曲選択ＳＷ処理のフローチャートについて説明する。
図９の曲選択ＳＷ処理は曲選択ＳＷ処理のサブルーティンである。
まず、ＣＰＵ１０５はＳ９０１において、ＳＷ群１０２に設けられた曲選択スイッチが操作されたか否かを判定する。このとき曲選択スイッチが操作されると判定結果が「ＹＥＳ」となって、Ｓ９０２の処理を実行し、選択された曲に対応する入力された曲番号をレジスタＭＥＲＯＤＹに記憶させ、Ｓ９０３の処理に進む。
他方、曲選択スイッチが操作されていない場合は判定結果が「Ｎｏ」となって本ルーティンを終了する。
【００３４】
次に、ＣＰＵ１０５はＳ９０３の処理に進むと、このレジスタＭＥＲＯＤＹに記憶されている曲番号に基づいて、該当する曲データのスタートアドレスにアドレスポインタを進めて、Ｓ９０４の初期表示のサブルーティンの処理を実行し、このサブルーティンの処理を実行して本ルーティンを終了する。
尚、この初期表示のサブルーティンの詳細フローチャートは図１０を参照して後述する。
【００３５】
次に、図１０、図１１のスタートＳＷ処理は、図８に示されたＳＷ処理のＳ８０２サブルーティンである。
まず、ＣＰＵ１０５はＳ１００１の処理において、ユーザーによってＳＷ群１０２に設けられている演奏ナビゲーションのスタートスイッチがオンされたか否かを判定する。
このスタートスイッチがオンされていれば、判定結果は「Ｙｅｓ」となってＳ１００２の処理を実行し、他方、オンになっていなければ「Ｎｏ」となってリターンされ本件処理を終了する。
【００３６】
ＣＰＵ１０５はスタートスイッチがオンされると、Ｓ１００２の処理に進んでスタートフラグＳＴＦを反転して、Ｓ１００３の処理を実行し「ＳＴＦ＝１」であるか否かを判定する。
このスタートフラグ「ＳＴＦ＝１」であれば演奏ナビゲーションを実行することになり判定結果は「Ｙｅｓ」となってＳ１００４の処理に進む。Ｓ１００４の処理に進むとＣＰＵ１０５は拍時間タイマＴ１、曲データの演奏時間のタイマＴ２、音長時間タイマＴ３、を夫々「０」にセットしてＳ１００５の処理に進む。他方、Ｓ１００３の判定において「ＳＴＦ＝１」でなければ演奏ナビゲーションを終了するので判定結果は「Ｎｏ」となってＳ１０１７の処理を実行し、表示部１０６に表示中の演奏ナビゲーションの画面表示を消去し、次にＳ１０１８の処理に進んでタイマインタラプトを禁止し、本ルーティンを終了する。
【００３７】
一方、ＣＰＵ１０５はＳ１００４の処理からＳ１００５の処理に進むと、拍カウンタＢＥＡＴに「１」をセットしてＳ１００６の処理に進む。そしてＣＰＵ１０５はＳ１００６の処理において、選曲された曲番号のＭＥＲＯＤＹに対応する曲データのヘッダ部に記録されているテンポ値を読み出してＳ１００７の処理に進む。
【００３８】
ＣＰＵ１０５はＳ１００７の処理に進むと曲データのテンポ値に応じたインタラプト周期を設定する。そして、Ｓ１００８の処理に進んで曲データのヘッダ部にある拍子データを読出し、次に、Ｓ１００９の処理に進んでこの拍子データの値をレジスタＨＹＯＳＩに収納し、図１１のＳ１１０１の処理に進む。
【００３９】
ＣＰＵ１０５はＳ１１０１の処理に進むと曲データのアドレスポインタで指定された音符データを読み出して、Ｓ１１０２の処理を実行し、この音符データに含まれている音高の値をレジスタＮＯＴＥに格納してＳ１１０３の処理を実行し、この音符データに含まれている音長の値をレジスタＴＩＭＥに収納する。
【００４０】
続いて、ＣＰＵ１０５はＳ１０１３の処理に進んでレジスタＮＯＴＥに記録された音高値に基づき、押鍵表示すべき鍵番号を指定してＳ１１０５の処理に進む。
【００４１】
ＣＰＵ１０５はＳ１１０５の処理に進むと拍カウンタＢＥＡＴの値に対応するカーソル画像を画像データの中から選択指定し、次にＳ１１０６の処理に進んで、楽譜表示の画面の１行目を指定するため行カウンタｎに１を挿入する。
【００４２】
次にＣＰＵ１０５はＳ１１０７の処理に進んで、指定カーソル画像を表示画面の初期Ｘ座標、Ｙ座標（ｎ＝１行目）に表示させてカーソルの移動を待機状態にしてから本ルーティンを終了する。
【００４３】
このように、当該カーソルの形状を拍の進行に対応して変化させるので、演奏の進行即ち演奏タイミングと演奏すべき拍数の双方を同時にナビゲーション可能となる。
【００４４】
次に、図１２の初期表示のフローチャートについて説明する。
この初期表示のフローチャートは図９に図示されている曲選択ＳＷ処理のＳ９０４のサブルーティンである。
最初にＣＰＵ１０５はＳ１２０１において、曲データＲＯＭ１０１内に記憶されている複数の楽譜データの内、曲番号レジスタＭＥＲＯＤＹに対応する楽譜データのスタートアドレスにアドレスポインタを進める。この後Ｓ１２０２に進み、表示をクリアする。
【００４５】
そして、ＣＰＵ１０５はＳ１２０３の処理に進んで曲データＲＯＭ１０１内に記憶されている画像データの中から五線譜から成る楽譜用ＢＧ画面を読み出して表示部１０６に表示する。
【００４６】
次に、ＣＰＵ１０５はＳ１２０４の処理に進んでアドレスポインタが示す音符データの音符種より、対応する音符画像を指定する。続いて、Ｓ１２０５の処理に進んで、指定された音符画像をアドレスポインタの示す音符データのＸ，Ｙ座標の示す位置に表示し、次のＳ１２０６で音符データを指定するアドレスポインタを進める。
そして、ＣＰＵ１０５はＳ１２０７の処理に進むと、音符データの読出しが終了したか否かを判定する。この判定で音符データがなければ判定結果は「Ｙｅｓ」となり、本ルーティンを終了するが、まだ音符データがあれば判定結果は「Ｎｏ」となってＳ１２０４に戻り、再びアドレスポインタの示す音符データの音符種より音符画像のアドレスを指定する。
【００４７】
次に、図１３を参照して自動演奏処理について説明する。
図１３は図６に示されているＳ６０５のサブルーティンの処理である。
最初にＣＰＵ１０５はＳ１３０１の処理においてスタートフラグＳＴＦが「１」であるか否かを判断し、スタートフラグＳＴＦが「１」であれば判定結果は「Ｙｅｓ」となって次のＳ１３０２の処理を実行し、他方、スタートフラグＳＴＦが「１」でなければ判定結果は「Ｎｏ」の判定となって本ルーティンを終了する。
【００４８】
ＣＰＵ１０５はＳ１３０２の処理に進むと音長データの音長時間値を記憶するレジスタＴＩＭＥと音長時間をカウントするタイマＴ３の経過時間を比較判定し、Ｔ３≧ＴＩＭＥであれば判定結果は「Ｙｅｓ」となってＳ１３０３の処理を実行し、他方、まだＴ３＜ＴＩＭＥであれば判定結果は「Ｎｏ」であるので本ルーティンを終了する。
【００４９】
そして、ＣＰＵ１０５はＳ１３０３の処理に進むと音長時間がＴ３まで経過したことを受けて、曲データのアドレスポインタを進め、次にＳ１３０４の処理に進んで次の音符データがあるか否かを判定する。
ここで音符データがあれば判定結果が「Ｙｅｓ」となってＳ１３０５の処理に進んで当該音符データに含まれる音高値をレジスタＮＯＴＥに書き込み、次にＳ１３０６の処理に進んで、当該音符データに含まれる音長をレジスタＴＩＭＥに書き込む。
【００５０】
その後、ＣＰＵ１０５はＳ１３０７の処理に進んでレジスタＮＯＴＥに書き込まれた音高値に基づき、押鍵すべき鍵を指示する。次に、Ｓ１３０８の処理に進んで音長時間タイマＴ３をゼロクリアして本ルーティンを終了する。
【００５１】
Ｓ１３０４の音符データの有無の判定に戻って、ＣＰＵ１０５は曲データの読出しに際して音符データがなければ自動演奏は終了させなければならないので判定結果は「Ｎｏ」となり、Ｓ１３０９の処理に進んでスタートフラグＳＴＦを「０」にする。そしてＳ１３１０の処理に進んで表示部１０６の表示を消去するとともに押鍵指示を停止する。
次にＳ１３１１の処理に進んでタイマインタラプトを禁止して本ルーティンを終了する。
【００５２】
尚、上記第１の実施形態で説明した動作手順をプログラム化して、コンピュータに実行させることにより上述した各処理を実施することができる。その際、コンピュータプログラムはフロッピー（登録商標）ディスクやハードディスク等のディスク型記録媒体、半導体メモリやカード型メモリ等の各種メモリ、或いは通信ネットワーク等の各種プログラム記録媒体を通じてコンピュータに供給することができる。
【００５３】
また、本発明第１の実施形態では拍の進行に応じて音符に対応する位置に図１８に示す如く数字で拍数がわかるようにカーソル表示したが、これに代わってローマ数字、漢数字、その他の図形などのカーソル表示にしてもよい。
また、本実施形態の場合、曲データのテンポに追従してカーソル表示が途中で停止することなく所謂リニア的に移動し、且つ、曲データの拍数に対応したカーソル画像が表示されるものであるが、このカーソル画像の移動方法を音長時間単位に同期して停止しながら移動する所謂ステップ移動的なカーソル移動にしてもよい。
【００５４】
以上、本発明第１実施形態の構成にあっては、曲の進行に伴い拍の進行状況を的確に演奏者に知らせることで、拍単位の強弱等演奏にメリハリを付けることに役立たせることが可能となり、リズム感を養う効果も期待できる。
【００５５】
次に、本発明の第２の実施形態について説明する。
図１４は曲データＲＯＭ１０１の曲情報内に記憶された本発明第２実施形態の画像データのデータ構成を示す。
図１４中、画像データは楽譜用ＢＧ画面、カーソル画像、初期Ｘ座標、Ｙ座標とから成り、楽譜用ＢＧ画面、初期Ｘ座標、Ｙ座標については上記第１実施形態と同じ内容であるので説明は省略する。
第２実施形態の「カーソル画像」は、音高（Ｃ）画像〜音高（Ｂ）画像が記録されている。
「カーソル画像」は図１９の楽譜表示に示されているように、曲情報に基づいて演奏が進行しているときに、この表示されている音高（音名）に対応して、英文字の「カーソル画像」を読み出して表示される。
因みに、図１９の第１音符の音高はＡ（ラ）なので、この音符の上に音名Ａ（ラ）に相当する「カーソル画像」が読み出されて表示されている。
【００５６】
図１５は一定時間周期毎にインタラプト処理するための第２実施形態のタイマインタラプトのフローチャートを示す。
ＣＰＵ１０５は図１５のＳ１５０１の処理においてタイマＴに１をプラスして本ルーティンを終了する。
【００５７】
図１６は図８のＳ８０２のスタートＳＷ処理の第２実施形態のサブルーティンを示す。
先ず、ＣＰＵ１０５はＳ１６０１の処理においてスイッチ群１０２に設けられたナビゲーションのスタートスイッチ（図示せず）がオンされたか否かを判定する。当スイッチがオンされていれば判定結果は「Ｙｅｓ」となってＳ１６０２の処理に進んで、スタートフラグＳＴＦを反転し、他方、Ｓ１６０１の判定の処理においてスタートスイッチがオンされていなければ判定結果は「Ｎｏ」となり、本ルーティンを終了する。
【００５８】
次に、ＣＰＵ１０５はスタートフラグＳＴＦを反転した後にＳ１６０３でスタートフラグＳＴＦが「１」であるか否かを判定し、「１」であれば判定結果は「Ｙｅｓ」となって、Ｓ１６０４の処理に進んでインタラプト周期をカウントするタイマＴを「０」にセットしてＳ１６０５の処理に進む。
一方、Ｓ１６０３の判定でＳＴＦが「１」でなければ判定結果は「Ｎｏ」となって、Ｓ１６１６の処理を実行し表示部１０６の表示を消去してから押鍵指示を停止して、Ｓ１６１７の処理を実行しタイマインタラプトを禁止し、本ルーティンを終了する。
【００５９】
ＣＰＵ１０５はＳ１６０５の処理終了後、レジスタＭＥＬＯＤＹに記憶されている曲データ番号で示される曲のヘッダ部にあるテンポ値を読出し、Ｓ１６０６の処理に進んでこの読み出されたテンポ値に応じたインタラプト周期を設定する。
【００６０】
次に、ＣＰＵ１０５はＳ１６０７の処理を実行しアドレスポインタの指示する音符データを読出しＳ１６０８の処理に進む。
このＳ１６０８の処理において、読み出された音符データの音高値をレジスタＮＯＴＥに書き込み次のＳ１６０９の処理で、読み出された音符データの音長値をレジスタＴＩＭＥに書き込む。
【００６１】
更に、ＣＰＵ１０５はＳ１６１０の処理に進むと、レジスタＮＯＴＥに書き込まれた音高値に対応する音名のカーソル画像を指定してＳ１６１１の処理を実行し、ＮＯＴＥの音高に対応して押鍵すべき鍵の鍵番号を指定する。
【００６２】
次に、ＣＰＵ１０５はＳ１６１２の処理に進むと、読み出された曲データ内の音符データに対応する楽譜データ内の音符データが記憶されているアドレスを指定してＳ１６１３の処理に進み、カーソル画像のＹ座標の表示位置を五線譜の１行目に設定するため、行カウンタｎに１を書き込む。
【００６３】
更に、ＣＰＵ１０５はＳ１６１４の処理に進むと、Ｓ１６１０で指定されたカーソル画像を読み出して、このカーソル画像をＹ（ｎ）座標と楽譜の指定された音符のＸ座標に基づく位置に表示する。その後、Ｓ１６１５に進みタイマインタラプトを解除して本ルーティンを終了する。
【００６４】
次に、図１７は図６のＳ６０５の第２実施形態のサブルーティンである。
本発明第２実施形態の自動演奏処理は、自動演奏の進行に準じて演奏データの音高に応じたカーソル画像を、音符の表示座標に対応した位置に表示するように構成される。
先ず、ＣＰＵ１０５はＳ１７０１の処理においてスタートフラグＳＴＦが「１」であるか否かを判定する。ここでスタートフラグＳＴＦが１であれば判定結果は「Ｙｅｓ」となってステップ１７０２の処理に進む。
他方、スタートフラグＳＴＦが「１」でなければ判定結果は「Ｎｏ」となって自動演奏処理はせずに本ルーティンを終了する。
ＣＰＵ１０５はＳ１７０２の処理に進むと音長タイマＴのカウント時間と音符データの音長を記憶するレジスタＴＩＭＥの値とを比較する。この比較でＴ≧ＴＩＭＥであれば、音符データの音長の時間が経過終了したことになるので判定結果は「Ｙｅｓ」となってＳ１７０３の処理を実行し、他方、まだＴ＜ＴＩＭＥであれば音符データの音長時間が経過していないので、判定結果は「Ｎｏ」となって本ルーティンを終了し、当該音長時間が経過するまで他の処理を実行する。
そして、ＣＰＵ１０５はＳ１７０３の処理に進むと音長タイマＴを「０」に戻し次のＳ１７０４で曲データのアドレスポインタを進める。
【００６５】
次に、ＣＰＵ１０５はＳ１７０５の処理に進み、次に読み出すべき音符データがあるか否かを判定する。この判定で音符データがあれば判定結果は「Ｙｅｓ」となって次のＳ１７０６の処理で、音符データに含まれている音高値をレジスタＮＯＴＥに書き込み、Ｓ１７０７の処理に進む。
ＣＰＵ１０５はＳ１７０７の処理に進むと、音符データに含まれている音長の値をレジスタＴＩＭＥに書き込み、次にＳ１７０８の処理に進んでレジスタＮＯＴＥに書き込まれた音高値に基づいて、押鍵すべき鍵を指示する。
【００６６】
そして、ＣＰＵ１０５は次にＳ１７０９の処理を実行し、レジスタＮＯＴＥに書き込まれた音高値に対応する、例えば音名を表す英文字或いはカナ文字、記号などのカーソル画像が記憶されているアドレスを指定する。次に、ＣＰＵ１０５はＳ１７１０の処理を実行し、曲データから読み出された音符データに対応する楽譜の音符を指定する。
【００６７】
次に、ＣＰＵ１０５はＳ１７１１の処理に進むと、楽譜データ内の音符データに含まれるＸ座標、Ｙ座標を読出した後に、Ｓ１７１２の処理に進んで読み出された音符データのＸ座標とカーソルのＸ座標の位置を比較する。
ここでカーソルのＸ座標の値の方が大きいと判定された場合は演奏している楽譜上の五線譜が改行されたとみなされるので、判定結果は「Ｙｅｓ」となりＳ１７１３の処理に進んでカーソルのＹ座標を「１」行下に改行するため、行カウンタｎに１をプラスしてＳ１７１４の処理に進む。
他方、Ｓ１７１２の判定で音符データのＸ座標がカーソルのＸ座標より大きい場合は、カーソル画像の位置を改行する必要がないのでそのままカーソルのＹ座標の値を継続して、Ｓ１７１３の改行を実行せずにＳ１７１４の処理に進む。
【００６８】
ＣＰＵ１０５はＳ１７１４の処理に進むと、指定されたカーソル画像を音符データのＸ座標、Ｙ（ｎ）座標に対応した位置で表示させる。このカーソル画像の表示の例として図１９に示すように、弾くべき音符（Ａの音高）に対応する位置に音名Ａを表すカーソルを表示する。カーソル画像としては、音符の音高即ち音名に応じてＡＢＣＤＥＦＧというように英文字画像が表示される。
【００６９】
また、Ｓ１７０５の音符データ有無の判定に戻って、音符データの読出しがなくなった場合、判定結果は「Ｎｏ」となり演奏のナビゲーションを終了するため、Ｓ１７１５の処理に進んでスタートフラグＳＴＦを「０」にして、Ｓ１７１６の処理を実行し、表示部１０６の表示を消去した後Ｓ１７１７の処理に進んでタイマインタラプトを禁止し、本ルーティンを終了する。
【００７０】
このように、本発明第２の実施形態にあっては、自動演奏に伴って読み出される曲データの音符の座標位置をカーソルにより単に表示するだけでなく、当該カーソルの形状を音高に対応する音名に対応して変化させるので、演奏の進行状況及び演奏タイミングと演奏すべき音高を同時にナビゲーション可能とするものであり、曲の進行に伴い音高の変化を的確に演奏者に知らせることで、演奏者の暗譜の手助けになると共に押鍵すべき位置を探すのに容易となるという効果も期待できる。
【００７１】
尚、本発明は上記実施の形態に限定されることなく、その要旨を逸脱しない範囲において、具体的な構成、機能、作用、効果において、他の種々の形態によっても実施することができる。
例えば楽譜の音符の音高に応じて、当該音符に対応する位置に音名が分かるように図１９に示す如く英文字を用いてカーソル表示したが、これに代わってドレミファソラシドのようにカタカナ文字の表示でもよく、その他種類の文字、記号、図形など音高が分かるカーソル表示にしてもよい。
【００７２】
また、本発明第２実施形態のカーソル画像の表示形態としては曲データの音符長毎に同期してカーソル画像の移動を停止する所謂ステップ移動的な動きで音高が分かるようにしたものであるが、本発明第１実施形態のように曲データのテンポに同期してリニア的なカーソル移動にしてもよい。
更に、本発明第１実施形態、第２実施形態のカーソルの改行は五線譜の末端に到達すると改行するようにしたが、１行の表示すべき小節数を限定してこの小節数をカウントしながらカーソルの改行を指示するようにしてもよい。
また、演奏者の演奏技術レベルと練習曲の重点個所に対応するため、曲データの進行に応じて小節の先頭の音符だけを対象に該当する拍数のカーソル画像を表示してもよく、また、休符の拍数のみカーソル画像を表示するようにしてもよい。
更に、カーソル画像は曲の進行に応じて文字、記号の変化に合わせて、発光点滅、発光色の変化、表示色の濃淡変化、文字記号のサイズ変化等を組合わせてもよい。
【００７３】
【発明の効果】
以上説明したように、本発明によれば、曲の進行に伴い演奏すべき音符に対して演奏タイミングに同期した拍或いは音高に応じた演奏を補助する情報をカーソルの形状を変えて表示するので、初心者にとっては拍に応じて容易に強弱等演奏表現を高めたり、曲の暗譜などに役立たせることができるもので、演奏の練習時の負担を軽減し所望の曲を早くマスターするための手助けとするものである。
【図面の簡単な説明】
【図１】本発明のブロック図を示す。
【図２】曲データＲＯＭ１０１内の曲情報のデータ構成を示す。
【図３】図２の曲データＲＯＭ１０１内の画像データの第１実施形態のデータ構成を示す。
【図４】図２曲データＲＯＭ１０１内の曲データのデータ構成を示す。
【図５】図２楽譜データのデータ構成を示す。
【図６】本発明のメインフローチャートを示す。
【図７】第１実施形態のタイマインタラプトに関するフローチャートを示す。
【図８】図６ＳＷ処理のフローチャートを示す。
【図９】図８曲選択ＳＷ処理のフローチャートを示す。
【図１０】図８スタートＳＷ処理の第１実施形態におけるフローチャートを示す。
【図１１】図８スタートＳＷ処理の第１実施形態におけるフローチャートの続きを示す。
【図１２】図９初期表示のフローチャートを示す。
【図１３】図６自動演奏処理の第１実施形態のフローチャートを示す。
【図１４】図２曲データＲＯＭ１０１内の画像データの第２実施形態のデータ構成を示す。
【図１５】第２実施形態におけるタイマインタラプトのフローチャートを示す。
【図１６】図８スタートＳＷ処理の第２実施形態におけるフローチャートを示す。
【図１７】図６の自動演奏処理の第２実施形態のフローチャートを示す。
【図１８】第１実施形態のカーソル画像の表示状態を示す。
【図１９】第２実施形態のカーソル画像の表示状態を示す。
【符号の説明】
１０１　曲データＲＯＭ
１０２　ＳＷ群
１０３　プログラムＲＯＭ
１０４　ワークＲＡＭ
１０５　ＣＰＵ
１０６　表示部
１０７　鍵盤
１０８　音源
１０９　発音回路
【図１】
2004094092.tif 000003
【図２】
2004094092.tif 000004
【図３】
2004094092.tif 000005
【図４】
2004094092.tif 000006
【図５】
2004094092.tif 000007
【図６】
2004094092.tif 000008
【図７】
2004094092.tif 000009
【図８】
2004094092.tif 000010
【図９】
2004094092.tif 000011
【図１０】
2004094092.tif 000012
【図１１】
2004094092.tif 000013
【図１２】
2004094092.tif 000014
【図１３】
2004094092.tif 000015
【図１４】
2004094092.tif 000016
【図１５】
2004094092.tif 000017
【図１６】
2004094092.tif 000018
【図１７】
2004094092.tif 000019
【図１８】
2004094092.tif 000020
【図１９】
2004094092.tif 000021