(57)【特許請求の範囲】
【請求項１】
鍵盤上の鍵を押鍵すべき押鍵タイミングを該鍵単位で表す第１の演奏情報、前記第１の演奏情報が表す押鍵タイミング別に前記鍵の押鍵に用いるべき指を表す第２の演奏情報、及び前記第１の演奏情報に対応する、前記演奏に用いる手を移動させるべき移動タイミングを示す第３の演奏情報を記憶する記憶手段を有し、前記鍵盤上の押鍵すべき鍵を順次、表示装置上に表示していくことにより、前記鍵盤による楽曲の演奏をガイドする装置において、
前記表示装置上に前記鍵盤上の鍵を表す画像を表示させ、
前記記憶手段から第１の演奏情報を取得し、
前記記憶手段から第２の演奏情報を取得し、
前記記憶手段から第３の演奏情報を取得し、
それぞれ取得した前記第１、第２及び第３の演奏情報に基づいて、前記鍵盤上の鍵の押鍵に用いるべき指を示す指情報を、前記鍵を表す画像と対応させて前記表示装置上に表示させるとともに、前記押鍵すべき鍵を示す第１のオブジェクト、及び前記演奏に用いる手を移動させるべき移動タイミングを示すための第２のオブジェクトを前記表示装置上でスクロール表示させる、
ことを特徴とする演奏ガイド方法。
【請求項２】
前記指情報は複数、同時に表示させることにより、前記鍵の押鍵に用いるべき指以外の指を位置させておくべき鍵を併せて教示する、ことを特徴とする請求項１記載の演奏ガイド方法。
【請求項３】
前記第２のオブジェクトのスクロール表示によって移動させるべきタイミングを示す手の移動後の押鍵に用いるべき指を示す第３のオブジェクトをスクロール表示させる、ことを特徴とする請求項１記載の演奏ガイド方法。
【請求項４】
鍵盤上の鍵を押鍵すべき押鍵タイミングを該鍵単位で表す第１の演奏情報、及び前記第１の演奏情報に対応する、前記演奏に用いる手を移動させるべき移動タイミングを示す第２の演奏情報を記憶する記憶手段を有し、前記鍵盤上の押鍵すべき鍵を順次、表示装置上に表示していくことにより、前記鍵盤による楽曲の演奏をガイドする装置において、
前記表示装置上に前記鍵盤上の鍵を表す画像を表示させ、
前記記憶手段から第１の演奏情報を取得し、
前記記憶手段から第２の演奏情報を取得し、
それぞれ取得した前記第１及び第２の演奏情報に基づいて、前記押鍵すべき鍵を示す第１のオブジェクト、及び前記演奏に用いる手を移動させるべき移動タイミングを示すための第２のオブジェクトを前記表示装置上でスクロール表示させ、
前記取得した第２の演奏情報が示す移動タイミングの到来時に、前記スクロール表示の進行を停止させ、
前記スクロール表示の進行停止時に、前記鍵盤に対してユーザが特定の演奏操作を行ったか否か検出し、
前記特定の演奏操作をユーザが行ったことを検出した場合は、前記演奏ガイド機能によるスクロール表示の進行を再開させる、
ことを特徴とする演奏ガイド方法。
【請求項５】
鍵盤上の鍵を押鍵すべき押鍵タイミングを該鍵単位で表す第１の演奏情報、前記第１の演奏情報が表す押鍵タイミング別に前記鍵の押鍵に用いるべき指を表す第２の演奏情報、及び前記第１の演奏情報に対応する、前記演奏に用いる手を移動させるべき移動タイミングを示す第３の演奏情報を記憶する記憶手段を有し、前記鍵盤上の押鍵すべき鍵を順次、表示装置上に表示していくことにより、前記鍵盤による楽曲の演奏をガイドする装置において、
前記表示装置上に前記鍵盤上の鍵を表す画像を表示させる鍵表示手段と、
前記記憶手段から第１の演奏情報を取得する第１の演奏情報取得手段と、
前記記憶手段から第２の演奏情報を取得する第２の演奏情報取得手段と、
前記記憶手段から第３の演奏情報を取得する第３の演奏情報取得手段と、
前記第１、第２及び第３の演奏情報取得手段がそれぞれ取得した第１、第２及び第３の演奏情報に基づいて、前記鍵盤上の鍵の押鍵に用いるべき指を示す指情報を、前記鍵を表す画像と対応させて前記表示装置上に表示させるとともに、前記押鍵すべき鍵を示す第１のオブジェクト、及び前記演奏に用いる手を移動させるべき移動タイミングを示すための第２のオブジェクトを前記表示装置上でスクロール表示させる演奏ガイド手段と、
を具備することを特徴とする演奏ガイド装置。
【請求項６】
鍵盤上の鍵を押鍵すべき押鍵タイミングを該鍵単位で表す第１の演奏情報、及び前記第１の演奏情報に対応する、前記演奏に用いる手を移動させるべき移動タイミングを示す第２の演奏情報を記憶する記憶手段を有し、前記鍵盤上の押鍵すべき鍵を順次、表示装置上に表示していくことにより、前記鍵盤による楽曲の演奏をガイドする装置において、
前記表示装置上に前記鍵盤上の鍵を表す画像を表示させる鍵表示手段と、
前記記憶手段から第１の演奏情報を取得する第１の演奏情報取得手段と、
前記記憶手段から第２の演奏情報を取得する第２の演奏情報取得手段と、
前記第１及び第２の演奏情報取得手段がそれぞれ取得した第１及び第２の演奏情報に基づいて、該押鍵すべき鍵を示す第１のオブジェクト、及び前記演奏に用いる手を移動させるべき移動タイミングを示すための第２のオブジェクトを前記表示装置上でスクロール表示させる演奏ガイド手段と、
前記第２の演奏情報取得手段が取得した第２の演奏情報が示す移動タイミングの到来時に、前記演奏ガイド手段によるスクロール表示の進行を停止させるスクロール停止手段と、
前記演奏ガイド手段によるスクロール表示の進行停止時に、前記鍵盤に対してユーザが特定の演奏操作を行ったか否か検出する演奏操作検出手段と、
前記演奏操作検出手段により、前記特定の演奏操作をユーザが行ったことを検出した場合は、前記演奏ガイド手段によるスクロール表示の進行を再開させるスクロール再開手段と、
を具備することを特徴とする演奏ガイド装置。
【請求項７】
前記演奏操作検出手段は、移動後の手で押鍵できる複数の鍵の押鍵が行われたか否かを検出する、ことを特徴とする請求項６記載の演奏ガイド装置。
【請求項８】
鍵盤上の鍵を押鍵すべき押鍵タイミングを該鍵単位で表す第１の演奏情報、前記第１の演奏情報が表す押鍵タイミング別に前記鍵の押鍵に用いるべき指を表す第２の演奏情報、及び前記第１の演奏情報に対応する、前記演奏に用いる手を移動させるべき移動タイミングを示す第３の演奏情報を記憶する記憶手段を有し、前記鍵盤上の押鍵すべき鍵を順次、表示装置上に表示していくことにより、前記鍵盤による楽曲の演奏をガイドする装置において、
前記表示装置上に前記鍵盤上の鍵を表す画像を表示させる鍵表示機能と、
前記記憶手段から第１の演奏情報を取得する第１の演奏情報取得機能と、
前記記憶手段から第２の演奏情報を取得する第２の演奏情報取得機能と、
前記記憶手段から第３の演奏情報を取得する第３の演奏情報取得機能と、
前記第１、第２及び第３の演奏情報取得機能によりそれぞれ取得された第１、第２及び第３の演奏情報に基づいて、前記鍵盤上の鍵の押鍵に用いるべき指を示す指情報を、前記鍵を表す画像と対応させて前記表示装置上に表示させるとともに、前記押鍵すべき鍵を示す第１のオブジェクト、及び前記演奏に用いる手を移動させるべき移動タイミングを示すための第２のオブジェクトを前記表示装置上でスクロール表示させる演奏ガイド機能と、
を実現させるためのプログラム。
【請求項９】
鍵盤上の鍵を押鍵すべき押鍵タイミングを該鍵単位で表す第１の演奏情報、及び前記第１の演奏情報に対応する、前記演奏に用いる手を移動させるべき移動タイミングを示す第２の演奏情報を記憶する記憶手段を有し、前記鍵盤上の押鍵すべき鍵を順次、表示装置上に表示していくことにより、前記鍵盤による楽曲の演奏をガイドする装置において、
前記表示装置上に前記鍵盤上の鍵を表す画像を表示させる鍵表示機能と、
前記記憶手段から第１の演奏情報を取得する第１の演奏情報取得機能と、
前記記憶手段から第２の演奏情報を取得する第２の演奏情報取得機能と、
それぞれ取得した前記第１及び第２の演奏情報に基づいて、前記押鍵すべき鍵を示す第１のオブジェクト、及び前記演奏に用いる手を移動させるべき移動タイミングを示すための第２のオブジェクトを前記表示装置上でスクロール表示させる演奏ガイド機能と、
前記取得した第２の演奏情報が示す移動タイミングの到来時に、前記演奏ガイド機能によるスクロール表示の進行を停止させるスクロール停止機能と、
前記演奏ガイド機能によるスクロール表示の進行停止時に、前記鍵盤に対してユーザが特定の演奏操作を行ったか否か検出する演奏操作検出機能と、
前記演奏操作検出機能により、前記特定の演奏操作をユーザが行ったことを検出した場合は、前記演奏ガイド機能によるスクロール表示の進行を再開させるスクロール再開機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、鍵盤上の押鍵すべき鍵を順次、教示していくことにより、その鍵盤による楽曲の演奏をガイドするための技術に関する。
【０００２】
【従来の技術】
ピアノや電子キーボードなどの鍵盤楽器では、押鍵すべき鍵を順次、押鍵していくことで演奏が行われる。その演奏者（ユーザ）を想定して演奏をガイドする方法（演奏ガイド方法）としては、鍵（楽音の音高）毎に、それを押鍵すべき押鍵タイミングを少なくとも示すためのオブジェクトをスクロール表示させる方法が広く採用されている。
【０００３】
そのスクロール表示方法を採用した演奏ガイド方法では、鍵（音高）を示す画像に向けてスクロール表示させているオブジェクトを予め定めた位置に到達させるか、或いはその消去を開始させることにより、それが割り当てられた鍵の押鍵タイミングを表現（教示）する。そのようにして鍵毎に押鍵タイミングを表現するため、押鍵すべき鍵とその押鍵タイミングの対応関係を容易に把握できるようになっている。また、押鍵すべき鍵は、それを押鍵すべきタイミングとなる前に分かることから、演奏者はより余裕を持って演奏を行えるようになっている。
【０００４】
【発明が解決しようとする課題】
従来の演奏ガイド方法では、基本的に、オブジェクトのスクロール表示を通して、鍵毎に押鍵タイミングのみを教示していた。しかし、オブジェクトをスクロール表示することで前もって押鍵すべき鍵を示しても、演奏技術が未熟な演奏者は、そのオブジェクトに対応する鍵をどのように押鍵していくべきかが分からないのが実情である。
【０００５】
このことから、演奏のガイドでは、押鍵すべき鍵やその押鍵タイミングだけでなく、押鍵すべき鍵をどのように押鍵していくべきかを演奏者に教示することも重要であると考えられる。演奏技術が未熟な演奏者は、演奏を行ううえでの余裕がないのが普通であることから、その教示はより分かりやすい形で行うことが必要であると云える。
【０００６】
本発明の課題は、押鍵すべき鍵やその押鍵タイミングに加えて、鍵を押鍵していく方法を演奏者に教示するための技術を提供することにある。
【０００７】
【課題を解決するための手段】
本発明の第１、第２の態様の演奏ガイド方法は、共に鍵盤上の押鍵すべき鍵を順次、教示していくことにより、該鍵盤による楽曲の演奏をガイドするための方法であって、それぞれ以下のようにガイドを行う。
【０００８】
第１の態様の演奏ガイド方法では、鍵盤上の鍵を押鍵すべき押鍵タイミングを該鍵単位で表す第１の演奏情報、第１の演奏情報が表す押鍵タイミング別に鍵の押鍵に用いるべき指を表す第２の演奏情報、及び第１の演奏情報に対応する、演奏に用いる手を移動させるべき移動タイミングを示す第３の演奏情報を記憶する記憶手段を有し、鍵盤上の押鍵すべき鍵を順次、表示装置上に表示していくことにより、前記鍵盤による楽曲の演奏をガイドする装置において、表示装置上に鍵盤上の鍵を表す画像を表示させ、記憶手段から第１の演奏情報を取得し、記憶手段から第２の演奏情報を取得し、記憶手段から第３の演奏情報を取得し、それぞれ取得した第１、第２及び第３の演奏情報に基づいて、鍵盤上の鍵の押鍵に用いるべき指を示す指情報を、鍵を表す画像と対応させて前記表示装置上に表示させるとともに、前記押鍵すべき鍵を示す第１のオブジェクト、及び前記演奏に用いる手を移動させるべき移動タイミングを示すための第２のオブジェクトを表示装置上でスクロール表示させることにより演奏をガイドする。
【０００９】
なお、上記第１の態様では、指情報は複数、同時に表示させることにより、鍵の押鍵に用いるべき指以外の指を位置させておくべき鍵を併せて教示する、ことが望ましい。また、第２のオブジェクトのスクロール表示によって移動させるべきタイミングを示す手の移動後の押鍵に用いるべき指を示す第３のオブジェクトをスクロール表示させる、ことが望ましい。
【００１０】
第２の態様の演奏ガイド方法では、鍵盤上の鍵を押鍵すべき押鍵タイミングを該鍵単位で表す第１の演奏情報、及び第１の演奏情報に対応する、演奏に用いる手を移動させるべき移動タイミングを示す第２の演奏情報を記憶する記憶手段を有し、鍵盤上の押鍵すべき鍵を順次、表示装置上に表示していくことにより、鍵盤による楽曲の演奏をガイドする装置において、表示装置上に前記鍵盤上の鍵を表す画像を表示させ、記憶手段から第１の演奏情報を取得し、記憶手段から第２の演奏情報を取得し、それぞれ取得した第１及び第２の演奏情報に基づいて、押鍵すべき鍵を示す第１のオブジェクト、及び演奏に用いる手を移動させるべき移動タイミングを示すための第２のオブジェクトを表示装置上でスクロール表示させ、取得した第２の演奏情報が示す移動タイミングの到来時に、スクロール表示の進行を停止させ、スクロール表示の進行停止時に、鍵盤に対してユーザが特定の演奏操作を行ったか否か検出し、特定の演奏操作をユーザが行ったことを検出した場合は、前記演奏ガイド機能によるスクロール表示の進行を再開させる。
【００１１】
本発明の第１、第２の態様の演奏ガイド装置は、共に、鍵盤上の押鍵すべき鍵を順次、表示していくことにより、該鍵盤による楽曲の演奏をガイドすることを特徴とし、それぞれ以下の手段を具備する。
第１の態様の演奏ガイド装置は、鍵盤上の鍵を押鍵すべき押鍵タイミングを該鍵単位で表す第１の演奏情報、第１の演奏情報が表す押鍵タイミング別に鍵の押鍵に用いるべき指を表す第２の演奏情報、及び第１の演奏情報に対応する、演奏に用いる手を移動させるべき移動タイミングを示す第３の演奏情報を記憶する記憶手段を有し、鍵盤上の押鍵すべき鍵を順次、表示装置上に表示していくことにより、鍵盤による楽曲の演奏をガイドする装置において、表示装置上に前記鍵盤上の鍵を表す画像を表示させる鍵表示手段と、記憶手段から第１の演奏情報を取得する第１の演奏情報取得手段と、記憶手段から第２の演奏情報を取得する第２の演奏情報取得手段と、記憶手段から第３の演奏情報を取得する第３の演奏情報取得手段と、第１、第２及び第３の演奏情報取得手段がそれぞれ取得した第１、第２及び第３の演奏情報に基づいて、鍵盤上の鍵の押鍵に用いるべき指を示す指情報を、鍵を表す画像と対応させて表示装置上に表示させるとともに、押鍵すべき鍵を示す第１のオブジェクト、及び演奏に用いる手を移動させるべき移動タイミングを示すための第２のオブジェクトを表示装置上でスクロール表示させる演奏ガイド手段と、を具備する。
【００１２】
第２の態様の演奏ガイド装置は、鍵盤上の鍵を押鍵すべき押鍵タイミングを該鍵単位で表す第１の演奏情報、及び第１の演奏情報に対応する、演奏に用いる手を移動させるべき移動タイミングを示す第２の演奏情報を記憶する記憶手段を有し、鍵盤上の押鍵すべき鍵を順次、表示装置上に表示していくことにより、鍵盤による楽曲の演奏をガイドする装置において、表示装置上に前記鍵盤上の鍵を表す画像を表示させる鍵表示手段と、記憶手段から第１の演奏情報を取得する第１の演奏情報取得手段と、記憶手段から第２の演奏情報を取得する第２の演奏情報取得手段と、第１及び第２の演奏情報取得手段がそれぞれ取得した第１及び第２の演奏情報に基づいて、該押鍵すべき鍵を示す第１のオブジェクト、及び演奏に用いる手を移動させるべき移動タイミングを示すための第２のオブジェクトを表示装置上でスクロール表示させる演奏ガイド手段と、第２の演奏情報取得手段が取得した第２の演奏情報が示す移動タイミングの到来時に、演奏ガイド手段によるスクロール表示の進行を停止させるスクロール停止手段と、記演奏ガイド手段によるスクロール表示の進行停止時に、鍵盤に対してユーザが特定の演奏操作を行ったか否か検出する演奏操作検出手段と、演奏操作検出手段により、前記特定の演奏操作をユーザが行ったことを検出した場合は、前記演奏ガイド手段によるスクロール表示の進行を再開させるスクロール再開手段と、を具備する。
【００１４】
なお、上記第２の態様の構成において、演奏操作検出手段は、移動後の手で押鍵できる複数の鍵の押鍵が行われたか否かを検出する、ことが望ましい。
本発明の第１の態様のプログラムは、鍵盤上の鍵を押鍵すべき押鍵タイミングを該鍵単位で表す第１の演奏情報、第１の演奏情報が表す押鍵タイミング別に前記鍵の押鍵に用いるべき指を表す第２の演奏情報、及び第１の演奏情報に対応する、演奏に用いる手を移動させるべき移動タイミングを示す第３の演奏情報を記憶する記憶手段を有し、鍵盤上の押鍵すべき鍵を順次、表示装置上に表示していくことにより、鍵盤による楽曲の演奏をガイドする装置に実行させることを前提とし、以下の機能を実現させる。
【００１５】
第１の態様のプログラムは、表示装置上に前記鍵盤上の鍵を表す画像を表示させる鍵表示機能と、記憶手段から第１の演奏情報を取得する第１の演奏情報取得機能と、記憶手段から第２の演奏情報を取得する第２の演奏情報取得機能と、記憶手段から第３の演奏情報を取得する第３の演奏情報取得機能と、第１、第２及び第３の演奏情報取得機能によりそれぞれ取得された第１、第２及び第３の演奏情報に基づいて、鍵盤上の鍵の押鍵に用いるべき指を示す指情報を、鍵を表す画像と対応させて表示装置上に表示させるとともに、押鍵すべき鍵を示す第１のオブジェクト、及び演奏に用いる手を移動させるべき移動タイミングを示すための第２のオブジェクトを前記表示装置上でスクロール表示させる演奏ガイド機能と、を実現させる。
【００１６】
本発明の第２の態様のプログラムは、鍵盤上の鍵を押鍵すべき押鍵タイミングを該鍵単位で表す第１の演奏情報、及び第１の演奏情報に対応する、演奏に用いる手を移動させるべき移動タイミングを示す第２の演奏情報を記憶する記憶手段を有し、鍵盤上の押鍵すべき鍵を順次、表示装置上に表示していくことにより、鍵盤による楽曲の演奏をガイドする装置に実行させることを前提とし、表示装置上に鍵盤上の鍵を表す画像を表示させる鍵表示機能と、記憶手段から第１の演奏情報を取得する第１の演奏情報取得機能と、記憶手段から第２の演奏情報を取得する第２の演奏情報取得機能と、それぞれ取得した第１及び第２の演奏情報に基づいて、押鍵すべき鍵を示す第１のオブジェクト、及び演奏に用いる手を移動させるべき移動タイミングを示すための第２のオブジェクトを表示装置上でスクロール表示させる演奏ガイド機能と、取得した第２の演奏情報が示す移動タイミングの到来時に、演奏ガイド機能によるスクロール表示の進行を停止させるスクロール停止機能と、演奏ガイド機能によるスクロール表示の進行停止時に、鍵盤に対してユーザが特定の演奏操作を行ったか否か検出する演奏操作検出機能と、演奏操作検出機能により、特定の演奏操作をユーザが行ったことを検出した場合は、演奏ガイド機能によるスクロール表示の進行を再開させるスクロール再開機能と、を実現させる。
【００１７】
本発明では、押鍵すべき鍵を示す第１のオブジェクトの他に、鍵盤上の鍵の押鍵に用いるべき指を示すための指情報を表示させ、例えば表示させた指情報に向けて第１のオブジェクトをスクロール表示させることにより、押鍵すべき鍵、その鍵の押鍵タイミング、及びその鍵の押鍵に用いるべき指を教示する。押鍵すべき鍵の押鍵に用いるべき指を教示する結果、ユーザ（演奏者）は、押鍵に用いるべき指を意識しつつ、鍵盤上の鍵を押鍵していくことが行えるようになる。
【００１８】
上記第１のオブジェクトに加えて、演奏に用いる手を移動させるべきタイミングを少なくとも示すための第２のオブジェクトをスクロール表示させた場合には、そのタイミングをユーザに教示することになる。この結果、手の適切な位置を意識しつつ、鍵盤上の鍵を押鍵していくことが行えるようになる。手の移動後の押鍵に用いるべき指を示す第３のオブジェクトをスクロール表示させた場合には、その移動後の押鍵に用いるべき指を正確に認識できることから、その指を用いた押鍵を容易に行えるようになる。
【００１９】
本発明では、押鍵すべき鍵を示すためのオブジェクトをスクロール表示させることにより、押鍵すべき鍵、及びその鍵の押鍵タイミングを少なくとも教示して演奏をガイドし、押鍵すべき鍵の押鍵に手を移動すべきであった場合に、所定の鍵の押鍵をユーザに要求し、要求した所定の鍵をユーザが押鍵したか否か確認して、その確認結果をスクロール表示による演奏のガイドの進行に反映させる。
【００２０】
手を移動させて行う押鍵は、その移動の必要がない押鍵と比較して困難でありその押鍵に手間取ることが多い。しかし、要求した所定の鍵（手の移動直後に押鍵すべき鍵か、或いは演奏に係わらない鍵）をユーザが押鍵したか否か確認した結果をガイドの進行に反映させるようにすると、所定の鍵をユーザが押鍵するまで待ったり、その押鍵までの進行速度を遅らせるようなことが行えるようになる。その結果、何れにしても、比較的に困難な押鍵を行う際に、ユーザにとって適度な進行速度（演奏速度）でガイドを行えるようになる。その進行速度の変化を通して、手を移動させるべきタイミングをユーザに教示することにもなる。
【００２１】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態につき詳細に説明する。
＜第１の実施の形態＞
図１は、第１の実施の形態による演奏ガイド装置を搭載した電子鍵盤楽器の構成図である。
【００２２】
その電子鍵盤楽器は、図１に示すように、楽器全体の制御を行うＣＰＵ１０１と、そのＣＰＵ１０１が実行するプログラムや各種データを格納したＲＯＭ１０２と、ＣＰＵ１０１がワーク用に使用するＲＡＭ１０３と、ＣＰＵ１０１の指示に従って、発音させる楽音の波形データを生成する音源ＬＳＩ１０４と、そのＬＳＩ１０４が生成した波形データをサウンドとして出力するサウンドシステム１０５と、各種スイッチを有するスイッチ（ＳＷ）群１０６と、演奏操作の対象となる鍵盤１０７と、ＣＰＵ１０１から出力された画像データを格納するＤＰ（デュアルポート）−ＲＡＭ１０８と、そのＲＡＭ１０８に格納された画像データを用いて表示用の画像データを生成するＶＤＰ（ビデオ・デジタル・プロセッサ）１０９と、そのＶＤＰ１０９が生成した画像データをＮＴＳＣ信号などのテレビジョン（以降、テレビ）用の信号に変換するコンバータ１１０と、を備えて構成される。それにより、本実施の形態による演奏ガイド装置は、コンバータ１１０を介して接続されたテレビに表示させる画像を通して演奏をガイドするものとして実現されている。
【００２３】
上記スイッチ群１０６は、例えば各種のスイッチやボタンなどの操作子と、それらの操作子への操作を検出する検出用回路と、から構成されている。その操作子としては、演奏ガイドの開始、或いは終了を指示するためのスタート／ストップスイッチ、テンキー、演奏ガイドの対象とする楽曲を選択するためのソングスイッチ、などがある。演奏ガイドの対象とする楽曲は、ソングスイッチを操作した後、所望の楽曲に割り当てられた番号（楽曲番号）をテンキーにより指定することで行うようになっている。
【００２４】
上記ＶＤＰ１０９は、例えば内蔵のＲＡＭ１０９ａに、ＣＰＵ１０１から受け取った画像データの配置すべき位置を示すデータを保存し、ＤＰ−ＲＡＭ１０８に格納された画像データを、そのＲＡＭ１０９に保存したデータに従い、予め定められた順序で重ね合わせつつ配置する形で表示用の画像データを生成するものである。
【００２５】
以上の構成において、その動作を説明する。
不図示の電源がオンされると、ＣＰＵ１０１はＲＯＭ１０２に格納されたプログラムを読み出して実行することにより、楽器全体の制御を開始する。その後は、ＲＡＭ１０３を作業用に使用しながら、スイッチ群１０６や鍵盤１０７からそれぞれ受け取る操作子の状態を表す信号に応じた各部の制御を行う。なお、スイッチ群１０６を構成する検出用回路は、各スイッチの状態（操作の有無を含む）の変化を、例えば、その状態に応じて変化する電圧値から検出する。鍵盤１０７（を構成する検出用回路）は、各鍵の状態を、例えばそれを走査することで検出する。
【００２６】
ＣＰＵ１０１は、鍵盤１０７から各鍵の状態を表す信号を受け取ると、前回に検出されたその状態と比較することにより、状態が変化した鍵を特定する。そのような鍵を特定できた場合には、その特定した鍵とそれの状態の変化に応じて音源ＬＳＩ１０４に送出すべき制御コマンドを生成し、それを送出する。
【００２７】
音源ＬＳＩ１０４は、その制御コマンドに従い、楽音の波形データを生成してサウンドシステム１０５に送出する。サウンドシステム１０５は、例えばその波形データをアナログのオーディオ信号に変換し、それによって得られたオーディオ信号を増幅し、増幅後のオーディオ信号をスピーカに入力して楽音を放音する。それにより、ユーザ（演奏者）が鍵盤１０７を操作すると、その操作内容に応じた楽音が放音される。
【００２８】
一方、ＣＰＵ１０１は、スイッチ群１０６を構成する各スイッチの状態の変化に応じて、その状態が変化したスイッチに割り当てた機能を実現させるための処理を行う。その処理を行うことにより、演奏ガイドの対象とする楽曲の設定を含む各種の設定や、その演奏ガイドなどが実現される。その演奏ガイドは、上記スタート／ストップスイッチへの操作に応答して開始し、それが終了するか、或いはそのスイッチを再度、操作するまで行う。
【００２９】
図２は、本実施の形態による演奏ガイド方法を説明する図である。ＶＤＰ１０９が画像データを生成することでテレビに表示される内容例を示したものである。ここで、図２を参照して、その演奏ガイド方法について具体的に説明する。
図２において、直線上に並んだ枠に「ど」〜「し」で表す音名が音高順に配置された画像（以降、音階画像と呼ぶ）２０１は、鍵盤１０７上で押鍵すべき鍵を示すために表示させるものである。押鍵すべき鍵（の音高）、及びそれを押鍵すべき押鍵タイミングは、音階画像２０１に配置した音名のなかで押鍵すべき鍵に対応する音名の位置を含む、その画像２０１の長手方向と直交する方向のライン上に星形をしたオブジェクト（以降、楽譜上の音符に対応することから、音符オブジェクトと呼ぶ。それは特許請求の範囲に記載の「第１のオブジェクト」に対応）２０２を配置させ、画像２０１に向けて図２中の矢印方向にスクロールさせることで教示するようになっている。
【００３０】
本実施の形態では、音階画像２０１の長手方向は、Ｘ軸方向と一致させ、その直交方向はＹ軸方向と一致させている。それにより、Ｘ軸上の位置であるＸ座標値は、音符オブジェクト２０２を用いて表現する押鍵すべき鍵の音高を示している。Ｙ軸上の位置であるＹ座標値、或いはその間隔は、演奏上の時間を示している。音階画像２０１で示す音名の音高が高くなる方向がＸ軸上の正方向であり、それから離れていく方向がＹ軸上の正方向である。
【００３１】
音階画像２０１と音符オブジェクト２０２との間には、図２に示すように、「親」「人」「中」「薬」或いは「小」のシンボルを内側に有するオブジェクト２０３を配置させている。「親」「人」「中」「薬」及び「小」の各シンボルは、それぞれ、親指、人差し指、中指、薬指、及び小指を表している。それらのうちの何れかのシンボルを有するオブジェクト（以降、指オブジェクトと呼ぶ）２０３は、それが表す指を用いて押鍵すべき鍵を教示するために、その鍵に割り当てられた音高に対応するＸ座標値に配置させている。つまり、音階画像２０１中の押鍵すべき鍵（発音させるべき楽音の音高）に対応する音名の上方（図中の矢印の逆方向＝Ｙ軸上の正方向）に、その鍵の押鍵に用いるべき指のオブジェクト２０３を配置させている。それにより、押鍵すべき鍵とその押鍵に用いるべき指の対応関係を容易に認識できるようにさせている。
【００３２】
なお、その対応関係は、音階画像２０１の各枠に指オブジェクト２０３を表示するスペースを確保して、その確保したスペースに指オブジェクト２０３を必要に応じて表示することで示すようにしても良い。その枠、或いはその内側の表示色を切り換えることで示すようにしても良い。そのように、対応関係の示し方には様々な方法を採用することができる。音階画像２０１については、固定的に表示させることから、それを印刷などにより固定的に専用の表示装置に配置するようにしても良い。
【００３３】
指オブジェクト２０３を音階画像２０１と音符オブジェクト２０２の間に配置することで、音符オブジェクト２０２は、そのＸ座標値で示される音高が割り当てられた鍵の押鍵に用いるべき指を表す指オブジェクト２０３に向かってスクロールしていく形となる。それにより、演奏者（電子鍵盤楽器のユーザ）に対しては、押鍵タイミングが来る前に、押鍵に用いるべき指をより強調しつつ、その指や押鍵すべき鍵（発音させるべき楽音の音高）を教示するようにしている。
【００３４】
押鍵に用いるべき指を強調的に教示することで、演奏者には、教示した鍵をその指で押鍵できるように手指を動かすべきであるという意識がより強く働くようになる。そのような意識をより強く働かせる結果、事前に押鍵に用いるべき指や押鍵すべき鍵を単に教示する場合と比較して、演奏者は、教示した鍵を教示した指で押鍵できるように手指をよりスムーズに動かせるようになる。それにより、より容易に演奏を行えるように演奏者をガイドすることとなる。
【００３５】
上記指オブジェクト２０３は、図２に示すように、常に複数、表示させるようにしている。それは、次の押鍵より後に押鍵すべき鍵が存在していればその鍵の押鍵に用いるべき指をより早い時点で教示する意味を含めて、次の押鍵に用いるべき指以外の指を位置させておくべき鍵を教示するためである。
【００３６】
一度に指定する指の位置が多くなるほど、手を置ける位置の範囲は狭まる。このため、複数の指の位置を一度に指定（教示）すると、手を置くべき位置を実質的に指定（教示）しつつ、それ以降の押鍵に用いるべき指をより早い時点で教示することになる。手や指の位置を指定（教示）することで、鍵を押鍵するには適切な形で手指を動かさなければならなくなる。このようなことから、演奏者は、より余裕を持って演奏を行えるようになるだけでなく、より適切な手指の運び方を学習できることとなる。
【００３７】
周知のように、手は必要に応じて移動させなければならない。本実施の形態では、その移動の必要性を教示するために、Ｘ軸上で５音名分の音域の幅を持つ枠オブジェクト２０４、その移動方向を示す矢印を枠内に配置されたオブジェクト（以降、矢印オブジェクトと呼ぶ）２０５、或いは２０６を配置し、それらを音符オブジェクト２０２とともにスクロール表示させている。
【００３８】
その枠オブジェクト２０４のＸ軸上の表示位置は、手を置くべき位置に応じて変化させている。それにより、枠オブジェクト２０４のスクロール表示を通して、手を移動させるべきタイミング、それを移動させるべき方向、及びその移動量（手を置くべき位置）を教示するようにしている。
【００３９】
図２中、音階画像２０１に最も近い枠オブジェクト２０４と、その次に近い枠オブジェクト２０４とでは、１音名分、表示位置が右（Ｘ軸上の位置が大きい側に当たる。以降、特に断らない限り、左右はＸ軸上の位置に着目した表現とする）にずれている。そのずれが手の移動量を示している。
【００４０】
音階画像２０１に２番目に近い枠オブジェクト２０４を構成する下側（Ｙ軸上の位置が小さい側。以降、特に断らない限り、上下はＹ軸上の位置に着目した表現とする）の線に重なるように配置した矢印オブジェクト２０５は、枠オブジェクト２０４の表示位置を右にずらすことで表す手の移動させるべき方向を別の方法で視覚的に教示するために表示したものである。これは、矢印オブジェクト２０６も同様である。本実施の形態では、そのように複数のオブジェクトを用いて、手の移動のさせ方をより分かりやすくさせている。
【００４１】
手の移動を教示する枠オブジェクト２０４、即ちその下側の枠オブジェクト２０４とＸ軸上の表示位置が異なっている枠オブジェクト２０４内で下端に位置する音符オブジェクト２０２には、図２に示すように、その近傍に押鍵に用いるべき指に割り当てた数字（指番号）２０７を配置している。図２中の「４」は、薬指を指している。以降、表示した指番号２０７については、番号オブジェクトと総称する。
【００４２】
手を移動させることに伴い、それまでの鍵とそこに位置させるべき指の対応関係が変化する。全ての指オブジェクト２０３の表示位置を変えることも多い。このようなことから、手の移動後の押鍵に用いるべき指は分かりにくくなり、演奏者は混乱しやすくなる。しかし、上記番号オブジェクト２０７を音符オブジェクト２０２の近傍に配置すると、手の移動後の押鍵に用いるべき指を演奏者は事前に知ることができることから、手の移動に伴い、混乱するようなことを回避させられるようになる。番号オブジェクト２０７を表示するのはそのためである。
【００４３】
本実施の形態では、上述した各種オブジェクト２０１〜２０７の他に、音符オブジェクト２０２に対応する音名を示すシンボル（「ど」〜「し」のうちの何れか。以降、それを音階オブジェクトと総称する）２０８を、そのオブジェクト２０２と同じＹ軸上の位置に表示させている。そのＸ軸上の位置は、それの左側の予め定めた位置としている。そのような位置に表示させた音階オブジェクト（シンボル）２０８は、音符オブジェクト２０２と共にスクロールさせている。そのようにして、表示させた音階オブジェクト２０８からも押鍵すべき鍵を演奏者が分かるようにさせている。
【００４４】
上述したようなスクロール表示による演奏ガイドを実現させるために、本実施の形態では以下のようなデータを用意している。
図３は、演奏データの構成を説明する図である。その演奏データは、楽曲の演奏内容を基に、音階画像２０１以外に表示させるオブジェクトの種類、その表示位置などを定義したものである。それにより、演奏ガイドするためのスクロール表示は、演奏データを参照して行うようになっている。その演奏データは、ＲＯＭ１０２に複数、楽曲別に用意されており、その選択は、上述したように、ソングスイッチを操作した後、所望の楽曲に割り当てられた楽曲番号をテンキーにより指定することで行うようになっている。
【００４５】
その演奏データは、図３に示すように、手の位置を表す手位置データ、指の位置を表す指位置データ、発音させるべき楽音（押鍵すべき鍵）を表す音符データ、及び楽音を発音させるべきでない時間を表す休符データのなかで必要なデータを処理順序に従って並べた形で構成されている。
【００４６】
上記手位置データは、演奏データの先頭にあるものと、そうでないものと、に分けられる。先頭にあるものは、枠２０４の種類を示す枠コード、及びそれが示す枠２０４の表示位置を指定するＸＹの座標データから構成され、そうでないものは、それらに加えて、矢印オブジェクトの種類を示す矢印コードが付加されている。先頭にあるものに矢印コードがないのは、演奏の開始時に手を置いておくべき位置は別の位置から移動させる必要がないためである。演奏の開始時に手を置いておくべき位置を教示するために、演奏データの先頭は手位置データとさせている。
【００４７】
指位置データは、指オブジェクト２０３とそれが示す指で押鍵すべき鍵（音階画像２０１中の音名）との対応関係を指定（ここでは変更を含む）するためのものである。指オブジェクト２０３の種類を示す指変更コードと、そのコードが示す指オブジェクト２０３の表示位置を指定するＸ座標データと、から構成されている。Ｙ座標データがないのは、指オブジェクト２０３はスクロールを行わないためである。対応関係を変更する指オブジェクト２０３が複数、存在する場合、その数だけ、指位置データが連続することになる。
【００４８】
音符データは、基本的に、発音させるべき楽音の音高を示す音高データと、その楽音の発音を持続させる時間を示す音符長データと、から構成されている。その直前に手位置データが存在していれば、手の移動後の押鍵に用いるべき指を教示するために、表示すべき番号オブジェクト２０７の種類を示す指番号コードが付加される。休符データは、楽音を発音させない時間を示す音符長データから構成されている。音符データ、及び休符データが楽音の発音開始タイミング、或いはそれを発音させない期間の開始タイミングを示すデータを持たないのは、それらが持つ音符長データによってそれらのタイミングが特定できるためである。
【００４９】
図４は、ＲＯＭ１０２に確保された画像データエリアに格納されている画像データを説明する図である。
その画像データエリアは、図４に示すように、Ａ面エリアとＢ面エリアとに分けられている。Ａ面エリアには、各種指オブジェクト２０３を表示するための画像データや、固定的に表示させる画像データ（図中「固定データ」と表記）が格納されている。後者の画像データとしては、音階画像２０１表示用のものや、図２中の矢印方向に沿って延びる線を表示するためのものなどがある。
【００５０】
他方のＢ面エリアには、音符オブジェクト２０２や各種音階オブジェクト２０８、各種番号オブジェクト２０７、矢印オブジェクト２０５、２０６、及び各種枠２０４を表示するための各種画像データが格納されている。
上述したように、図１に示すＶＤＰ１０９は、ＤＰ−ＲＡＭ１０８に格納された画像データを、内部に搭載のＲＡＭ１０９に保存したデータに従い、予め定められた順序で重ね合わせつつ配置する形で１画面分の画像データを生成するようになっている。そのために、図３に示す演奏データ中のＸＹの各座標データは、それぞれ、予め定めた基準点を基準として表した値とし、ＶＤＰ１０９には、画像データの生成の対象とすべき範囲をＣＰＵ１０１が指示するようにしている。図４に示す各種画像データは、そのＣＰＵ１０１がＲＯＭ１０２から読み出してＤＰ−ＲＡＭ１０８に格納する。
【００５１】
ＶＤＰ１０９は、その指示された範囲に存在するオブジェクトの画像データを用いて表示用の画像データを生成しコンバータ１１０に出力する。その結果、図２に示すような画像を表示させるための信号がコンバータ１１０からテレビに出力されて、それがテレビ上に表示される。音符オブジェクト２０２などのスクロールは、指示する範囲を更新していくことで実現される。以降、便宜的に、範囲を指示して表示用の画像データを生成させる部分を抽出画面、テレビに実際に表示させる画面を表示画面と呼ぶことにする。
【００５２】
図５は、図１に示すＲＡＭ１０３に確保された表示制御エリアに格納されるデータを説明する図である。その表示制御エリアは、図２を参照して説明した演奏ガイドを実現させるために必要な制御用データを保存しておくためにＣＰＵ１０１が確保するエリアである。
【００５３】
その表示制御エリアには、図５に示すように、音符エリア、音階エリア、指番号エリア、枠エリア、及び矢印エリアが確保されている。それらのエリアには、それぞれ、音符オブジェクト２０２、音階オブジェクト２０８、番号オブジェクト２０７、枠オブジェクト２０４、及び矢印オブジェクト２０５、或いは２０７の表示制御用データがオブジェクト単位で格納される。
【００５４】
そのデータは、何れも２次元の配列変数で扱っている。図中、並べて表記した２つの括弧のうち、左側（表記上、変数名に近い側。以降、その視点で表記する）の括弧内で定義する数値は、表示制御用データが対象とするオブジェクトを指定するためのものである。その数値により指定されるオブジェクトは、その数値が小さくなるほど、早いタイミングで表示される、演奏データ中で設定されたＹ座標値が小さいものである。他方の括弧内で定義できる数値の範囲は０〜２である。その数値によって指定される要素に代入される値（データ）は、数値「０」ではオブジェクトの種類を示すコード、数値「１」ではＸ座標値、数値「２」ではＹ座標値である。それらによって、オブジェクトの表示制御用データは構成されている。各エリア別に用意した配列変数名としては、以降、そのエリアの名称を用いることにする。それにより、例えば音符エリアでは、それに対応する配列変数名は「音符」と表記する。
【００５５】
図５中の「表示開始アドレスＸｗ」及び「表示開始アドレスＹｗ」は、それぞれ、上記抽出画面の開始位置を示すＸ座標値、及びＹ座標値である。それらの値は演奏の進行に合わせて随時、更新し、ＶＤＰ１０９には、それらの値で画像データの生成の対象とすべき範囲を指示する。その範囲を指示するためのそれらの値を更新することに伴い、ＶＤＰ１０９が生成する抽出画面の内容は変化する。それにより、図２中の矢印方向のスクロールが実現される。それらの値を更新することでスクロール表示は行えることから、音符エリア、音階エリア、指番号エリア、枠エリア、及び矢印エリアの各エリアには格納すべきデータを一度に全て格納するようにしている。以降、「表示開始アドレスＸｗ」及び「表示開始アドレスＹｗ」は、それぞれ「アドレスＸｗ」及び「アドレスＹｗ」と略記する。
【００５６】
指オブジェクト２０３は、スクロールは行わず、指と鍵の対応関係が変化する度にＸ軸上の表示位置を変化させなければならないオブジェクトである。その表示制御用データも他のオブジェクトと同様に、２次元の配列変数で扱っている。図中、２つの括弧を並べて付した「指」はその変数名を示している。その２つの括弧のうち、左側の括弧内に表記した１〜５の数値は、表示制御用データが対象とする指オブジェクト２０３を指定するためのものである。指番号と同様に、例えば「１」は親指の指オブジェクト２０３を指定し、「５」は小指の指オブジェクト２０３を指定する。他方の括弧内で定義できる数値は０〜２の範囲である。その数値によって指定される要素に代入される値（データ）は、「０」では指番号コード、「１」では対象とする指オブジェクト２０３を表示するＸ座標値、「２」ではそのＹ座標値である。指オブジェクト２０３の表示制御用データは、それらによって構成される。
【００５７】
図５には、演奏データによって内容が変化するか、或いは随時、更新するデータのみを抜粋して示してある。そのようなデータの他には、音階画像２０１などの表示制御用データが表示制御エリアに格納される。
本実施の形態では、Ｙ軸上の実際の表示位置を変更しないオブジェクト、つまり音階画像２０１や各指オブジェクト２０３などは、上記抽出画面とは別の画面用のものとして扱っている。その別の画面をバックグランド（ＢＧ）画面と呼べば、そのＢＧ画面は図６に示すようなものである。表示画面は、ＢＧ画面上に抽出画面を重ね合わせる形で生成される。
【００５８】
ＣＰＵ１０１は、スタート／ストップスイッチが操作されると、その時点で対象として設定されている楽曲の演奏データをＲＯＭ１０２から読み出し、表示制御エリアに確保した音符エリア、音階エリア、指番号エリア、枠エリア、及び矢印エリアの各エリアに表示制御用データを格納する。それらの表示制御用データはＶＤＰ１０９に送り、ＲＡＭ１０９ａに格納させる。それ以降は、時間経過に従い、各指オブジェクト２０３の表示制御用データやアドレスＸｗ、Ｙｗを随時、更新し、更新したデータをＶＤＰ１０９に送出して、その更新をＲＡＭ１０９ａに格納されたデータに反映させる。それにより、図２を参照して説明したスクロール表示による演奏ガイドを実現させる。なお、ＲＡＭ１０９ａには、図５に示す表示制御エリアと同様の構成で表示制御用データを格納するようになっている。
【００５９】
次に、上述したような各種オブジェクトを表示させて行う演奏ガイドを実現させるＣＰＵ１０１、及びＶＤＰ１０９の動作について、図７〜図１７に示す各種フローチャートを参照して詳細に説明する。
図７は、ＣＰＵ１０１が実行する全体処理の動作フローチャートである。始めに、この図７を参照して、全体処理について詳細に説明する。その全体処理は、ＲＯＭ１０２に格納されたプログラムを実行することで実現される。
【００６０】
電源がオンされた後、最初に実行するステップ７０１では、楽器を予め定めた状態に設定するイニシャライズを行う。そのイニシャライズによって、音源ＬＳＩ１０４は予め定められた状態に初期設定され、ＤＰ−ＲＡＭ１０８には、図４に示す各種画像データが格納される。その後はステップ７０２に移行する。
【００６１】
ステップ７０２では、ユーザが所望する楽曲の演奏ガイドを行うためのガイド表示処理を実行する。続くステップ７０３では、ユーザの鍵盤１０７への操作に対応するための鍵盤処理を実行する。その次に移行するステップ７０４では、スイッチ群１０６へのユーザの操作などに対応するためのその他の処理を実行する。それを実行した後には上記ステップ７０２に戻る。それにより、電源がオンしている間、ステップ７０２〜７０４で形成される処理ループを繰り返し実行することにより、ユーザのスイッチ群１０６や鍵盤１０７への操作に対応する。
【００６２】
次に、上記全体処理で実行されるサブルーチン処理について説明する。
図８は、上記ステップ７０２として実行されるガイド表示処理のフローチャートである。全体処理で実行されるサブルーチン処理では、始めに図８を参照して、ガイド表示処理について詳細に説明する。
【００６３】
先ず、ステップ８０１では、スタート／ストップスイッチへの操作に対応するための初期設定処理を実行する。次に移行するステップ８０２では、時間の経過に従い、各種オブジェクトのスクロールを実現させるためのタイマー処理を実行する。その後に一連の処理を終了する。
【００６４】
図９は、図７に示す全体処理内でステップ７０３として実行される鍵盤処理のフローチャートである。次に、図９を参照して、鍵盤処理について詳細に説明する。
先ず、ステップ９０１では、鍵盤１０７の検出用回路に走査を行うのを指示し、その走査結果を受け取る。続くステップ９０２では、その走査結果を前回、受け取ったそれと比較することにより、鍵盤１０７のなかで状態が変化した鍵の有無や、その変化の内容を判定する。鍵盤１０７の各鍵の状態に変化がなかった場合、その旨が判定されて、ここで一連の処理が終了する。各鍵のなかで押鍵（オン）による変化があった場合には、その旨が判定され、その変化を検出した鍵に割り当てた音高の楽音の発音を指示するためのノートオンイベントデータを作成し、その作成したデータを音源ＬＳＩ１０４に送出した（ステップ９０３、９０４）後、一連の処理を終了する。各鍵のなかで離鍵（オフ）による変化があった場合には、その旨が判定され、その変化を検出した鍵に割り当てた音高の楽音の消音を指示するためのノートオフイベントデータを作成し、その作成したデータを音源ＬＳＩ１０４に送出した（ステップ９０５、９０４）後、一連の処理を終了する。
【００６５】
鍵盤処理では、上述したような処理が実行される。それにより、鍵盤１０７をユーザが操作すると、操作した鍵、及びその操作内容に応じてコマンドが生成され、音源ＬＳＩ１０４に送出される。その結果、鍵盤１０７への操作に応じて楽音が放音される。
【００６６】
以降は、図８に示すガイド表示処理内で実行されるサブルーチン処理について説明する。
図１０は、そのガイド表示処理内でステップ８０１として実行される初期設定処理のフローチャートである。始めに、図１０を参照して、初期設定処理について詳細に説明する。その初期設定処理は、上述したように、スタート／ストップスイッチへの操作、即ち演奏ガイドの開始、或いはその終了をユーザが指示したことに対応するために実行する処理である。図５に示す表示制御エリア内に確保された５つのエリアには、この初期設定処理を実行することで表示制御用データが格納される。
【００６７】
先ず、ステップ１００１では、スタート／ストップスイッチがオンしたか否か判定する。そのスイッチをユーザが操作（オン）した場合、判定はＹＥＳとなってステップ１００２に移行し、演奏ガイド管理用の変数ＳＴＦの値を反転、即ちそれまでの値が０であれば１に、それが１であれば０に上書きした後、ステップ１００３に移行する。そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【００６８】
ステップ１００３では、変数ＳＴＦの値が１か否か判定する。演奏ガイドを行っている状況を示す値の１が変数ＳＴＦに代入されていた場合、判定はＹＥＳとなってステップ１００６に移行する。そうでない場合には、判定はＮＯとなり、次にステップ１００４で全ての楽音の消音を指示するためのコマンドを生成して音源ＬＳＩ１０４に送出し、更にステップ１００５でＶＤＰ１０９に画像データの生成の終了、即ち表示の消去を指示した後、一連の処理を終了する。
【００６９】
他方のステップ１００６では、演奏ガイド開始時に表示させる表示画面（初期画面）を表示させるための初期画面生成処理を実行する。続くステップ１００７では、演奏データ中から読み出すデータを管理するための変数ＡＤ１に、その開始アドレス（その先頭に位置しているデータ）を示す値を代入する。その後はステップ１００８に移行する。
【００７０】
ステップ１００８では、変数ＡＤ１の値で指定されるデータ（図中では「ＭＥＭ［ＡＤ１］」と表記）が音符長データか否か判定する。そのデータが音符長データでなかった場合、判定はＮＯとなり、ステップ１００９で変数ＡＤ１の値をインクリメントした後、ステップ１００８に戻る。そうでない場合には、判定はＹＥＳとなり、ステップ１０１０で変数ｔに音符長データを代入した後、一連の処理を終了する。
【００７１】
ステップ１００８、１００９で形成される処理ループをステップ１００８の判定がＹＥＳとなるまで繰り返し実行することにより、変数ｔには演奏データ中に存在する音符長データのなかで先頭に位置する音符長データが代入される。その音符長データは、演奏ガイドの進行を管理するために用いられる。
【００７２】
図１１〜図１３は、上記ステップ１００６として実行される初期画面生成処理のフローチャートである。次に、図１１〜図１３を参照して、その生成処理について詳細に説明する。その生成処理は、上述したように、演奏ガイド開始時に初期画面を表示させるために実行するものである。
【００７３】
先ず、ステップ１１０１では、図６に示すようなＢＧ画面を表示させるためのＢＧ画面表示処理を実行する。続くステップ１１０２では、変数ＡＤ２に、演奏データの開始アドレスを示す値を代入する。その次に移行するステップ１１０３では、表示制御エリア（図５参照）内に確保したエリア別にオブジェクトの表示制御用データを格納するために用意した変数ｎ１〜ｎ５、Ｍにそれぞれ０を代入する。ステップ１１０４にはその後に移行する。
【００７４】
上記変数ｎ１〜ｎ５は、それぞれ音符、音階、指番号、枠、及び矢印の各エリア別に用意した配列変数の要素を指定するために用いられる。より具体的には、左側の括弧内でオブジェクトを指定するために用いられる。変数Ｍは、アドレスＹｗを更新することでスクロールさせるオブジェクトのＹ軸上の表示位置を管理するために用いられる。ステップ１１０４以降では、変数ＡＤ２を含む各種変数の値を随時、更新しながら、表示制御エリアに表示制御用データを格納していくための処理が行われる。
【００７５】
先ず、ステップ１１０４では、演奏データ（図３参照）のなかで変数ＡＤ２の値により指定されるデータ（図中、「ＭＥＭ［ＡＤ２］」と表記）が枠コードか否か判定する。そのデータが枠コードでなかった場合、判定はＮＯとなってステップ１１１２に移行する。そうでない場合には、判定はＹＥＳとなってステップ１１０５に移行する。
【００７６】
ステップ１１０５では、変数ｎ４の値をインクリメントする。続くステップ１１０６では、その枠コードを、枠エリア用の配列変数「枠」の変数ｎ４、及び「０」で指定される要素である枠［ｎ４］［０］に代入する（図５参照）。その後は、ステップ１１０７で枠［ｎ４］［０］をＶＤＰ１０９に転送してＲＡＭ１０９ａに格納させ、更にステップ１１０８で変数ＡＤ２の値をインクリメントした後、ステップ１１０９に移行する。
【００７７】
ステップ１１０９では、変数ＡＤ２の値で指定されるデータが存在しないか否か判定する。演奏データのなかで処理すべきデータが残っているような場合、その値で指定されるデータは存在することから、判定はＮＯとなって上記ステップ１１０４に戻る。それにより、処理すべきデータを全て処理する。一方、そうでない場合には、判定はＹＥＳとなり、ステップ１１１０でアドレスＸｗ、Ｙｗにそれぞれ初期値を代入し、更にステップ１１１１でそれらをＶＤＰ１０９に転送してＲＡＭ１０９ａに格納させた後、一連の処理を終了する。
【００７８】
アドレスＸｗ、ＹｗをＶＤＰ１０９に転送することにより、画像データ（表示画面）を生成するうえで必要な表示制御用データがＲＡＭ１０９ａに格納されることになる。それにより、ＶＤＰ１０９はその生成を開始する。
上記ステップ１１０４の判定がＮＯとなって移行するステップ１１１２では、変数ＡＤ２の値で指定されるデータが矢印コードか否か判定する。そのデータが矢印コードであった場合、判定はＹＥＳとなり、ステップ１１１３で変数ｎ５の値をインクリメントし、更にステップ１１１４でその矢印コードを、矢印エリア用の配列変数「矢印」の変数ｎ５、及び「０」で指定される要素である矢印［ｎ５］［０］に代入した後、ステップ１１０７に移行して矢印［ｎ５］［０］をＶＤＰ１０９に転送する。そうでない場合には、判定はＮＯとなって図１２のステップ１１１５に移行する。
【００７９】
そのステップ１１１５では、変数ＡＤ２の値で指定されるデータが音高データか否か判定する。そのデータが音高データでなかった場合、判定はＮＯとなって図１３のステップ１１２９に移行する。そうでない場合には、判定はＹＥＳとなってステップ１１１６に移行する。
【００８０】
ステップ１１１６では、変数ｎ１の値をインクリメントする。続くステップ１１１７では、変数ｎ２の値をインクリメントする。その次に移行するステップ１１１８では、音符エリア用の配列変数「音符」の変数ｎ１、及び「０」で指定される要素である音符［ｎ１］［０］に音符コードを代入する。その代入を行うと、ステップ１１１９に移行して、音高データが示す音高に対応する音名を示すコードを音階コードとして生成する。その後はステップ１１２０に移行する。
【００８１】
ステップ１１２０では、生成した音階コードを、音階エリア用の配列変数「音階」の変数ｎ２、及び「０」で指定される要素である音階［ｎ２］［０］に代入する。次のステップ１１２１では、音高データが示す音高に対応するＸ座標値を算出し、その次のステップ１１２２では、そのＸ座標値を、配列変数「音符」の変数ｎ１、及び「１」で指定される要素である音符［ｎ１］［１］に代入する。その代入後に移行するステップ１１２３では、配列変数「音階」の変数ｎ２、及び「１」で指定される要素である音階［ｎ２］［１］に、音階オブジェクト２０８のＸ軸上の表示位置として予め固定的に定められたＸ座標値（以降、固定Ｘ座標値と呼ぶ）を代入する。ステップ１１２４には、その後に移行する。
【００８２】
ステップ１１２４では、変数Ｍの値を用いてＹ座標値を算出する。そのＹ座標値は、音符オブジェクト２０２、音階オブジェクト２０８のＹ軸上の表示位置として、音符［ｎ１］［２］、音階［ｎ２］［２］にそれぞれ代入する（ステップ１１２５、１１２６）。その代入を行うと、音符［ｎ１］［０〜２］、音階［ｎ２］［０〜２］をそれぞれＶＤＰ１０９に転送した（ステップ１１２７、１１２８）後、図１１のステップ１１０８に移行する。
【００８３】
このようにして、変数ＡＤ２の値で指定されるデータが音高データであれば、音符オブジェクト２０２、音階オブジェクト２０８のＹ軸上の位置を一致させつつ、それらの表示制御用データを共に生成し、表示制御エリアに格納するようになっている。
【００８４】
上記ステップ１１１５の判定がＮＯとなって移行する図１３のステップ１１２９では、変数ＡＤ２の値で指定されるデータが音符長データか否か判定する。そのデータが音符長データでなかった場合、判定はＮＯとなってステップ１１３１に移行する。そうでない場合には、判定はＹＥＳとなり、ステップ１１３０で変数Ｍの値をインクリメントした後、図１１のステップ１１０７に移行する。
【００８５】
ステップ１１３１では、変数ＡＤ２の値で指定されるデータが指番号コードか否か判定する。そのデータが指番号コードでなかった場合、判定はＮＯとなってステップ１１３８に移行する。そうでない場合には、判定はＹＥＳとなってステップ１１３２に移行する。
【００８６】
ステップ１１３２では、変数ｎ３の値をインクリメントする。次に、ステップ１１３３に移行して、上記指番号コードを、指番号エリア用の配列変数「指番号」の変数ｎ３、及び「０」で指定される要素である指番号［ｎ３］［０］に代入する。その次に移行するステップ１１３４では、その指番号コードを持つ音符データ中の音高データが示す音高に対応するＸ座標値を用いてＸ座標値を算出し、その次のステップ１１３５では、そのＸ座標値を指番号［ｎ３］［１］に代入する。その代入を行うと、ステップ１１３６に移行して、指番号［ｎ３］［２］に、その音符データ中の音高データにより生成した音符オブジェクト２０２、或いは音階オブジェクト２０８の表示制御用データを構成するＹ座標値（変数Ｍの値をデクリメントした値を用いて算出される）を代入する。その後は、ステップ１１３７で指番号［ｎ３］［０〜２］をＶＤＰ１０９に転送した後、図１１のステップ１１０７に移行する。音符データ中の音高データが示す音高に対応するＸ座標値を用いてＸ座標値を算出するのは、指番号オブジェクト２０８を音符オブジェクト２０２の近傍に表示させるためである（図２参照）。
【００８７】
一方、ステップ１１３８では、変数ＡＤ２の値で指定されるデータがＸ座標データ（値）か否か判定する。そのデータがＸ座標データでなかった場合、判定はＮＯとなってステップ１１４５に移行する。そうでない場合には、判定はＹＥＳとなってステップ１１３９に移行する。
【００８８】
図３に示すように、Ｘ座標データは、枠コード、矢印コード、或いは指変更コードの後に配置される。ステップ１１３９〜１１４４では、その配置に応じてＸ座標データをオブジェクトの表示制御用データとして設定するための処理が行われる。
【００８９】
上記のコードのうち、指変更コードを有する指位置データは、上述したように、指オブジェクト２０３とそれが示す指で押鍵すべき鍵との対応関係を指定するためのものである。その対応関係は演奏の進行に応じて変化することから、言い換えれば、指オブジェクト２０３のＸ軸上の表示位置は随時、変更させなければならないことから、ここではその表示制御用データは設定の対象としていない。このため、指変更コードの直後に位置するＸ座標データは無視している。
【００９０】
先ず、ステップ１１３９では、Ｘ座標データの直前に指変更コードが配置されていないか否か判定する。その指変更コードが直前に配置されている場合、判定はＮＯとなって図１１のステップ１１０７に移行し、そのＸ座標データを無視する。一方、そうでない場合には、判定はＹＥＳとなってステップ１１４０に移行する。
【００９１】
直前に指変更コードが配置されていないＸ座標データの前には、枠コードが必ず配置されている。このことから、ステップ１１４０では、そのＸ座標データを枠［ｎ４］［１］に代入し、それに続くステップ１１４１では、枠［ｎ４］［１］をＶＤＰ１０９に転送する。その後はステップ１１４２に移行する。
【００９２】
ステップ１１４２では、Ｘ座標データの直前に矢印コードが配置されているか否か判定する。その矢印コードが直前に配置されている場合、判定はＹＥＳとなり、ステップ１１４３でＸ座標データを矢印［ｎ５］［１］に代入し、更にステップ１１４４で矢印［ｎ５］［１］をＶＤＰ１０９に転送した後、図１１のステップ１１０７に移行する。そうでない場合には、判定はＮＯとなり、他のステップの処理を実行することなく、そのステップ１１０７に移行する。
【００９３】
上記ステップ１１３８の判定がＮＯとなって移行するステップ１１４５では、変数ＡＤ２の値で指定されるデータがＹ座標データ（値）か否か判定する。そのデータがＹ座標データでなかった場合、判定はＮＯとなって図１１のステップ１１０７に移行する。そうでない場合には、判定はＹＥＳとなってステップ１１４６に移行する。
【００９４】
図３に示すように、Ｙ座標データは、Ｘ座標データの直後に配置され、直後にＹ座標データが配置されたＸ座標データの直前には、枠コード、或いは矢印コードが配置される。ステップ１１４５〜１１５１では、Ｘ座標データの直前に配置されたコードに応じてＹ座標データをオブジェクトの表示制御用データとして設定するための処理が行われる。
【００９５】
先ず、ステップ１１４６では、Ｙ座標データを枠［ｎ４］［２］に代入する。続くステップ１１４７では、枠［ｎ４］［２］をＶＤＰ１０９に転送する。その後はステップ１１４８に移行する。
ステップ１１４８では、Ｘ座標データの直前に矢印コードが配置されているか否か判定する。その矢印コードが直前に配置されている場合、判定はＹＥＳとなり、ステップ１１４９でＹ座標データを矢印［ｎ５］［２］に代入し、更にステップ１１５０で矢印［ｎ５］［２］をＶＤＰ１０９に転送した後、図１１のステップ１１０７に移行する。そうでない場合には、判定はＮＯとなり、他のステップの処理を実行することなく、そのステップ１１０７に移行する。
【００９６】
このようにして、表示制御エリアに確保された音符、音階、指番号、枠、及び矢印の各エリアには、それぞれ、音符オブジェクト２０２、音階オブジェクト２０８、指番号オブジェクト２０７、枠オブジェクト２０４、及び矢印オブジェクト２０５、或いは２０６の表示制御用データが格納され、それら各エリアに格納された表示制御用データはＶＤＰ１０９に転送され、ＲＡＭ１０９ａに格納される。それにより、それらのオブジェクト２０２、２０４〜２０８のスクロール表示は、ＶＤＰ１０９に転送するアドレスＹｗによって管理できる状態に設定される。
【００９７】
次に、上記ステップ１１０１として実行されるＢＧ画面表示処理について、図１４に示すそのフローチャートを参照して詳細に説明する。その表示処理は、図６に示す各種オブジェクトの表示制御用データを設定するための処理である。
先ず、ステップ１４０１では、指オブジェクト２０３の表示制御用データ保存用の配列変数「指」の要素である指［１］［０］に、指番号コードとして、親指を示すコード（図中、「親指コード」と表記）を代入する。続くステップ１４０２では、指［１］［１］に、親指を表す指オブジェクト２０３のＸ軸上の表示位置として予め定められたＸ座標値を代入する。それ以降は同様に、指番号コードとして、人差し指を示す人指指コード、中指を示す中指コード、薬指を示す薬指コード、小指を示す小指コードを指［２〜５］［０］に、それに対応する予め定められたＸ座標値を指［２〜５］［１］に、それぞれ代入する（ステップ１４０３〜１４１０）。
【００９８】
ステップ１４１０に続くステップ１４１１では、変数ｎに１を代入する。その次に移行するステップ１４１２では、指［ｎ］［２］に予め固定的に定めたＹ座標値を代入する。その代入を行うと、ステップ１４１３で変数ｎの値をインクリメントした後、ステップ１４１４に移行する。
【００９９】
ステップ１４１４では、変数ｎの値が５より大きいか否か判定する。その値が５より大きい場合、判定はＹＥＳとなり、ステップ１４１５で指［１〜５］［０〜２］をＶＤＰ１０９に転送し、更にステップ１４１６でＹ軸方向上、固定的に表示させる他のオブジェクト（音階画像２０１やＹ軸に沿って延びる線、など）の表示制御用データをＶＤＰ１０９に転送した後、一連の処理を終了する。一方、そうでない場合には、判定はＮＯとなって上記ステップ１４１２に戻る。それにより、ステップ１４１４の判定がＹＥＳとなるまで、ステップ１４１２〜１４１４で形成される処理ループを繰り返し実行し、指［１〜５］［２］にＹ座標値を代入する。
【０１００】
上述のように各指オブジェクト２０３を始めとするＢＧ画面表示用のオブジェクトの表示制御用データが設定される。図６に示すＢＧ画面は、そのように設定される表示制御用データによって表示される状態を表している。
図１５、及び図１６は、図８に示すガイド表示処理内でステップ８０２として実行されるタイマー処理のフローチャートである。次に、図１５、及び図１６を参照して、タイマー処理について詳細に説明する。そのタイマー処理は、時間の経過（演奏の進行）に合わせてテレビに表示させる内容を更新していくための処理である。
【０１０１】
先ず、ステップ１５０１では、変数ＳＴＦの値が１か否か判定する。演奏ガイドを行うべき状況であった場合、変数ＳＴＦには１が代入されていることから、判定はＹＥＳとなってステップ１５０２に移行する。そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【０１０２】
ステップ１５０２では、演奏データ中の音符長データが表せる最小の時間である最小単位時間が経過したか否か判定する。時間の計時を開始してから、或いは前回、経過したと判定してからその最小単位時間が経過した場合、判定はＹＥＳとなり、ステップ１５０３に移行して、音符長データを代入した変数ｔの値をデクリメントした後、ステップ１５０４に移行する。そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【０１０３】
ステップ１５０４では、変数ｔの値が０か否か判定する。その値が０の場合、即ち、変数ｔに音符長データを代入した音符データを表す音符オブジェクト２０２を消去すべきタイミングとなった場合、判定はＹＥＳとなり、次にステップ１５０５で変数ＡＤ１の値をインクリメントした後、ステップ１５０６に移行する。そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【０１０４】
ステップ１５０６では、変数ＡＤ１の値で指定されるデータが存在するか否か判定する。演奏データのなかで処理すべきデータが残っていた場合、判定はＹＥＳとなってステップ１５１０に移行する。そうでない場合には、判定はＮＯとなり、ステップ１５０７で変数ＳＴＦに０を代入し、次にステップ１５０８で発音中の全楽音の消音を指示するコマンドを音源ＬＳＩ１０４に送出し、更にステップ１５０９でテレビに表示させた画面を消去させた後、一連の処理を終了する。なお、その画面の消去は、例えばＢＧ画面表示用の各種オブジェクトの表示制御用データ中のＸ、Ｙ座標値の何れか、及びアドレスＸｗ、Ｙｗの何れかを少なくともオブジェクトが表示されない値に設定し、その設定した値をＶＤＰ１０９に転送することで行われる。
【０１０５】
ステップ１５１０以降では、変数ｔに音符長データを代入した音符データを表す音符オブジェクト２０２を消去すべきタイミングとなったことにより、テレビに表示させる表示画面を更新するための処理が行われる。
先ず、ステップ１５１０では、変数ＡＤ１の値で指定されるデータが音符長データか否か判定する。そのデータが音符長データでなかった場合、判定はＮＯとなって図１６のステップ１５１４に移行する。そうでない場合には、判定はＹＥＳとなり、ステップ１５１１でその音符長データを変数ｔに代入し、次にステップ１５１２でアドレスＹｗを、それまでの値に所定アドレス値を加算した値に更新し、更にステップ１５１３でアドレスＹｗをＶＤＰ１０９に転送した後、一連の処理を終了する。なお、アドレスＹｗのそれまでの値に加算する所定アドレス値とは、例えば連続する２つの音符オブジェクト２０２のＹ軸上の表示間隔に対応する値である。
【０１０６】
図１６のステップ１５１４では、変数ＡＤ１の値で指定されるデータが指変更コードか否か判定する。そのデータが指変更コードでなかった場合、判定はＮＯとなってステップ１５２５に移行する。そうでない場合には、判定はＹＥＳとなってステップ１５１５に移行する。
【０１０７】
ステップ１５１５では、指変更コードが示す指が親指か否か判定する。それが示す指が親指であった場合、判定はＹＥＳとなってステップ１５１６に移行し、変数ｓに１を代入した後、図１５のステップ１５０５に戻る。そうでない場合には、判定はＮＯとなってステップ１５１７に移行する。
【０１０８】
ステップ１５１７〜１５２４では、指変更コードが示す指が人指指、中指、薬指、及び小指のうちの何れであるか判定し、判定した指の種類に応じて変数ｓに値を代入するための処理が行われる。それにより、その指が人指指であれば２、中指であれば３、薬指であれば４、小指であれば５が変数ｓに代入される。ステップ１５２３の判定がＮＯになるか、或いはステップ１５１８、１５２０、１５２２、及び１５２４のうちの何れかを実行すると、図１５のステップ１５０５に戻る。
【０１０９】
上記ステップ１５１４の判定がＮＯとなって移行するステップ１５２５では、変数ＡＤ１の値で指定されるデータがＸ座標データか否か判定する。そのデータがＸ座標データでなかった場合、判定はＮＯとなって図１５のステップ１５０５に戻る。それにより、時間の経過（演奏の進行）に応じて表示制御用データを更新していくうえで考慮する必要のないデータは無視する。反対に、そうでない場合には、判定はＹＥＳとなってステップ１５２６に移行する。
【０１１０】
ステップ１５２６では、直前のデータが指変更コードか否か判定する。変数ＡＤ１の値をデクリメントした値で指定されるデータが指変更コードであった場合、判定はＹＥＳとなり、ステップ１５２７で指［ｓ］［１］にそのＸ座標データを代入し、次にステップ１５２８でその指［ｓ］［１］をＶＤＰ１０９に転送して、変数ｓの値に対応する指オブジェクト２０３のＸ軸上の表示位置の変更を指示した後、図１５のステップ１５０５に戻る。そうでない場合には、判定はＮＯとなってステップ１５２９に移行する。
【０１１１】
直前のデータが指変更コードでないということは、そのデータは枠コードか矢印コードということになる。つまり、Ｘ座標データは処理すべきタイミングとなった手位置データを構成するデータということになる。そのことは、各指オブジェクト２０３のＸ軸上の表示位置を変更すべきタイミングとなったことを意味する。このことから、ステップ１５２９〜１５３９では、各指オブジェクト２０３のＸ軸上の表示位置を変更するための処理が行われる。
【０１１２】
先ず、ステップ１５２９では、Ｘ座標データを親指の指オブジェクト２０３のＸ座標値に変換する。続くステップ１５３０では、その変換により得たＸ座標値を指［１］［１］に代入する。ステップ１５３１にはその後に移行する。なお、その変換は、例えばＸ座標データに親指の指オブジェクト２０３用に設定された値を加算することで行う。
【０１１３】
ステップ１５３１〜１５３８では、対象とする指オブジェクト２０３の種類を切り換えつつ、Ｘ座標値を求めてそれを配列変数「指」の要素に代入する処理が同様に行われる。その処理を終了、即ちステップ１５３８を実行した後に移行するステップ１５３９では、指［１〜５］［１］をＶＤＰ１０９に転送する。それにより、各指オブジェクト２０３のＸ軸上の表示位置の変更を指示した後、図１５のステップ１５０５に戻る。
【０１１４】
タイマー処理では、上述したような処理が実行される。それにより、演奏の進行に応じて、音符オブジェクト２０２や枠オブジェクト２０４などのスクロール表示や指オブジェクト２０３の表示位置の変更が実現される。
図１７は、ＶＤＰ１０９が実行する処理の流れを示すフローチャートである。次に図１７を参照して、ＶＤＰ１０９が実行する処理について詳細に説明する。そのフローチャートに示す流れに沿った処理は、特には図示しない内蔵のＲＯＭに格納されたプログラムを実行することで実現される。
【０１１５】
先ず、ステップ１７０１では、ＣＰＵ１０１からデータを受信したか否か判定する。そのデータを受信した場合、判定はＹＥＳとなり、ステップ１７０２でそのデータをＲＡＭ１０９ａのその種類に対応するエリアにストアした後、ステップ１７０３に移行する。そうでない場合には、判定はＮＯとなり、他のステップの処理を実行することなくそのステップ１７０３に移行する。
【０１１６】
ステップ１７０３では、表示画面の画像データを生成すべきタイミング（図中、「走査開始タイミング」と表記）となったか否か判定する。例えば、そのタイミングとなったと判定してから予め定めた時間が経過したような場合、判定はＹＥＳとなってステップ１７０４に移行する。そうでない場合には、判定はＮＯとなって上記ステップ１７０１に戻る。
【０１１７】
ステップ１７０４では、変数ｘ、ｙにそれぞれ０を代入する。続くステップ１７０５では、ＲＡＭ１０９ａにストアされている表示制御用データ中から、アドレスＸｗの値に変数ｘの値を加算した値をＸ座標値、アドレスＹｗの値に変数ｙの値を加算した値をＹ座標値とする表示位置をオブジェクトの表示範囲内とさせる表示制御用データを検索する。その次に移行するステップ１７０６では、検索の結果、該当する表示制御用データを抽出できたか否か判定する。該当する表示制御用データを抽出できた場合、判定はＹＥＳとなり、ステップ１７０７でその表示制御用データに従い、それが表示位置を示すオブジェクトの画像データをＤＰ−ＲＡＭ１０８から読み出してワーク用のメモリ（以降、ワークメモリと記す）上に配置した後、ステップ１７０８に移行する。そうでない場合には、判定はＮＯとなってそのステップ１７０８に移行する。
【０１１８】
ステップ１７０８では、変数ｘの値をインクリメントする。次のステップ１７０９では、アドレスＸｗの値に変数ｘの値を加算した値が表示端、即ちＸ軸上の最大値以上か否か判定する。その加算値がその最大値以上の場合、判定はＹＥＳとなってステップ１７１０に移行する。そうでない場合には、判定はＮＯとなってステップ１７０５に戻る。
【０１１９】
ステップ１７１０では、変数ｘに０を代入する。続くステップ１７１１では、変数ｙの値をインクリメントする。その後に移行するステップ１７１２では、アドレスＹｗの値に変数ｙの値を加算した値が表示端、即ちＹ軸上の最大値以上か否か判定する。その加算値がその最大値以上の場合、判定はＹＥＳとなり、表示画面の画像データの生成が終了したとして、その生成した画像データをコンバータ１１０に出力した後、上記ステップ１７０１に戻る。そうでない場合には、判定はＮＯとなってステップ１７０５に戻る。
【０１２０】
上記ステップ１７０５〜１７１２で形成される処理ループによる表示画面の画像データの生成は、特には図示していないが、ＢＧ画面用のオブジェクトのみを対象に行った後、抽出画面用のオブジェクトのみを対象に行うようになっている。ＢＧ画面用のオブジェクトのみを対象にしている場合、ステップ１７０５では、アドレスＸｗ、Ｙｗの各値は考慮せず、変数ｘ、ｙの値で指定される表示位置をオブジェクトの表示範囲内とさせる表示制御用データを検索する。ワークメモリ上へのオブジェクトの画像データの配置は、それを上書きする形で行っている。言い換えれば、ＢＧ画面上に抽出画面を上書きする形で行っている。それにより、音階画像２０１や各指オブジェクト２０３などは表示画面上におけるＹ軸上の位置が変化しないようにさせつつ、音符オブジェクト２０２や枠オブジェクト２０４、音階オブジェクト２０８などの各種オブジェクトのスクロール表示を実現させている（図２参照）。
【０１２１】
ＢＧ画面用のオブジェクトは、そのＸ座標値、及びＹ座標値の少なくとも一方を表示端以上の位置の値とすることで表示されなくなる。抽出画面用のオブジェクトでは、アドレスＸｗを表示端以上の位置とするか、或いはアドレスＹｗを表示範囲とするオブジェクトが存在しない位置の値とすることで表示されなくなる。このことから、ＢＧ画面用のオブジェクトでは、そのＸ座標値、及びＹ座標値の少なくとも一方を表示端以上の位置の値とし、抽出画面用のオブジェクトでは、アドレスＸｗを表示端以上の位置とするか、或いはアドレスＹｗを表示範囲とするオブジェクトが存在しない位置の値とすることで表示画面の消去は行っている。
＜第２の実施の形態＞
上記第１の実施の形態では、図２に示すように、手自体を動かさずに押鍵できる期間の長さに応じて複数の枠オブジェクト２０４のなかから一つを選択し表示している。これに対し、第２の実施の形態は、枠オブジェクト２０４の種類は１種類のみとして、それを無条件で表示するようにしたものである。
【０１２２】
第２の実施の形態による演奏ガイド装置を搭載した電子鍵盤楽器の構成は、第１の実施の形態におけるそれと基本的に同じである。動作も共通している部分が多い。このようなことから、第１の実施の形態と同じ、或いは基本的に同じものについては、第１の実施の形態で付した符号をそのまま用いて、第１の実施の形態から異なる部分のみ説明することとする。
【０１２３】
図１８は、第２の実施の形態による演奏ガイド方法を説明する図である。
第２の実施の形態では、図１８に示すように、枠オブジェクト２０４はＹ軸上の長さを１音符オブジェクト２０２だけを内部に収められる長さとしている。それにより、発音開始タイミングが異なる音符（楽音）単位で枠オブジェクト２０４を表示させている。それ以外のオブジェクトは第１の実施の形態と同様に表示させている。
【０１２４】
表示させる枠オブジェクト２０４を１種類だけに限定しても、図１８に示すように、その表示位置から手を置くべき位置を演奏者は容易に認識することができる。このため、第１の実施の形態と同様の効果を得ることができる。
図１９は、演奏データの構成を説明する図である。
【０１２５】
第２の実施の形態では、枠オブジェクト２０４が１種類のみとなって枠コードを演奏データ中に挿入する必要性がないために、手位置データの構成を第１の実施の形態におけるそれ（図３参照）から異ならせている。図１９に示すように、演奏データの先頭に位置する手位置データでは、枠コードの代わりに手コードを割り当て、それ以外の位置の手位置データからは枠コードを省いている。枠オブジェクト２０４は音符オブジェクト２０２単位で表示させることから、指位置データは省いている。手位置データを構成させるコードを手コードと矢印コードの２種類とすることで、手位置データの種類を判別できるようにしている。オブジェクトを表示するための画像データについては、図２０に示すように、枠オブジェクト２０４表示用の画像データは１つだけとしている。
【０１２６】
次に動作について説明する。
演奏データを構成する手位置データを処理して表示させるオブジェクトは枠オブジェクト２０４と矢印オブジェクト２０５、或いは２０６である。それらの表示制御用データは何れも演奏ガイド開始時に生成する。このため、第２の実施の形態では、図１０に示す初期設定処理内でステップ１００６として実行される初期画面生成処理が第１の実施の形態から異なっている。一方、第２の実施の形態で演奏データから省いた指位置データは、演奏の進行に応じて処理していくべきデータであるが、それを処理の対象とする図１５、及び図１６に示すタイマー処理は、それを省くことに伴い変更しなければならない必然性はない。このようなことから、図２１〜図２３に示すそのフローチャートを参照して、第２の実施の形態における初期画面生成処理についてのみ説明する。
【０１２７】
先ず、ステップ２１０１では、図６に示すようなＢＧ画面を表示させるためのＢＧ画面表示処理を実行する。続くステップ２１０２では、変数ＡＤ２に、演奏データの開始アドレスを示す値を代入する。その次に移行するステップ２１０３では、変数ｎ１〜ｎ５、Ｍにそれぞれ０を代入する。ステップ２１０４にはその後に移行する。
【０１２８】
ステップ２１０４では、演奏データ（図１９参照）のなかで変数ＡＤ２の値により指定されるデータ（図中、「ＭＥＭ［ＡＤ２］」と表記）が手コードか否か判定する。そのデータが手コードでなかった場合、判定はＮＯとなってステップ２１１１に移行する。そうでない場合には、判定はＹＥＳとなってステップ２１０５に移行する。
【０１２９】
ステップ２１０５では、手コードを表示制御エリアに配列変数「手」の要素である手［０］として格納する。次に、ステップ２１０６に移行して、その手コードをＶＤＰ１０９に転送する。それを転送すると、ステップ２１０７で変数ＡＤ２の値をインクリメントした後、ステップ２１０８に移行する。
【０１３０】
ステップ２１０８では、変数ＡＤ２の値で指定されるデータが存在しないか否か判定する。演奏データのなかで処理すべきデータが残っているような場合、その値で指定されるデータは存在することから、判定はＮＯとなって上記ステップ２１０４に戻る。それにより、処理すべきデータを全て処理する。一方、そうでない場合には、判定はＹＥＳとなり、ステップ２１０９でアドレスＸｗ、Ｙｗにそれぞれ初期値を代入し、更にステップ２１１０でそれらをＶＤＰ１０９に転送してＲＡＭ１０９ａに格納させた後、一連の処理を終了する。
【０１３１】
アドレスＸｗ、ＹｗをＶＤＰ１０９に転送することにより、画像データ（表示画面）を生成するうえで必要な表示制御用データがＲＡＭ１０９ａに格納されることになる。それにより、ＶＤＰ１０９はその生成を開始する。
上記ステップ２１０４の判定がＮＯとなって移行するステップ２１１１では、変数ＡＤ２の値で指定されるデータが矢印コードか否か判定する。そのデータが矢印コードであった場合、判定はＹＥＳとなり、ステップ２１１２で変数ｎ５の値をインクリメントし、更にステップ２１１３でその矢印コードを矢印［ｎ５］［０］に代入した後、ステップ２１０６に移行して矢印［ｎ５］［０］をＶＤＰ１０９に転送する。そうでない場合には、判定はＮＯとなって図２２のステップ２１１４に移行する。
【０１３２】
そのステップ２１１４では、変数ＡＤ２の値で指定されるデータが音高データか否か判定する。そのデータが音高データでなかった場合、判定はＮＯとなって図２３のステップ２１３４に移行する。そうでない場合には、判定はＹＥＳとなり、変数ｎ１、ｎ２、及びｎ４の各値をそれぞれインクリメントした（ステップ２１１５〜７）後、ステップ２１１８に移行する。
【０１３３】
ステップ２１１８では、音符［ｎ１］［０］に音符コードを代入する。その代入を行うと、ステップ２１１９に移行して、音高データが示す音高に対応する音名を示すコードを音階コードとして生成する。その後は、ステップ２１２０で音階コードを音階［ｎ２］［０］に代入してからステップ２１２１に移行する。
【０１３４】
ステップ２１２１では、枠コードを枠［ｎ４］［０］に代入する。次のステップ２１２２では、音高データが示す音高に対応するＸ座標値を算出し、その次に実行するステップ２１２３では、そのＸ座標値を音符［ｎ１］［１］に代入する。その代入後に移行するステップ２１２４では、音階［ｎ２］［１］に音階オブジェクト２０８用の固定Ｘ座標値を代入する。ステップ２１２５には、その後に移行する。
【０１３５】
ステップ２１２５では、直近で読み出したＸ座標データを枠［ｎ４］［１］に代入する。それにより、直前に位置する手位置データで指定されるＸ軸上の表示位置を維持させた後はステップ２１２６に移行し、変数Ｍの値を用いてＹ座標値を算出する。その後は、算出したＹ座標値を音符［ｎ１］［２］、及び音階［ｎ２］［２］にそれぞれ代入してから（ステップ２１２７、２１２８）、ステップ２１２９に移行する。
【０１３６】
ステップ２１２９では、変数Ｍの値を用いて枠オブジェクト２０４を表示させるＹ座標値を算出する。次に移行するステップ２１３０では、算出したＹ座標値を枠［ｎ４］［２］に代入する。その代入を行うと、次に音符［ｎ１］［０〜２］、音階［ｎ２］［０〜２］、及び枠［ｎ４］［０〜２］をそれぞれＶＤＰ１０９に転送し（ステップ２１３１〜３）、その転送後に図２１のステップ２１０７に移行する。
【０１３７】
このようにして、第２の実施の形態では、音符データを構成する音高データを演奏データ中から読み出すと、音符オブジェクト２０２と音階オブジェクト２０８に加えて、枠オブジェクト２０４の表示制御用データを生成し、表示制御エリアに格納するようになっている。
【０１３８】
上記ステップ２１１４の判定がＮＯとなって移行する図２３のステップ２１３４では、変数ＡＤ２の値で指定されるデータが音符長データか否か判定する。そのデータが音符長データでなかった場合、判定はＮＯとなってステップ２１３６に移行する。そうでない場合には、判定はＹＥＳとなり、ステップ２１３５で変数Ｍの値をインクリメントした後、図２１のステップ２１０７に移行する。
【０１３９】
ステップ２１３６では、変数ＡＤ２の値で指定されるデータが指番号コードか否か判定する。そのデータが指番号コードでなかった場合、判定はＮＯとなってステップ２１４３に移行する。そうでない場合には、判定はＹＥＳとなってステップ２１３７に移行する。
【０１４０】
ステップ２１３７〜２１４２では、図１３に示すステップ１１３２〜１１３７と同様の処理が行われることから、その詳細な説明は省略する。ステップ２１４２の実行後は図２１のステップ２１０７に移行する。
図１９に示すように、Ｘ座標データやＹ座標データは、手コード、或いは矢印コードの後に配置される。そのコードが矢印コードであれば、手コードとは異なり、矢印オブジェクト２０５、或いは２０６を表示させなければならない。このことから、ステップ２１４３〜２１４９では、そのことに対応するための処理が行われる。
【０１４１】
先ず、ステップ２１４３では、変数ＡＤ２の値で指定されるデータがＸ座標データ（値）か否か判定する。そのデータがＸ座標データでなかった場合、判定はＮＯとなってステップ２１４７に移行する。そうでない場合には、判定はＹＥＳとなってステップ２１４４に移行する。
【０１４２】
ステップ２１４４では、Ｘ座標データの直前に矢印コードが配置されているか否か判定する。その矢印コードが直前に配置されている場合、判定はＹＥＳとなり、そのＸ座標データを矢印［ｎ５］［１］に代入し（ステップ２１４５）、次にその矢印［ｎ５］［１］をＶＤＰ１０９に転送した（ステップ２１４６）後、図２１のステップ２１０７に移行する。そうでない場合には、判定はＮＯとなり、次にそのステップ２１０７に移行する。
【０１４３】
上記ステップ２１４３の判定がＮＯとなって移行するステップ２１４７では、変数ＡＤ２の値で指定されるデータがＹ座標データ（値）か否か判定する。そのデータがＹ座標データでなかった場合、判定はＮＯとなって図２１のステップ２１０７に移行する。そうでない場合には、判定はＹＥＳとなってステップ２１４８に移行する。
【０１４４】
ステップ２１４８では、Ｘ座標データの直前、即ちＹ座標データの２つ前に矢印コードが配置されているか否か判定する。その矢印コードが２つ前に配置されている場合、判定はＹＥＳとなり、ステップ２１４９でＹ座標データを矢印［ｎ５］［２］に代入した後、上記ステップ２１４６に移行してその矢印［ｎ５］［２］をＶＤＰ１０９に転送する。その後は図２１のステップ２１０７に移行する。そうでない場合には、判定はＮＯとなり、他のステップの処理を実行することなく、そのステップ２１０７に移行する。
【０１４５】
上述したようにして、音符、音階、指番号、枠、及び矢印の各オブジェクト２０２、２０４〜２０８の表示制御用データが表示制御エリアに格納される。それにより、それらのオブジェクト２０２、２０４〜２０８は図１８に示すように表示され、ＶＤＰ１０９に転送するアドレスＹｗの値の更新によりスクロールされる。
＜第３の実施の形態＞
上記第１、及び第２の実施の形態では、演奏データの内容に従ってのみスクロールを行っている。これに対し、第３の実施の形態は、ユーザが実際に押鍵した鍵を状況に応じて確認し、その確認結果を反映させる形でスクロールの進行を管理するようにしたものである。
【０１４６】
実際に押鍵した鍵を確認することで、その時点でユーザが押鍵すべき鍵を押鍵しているか否か確認することができる。このため、その確認結果をスクロール（演奏ガイド）の進行の管理に用いた場合、ユーザが行っている演奏に合わせた形でスクロールを行うことができる。押鍵すべき鍵を押鍵すべきタイミングで押鍵するのが困難なユーザに対しては、そのユーザにとって適度な演奏速度でスクロールを行っていくことができるようになる。実際に押鍵した鍵の確認結果をスクロールの進行の管理に用いるのはそのためである。
【０１４７】
手の位置を移動させて押鍵すべき鍵は、その位置を移動させることなく押鍵すべき鍵を押鍵する場合と比較すると、複雑な動きが要求されるために、その押鍵はより困難となる。これは、手の位置を移動させて押鍵すべき鍵はその押鍵に戸惑いやすいということを意味する。このことから、第３の実施の形態では、そのことに着目し、手の位置を移動させて次の鍵を押鍵すべきタイミングで実際に押鍵される鍵の確認を開始し、押鍵すべき鍵を押鍵したことを確認するまで、スクロールの進行を停止させるようにしている。
【０１４８】
そのようにスクロールの進行を停止させると、演奏が遅れやすいと考えられる状況のときにはユーザの演奏（押鍵すべき鍵の押鍵）を待つが、比較的に演奏が容易と考えられる状況下ではスクロールの進行を遅らせることは回避する形となる。その結果、より快適と感じられるようにしつつ、ユーザにとって適度な速度でスクロールを行えることになる。
【０１４９】
第３の実施の形態による演奏ガイド装置を搭載した電子鍵盤楽器の構成は、第１の実施の形態におけるそれと基本的に同じである。動作も共通している部分が多い。このようなことから、第２の実施の形態と同様に、第１の実施の形態と同じ、或いは基本的に同じものについては、第１の実施の形態で付した符号をそのまま用いて、第１の実施の形態から異なる部分のみ説明することとする。
【０１５０】
図２４は、第３の実施の形態による演奏ガイド方法を説明する図である。
第３の実施の形態では、図２４に示すように、枠内にＸ軸方向に５つの黒丸が並べて配置されたオブジェクト２４０１を、手を移動させるべきタイミングを表す位置に配置して、スクロールを行うようにしている。その内部の５つの黒丸は、全て、そのＸ軸上の表示位置に対応する鍵の押鍵を要求するために配置している。つまり、そのオブジェクト２４０１は、手の位置を移動させる度に、５本の指で５つの鍵を押鍵する操作を要求するために配置している。このことから、そのオブジェクト２４０１については、以降、操作オブジェクト２４０１と呼ぶことにする。
【０１５１】
このように、第３の実施の形態では、５つの鍵の押鍵をユーザに要求しているが、これは、５つの鍵を押鍵するには移動させるべき位置に手を移動させなければならないためである。つまり、押鍵された鍵の確認を通して、移動させるべき位置に手を移動させたことを確認できるためである。なお、当然のことながら、ユーザに要求する操作は５つの鍵の押鍵といった演奏と無関係な操作に限定されるわけではない。次に押鍵すべき鍵の押鍵であっても良い。その操作の要求は、そのためのオブジェクトをスクロール表示させて行うのではなく、操作の内容を示す情報を随時、表示させることで行うようにしても良い。
【０１５２】
図２４に示す操作オブジェクト２４０１をスクロール表示するために、第３の実施の形態では、図２５に示すような演奏データを用意している。手位置データの後に、操作オブジェクト２４０１の表示を指示するシフトコードを配置するところが図３に示す演奏データから異なっている。その操作オブジェクト２４０１の画像データは、図２６に示すように、Ｂ面エリアに用意している。それの表示制御用データは、図２７に示すように、表示制御エリアにその保存用のシフトエリアを確保し、そこに保存している。そのシフトエリアに保存するデータは、他のエリアと同様に、２次元の配列変数で扱っている。その配列変数名については、以降、「シフト」と表記し、その要素は「シフト」に２つの括弧を付して表記する。
【０１５３】
次に動作について説明する。
第３の実施の形態では、図２４に示すように、表示させるオブジェクトとして操作オブジェクト２４０１を追加している。演奏ガイド（スクロール）は、その操作オブジェクト２４０１で示す操作をユーザが行うのを待って進行させるようにしている。これらのことから、図９に示す鍵盤処理、図１１〜図１３に示す初期画面生成処理、図１５、及び図１６に示すタイマー処理が第１の実施の形態から異なっている。このため、それらの処理についてのみ詳細に説明する。
【０１５４】
図２８は、第３の実施の形態における鍵盤処理のフローチャートである。始めに、図２８を参照して、第３の実施の形態における鍵盤処理について詳細に説明する。その鍵盤処理は、図７に示す全体処理内でステップ７０３として実行される。
【０１５５】
先ず、ステップ２８０１では、鍵盤１０７の検出用回路に走査を行うのを指示し、その走査結果を受け取る。続くステップ２８０２では、その走査結果を前回、受け取ったそれと比較することにより、鍵盤１０７のなかで状態が変化した鍵の有無や、その変化の内容を判定する。鍵盤１０７の各鍵の状態に変化がなかった場合、その旨が判定されて、ここで一連の処理が終了する。各鍵のなかで押鍵（オン）による変化があった場合には、その旨が判定されてステップ２８０５に移行する。各鍵のなかで離鍵（オフ）による変化があった場合には、その旨が判定され、その変化を検出した鍵に割り当てた音高の楽音の消音を指示するためのノートオフイベントデータを作成し、その作成したデータを音源ＬＳＩ１０４に送出した（ステップ２８０３、２８０４）後、一連の処理を終了する。
【０１５６】
ステップ２８０５では、変数ＴＡＩＫＩＦの値が１か否か判定する。その変数ＴＡＩＫＩＦは、上記操作オブジェクト２４０１により指示する操作（ここでは５鍵の押鍵）をユーザが行うまで演奏ガイドの進行を停止するために用意した進行管理用変数であり、「１」はその操作をユーザが行うまで進行を停止すべき状況であることを示す値である。このことから、その状況であった場合、判定はＹＥＳとなってステップ２８０７に移行する。そうでない場合には、判定はＮＯとなり、ユーザが押鍵した鍵に割り当てた音高の楽音の発音を指示するためのノートオンイベントデータを作成した（ステップ２８０６）後、ステップ２８０４に移行してそのデータを音源ＬＳＩ１０４に送出する。
【０１５７】
ステップ２８０７では、５鍵が同時に押鍵されているか否か判定する。ステップ２８０２で押鍵による変化を判定した後、離鍵による変化を判定していない鍵が５鍵、存在している場合、判定はＹＥＳとなってステップ２８０８に移行する。そうでない場合には、判定はＮＯとなってステップ２８０６に移行する。
【０１５８】
ステップ２８０８では、押鍵されている５鍵の各音高を示す値の組み合わせが、配列変数ＮＯＴＥの各要素ＮＯＴＥ（０）〜（５）に代入されている値の組み合わせと一致するか否か判定する。配列変数ＮＯＴＥは、操作オブジェクト２４０１で押鍵を要求する鍵の音高を示す値を保持させるために用意した変数である。それらの要素には、変数ＴＡＩＫＩＦに１を代入する際に、操作オブジェクト２４０１で押鍵を要求する鍵の音高を示す値を代入している。このことから、操作オブジェクト２４０１で押鍵を要求した５鍵の押鍵をユーザが行った場合、判定はＹＥＳとなってステップ２８０９に移行する。そうでない場合には、判定はＮＯとなってステップ２８０６に移行する。
【０１５９】
ステップ２８０９では、変数ＴＡＩＫＩＦに０を代入する。続くステップ２８１０では、操作オブジェクト２４０１分のスクロールを行わせるために、アドレスＹｗを算出し、算出したアドレスＹｗをＶＤＰ１０９に転送する。一連の処理がその後に終了する。
【０１６０】
第３の実施の形態では、上述したようにして、操作オブジェクト２４０１により要求する操作をユーザが実際に操作したのを確認してから変数ＴＡＩＫＩＦに０を代入する。それにより、操作オブジェクト２４０１により操作を要求するタイミングとなってから、即ち変数ＴＡＩＫＩＦに１が代入されてから、その操作をユーザが実際に行うまでの間、演奏ガイドの進行を一時的に停止させる。
【０１６１】
次に、上記初期画面生成処理について説明する。
演奏データ中にシフトコードを挿入したことにより、操作オブジェクト２４０１の表示制御用データを生成し、図２７に示すシフトエリアに格納しなければならない。第３の実施の形態では、図１３に示すステップ１１４５の判定がＮＯとなった場合に、図２９に示すステップ２９０１に移行して、それ以降の処理を実行することで対応している。配列変数「シフト」の要素にデータを代入する形でシフトエリアに操作オブジェクト２４０１の表示制御用データを格納するために、変数ｎ６を用意し、その変数ｎ６に図１１のステップ１１０３で０を代入している。
【０１６２】
先ず、ステップ２９０１では、変数ＡＤ２の値で指定されるデータがシフトコードか否か判定する。そのデータシフトコードでなかった場合、判定はＮＯとなって図１１のステップ１１０８に移行する。そうでない場合には、判定はＹＥＳとなってステップ２９０２に移行する。
【０１６３】
ステップ２９０２では、変数ｎ６の値をインクリメントする。続くステップ２９０３では、そのシフトコードをシフト［ｎ６］［０］に代入する。その次に移行するステップ２９０４では、直前に位置する手位置データ中のＸ座標データをシフト［ｎ６］［２］に代入する。それ以降は、その手位置データ中のＹ座標データをシフト［ｎ６］［３］に代入し（ステップ２９０５）、変数Ｍの値をインクリメントし（ステップ２９０６）、更にシフト［ｎ６］［１〜３］の値を表示制御用データとしてＶＤＰ１０９に転送した（ステップ２９０７）後、図１１のステップ１１０８に移行する。
【０１６４】
このようにして、シフトコードで指定される操作オブジェクト２４０１の表示制御用データが生成されて、表示制御エリア（図２７参照）内に確保されたシフトエリア、及びＶＤＰ１０９のＲＡＭ１０９ａに格納される。その生成した表示制御用データにより、操作オブジェクト２４０１は、シフトコードの直前に位置する手位置データにより表示される枠オブジェクト２０４の下端に配置される形で表示されることになる。
【０１６５】
図２８に示す鍵盤処理で参照される配列変数ＮＯＴＥ、及び変数ＴＡＩＫＩＦは、タイマー処理で定義される。次に、第３の実施の形態におけるタイマー処理について、図３０、及び図３１に示すそのフローチャートを参照して詳細に説明する。
【０１６６】
第３の実施の形態におけるタイマー処理の大部分は図１５、及び図１６に示す第１の実施の形態におけるそれと共通である。このことから、図３０、及び図３１には、第１の実施の形態から異なっている部分を抜粋して示してある。第１の実施の形態から変化していないステップの処理には、第１の実施の形態の説明で用いた符号をそのまま付してある。ここでは、第１の実施の形態から異なる部分にのみ着目して説明する。
【０１６７】
変数ＳＴＦに１が代入されていることでステップ１５０１の判定がＹＥＳとなった場合、次にステップ３００１に移行する。そのステップ３００１では、変数ＴＡＩＫＩＦの値が０か否か判定する。操作オブジェクト２４０１が表す演奏操作をユーザに要求する状況でなかった場合、変数ＴＡＩＫＩＦには０が代入されていることから、判定はＹＥＳとなってステップ１５０２に移行する。そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。そのようにして、変数ＴＡＩＫＩＦに１が代入されている間、変数ｔのデクリメント、つまり演奏時間の計時を回避し、操作オブジェクト２４０１で要求する演奏操作は実際の演奏とは別に扱う。
【０１６８】
第１の実施の形態では、図１６に示すステップ１５２５の判定がＮＯとなると、図１５のステップ１５０５に戻る。これに対し、第３の実施の形態では、その判定がＮＯとなると、図３１に示すステップ３００２に移行する。
そのステップ３００２では、変数ＡＤ１の値で指定されるデータがシフトコードか否か判定する。そのデータがシフトデータであった場合、即ちそれによって表示される操作オブジェクト２４０１が表す演奏操作をユーザに要求すべきタイミングとなった場合、判定はＹＥＳとなってステップ３００３に移行する。そうでない場合には、判定はＮＯとなって図３０のステップ１５０５に戻る。
【０１６９】
ステップ３００３では、変数ＴＡＩＫＩＦに１を代入する。続くステップ３００４では、演奏データ（図２５参照）中で直前に位置するＸ座標データ、即ちシフトコードの直前に位置する手位置データ中のＸ座標データから、操作オブジェクト２４０１で押鍵を要求している５鍵の各音高を示す値を求め、それに続くステップ３００５では、求めた値を配列変数ＮＯＴＥの要素ＮＯＴＥ（１）〜（５）にそれぞれ代入する。その後、一連の処理を終了する。
【０１７０】
図２８に示す鍵盤処理を実行することにより、１が代入された変数ＴＡＩＫＩＦには、要素ＮＯＴＥ（１）〜（５）に代入した値の組み合わせが、押鍵されている鍵の音高を示す値の組み合わせと一致すると確認するのを待って０が代入される。それにより、変数ＴＡＩＫＩＦに１が代入されている間、演奏時間の計時を行わない形で演奏ガイドの進行を停止させている。
【０１７１】
なお、第３の実施の形態では、操作オブジェクト２４０１で要求する演奏操作をユーザが行うまで演奏ガイドの進行を停止させているが、その停止は予め定めた時間だけ行うようにしても良い。或いは、演奏時間を計時する速度を遅く（ここでは変数ｔをデクリメントする時間間隔を長く）することで対応しても良い。このように、様々な変形を行うことができる。
【０１７２】
第３の実施の形態による演奏ガイド装置は、電子鍵盤楽器に搭載された演奏ガイド装置に本発明を適用したものであるが、適用できる演奏ガイド装置は電子鍵盤楽器に搭載されたものに限定されるわけではない。多くの鍵盤楽器には、鍵盤に対してユーザが行った演奏操作の内容をＭＩＤＩデータとして出力する機能が搭載されていることから、鍵盤楽器に搭載されていない演奏ガイド装置にも本発明は適用することができる。
【０１７３】
本実施の形態（第１〜第３の実施の形態）では、音階画像２０１には白鍵に対応する音名のみ配置している（図２、図１８、或いは図２４参照）が、黒鍵に対応するシンボルを含めてそれに配置しても良い。白鍵に対応する音名のみを配置したとしても、音符オブジェクト２０２の近傍に「＃」、或いは「♭」などの臨時記号を表すオブジェクトを配置したり、或いは表示色を変更するなどして、黒鍵の押鍵を教示することができる。
【０１７４】
演奏では、手の位置は移動させずに指だけを移動させて鍵を押鍵することも多い。このことから、指を置いておくべき位置を指オブジェクト２０３により教示するだけでなく、その指を移動させるべき方向などを他のオブジェクトの表示などによって併せて教示するようにしても良い。
【０１７５】
上述したような演奏ガイド装置の動作、或いはその変形例の動作を実現させるようなプログラムは、ＣＤ−ＲＯＭ、ＤＶＤ、或いは光磁気ディスク等の記録媒体に記録させて配布しても良い。或いは、公衆網等で用いられる伝送媒体を介して、そのプログラムの一部、若しくは全部を配信するようにしても良い。そのようにした場合には、ユーザーはプログラムを取得してコンピュータなどのデータ処理装置にロードすることにより、そのデータ処理装置を用いて本発明を適用させた演奏ガイド装置を構築することができる。このことから、記録媒体は、プログラムを配信する装置がアクセスできるものであっても良い。
【０１７６】
【発明の効果】
以上説明したように本発明は、押鍵すべき鍵を示す第１のオブジェクトの他に、鍵盤上の鍵の押鍵に用いるべき指を示すための指情報を表示させ、例えば表示させた指情報に向けて第１のオブジェクトをスクロール表示させることにより、押鍵すべき鍵、その鍵の押鍵タイミング、及びその鍵の押鍵に用いるべき指を教示する。このため、ユーザ（演奏者）は、押鍵に用いるべき指を意識しつつ、鍵盤上の鍵を押鍵していくことができる。
【０１７７】
本発明は、押鍵すべき鍵を示すためのオブジェクトをスクロール表示させることにより、押鍵すべき鍵、及びその鍵の押鍵タイミングを少なくとも教示して演奏をガイドし、押鍵すべき鍵の押鍵に手を移動すべきであった場合に、所定の鍵の押鍵をユーザに要求し、要求した所定の鍵をユーザが押鍵したか否か確認して、その確認結果をスクロール表示による演奏のガイドの進行に反映させる。
【０１７８】
要求した所定の鍵をユーザが押鍵したか否か確認した結果をガイドの進行に反映させるようにすると、所定の鍵をユーザが押鍵するまで待ったり、その押鍵までの進行速度を遅らせるようなことが行える。このため、ユーザにとって適度な進行速度（演奏速度）でガイドを行えるようになる。
【図面の簡単な説明】
【図１】第１の実施の形態による演奏ガイド装置を搭載した電子鍵盤楽器の構成図である。
【図２】第１の実施の形態による演奏ガイド方法を説明する図である。
【図３】演奏データの構成を説明する図である。
【図４】ＲＯＭに確保された画像データエリアに格納されている画像データを説明する図である。
【図５】ＲＡＭに確保された表示制御エリアに格納されているデータを説明する図である。
【図６】バックグランド（ＢＧ）画面を示す図である。
【図７】全体処理のフローチャートである。
【図８】ガイド表示処理のフローチャートである。
【図９】鍵盤処理のフローチャートである。
【図１０】初期設定処理のフローチャートである。
【図１１】初期画面生成処理のフローチャートである。
【図１２】初期画面生成処理のフローチャートである（続き１）。
【図１３】初期画面生成処理のフローチャートである（続き２）。
【図１４】バックグランド画面表示処理のフローチャートである。
【図１５】タイマー処理のフローチャートである。
【図１６】タイマー処理のフローチャートである（続き）。
【図１７】ＶＤＰが実行する処理の流れを示すフローチャートである。
【図１８】第２の実施の形態による演奏ガイド方法を説明する図である。
【図１９】演奏データの構成を説明する図である（第２の実施の形態）。
【図２０】ＲＯＭに確保された画像データエリアに格納されている画像データを説明する図である（第２の実施の形態）。
【図２１】初期画面生成処理のフローチャートである（第２の実施の形態）。
【図２２】初期画面生成処理のフローチャートである（第２の実施の形態：続き１）。
【図２３】初期画面生成処理のフローチャートである（第２の実施の形態：続き２）。
【図２４】第３の実施の形態による演奏ガイド方法を説明する図である。
【図２５】演奏データの構成を説明する図である（第３の実施の形態）。
【図２６】ＲＯＭに確保された画像データエリアに格納されている画像データを説明する図である（第３の実施の形態）。
【図２７】ＲＡＭに確保された表示制御エリアに格納されているデータを説明する図である（第３の実施の形態）。
【図２８】鍵盤処理のフローチャートである（第３の実施の形態）。
【図２９】初期画面生成処理のフローチャートである（第３の実施の形態：抜粋）。
【図３０】タイマー処理のフローチャートである（第３の実施の形態：抜粋１）。
【図３１】タイマー処理のフローチャートである（第３の実施の形態：抜粋２）。
【符号の説明】
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０６  スイッチ（ＳＷ）群
１０７  鍵盤
１０８  ＤＰ−ＲＡＭ
１０９  ＶＤＰ
１０９ａ  ＲＡＭ
１１９  コンバータ
２０１  音階画像
２０２  音符オブジェクト
２０３  指オブジェクト
２０４  枠オブジェクト
２０５、２０６  矢印オブジェクト
２０７  番号オブジェクト
２０８  音階オブジェクト
２４０１  操作オブジェクト
【図１】
0003945307.tif 000002
【図２】
0003945307.tif 000003
【図４】
0003945307.tif 000004
【図５】
0003945307.tif 000005
【図６】
0003945307.tif 000006
【図７】
0003945307.tif 000007
【図８】
0003945307.tif 000008
【図９】
0003945307.tif 000009
【図１０】
0003945307.tif 000010
【図１１】
0003945307.tif 000011
【図１２】
0003945307.tif 000012
【図１３】
0003945307.tif 000013
【図１４】
0003945307.tif 000014
【図１５】
0003945307.tif 000015
【図１６】
0003945307.tif 000016
【図１７】
0003945307.tif 000017
【図１８】
0003945307.tif 000018
【図１９】
0003945307.tif 000019
【図２０】
0003945307.tif 000020
【図２１】
0003945307.tif 000021
【図２２】
0003945307.tif 000022
【図２３】
0003945307.tif 000023
【図２４】
0003945307.tif 000024
【図２５】
0003945307.tif 000025
【図２６】
0003945307.tif 000026
【図２７】
0003945307.tif 000027
【図２８】
0003945307.tif 000028
【図２９】
0003945307.tif 000029
【図３０】
0003945307.tif 000030
【図３１】
0003945307.tif 000031
【図３】
0003945307.tif 000032