(57)【要約】【課題】曲を構成する一連の音符に対して、棒状のセグメントを用いて発音開始タイミングをスクロール表示しようとした場合に、各音符が連続して発生すると、この表示が一本の帯状になってしまい、各発音開始タイミングが識別不可能な状態になってしまう。【解決手段】発音開始タイミング表示用の表示素子を複数連続に配置するとともに、発音時間表示用の表示素子を夫々独立して設け、各音符に対応して発音開始タイミングをスクロール表示するとともに、この発音開始タイミングの表示が所定位置まで到達すると、この発音開始タイミングから発音が終了するまでの発音時間の経過を発音時間表示用の表示素子で表示する構成とした。【選択図】      図１０
2004191605.tif 000002
【特許請求の範囲】
【請求項１】
曲を構成する一連の音符夫々に対応する発音タイミング及び発音時間が記憶される記憶手段と、
前記記憶手段から発音開始タイミングおよび発音時間を順次読み出す読出手段と、
複数の表示素子からなり、前記読出手段により順次読み出された発音開始タイミングを、当該発音開始タイミングに対応する位置にある表示素子を表示するタイミング表示手段と、
このタイミング表示手段上の発音開始タイミングに対応する表示を一定周期毎に所定方向にスクロールするスクロール手段と、
この発音開始タイミングに対応する表示がスクロールされて前記タイミング表示手段の所定位置に到達したときから、前記読出手段により当該発音開始タイミングに対応して読み出された発音時間が経過されるまで表示する発音時間表示手段と、
を具備することを特徴とする発音指示装置。
【請求項２】
前記発音時間表示手段は１個の表示素子からなり、発音開始タイミング表示が前記タイミング表示手段の所定位置に到達したときから、当該発音開始タイミングに対応して読み出された発音時間が経過するまで点灯表示することを特徴とする請求項１記載の発音指示装置。
【請求項３】
前記発音時間表示手段は、表示素子を複数個連続配置して成り、発音開始タイミング表示が前記タイミング表示手段の所定位置に到達したときに、当該発音開始タイミングに対応する発音時間に対応する数の表示素子を点灯表示すると共に、その後前記スクロール手段により、この表示を一定周期毎に所定方向にスクロールさせることを特徴とする請求項１記載の発音指示装置。
【請求項４】
記憶手段に記憶された曲を構成する一連の音符夫々に対応する発音開始タイミング及び発音時間を順次読み出すステップと、
複数の表示素子からなるタイミング表示手段に、順次読み出された発音開始タイミングを、当該発音開始タイミングに対応する位置に表示するステップと、
このタイミング表示手段上の発音開始タイミングに対応する表示を一定周期毎に所定方向にスクロールするステップと、
発音開始タイミング表示がスクロールされて、前記タイミング表示手段の所定位置に到達したときから、前記読出手段により当該発音開始タイミングに対応して読み出された発音時間が経過するまで発音時間表示手段に表示するステップと、
を具備することを特徴とする発音指示処理のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、発音開始タイミングと発音時間をユーザーに知らせるための発音指示装置及び発音指示処理のプログラムに関する。
【０００２】
【従来の技術】
従来、電子鍵盤楽器のレッスン機能として、曲情報に含まれる音符データに対応して発音開始タイミングを表示する技術が知られている。
例えば、演奏ナビゲーション装置に、拍単位の枠を記した棒グラフ状の表示部を設け、この表示部に発音開始すべきタイミングの所定拍前から、当該拍単位を表した音符の長さ分を表わす表示素子が表示され、曲の進行に応じてこの表示素子がスケール表示部の中央「０」ポイントを経由して更に左方向にスクロールしていく。
この表示素子がスクロールされていく過程において、発音タイミングはこの表示素子の左端部が「０」ポイントに到達した時点が発音を開始するタイミングであり、表示素子の右端部が「０」ポイントを通過した時点が発音の終了タイミングになっている。（特許文献１参照）
【０００３】
【特許文献】
特開平６−２７９３７号（第１頁−第６頁、図１２）
【０００４】
【発明が解決しようとする課題】
この特許文献のナビゲーション装置において、複数連続した音符に対応する発音タイミングのデータをスクロール表示しようとすると、各音符に対応する表示素子が画面の右側端部から左側方向に、次々と連続的にスクロールして行く。
このような状態では、各表示素子相互間の境界部分が結合状態に成ってしまうため、視覚的には単なる１本の帯状表示となってしまい、各音符に対応した発音開始タイミング、及び、発音開始から発音終了するまでの時間、が判別できないという問題が生ずる。
【０００５】
本発明は、上述の如き従来の課題を解決するために成されたもので、その目的は、各音符に対応した発音開始タイミング、及び、発音開始してから発音終了までの発音区間を明確に表示することである。
【０００６】
【課題を解決するための手段】
この発明の解決の手段は以下のとおりである。
上記目的を達成するために、請求項１に係る発明において、曲を構成する一連の音符夫々に対応する発音タイミング及び発音時間が記憶される記憶手段を有しており、この記憶手段から発音開始タイミングおよび発音時間を順次読み出す読出手段を有している。
更に、複数の表示素子からなり、前記読出手段により順次読み出された発音開始タイミングを、当該発音開始タイミングに対応する位置にある表示素子を表示するタイミング表示手段を有し、このタイミング表示手段上の発音開始タイミングに対応する表示を一定周期毎に所定方向にスクロールするスクロール手段を有している。
この発音開始タイミングに対応する表示がスクロールされて前記タイミング表示手段の所定位置に到達したときから、前記読出手段により当該発音開始タイミングに対応して読み出された発音時間が経過されるまで表示する発音時間表示手段を有している。
上記各手段を具備していることを特徴とする。
【０００７】
請求項２の構成によれば、例えば、前記発音時間表示手段は１個の表示素子からなり、発音開始タイミング表示が前記タイミング表示手段の所定位置に到達したときから、当該発音開始タイミングに対応して読み出された発音時間が経過するまで点灯表示することができる。
【０００８】
請求項３の構成によれば、例えば、前記発音時間表示手段は、表示素子を複数個連続配置して成り、発音開始タイミング表示が前記タイミング表示手段の所定位置に到達したときに、当該発音開始タイミングに対応する発音時間に対応する数の表示素子を点灯表示すると共に、その後、前記スクロール手段により、この表示を一定周期毎に所定方向にスクロール表示することができる。
【０００９】
本発明は、上記手段の動作手順をプログラム化し、コンピュータに実行させることにより実施できる。その際、コンピュータプログラムはハードディスク等のディスク型記録媒体、半導体メモリやカード型メモリ等の各種メモリ、或いは通信ネットワーク等の各種プログラム記録媒体を通じてコンピュータに供給することができる。
請求項４の発音指示処理のプログラムによれば、記憶手段に記憶された曲を構成する一連の音符夫々に対応する発音開始タイミング及び発音時間を順次読み出すステップと、複数の表示素子からなるタイミング表示手段に、順次読み出された発音開始タイミングを、当該発音開始タイミングに対応する位置に表示するステップと、このタイミング表示手段上の発音開始タイミングに対応する表示を一定周期毎に所定方向にスクロールするステップと、発音開始タイミング表示がスクロールされて、前記タイミング表示手段の所定位置に到達したときから、前記読出手段により当該発音開始タイミングに対応して読み出された発音時間が経過するまで発音時間表示手段に表示するステップと、
を具備することを特徴とする。
【００１０】
本発明は、以上の構成を有することにより、一連の音符に対して夫々発音開始タイミングに対応する表示がスクロールされて、このタイミング表示が所定位置に到達したときから、発音時間が開始されて、この発音が終了されるまでの経過を表示する構成にしたので、例え、音符が連続していたとしても、これらの各音符に対応する発音開始タイミング、及び発音時間は明確に認識表示できる。
【００１１】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて説明する。
図１は、本発明の第１実施形態及び第２実施形態に係る発音指示装置の構成例を示したブロック図である。
ＲＯＭ１０５は、各種機能の処理を実行するためのプログラム、及び、複数の曲データ、などを記憶する記憶装置である。
ＲＡＭ１０６は、ＣＰＵ１０１がプログラムの処理を実行する際に、必要なデータを一時的にストアするワークメモリである。
【００１２】
操作子群１０２は、自動演奏の開始を指示するＳＴＡＲＴ／ＳＴＯＰスイッチ、など各種複数種類のスイッチから構成されている。
鍵盤部１０３は、複数の鍵からなり、本実施例では各鍵の下方には押鍵／離鍵を検出する鍵スイッチと鍵表面部を照射する発光ダイドードなどの表示素子とが設けられている。
【００１３】
ＣＰＵ１０１は、ＲＯＭ１０５に記憶されているプログラムと操作子群１０２の設定状態に基づき、表示部１０４ａ（１０４ｂ）に対して表示指示するとともに、鍵盤部１０３に対する演奏操作に基づき楽音発生装置１０７に対して発音制御の指示を行う。
【００１４】
鍵下方に設けられた表示素子は、ＣＰＵ１０１からの押鍵離鍵を指示する信号に基づき、点灯／消灯する。
表示部１０４ａ（１０４ｂ）は、複数の発光表示素子、例えばＬＥＤ（ＬｉｇｈｔＥｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）群から成り、ＣＰＵ１０１からの発音指示に基づき発音開始タイミングをスクロール表示するとともに発音時間を表示する。
【００１５】
このＬＥＤ群は、表示部１０４ａにおいて図３に示すように配置されている。ＬＥＤ群は、発音開始タイミング指示用の８個のタイミングＬＥＤ（０）〜（７）と、タイミングＬＥＤ（０）の近傍に発音時間を表示する１個のオンＬＥＤとから成り、タイミングＬＥＤとオンＬＥＤは夫々独立して設けられている。
【００１６】
楽音発生装置１０７は、ＣＰＵ１０１からの指示により楽音を生成して放音する。
【００１７】
図２は、ＲＯＭ１０５に記憶されている曲データの構成を示す。
曲データは、イベントとタイムが複数記憶され、終端には曲終了を示すＥＮＤが記録されている。
このイベントはノートオン、ノートオフのデータから成り、発音開始／発音終了を示す。
【００１８】
タイムは、ノートオンを示すイベントからノートオフを示すイベントまでの発音時間、或いはノートオフしてからノートオンするまでの消音時間を示すものである。
尚、このタイムの最小単位時間（＝１）は、本実施形態においては、一つのタイミングＬＥＤが点灯し、その点灯が他のタイミングＬＥＤに点灯移行するまでの時間を示し、例えば、８分音符の長さ分に相当する。
【００１９】
図４は、本発明の基本処理を示すフローチャートである。
ＣＰＵ１０１は、電源スイッチ（図示せず）がオンされるとＲＡＭ１０６内にストアされている各データ、タイマ、フラグ等を初期状態（Ｓ４０１）にセットする。
そして、後述するＳＷ処理（Ｓ４０２）を実行した後、自動演奏処理（Ｓ４０３）、鍵盤処理（Ｓ４０４）、その他の処理Ｓ４０５を夫々実行して電源スイッチがオフされるまでＳ４０２からＳ４０５の処理を繰り返す。
【００２０】
次に、図４に示されるＳＷ処理Ｓ４０２の詳細について図５、及び図６のフローチャートを参照して説明する。
先ず、ＣＰＵ１０１は、ＳＴＡＲＴ／ＳＴＯＰ  ＳＷ  がオンされているかどうかを判定する（Ｓ５０１）。
ここで、ＳＴＡＲＴ  ＳＷがオンされたとすると、スタートフラグＳＴＦを反転（Ｓ５０２）する。
そして、このＳＴＦが「１」であるか否かを判定する（Ｓ５０３）。
しかし、ＳＴＡＲＴ  ＳＷがオンされていなければ、その他のＳＷ処理（Ｓ５１１）に実行に移行して本ルーティンを終了する。
【００２１】
ここで、ＳＴＦが「１」であれば、曲データから読み出されたタイムを累算するレジスタｔと、曲データから読み出されたタイムを減算カウントするレジスタＴ１を夫々「０」にセットして（Ｓ５０４）、Ｓ５０５の処理に進む。
【００２２】
ＣＰＵ１０１は、Ｓ５０５の処理において、ＲＯＭ１０５にストアされている曲データを先読みして発音開始を指示するためアドレスポインタ１を曲データエリアの先頭に移動させる。
【００２３】
そして、このアドレスポインタ１の示す曲データを読み出し（Ｓ５０６）、この曲データがタイムであるかイベントであるかを判定する（Ｓ５０７）。
ここで、曲データがイベントであればこのイベントがノートオンであるか否かを判定する（Ｓ５０８）。
【００２４】
このイベントがノートオンであると、タイミングＬＥＤ（ｔ）を点灯（Ｓ５０９）して、アドレスポインタ１をインクリメントして（Ｓ５１０）、Ｓ５０６の処理に戻る。
【００２５】
一方、Ｓ５０８の判定で、イベントがノートオンでなければアドレスポインタ１をインクリメントする（Ｓ５１０）。
【００２６】
Ｓ５０７の判定に戻って、読み出された曲データがタイムであると、このタイムの値をレジスタＴ１にストアする（Ｓ５１２）。
【００２７】
そして、レジスタｔにイベント時間のレジスタＴ１の値を累算して（Ｓ５１３）、このタイマ累算値ｔが「８」内であるか否かを判定する（Ｓ５１４）。
このｔが「８」以内であれば、累算値ｔが「８」に到達するまでイベントの先読みを繰り返すため、ノートオンアドレスポインタ１をインクリメントする（Ｓ５１０）。
【００２８】
一方、Ｓ５０３の判定において、ＳＴＦが「１」でなければ、自動演奏を終了することになり、これに伴い表示部１０４ａ内のＬＥＤ群を全て消灯してから（Ｓ５１６）、タイマインタラプトを禁止して本ルーティンを終了する（Ｓ５１７）。
上述に示すように、本ルーティンでは曲データのタイマの累積値ｔが「８」になるまでイベントを先読みして、このイベントのノートオンに該当するタイミングＬＥＤ（ｔ）を点灯する。
【００２９】
そして、Ｓ５１４の処理において、タイマ累算値ｔが「８」を超えたと判定されると、タイミングＬＥＤ（０）〜（７）の点灯可能な状態を示すＨＦフラグを「１」にセットしてから（Ｓ５１５）、図６のＳ６０１の処理に移行する。
この処理において、オンＬＥＤ（０）〜（７）を点灯駆動するため、アドレスポインタ２を曲データの先頭エリアに移動する。
【００３０】
そして、このアドレスポインタ２が示すアドレスの曲データを読み出し（Ｓ６０２）、この読み出された曲データがノート時間を示すタイムであるのか、ノートオン或いはノートオフを示すイベントであるかを判定する（Ｓ６０３）。
ここで、読み出された曲データがイベントであれば、この曲データのイベントがノートオンであるか否かを判定する（Ｓ６０４）。
【００３１】
このイベントがノートオンであると、このノートに対応する鍵下方に設けられたガイドＬＥＤを点灯する（Ｓ６０５）。そして、オンＬＥＤを点灯して（Ｓ６０６）、アドレスポインタ２をインクリメントしてから（Ｓ６０７）、Ｓ６０２の処理に戻る。
【００３２】
一方、Ｓ６０４の判定で、曲データのイベントがノートオンでなければ、イベントがノートオフであるか否かを判定する（Ｓ６０８）。
ここで、このイベントがノートオフであれば、このノートに対応する点灯中のガイドＬＥＤを消灯する（Ｓ６０９）。
【００３３】
そして、点灯中のオンＬＥＤを消灯してから（Ｓ６１０）、Ｓ６０７の処理に進む。
一方、Ｓ６０８の判定でイベントがノートオフでなければＳ６０７の処理に直接移行する。
【００３４】
また、Ｓ６０３の判定において、曲データがタイムであれば、このタイムの値をノート時間レジスタＴ２にストアして（Ｓ６１１）、タイマインタラプトを禁止解除（Ｓ６１２）して本ルーティンを終了する。
【００３５】
上述のとおり、図６の処理ルーティンにおいて、読み出された曲データのイベントがノートオンであると、オンＬＥＤを点灯開始し、このノートオンがノートオフになると点灯中のオンＬＥＤを消灯させるので、当該発音時間はこのオンＬＥＤの点灯状態で確認できる。
【００３６】
図７はタイマインタラプトのフローチャートである。
ＣＰＵ１０１は、所定の最小単位時間で周期的にタイマインタラプト処理を実行する。このタイマインタラプトにおいて、先ず、レジスタＴ１をデクリメントするとともに（Ｓ７０１）、レジスタＴ２をデクリメントする（Ｓ７０２）。
次に、タイミングＬＥＤの位置を示すレジスタＮを「０」にセットする。（Ｓ７０３）
【００３７】
次に、Ｓ７０４の処理において、ＣＰＵ１０１はタイミングＬＥＤ（Ｎ＋１）が点灯状態であるか否かを判定する。
ここで、タイミングＬＥＤ（Ｎ＋１）が点灯状態であれば、タイミングＬＥＤ（Ｎ）を点灯するよう指示して（Ｓ７０５）、Ｓ７０６の処理に進む。
一方、タイミングＬＥＤ（Ｎ＋１）が点灯状態でないと、タイミングＬＥＤ（Ｎ）を消灯して（Ｓ７０９）、Ｓ７０６の処理に進む。
【００３８】
Ｓ７０６の処理において、Ｎ＋１の値、即ちＬＥＤ（Ｎ）の直ぐ上に配置されたＬＥＤを示す番号がタイミングＬＥＤ「７」と等しいか否かを判定する。
ここで、Ｎが「７」でなければ、このＮの値をインクリメントしてから（Ｓ７０８）、Ｓ７０４の処理に戻る。
一方、Ｓ７０６の判定で、Ｎ＋１の値が「７」になると、タイミングＬＥＤ（Ｎ＋１）を消灯した後（Ｓ７０７）、本ルーティンを終了する。
上述に示す通り、本タイマインタラプトの処理において、曲データの進行に応じて発音時間を記憶するレジスタＴ１とレジスタＴ２をデクリメントするとともに、７個配列されたタイミングＬＥＤの中で点灯しているタイミングＬＥＤを順次、下方にスクロール表示させる。
【００３９】
図８は、図４のＳ４０３に示された自動演奏処理の詳細なフローチャートを示す。
ＣＰＵ１０１は、先ず、スタートフラグＳＴＦが「１」であるか否かを判定する（Ｓ８０１）。
ここで、ＳＴＦが「１」であると、タイミングＬＥＤの事前表示が完了したことを示すフラグＨＦに「１」がセットされているか否かを判定する（Ｓ８０２）。  一方、このＳＴＦが「１」でなければ本ルーティンを終了する。
【００４０】
Ｓ８０２において、ＨＦが「１」であれば、次に、レジスタＴ１が「０」であるか否かを判定する（Ｓ８０３）。一方、ＨＦが「１」でなければ図９のＳ９０１の処理に移行する。
Ｓ８０３において、Ｔ１が「０」であれば、アドレスポインタ１をインクリメントして（Ｓ８０４）、このアドレスポインタ１の示す曲データを読み出す（Ｓ８０５）。一方、Ｔ１が「０」ではないと判定されると、図９のＳ９０１の処理に移行する。
【００４１】
そして、この読み出された曲データがＥＮＤでないか否かを判定する（Ｓ８０６）。
ここで、読み出された曲データがＥＮＤでなければ、この曲データがイベントであるのか、或いはタイムであるかを判定する（Ｓ８０７）。
一方、曲データがＥＮＤであれば、フラグＨＦを「０」にセットして（Ｓ８１１）、図９のＳ９０１の処理に移行する。
【００４２】
次に、Ｓ８０７の処理において、読み出された曲データがイベントであれば、このイベントがノートオンであるか否かを判定する（Ｓ８０８）。
【００４３】
ここで、曲データのイベントがノートオンであれば、タイミングＬＥＤ（７）を点灯してから（Ｓ８０９）、Ｓ８０４の処理に戻る。
一方、曲データのイベントがノートオンでなければ、Ｓ８０４の処理に戻る。
尚、Ｓ８０７の判定において、曲データがタイムであれば、レジスタＴ１にこのタイムの値をストアして（Ｓ８１０）、図９のＳ９０１の処理に移行する。
【００４４】
上述の通り、本自動演奏の処理ルーティンでは、自動演奏が開始され、且つ、タイミングＬＥＤの事前表示が完了していれば、曲データを読み出してこの読み出された曲データのイベントがノートオンであれば、先ず、最上位（７番目）に配置されているタイミングＬＥＤを点灯させる処理を実行している。
【００４５】
次に、図９のＳ９０１の処理に進んで、ＣＰＵ１０１は曲データに含まれているノート時間のタイム値をストアするレジスタＴ２が「０」であるか否かを判定する。
ここで、Ｔ２が「０」であれば、アドレスポインタ２をインクリメントして（Ｓ９０２）、このアドレスポインタ２の示す曲データを読み出す（Ｓ９０３）。
一方、Ｔ２が「０」でなければ、本ルーティンを終了する。
【００４６】
そして、この読み出された曲データがＥＮＤでないか否かを判定する（Ｓ９０４）。
ここで、読み出された曲データがＥＮＤでなければ、この曲データがタイムであるのか或いはイベントであるのかを判定する（Ｓ９０５）。
【００４７】
Ｓ９０５の判定で、読み出された曲データがイベントであれば、このイベントがノートオンであるか否かを判定する（Ｓ９０６）。
ここで、読み出された曲データのイベントがノートオンであれば、オンＬＥＤを点灯した後（Ｓ９０７）、Ｓ９０２の処理に戻る。
【００４８】
しかし、読み出された曲データのイベントがノートオンでなければ、このイベントがノートオフであるか否かを判定する（Ｓ９１２）。
ここで、このイベントがノートオフであれば、オンＬＥＤを消灯した後（Ｓ９１３）、Ｓ９０２の処理に戻る。
しかし、イベントがノートオフでなければ、そのまま何もせずにＳ９０２の処理に戻る。
【００４９】
次に、Ｓ９０５の判定において、曲データがタイムであれば、レジスタＴ２に、このタイム値をセットして（Ｓ９０８）本ルーティンを終了する。
【００５０】
また、Ｓ９０４の判定において、読み出された曲データがＥＮＤであれば、スタートフラグＳＴＦに「０」をセットして（Ｓ９０９）、タイマインタラプトを禁止してから（Ｓ９１０）、オンＬＥＤ及び全てのタイミングＬＥＤを消灯して（Ｓ９１１）、本ルーティンを終了する。
【００５１】
このように、発音時間の所定最小単位に相当する時間の進行に同期して、タイミングＬＥＤの点灯は順次下方に等速度でスクロールして行き、最下端のタイミングＬＥＤ（０）が点灯すると、発音開始タイミングとなる。
【００５２】
そして、オンＬＥＤは発音時間が開始されてから終了するまでの間、点灯表示する。
このような点灯の形態にすることで、ユーザーに発音開始のタイミングを分かりやすく報知すると共に、発音終了するまで分かりやすく報知できる。
【００５３】
図１０は、第１実施形態における音符の進行に伴って発音指示される様子を示す図である。
図１０は、第１音に二分音符、第２音に四分音符、次に四分休符から成る一連の音符に対応して、表示部１０４ａ内に設けられたＬＥＤ群（図３参照）における、発音開始を指示するタイミングＬＥＤのスクロール表示、及び発音時間を指示するオンＬＥＤの点灯推移をタイム値に対応させて表記するものである。
【００５４】
本実施形態の場合、発音指示に用いられている曲を４／４拍子としているので、タイミングＬＥＤが１個下にスクロールされるに要する拍数は１／２拍分に相当する。
図１０において、曲データが読み出し開始されると先ず、発音開始前の前拍の時点で、第２音の四分音符の発音開始タイミングを示すＬＥＤ（５）を点灯するとともに、第１音の二分音符の発音開始タイミングを示すＬＥＤ（１）を点灯する。
【００５５】
１／２拍分経過すると、二分音符の発音開始タイミングを示すＬＥＤ（０）を点灯するとともに、点灯中のＬＥＤ（１）を消灯してから、オンＬＥＤを点灯して発音開始を指示する。更に、ＬＥＤ（５）を消灯するとともに四分音符の発音開始タイミングを示すＬＥＤ（４）を点灯する。
【００５６】
この後、四分音符の発音開始タイミングＬＥＤの点灯位置は、１／２拍経過毎に順次１個づつ下方にスクロールして行く。
一方、二分音符の発音時間を示すオンＬＥＤは、２拍分の時間が経過するまで点灯を継続する。
【００５７】
そして、四分音符の発音開始を示すタイミングＬＥＤ（０）が点灯すると、二分音符の発音時間を示す点灯中のオンＬＥＤを消灯（図示せず）し、これに続いて、四分音符の発音時間を指示するため、オンＬＥＤが再び点灯する。
尚、この四分音符の次は四分休符であるので、タイミングＬＥＤ（１）から上位に位置するタイミングＬＥＤは点灯しない。
【００５８】
この四分音符の発音開始を示すオンＬＥＤの点灯状態は、次の四分休符の開始タイミング直前まで継続し、四分休符の開始タイミングに到達すると消灯する。
そして、この四分休符の発音休止期間中、オンＬＥＤは消灯している。
【００５９】
このようにタイミングＬＥＤ（０）〜（７）とオンＬＥＤにより発音開始タイミングと発音時間を独立して表示する構成としたので、演奏者は連続して入力される音符に対応して容易に発音タイミングを把握することができる。
【００６０】
次に、図１１〜図１８を参照して第２実施形態を説明する。
図１１は、表示部１０４ｂ内のＬＥＤ群を示す図である。
このＬＥＤ群は、発音開始タイミングを報知するタイミングＬＥＤ（０）〜（７）と、発音時間を報知するオンＬＥＤ（０）〜（３）とが配置されている。
【００６１】
図１２〜図１７は第２実施形態の動作を示すフローチャートであるが、これは第１実施形態と処理動作が異なる部分のみを示している。
第２実施形態において、基本処理（図４）は第１実施形態と同様である。
図１２、図１３は、ＳＷ処理の一部を示すフローチャートである。第２の実施形態におけるＳＷ処理は、図５のＳＷ処理ルーティンのＳ５０１〜Ｓ５１７までは第１実施形態と共通としており、図５のＳ５１５の処理動作以後に続く動作が異なり、それ以後の動作を図１２、１３に示す。
【００６２】
ＣＰＵ１０１は、前述のＳＷ処理  Ｓ５１５の処理において、タイマ累算値ｔが「８」を超えて、タイミングＬＥＤ（０）〜（７）の点灯可能な状態を示すＨＦフラグが「１」にセットされると、図１２のＳ１２０１に示すようにアドレスポインタ２を曲データの先頭に移動する。
そして、このアドレスポインタ２が示す曲データを読み出す（Ｓ１２０２）。
【００６３】
次に、この読み出された曲データがタイムであるのか、イベントであるかを判定する（Ｓ１２０３）。
ここで、読み出された曲データがイベントであれば、このイベントがノートオンであるか否かを判定する（Ｓ１２０４）。
ここで、イベントがノートオンであれば、このイベントに含まれるノートに対応する鍵盤下方のガイドＬＥＤを点灯する（Ｓ１２０５）。
一方、イベントがノートオンでなければ、図１３のＳ１３０９の処理に移行する。
【００６４】
次に、Ｓ１２０６に処理を進めて、アドレスポインタ３にアドレスポインタ２をセットして、ノートオンによる発音開始から発音終了までの時間値をカウントするレジスタＴ３を「０」にセットする（Ｓ１２０７）。
そして、アドレスポインタ３をインクリメントして（Ｓ１２０８）、このアドレスポインタ３が示す曲データを読み出す（Ｓ１２０９）。
【００６５】
そして、この読み出された曲データがタイムであるのか、イベントであるかを判定する（Ｓ１２１０）。
ここで、曲データがイベントであれば図１３のＳ１３０１の処理に進む。
しかし、曲データがタイムであれば、このタイムの値をレジスタＴ３に加算してから（Ｓ１２１３）、Ｓ１２０８の処理に戻る。
【００６６】
尚、Ｓ１２０３の判定において、曲データがタイムであれば、レジスタＴ２にこのタイムの値をセットして（Ｓ１２１１）、タイマインタラプトを禁止解除（Ｓ１２１２）した後、本ルーティンを終了する。
【００６７】
このように、本ルーティンでは、読み出された曲データのイベントがノートオンであれば、このノートに対応する鍵ガイドのＬＥＤを点灯して押鍵位置を報知している。
【００６８】
Ｓ１３０１の処理に進むと、このイベントがノートオフであるのか否かを判定する（Ｓ１３０１）。
ここで、イベントがノートオフであればＳ１３０２の処理に進んで、このノートオフのイベントが前回ノートオンされたイベントと同じか否かを判定する（Ｓ１３０２）。
しかし、このイベントがノートオフでなければ、Ｓ１２０８の処理に戻る。
【００６９】
Ｓ１３０２の判定において、このノートオフのノートが前回のノートオンイベントのノートと同じでなければ、Ｓ１２０８の処理に戻る。
一方、このノートオフのイベントが前回ノートオンされたイベントと同じであれば、Ｓ１３０３の処理に進む。
Ｓ１３０３の処理で、オンＬＥＤ群を指定するレジスタＭに「０」をセットして、このＭの値に指定されるオンＬＥＤ（Ｍ）を点灯する（Ｓ１３０４）。
次に、ノートオンによる発音の時期がセットされたレジスタＴ３をデクリメントする（Ｓ１３０５）。
【００７０】
そして、このＴ３の値が「０」になったか否かを判定する（Ｓ１３０６）。
ここで、Ｔ３が「０」でなければ、レジスタＭをインクリメントする（Ｓ１３０７）。しかし、Ｔ３が「０」であれば、Ｓ１３０９の処理に移行する。
Ｓ１３０８の処理では、このレジスタＭの値がオンＬＥＤ群の個数を示す「４」になったか否かを判定する（Ｓ１３０８）。
【００７１】
ここで、レジスタＭの値が「４」になれば、アドレスポインタ２をインクリメントしてから（Ｓ１３０９）、図１２のＳ１２０２の処理に戻る。
一方、レジスタＭの値が「４」にならなければＳ１３０４の処理に戻る。
上述の通り、本ルーティンにおいて、先読みされた曲データのイベントがノートオフになると、発音開始から発音終了までの時間値をカウントするレジスタＴ３の値が、デクリメントされてゼロになるまでの間、レジスタのＭ１〜Ｍ４に対応するオンＬＥＤを点灯して発音時間中であることを報知する。
【００７２】
図１４は、第２実施形態におけるタイマインタラプト処理のフローチャートを示す。
ＣＰＵ１０１は、所定の最小単位時間で周期的にタイマインタラプト処理を実行する。
ＣＰＵ１０１は、先ず、タイミングＬＥＤの点灯時間をカウントするレジスタＴ１をデクリメントするとともに（Ｓ１４０１）、曲データのタイムに対応してオンＬＥＤの点灯時間をカウントするレジスタＴ２をデクリメントする（Ｓ１４０２）。
次に、タイミングＬＥＤの配置を示す番号（０〜７）の値をストアするレジスタＮを「０」にセットする（Ｓ１４０３）。
【００７３】
次に、Ｓ１４０４の処理において、タイミングＬＥＤ（Ｎ＋１）が点灯状態であるか否かを判定する。
ここで、タイミングＬＥＤ（Ｎ＋１）が点灯状態であれば、タイミングＬＥＤ（Ｎ）を点灯してから（Ｓ１４０５）、Ｓ１４０６の処理に進む。
しかし、タイミングＬＥＤ（Ｎ＋１）が点灯状態でなければ、タイミングＬＥＤ（Ｎ）を消灯してから（Ｓ１４１４）、Ｓ１４０６の処理に進む。
【００７４】
Ｓ１４０６の処理において、Ｎ＋１の値、即ちタイミングＬＥＤ（Ｎ）の直ぐ上に配置されたＬＥＤを示す番号がタイミングＬＥＤ「７」と等しいか否かを判定する。
Ｓ１４０６の判定でＮ＋１が「７」になれば、タイミングＬＥＤ（Ｎ＋１）を消灯してから（Ｓ１４０７）、Ｓ１４０８の処理に進む。
しかし、Ｎ＋１が「７」にならなければ、ＬＥＤを示すレジスタＮをインクリメントしてから（Ｓ１４１２）、Ｓ１４０４の処理に戻る。
【００７５】
Ｓ１４０８の処理において、オンＬＥＤの番号を示すレジスタＰに「０」をセットする（Ｓ１４０８）。
そして、オンＬＥＤ（Ｐ＋１）が点灯しているか否かを判定する（Ｓ１４０９）。
ここで、オンＬＥＤ（Ｐ＋１）が点灯していれば、オンＬＥＤ（Ｐ）を点灯する（Ｓ１４１０）。
【００７６】
そして、点灯されたオンＬＥＤ（Ｐ）の一つ上がオンＬＥＤの「３」を示す位置であるか否かを判定する（Ｓ１４１１）。
ここで、Ｐ＋１が「３」であると、図１５のＳ１５０１の処理に移行するが、Ｐ＋１が「３」にならなければ、Ｓ１４１３の処理に進んでオンＬＥＤの番号を示すレジスタＮをインクリメントしてＳ１４０９の処理に戻る。
一方、Ｓ１４０９の判定で、オンＬＥＤ（Ｐ＋１）が点灯していなければ、オンＬＥＤ（Ｐ）を消灯して（Ｓ１４１５）、次にＳ１４１１の処理に進む。
【００７７】
次に、図１５のＳ１５０１の処理において、ノートオン時間をカウントするレジスタＴ３の値が「０」より大きいか否かを判定する。
ここで、Ｔ３が「０」より大きければ、消灯中のオンＬＥＤ（３）を点灯してから（Ｓ１５０２）、レジスタＴ３をデクリメントして（Ｓ１５０３）、本ルーティンを終了する。
一方、Ｔ３が「０」より大きくなければ、点灯中のオンＬＥＤ（３）を消灯して（Ｓ１５０４）、本ルーティンを終了する。
【００７８】
このＳ１５０１の判定において、Ｔ３＞「０」という状態とは、曲データに含まれているノートイベントの発音時期を点灯表示するのに、オンＬＥＤの個数（０〜３）だけでは不足する場合である。
このような場合、オンＬＥＤの不足個数分に相当する発音時間の間、オンＬＥＤ（３）の点灯を持続させるというものである。
この結果、オンＬＥＤ（３）は予め発音時間が記憶されたレジスタＴ３が「０」になるまで点灯状態で待機することになる。そして、Ｔ３が「０」になると先ず、最上位に位置する点灯中のオンＬＥＤ（３）を消灯する。
その後のオンＬＥＤの動作は、自動演奏処理の項で後述するが、発音時間が減少する毎に、順次、オンＬＥＤの消灯が下方にスクロールされて行く。
【００７９】
図１６と図１７は、第２実施形態における図４のＳ４０３の自動演奏処理の動作の一部をフローチャートで示す。
第２実施形態において、自動演奏処理は第１実施形態と比較して図９  Ｓ９０１〜Ｓ９１３の処理の部分のみ異なり、その相違部分を図１６と図１７のフローチャートで表している。
この第２実施形態において、自動演奏処理は、表示部１０４ｂに設けたオンＬＥＤ４個を用いて、ノートオンの発音時間の経過をスクロール表示するものである。
【００８０】
先ず、図８のＳ８０１〜Ｓ８０９の処理で読み出された曲データが、ノートオンイベントであればタイミングＬＥＤ（７）を点灯させ、その後、図１６のＳ１６０１において、レジスタＴ２の値が「０」と等しいか否かを判定する。
ここで、Ｔ２が「０」であれば、アドレスポインタ２をインクリメントして（Ｓ１６０２）、このアドレスポインタ２の示す曲データを読み出す（Ｓ１６０３）。一方、Ｔ２が「０」でなければ、本ルーティンを終了する。
【００８１】
次に、この読み出された曲データがＥＮＤでないか否かを判定する（Ｓ１６０４）。
ここで、曲データがＥＮＤでなければ、この曲データがイベントであるのか、或いはタイムであるのかを判定する（Ｓ１６０５）。
この読み出された曲データがイベントであれば、このイベントがノートオンであるか否かを判定する（Ｓ１６０６）。
一方、曲データがタイムであれば、レジスタＴ２にこのタイムの値をセットしてから（Ｓ１６１２）、本ルーティンを終了する。
次に、イベントがノートオンであればＳ１６０７の処理に進み、このイベントに含まれるノートに対応する鍵のガイドＬＥＤを点灯して押鍵を指示する。
しかし、イベントがノートオンでなければ、このイベントに含まれるノートに対応するガイドＬＥＤを消灯してから（Ｓ１６１３）、Ｓ１６０２の処理に戻る。
【００８２】
次に、Ｓ１６０８の処理において、アドレスポインタ３にアドレスポインタ２のアドレス値をセットする。
そして、レジスタＴ３を「０」にセットして（Ｓ１６０９）、アドレスポインタ３をインクリメントしてから（Ｓ１６１０）、このアドレスポインタ３が示す曲データを読み出す（Ｓ１６１１）。
【００８３】
そして、この読み出された曲データが、イベントなのかタイムであるのかを判定する（図１７のＳ１７０１）。
ここで、曲データがイベントであれば、このイベントがノートオフであるか否かを判定する（Ｓ１７０２）。
しかし、曲データがタイムであれば、レジスタＴ３に、このタイム値を加算して（Ｓ１７１１）、Ｓ１６１０の処理に戻る。
【００８４】
次に、Ｓ１７０２の判定で、このイベントがノートオフであれば、このノートオフのノートとこれより前に読み出されたオンイベントのノートが同じか否かを判定する（Ｓ１７０３）。
ここで、読み出されたノートオフと前のオンイベントのノートが同じであれば、全てのオンＬＥＤを消灯するよう指示してから（Ｓ１７０４）、オンＬＥＤを指定するレジスタＭを「０」にセットする（Ｓ１７０５）。
そして、次に、オンＬＥＤ（Ｍ）を点灯する（Ｓ１７０６）。
【００８５】
次に、レジスタＴ３をデクリメントして（Ｓ１７０７）、このＴ３の値が「０」になったか否かを判定する（Ｓ１７０８）。
ここで、Ｔ３の値が「０」にならなければ、レジスタＭをインクリメントして（Ｓ１７０９）、ＭがオンＬＥＤを示す値の最大値である「４」になったか否かを判定する（Ｓ１７１０）。
ここで、レジスタＭの値が「４」になった場合は再びＳ１６０２の処理に戻る。
しかし、レジスタＭの値が「４」に到達しない場合はＳ１７０６の処理に戻る。
また、Ｓ１７０８の判定で、Ｔ３の値が「０」になるとＳ１６０２の処理に戻る。
【００８６】
尚、Ｓ１７０２の判定で、読み出されたイベントがノートオフでない場合、及び、Ｓ１７０３の判定で、読み出されたイベントのノートオフとこれより前に読み出されたオンイベントのノートが同じでない場合は、共にＳ１６１０の処理に戻る。
【００８７】
また、Ｓ１６０４の判定において、曲データがＥＮＤであれば、ＣＰＵ１０１はスタートフラグＳＴＦに「０」をセットし（Ｓ１６１４）、次にタイマインタラプトを禁止してから（Ｓ１６１５）、全てのタイミングＬＥＤと、全てのオンＬＥＤを消灯して（Ｓ１６１６）、本ルーティンを終了する。
【００８８】
上述のとおり、第２実施形態の自動演奏処理によれば、曲データがノートオフになると、一旦、全てのオンＬＥＤを消灯してから、次の発音時間の表示に備えてオンＬＥＤを下から順番に上方に点灯させて行き、最上位である４個目のオンＬＥＤまで点灯して、且つ、ＥＮＤが読み出されなければ、この４個のオンＬＥＤを点灯状態で待機させる。
しかし、オンＬＥＤを示すレジスタＭの値が最大値「４」以下になると、レジスタＴ３の発音時間の経過に伴って、オンＬＥＤの点灯数が下方に向けて順次減少してスクロール表示される。
このオンＬＥＤのスクロール表示によって、発音時間が残り少なくなっていく様子が報知される。
【００８９】
図１８は、第２実施形態において表示部１０４ｂ内に設けられたＬＥＤ群（図１１）を参照して、発音開始タイミング及び発音時間のスクロール表示の推移を示す。
【００９０】
図１８では、曲データに対応する一連の音符情報として第１音に二分音符、第２音に、四分音符、その次に、四分休符から成る。
ここでは、オンＬＥＤの点灯動作につい説明し、タイミングＬＥＤのスクロール表示の動作は第１実施形態の図１０の動作と同一であるので省略する。
【００９１】
発音開始前の前拍の段階では、オンＬＥＤ（０）〜（３）は全て消灯状態である。これが発音開始タイミングになると、この二分音符の発音時間（２拍分）に相当する４つのオンＬＥＤ（０）〜（３）は全て点灯状態となる。
次に、発音時間が１／２拍分経過すると、オンＬＥＤ（３）は消灯する。
【００９２】
以下、発音時間の進行に準じて、最上位に位置するオンＬＥＤ（３）から順番に下方に向かって消灯して行く。そして、オンＬＥＤ（０）が消灯するタイミングが、二分音符の発音の終了タイミングとなる。
この二分音符の発音終了タイミングと次に発音される四分音符の発音開始タイミングは、ほぼ同タイミングである。
【００９３】
次に、四分音符の発音時間としてオンＬＥＤ（１）とオンＬＥＤ（２）が点灯する。
この四分音符の発音時間が１／２拍分経過すると、タイミングＬＥＤ（１）を消灯して、残りの発音時間が１／２拍分であることを知らせる。
次に、この四分音符の発音時間が１拍分経過すると、次が四分休符なのでオンＬＥＤを全て消灯して発音時間の終了タイミングを報知する。
このように、発音時間の進行に伴ってオンＬＥＤの点灯が上位から下方に順次、拍の進行に同期してスクロールされて行くので、発音開始タイミングから発音時間の終了までの経緯が一目瞭然に分かるようになっている。
【００９４】
尚、他の実施形態として、ＲＯＭ１０５に楽譜表示用データを含む曲データを記憶して、表示部１０４ａ（１０４ｂ）にこの楽譜を表示させながら発音開始のタイミング、及び、発音時間の経過を表示してもよい。
尚、発音指示装置はＬＥＤ群に代えて、液晶パネル、ブラウン管等、他の表示装置を用いてもよい。
また、発音開始タイミングの点灯表示に同期して、メトロノーム音や音声等を発音するようにしてもよい。
本発明は上記実施の形態に限定されることなく、その要旨を逸脱しない範囲において、具体的な構成、機能、作用、効果において、他の種々の形態によっても実施することができる。
【００９５】
また、上記実施の形態で説明した動作手順をプログラム化し、コンピュータに実行させることにより実施できる。その際、コンピュータプログラムはハードディスク等のディスク型記録媒体、半導体メモリやカード型メモリ等の各種メモリ、或いは通信ネットワーク等の各種プログラム記録媒体を通じてコンピュータに供給することができる。
【００９６】
【発明の効果】
本発明は、一連の音符に対して夫々発音開始タイミングに対応する表示がスクロールされて、タイミング表示手段の所定位置に到達したときから、発音時間が開始されて発音が終了されるまでの経過を表示する構成にしたので、例え、音符が連続していたとしても、各音符に対応する発音開始タイミング、及び発音時間を容易に確認可能とするものである。
【図面の簡単な説明】
【図１】本発明の発音指示装置の構成例を示すブロック図である。
【図２】図１に示したＲＯＭに記憶されている曲データ記憶領域のデータ構成を示す。
【図３】第１実施形態の発音指示用ＬＥＤ群の配置を示す。
【図４】本発音指示装置の動作全体概略処理手順を示すフローチャートである。
【図５】図４に示したＳＷ処理のサブルーティンの詳細を示すフローチャート（その１）である。
【図６】図４に示したＳＷ処理のサブルーティンの詳細を示すフローチャート（その２）である。
【図７】第１実施形態に係るタイマインタラプトのフローチャートである。
【図８】図４に示した自動演奏処理のサブルーティンの詳細を示すフローチャート（その１）である。
【図９】図４に示した自動演奏処理のサブルーティンの詳細を示すフローチャート（その２）である。
【図１０】第１実施形態に係るＬＥＤ点灯推移例を示す。
【図１１】第２実施形態の発音指示用ＬＥＤ群の配置を示す。
【図１２】図４に示すＳＷ処理のサブルーティンにおける詳細を示す第２実施形態のフローチャート（その１）である。
【図１３】図４に示すＳＷ処理のサブルーティンにおける詳細を示す第２実施形態のフローチャート（その２）である。
【図１４】本発明の第２実施形態に係るタイマインタラプトのフローチャート（その１）である。
【図１５】本発明の第２実施形態に係るタイマインタラプトのフローチャート（その２）である。
【図１６】図４に示した自動演奏処理のサブルーティンを示す第２実施形態のフローチャート（その１）である。
【図１７】図４に示した自動演奏処理のサブルーティンを示す第２実施形態のフローチャート（その２）である。
【図１８】第２実施形態に係るＬＥＤ点灯推移例を示す。
【符号の説明】
１０１  ＣＰＵ
１０２  操作子群
１０３  鍵盤部
１０４ａ（１０４ｂ）  表示部
１０５  ＲＯＭ
１０６  ＲＡＭ
１０７  楽音発生装置
１０８  バスライン
【図１】
2004191605.tif 000003
【図２】
2004191605.tif 000004
【図３】
2004191605.tif 000005
【図４】
2004191605.tif 000006
【図５】
2004191605.tif 000007
【図６】
2004191605.tif 000008
【図７】
2004191605.tif 000009
【図８】
2004191605.tif 000010
【図９】
2004191605.tif 000011
【図１０】
2004191605.tif 000012
【図１１】
2004191605.tif 000013
【図１２】
2004191605.tif 000014
【図１３】
2004191605.tif 000015
【図１４】
2004191605.tif 000016
【図１５】
2004191605.tif 000017
【図１６】
2004191605.tif 000018
【図１７】
2004191605.tif 000019
【図１８】
2004191605.tif 000020