(57)【特許請求の範囲】
【請求項１】
発音すべきノートとその発音タイミングとを表す曲データを、左手パートおよび右手パート別に記憶する曲データ記憶手段と、
前回右手ノート及び前回左手ノートを記憶する前回ノート記憶手段と、
前記曲データ記憶手段に記憶される左右両手パートの曲データを曲進行に同期して読み出す読出手段と、
この読出手段により読み出された曲データから右手パートの発音すべきノートが検出されたか否か判別する右手ノートオン判別手段と、
前記右手ノートオン判別手段により右手パートの発音すべきノートが判別されない場合に、前記読出手段により読み出された曲データの内から左手パートの発音すべきノートが検出されたか否か判別する左手ノートオン判別手段と、
前記右手ノートオン判別手段により右手パートの発音すべきノートが判別された場合には、当該判別された右手ノートを今回右手ノートとして、今回右手ノートから前記前回ノート記憶手段に記憶されている前回左手ノートを減算してパート間ノート差を算出するとともに、前記左手ノートオン判別手段により左手パートの発音すべきノートオンが判別された場合には、当該判別された左手ノートを今回左手ノートとして、前記前回ノート記憶手段に記憶されている前回右手ノートから今回左手ノートを減算してパート間ノート差を算出するパート間ノート差算出手段と、
このパート間ノート差算出手段により算出されたパート差が０より小さいか否か判別する判別手段と、
この判別手段にて０より小さいと判別された場合に腕交差が生じる旨を案内する案内手段と、
前記判別手段による判別の後に、今回右手ノートを前回右手ノートとして、あるいは今回左手ノートを前回左手ノートとして、前記前回ノート記憶手段の記憶内容を更新する更新手段と、
を具備することを特徴とする演奏案内装置。
【請求項２】
発音すべきノートとその発音タイミングとを表す曲データを、左手パートおよび右手パート別に記憶する曲データ記憶手段と、
前回右手ノート及び前回左手ノートを記憶する前回ノート記憶手段と、
前記曲データ記憶手段に記憶される左右両手パートの曲データを曲進行に同期して読み出す読出手段と、
この読出手段により読み出された曲データから右手パートの発音すべきノートが検出されたか否か判別する右手ノートオン判別手段と、
この右手ノートオン判別手段により右手パートの発音すべきノートが判別された場合に、当該判別されたノートを今回右手ノートとし、前記前回ノート記憶手段に記憶されている前回右手ノートとして記憶されているノートとの差を右手ノート差として算出する右手ノート差算出手段と、
前記右手ノートオン判別手段により右手パートの発音すべきノートが判別されない場合に、前記読出手段により読み出された曲データの内から左手パートの発音すべきノートが検出されたか否か判別する左手ノートオン検出手段と、
この左手ノートオン判別手段により左手パートの発音すべきノートが判別された場合に、当該判別されたノートを今回左手ノートとし、前記前回ノート記憶手段に記憶されている前回左手ノートとして記憶されているノートとの差を左手ノート差として算出する左手ノート差算出手段と、
前記右手ノートオン判別手段により右手パートの発音すべきノートが判別された場合には、今回右手ノートから前記前回左手ノートを減算してパート間ノート差を算出するとともに、前記左手ノートオン判別手段により左手パートの発音すべきノートが判別された場合には、前記前回右手ノートから今回左手ノートを減算してパート間ノート差を算出するパート間ノート差算出手段と、
このパート間ノート差算出手段により算出されたパート差が０より小さいか否か判別する判別手段と、
この判別手段にて０より小さいと判別された場合に、前記左手ノート差算出手段にて算出された左手ノート差と前記右手ノート差算出手段にて算出された右手ノート差との大小を比較する比較手段と、
この比較手段により前記左手ノート差が大きい場合に左手が右手に被さる腕交差である旨を案内する第１の案内手段と、
前記比較手段により前記右手ノート差が大きい場合に右手が左手に被さる腕交差である旨を案内する第２の案内手段と、
前記判別手段による判別の後に、今回右手ノートを前回右手ノートとして、あるいは今回左手ノートを前回左手ノートとして、前記前回ノート記憶手段の記憶内容を更新する更新手段と、
を具備することを特徴とする演奏案内装置。
【請求項３】
発音すべきノートとその発音タイミングとを表す曲データを、左手パートおよび右手パート別に記憶する曲データ記憶手段から左右両手パートの曲データを曲進行に同期して読み出す読出過程と、
この読み出された曲データから右手パートの発音すべきノートが検出されたか否か判別する右手ノートオン判別過程と、
右手パートの発音すべきノートが判別されない場合に、読み出された曲データの内から左手パートの発音すべきノートが検出されたか否か判別する左手ノートオン判別過程と、
右手パートの発音すべきノートが判別された場合には、当該判別された右手ノートを今回右手ノートとして、今回右手ノートから前回ノート記憶手段に記憶されている前回左手ノートを減算してパート間ノート差を算出するとともに、左手パートの発音すべきノートが判別された場合には、当該判別された左手ノートを今回左手ノートとして、前記前回ノート記憶手段に記憶されている前回右手ノートから今回左手ノートを減算してパート間ノート差を算出するパート間ノート差算出過程と、
この算出されたパート差が０より小さいか否か判別する判別過程と、
０より小さいと判別された場合に腕交差が生じる旨を案内する案内過程と、
前記判別の後に、今回右手ノートを前回右手ノートとして、あるいは今回左手ノートを前回左手ノートとして、前記前回ノート記憶手段の記憶内容を更新する更新過程と、
を具備することを特徴とする演奏案内方法。
【請求項４】
発音すべきノートとその発音タイミングとを表す曲データを、左手パートおよび右手パート別に記憶する曲データ記憶手段から左右両手パートの曲データを曲進行に同期して読み出す読出過程と、
この読み出された曲データから右手パートの発音すべきノートが検出されたか否か判別する右手ノートオン判別過程と、
右手パートの発音すべきノートが判別された場合に、当該判別されたノートを今回右手ノートとし、前回ノート記憶手段に記憶されている前回右手ノートとの差を右手ノート差として算出する右手ノート差算出過程と、
右手パートの発音すべきノートが判別されない場合に、前記読み出された曲データの内から左手パートの発音すべきノートが検出されたか否か判別する左手ノートオン検出過程と、
左手パートの発音すべきノートが判別された場合に、当該判別されたノートを今回左手ノートとし、前記前回ノート記憶手段に記憶されている前回左手ノートとの差を左手ノート差として算出する左手ノート差算出過程と、
右手パートの発音すべきノートが判別された場合には、今回右手ノートから前回左手ノートを減算してパート間ノート差を算出するとともに、左手パートの発音すべきノートが判別された場合には、前回右手ノートから今回左手ノートを減算してパート間ノート差を算出するパート間ノート差算出過程と、
算出されたパート差が０より小さいか否か判別する判別過程と、
０より小さいと判別された場合に、算出された左手ノート差と算出された右手ノート差との大小を比較する比較過程と、
前記左手ノート差が大きい場合に左手が右手に被さる腕交差である旨を案内する第１の案内過程と、
前記右手ノート差が大きい場合に右手が左手に被さる腕交差である旨を案内する第２の案内過程と、
前記判別の後に、今回右手ノートを前回右手ノートとして、あるいは今回左手ノートを前回左手ノートとして、前記前回ノート記憶手段の記憶内容を更新する更新過程と、
を具備することを特徴とする演奏案内方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電子楽器に用いて好適な演奏案内装置および演奏案内方法に関する。
【０００２】
【従来の技術】
従来より、鍵盤の各鍵下部に発光手段を対向配置しておき、発音すべき音高とその発音タイミングとを表す曲データの再生に同期して、押鍵すべき鍵に対応して配設される発光手段を点灯させてユーザーに弾くべき鍵を案内する演奏案内装置が知られている。
【０００３】
【発明が解決しようとする課題】
さて、従来の演奏案内装置では、両手を使った鍵操作が不得手な初心者ユーザーにも対応できるよう、曲データを左手パートおよび右手パートとに分けておき、ユーザーが選択するパート側の曲データに従って片手毎の押鍵案内を行うものも知られている。
ところで、このような押鍵案内では、鍵盤上で右手が左手の上に被さったり（例えば図１２（イ）に図示する楽譜中の演奏ポイントＡ）、あるいは左手が右手の上に被さる（例えば図１２（ロ）に図示する楽譜中の演奏ポイントＢ）、いわゆる腕交差が生じるタイミングや腕交差が生じる際の手の使い方を案内することができない、という問題が生じる。
そこで本発明は、このような事情に鑑みてなされたもので、腕交差が生じるタイミングや腕交差が生じる際の手の使い方を案内することができる演奏案内装置および演奏案内方法を提供することを目的としている。
【０００４】
【課題を解決するための手段】
上記目的を達成するため、請求項１記載の発明では、発音すべきノートとその発音タイミングとを表す曲データを、左手パートおよび右手パート別に記憶する曲データ記憶手段と、前回右手ノート及び前回左手ノートを記憶する前回ノート記憶手段と、前記曲データ記憶手段に記憶される左右両手パートの曲データを曲進行に同期して読み出す読出手段と、この読出手段により読み出された曲データから右手パートの発音すべきノートが検出されたか否か判別する右手ノートオン判別手段と、前記右手ノートオン判別手段により右手パートの発音すべきノートが判別されない場合に、前記読出手段により読み出された曲データの内から左手パートの発音すべきノートが検出されたか否か判別する左手ノートオン判別手段と、前記右手ノートオン判別手段により右手パートの発音すべきノートが判別された場合には、当該判別された右手ノートを今回右手ノートとして、今回右手ノートから前記前回ノート記憶手段に記憶されている前回左手ノートを減算してパート間ノート差を算出するとともに、前記左手ノートオン判別手段により左手パートの発音すべきノートオンが判別された場合には、当該判別された左手ノートを今回左手ノートとして、前記前回ノート記憶手段に記憶されている前回右手ノートから今回左手ノートを減算してパート間ノート差を算出するパート間ノート差算出手段と、このパート間ノート差算出手段により算出されたパート差が０より小さいか否か判別する判別手段と、この判別手段にて０より小さいと判別された場合に腕交差が生じる旨を案内する案内手段と、前記判別手段による判別の後に、今回右手ノートを前回右手ノートとして、あるいは今回左手ノートを前回左手ノートとして、前記前回ノート記憶手段の記憶内容を更新する更新手段とを具備することを特徴とする。
【０００５】
請求項２に記載の発明では、発音すべきノートとその発音タイミングとを表す曲データを、左手パートおよび右手パート別に記憶する曲データ記憶手段と、前回右手ノート及び前回左手ノートを記憶する前回ノート記憶手段と、前記曲データ記憶手段に記憶される左右両手パートの曲データを曲進行に同期して読み出す読出手段と、この読出手段により読み出された曲データから右手パートの発音すべきノートが検出されたか否か判別する右手ノートオン判別手段と、この右手ノートオン判別手段により右手パートの発音すべきノートが判別された場合に、当該判別されたノートを今回右手ノートとし、前記前回ノート記憶手段に記憶されている前回右手ノートとして記憶されているノートとの差を右手ノート差として算出する右手ノート差算出手段と、前記右手ノートオン判別手段により右手パートの発音すべきノートが判別されない場合に、前記読出手段により読み出された曲データの内から左手パートの発音すべきノートが検出されたか否か判別する左手ノートオン検出手段と、この左手ノートオン判別手段により左手パートの発音すべきノートが判別された場合に、当該判別されたノートを今回左手ノートとし、前記前回ノート記憶手段に記憶されている前回左手ノートとして記憶されているノートとの差を左手ノート差として算出する左手ノート差算出手段と、前記右手ノートオン判別手段により右手パートの発音すべきノートが判別された場合には、今回右手ノートから前記前回左手ノートを減算してパート間ノート差を算出するとともに、前記左手ノートオン判別手段により左手パートの発音すべきノートが判別された場合には、前記前回右手ノートから今回左手ノートを減算してパート間ノート差を算出するパート間ノート差算出手段と、このパート間ノート差算出手段により算出されたパート差が０より小さいか否か判別する判別手段と、この判別手段にて０より小さいと判別された場合に、前記左手ノート差算出手段にて算出された左手ノート差と前記右手ノート差算出手段にて算出された右手ノート差との大小を比較する比較手段と、この比較手段により前記左手ノート差が大きい場合に左手が右手に被さる腕交差である旨を案内する第１の案内手段と、前記比較手段により前記右手ノート差が大きい場合に右手が左手に被さる腕交差である旨を案内する第２の案内手段と、前記判別手段による判別の後に、今回右手ノートを前回右手ノートとして、あるいは今回左手ノートを前回左手ノートとして、前記前回ノート記憶手段の記憶内容を更新する更新手段とを具備することを特徴とする。
【０００６】
請求項３に記載の発明では、発音すべきノートとその発音タイミングとを表す曲データを、左手パートおよび右手パート別に記憶する曲データ記憶手段から左右両手パートの曲データを曲進行に同期して読み出す読出過程と、この読み出された曲データから右手パートの発音すべきノートが検出されたか否か判別する右手ノートオン判別過程と、右手パートの発音すべきノートが判別されない場合に、読み出された曲データの内から左手パートの発音すべきノートが検出されたか否か判別する左手ノートオン判別過程と、右手パートの発音すべきノートが判別された場合には、当該判別された右手ノートを今回右手ノートとして、今回右手ノートから前回ノート記憶手段に記憶されている前回左手ノートを減算してパート間ノート差を算出するとともに、左手パートの発音すべきノートが判別された場合には、当該判別された左手ノートを今回左手ノートとして、前記前回ノート記憶手段に記憶されている前回右手ノートから今回左手ノートを減算してパート間ノート差を算出するパート間ノート差算出過程と、この算出されたパート差が０より小さいか否か判別する判別過程と、０より小さいと判別された場合に腕交差が生じる旨を案内する案内過程と、前記判別の後に、今回右手ノートを前回右手ノートとして、あるいは今回左手ノートを前回左手ノートとして、前記前回ノート記憶手段の記憶内容を更新する更新過程とを具備することを特徴とする演奏案内方法。
【０００７】
請求項４に記載の発明によれば、発音すべきノートとその発音タイミングとを表す曲データを、左手パートおよび右手パート別に記憶する曲データ記憶手段から左右両手パートの曲データを曲進行に同期して読み出す読出過程と、この読み出された曲データから右手パートの発音すべきノートが検出されたか否か判別する右手ノートオン判別過程と、右手パートの発音すべきノートが判別された場合に、当該判別されたノートを今回右手ノートとし、前回ノート記憶手段に記憶されている前回右手ノートとの差を右手ノート差として算出する右手ノート差算出過程と、右手パートの発音すべきノートが判別されない場合に、前記読み出された曲データの内から左手パートの発音すべきノートが検出されたか否か判別する左手ノートオン検出過程と、左手パートの発音すべきノートが判別された場合に、当該判別されたノートを今回左手ノートとし、前記前回ノート記憶手段に記憶されている前回左手ノートとの差を左手ノート差として算出する左手ノート差算出過程と、右手パートの発音すべきノートが判別された場合には、今回右手ノートから前回左手ノートを減算してパート間ノート差を算出するとともに、左手パートの発音すべきノートが判別された場合には、前回右手ノートから今回左手ノートを減算してパート間ノート差を算出するパート間ノート差算出過程と、算出されたパート差が０より小さいか否か判別する判別過程と、０より小さいと判別された場合に、算出された左手ノート差と算出された右手ノート差との大小を比較する比較過程と、前記左手ノート差が大きい場合に左手が右手に被さる腕交差である旨を案内する第１の案内過程と、前記右手ノート差が大きい場合に右手が左手に被さる腕交差である旨を案内する第２の案内過程と、前記判別の後に、今回右手ノートを前回右手ノートとして、あるいは今回左手ノートを前回左手ノートとして、前記前回ノート記憶手段の記憶内容を更新する更新過程とを具備することを特徴とする。
【０００８】
本発明では、左手パートおよび右手パート別に記憶され、発音すべきノートとその発音タイミングとを表す曲データを曲進行に同期して読み出し、この読み出された曲データから右手パートの発音すべきノートが検出されたか否か判別し、右手パートの発音すべきノートが判別されない場合に、読み出された曲データの内から左手パートの発音すべきノートが検出されたか否か判別する。右手パートの発音すべきノートが判別された場合には、当該判別された右手ノートを今回右手ノートとして、今回右手ノートから前回ノート記憶手段に記憶されている前回左手ノートを減算してパート間ノート差を算出するとともに、左手パートの発音すべきノートが判別された場合には、当該判別された左手ノートを今回左手ノートとして、前記前回ノート記憶手段に記憶されている前回右手ノートから今回左手ノートを減算してパート間ノート差を算出し、この算出されたパート差が０より小さいか否か判別して、０より小さいと判別された場合に腕交差が生じる旨を案内するとともに、前記判別の後に、今回右手ノートを前回右手ノートとして、あるいは今回左手ノートを前回左手ノートとして、前記前回ノート記憶手段の記憶内容を更新するので、腕交差が生じるタイミングを案内することが可能になる。
【０００９】
【発明の実施の形態】
以下、本発明の実施の一形態による演奏案内装置を搭載した電子楽器を実施例に挙げ、これについて図面を参照して説明する。
Ａ．構成
図１は、本発明の一実施例による電子楽器の全体構成を示すブロック図である。この図において、１は押離鍵操作（演奏操作）に応じたキーオン／キーオフイベントやキーコード等の演奏情報を発生する鍵盤である。２はＣＰＵ５の制御の下に、押鍵すべき鍵を案内する押鍵ガイド部である。押鍵ガイド部２は、半透明樹脂材等で形成された各鍵下部に対向配置される発光手段２ａ（図示略）と、これら各鍵毎に配設される発光手段２ａを点灯駆動するドライバ２ｂ（図示略）とから構成され、ＣＰＵ５から供給される点灯制御信号に従って、対応する発光手段２ａについて点灯駆動して押鍵すべき鍵を案内する。
【００１０】
３は各種スイッチを有し、操作されたスイッチに応じたスイッチイベントを発生するパネルスイッチ群である。このパネルスイッチ群３には、図示していないが、電源をオンオフする電源スイッチの他、演奏案内用の曲データを選択する曲選択スイッチ、演奏案内の開始を指示するスタートスイッチ等が設けられている。
４はＬＣＤパネル等から構成される表示部である。表示部４は、後述するＣＰＵ５から供給される表示制御信号に応じて楽器各部の動作モードなどを表示する他、演奏案内する動作モード下では腕交差が生じる際の手の使い方をアイコン表示する。ＣＰＵ５は鍵盤１から供給される演奏情報に応じて、音源８に楽音発生を指示したり、選択された曲データに基づき演奏案内するものであり、本発明の要旨に係わる特徴的な処理動作については追って詳述する。
【００１１】
ＲＯＭ６は、上記ＣＰＵ５にロードされる各種制御プログラムの他、演奏案内用の曲データや腕交差が生じる際の手の使い方を表示するアイコン画像データをを記憶する。ここで、図２（イ）を参照してＲＯＭ６に格納される曲データＫＤの構成について説明する。ＲＯＭ６には、複数の曲データＫＤ（１）〜ＫＤ（ｎ）が格納されており、これら曲データＫＤ（１）〜ＫＤ（ｎ）は曲選択スイッチの操作に応じて選択される。
曲データＫＤは、右手パート開始アドレスＲＰＡ、左手パート開始アドレスＬＰＡ、テンポＴＭＰおよび演奏データＰＤから構成される。演奏データＰＤは、上記右手パート開始アドレスＲＰＡおよび左手パート開始アドレスＬＰＡにより指定されるアドレス領域にそれぞれ格納される右手パートの演奏データＰＤＲおよび左手パートの演奏データＰＤＬからなる。
演奏データＰＤＲ、ＰＤＬは、所謂相対時間形式で形成されており、発音／消音すべき音高を表すイベント（ノートオンイベント・ノートナンバ／ノートオフイベント・ノートナンバ）、その発音タイミングを表す次イベントまでのステップタイムΔｔおよび曲の終わりを表すＥＮＤマークからなる。
【００１２】
ＲＡＭ７は、図２（ロ）に示すように、各種レジスタ・フラグデータを一時記憶するワークエリアＷＥと、演奏データＰＤＲ、ＰＤＬを一時記憶するノートバッファエリアＮＢＥとを備える。なお、このＲＡＭ７が備えるノートバッファエリアＮＢＥが意図する点については追って述べる。
音源８は周知の波形メモリ読み出し方式によって構成され、時分割動作する複数の発音チャンネルを備える。この音源８は、各種音色の波形データを記憶しており、これらの内、ＣＰＵ５が指定する波形データを読み出し、それを演奏情報や曲データに応じて波形修飾してなる楽音波形Ｗを形成する。
９はＤ／Ａ変換回路であり、上記音源８の出力をアナログ波形信号に変換して次段のサウンドシステム１０に供給する。サウンドシステム１０は、例えば、前段から供給されるアナログ波形信号に対して不要ノイズを除去する等のフィルタリングを施した後、これを増幅してスピーカＳＰから発音する。
【００１３】
Ｂ．動作
次に、図３〜図１１を参照して実施例の動作について説明する。
（１）メインルーチンの動作
上記構成による実施例に電源が投入されると、ＣＰＵ５はＲＯＭ６から所定の制御プログラムを読み出して自身にロードした後、図３に示すメインルーチンを実行してステップＳＡ１に処理を進める。ステップＳＡ１では、ＲＡＭ７のワークエリアＷＥに設けられる各種レジスタ・フラグを初期化したり、音源８に初期値を設定する等のイニシャライズ処理を行う。この後、ステップＳＡ２に進み、操作されたスイッチが発生するスイッチイベントに対応したスイッチ処理を実行する。
続いて、ステップＳＡ３では、演奏案内の開始を指示するスタートスイッチがオン操作されていれば、曲選択スイッチ操作に応じて選択された曲番号の曲データを再生しつつ演奏案内する曲データ再生処理を実行する。そして、ステップＳＡ４では、鍵盤１で行われる押離鍵操作に対応して発生する演奏情報に従い、音源８に発音／消音を指示する鍵盤処理を実行する。そしてこの後、ステップＳＡ２に処理を戻し、以後、電源スイッチがオフされる迄、ステップＳＡ２〜ＳＡ４を繰り返し実行する。
【００１４】
（２）タイマ割込み処理ルーチンの動作
次に、図４を参照してタイマ割込み処理ルーチンの動作について説明する。ＣＰＵ５は上述したメインルーチンを実行している過程で、一定周期毎にタイマ割込み処理を実行する。一定周期毎にタイマ割込みがかかると、ＣＰＵ５は図４に示すステップＳＢ１に処理を進め、曲データ再生中であるか否かを判断する。ここで、曲データ再生中でなければ、判断結果は「ＮＯ」となり、何も処理せずに本ルーチンを完了させるが、曲データ再生中であると判断結果が「ＹＥＳ」となり、次のステップＳＢ２に進み、テンポカウンタＴＭＰＣの値をインクリメントして歩進させる。
【００１５】
次いで、ステップＳＢ３では、歩進したテンポカウンタＴＭＰＣの値が再生中にある曲のテンポＴＭＰの値と一致したか否かを判断する。一致していなければ、判断結果は「ＮＯ」となり、本ルーチンを完了させるが、一致すると、判断結果が「ＹＥＳ」となり、ステップＳＢ４に処理を進める。ステップＳＢ４では、テンポカウンタＴＭＰＣをゼロリセットし、続くステップＳＢ５では再生中にある曲データの経過時間をインクリメントして歩進させてから本ルーチンを完了する。
このように、タイマ割込み処理ルーチンでは、曲データ再生中であると、一定周期毎にテンポカウンタＴＭＰＣを歩進させ、歩進させたテンポカウンタＴＭＰＣが曲のテンポＴＭＰに一致すると、テンポカウンタＴＭＰＣをゼロリセットして再生中にある曲データの経過時間をインクリメントして曲再生を進行させるようになっている。
【００１６】
（３）スイッチ処理ルーチンの動作
次に、図５〜図６を参照してスイッチ処理ルーチンの動作について説明する。上述のメインルーチン（図３参照）のステップＳＡ２を介してスイッチ処理ルーチンが実行されると、操作されたスイッチ種類に応じたスイッチ処理を実行する。以下では本発明の要旨に係わる代表的なスイッチ処理として「曲選択スイッチ処理」および「スタートスイッチ処理」の各動作について述べる。
【００１７】
▲１▼曲選択スイッチ処理ルーチンの動作
曲選択スイッチが操作されると、図５に示す曲選択スイッチ処理ルーチンが実行され、ＣＰＵ５はステップＳＣ１に処理を進め、スイッチ操作に応じて選択された曲番号をレジスタｎにストアし、続くステップＳＣ２ではレジスタｎにセットされた曲番号に対応した曲データＫＤ（ｎ）の曲テンポＴＭＰをＲＯＭ６から読み出してＲＡＭ７のワークエリアＷＥにストアする。次いで、ステップＳＣ３では、曲データＫＤ（ｎ）の左手／右手パートの各開始アドレスＲＰＡ，ＬＰＡを読み出し、それらをＲＡＭ７のワークエリアＷＥにセットする。
【００１８】
▲２▼スタートスイッチ処理ルーチンの動作
スタートスイッチがオン操作されると、図６に示すスタートスイッチ処理ルーチンが実行され、ＣＰＵ５はステップＳＤ１に処理を進める。ステップＳＤ１では、テンポカウンタＴＭＰＣをゼロリセットし、続くステップＳＤ２では、各パートの先頭アドレスを、それぞれ対応するパートの現在アドレスとしてセットする。そして、ステップＳＤ３，ＳＤ４では、各パートの次イベントまでの時間および各パートの経過時間をそれぞれゼロリセットする。
【００１９】
（４）曲データ再生処理ルーチンの動作
次に、図７を参照して曲データ再生処理ルーチンの動作について説明する。前述したメインルーチン（図３参照）のステップＳＡ３を介して曲データ再生処理ルーチンが実行されると、ＣＰＵ５はステップＳＥ１に処理を進め、パート番号を初期化し、続くステップＳＥ２では左右パートの演奏データを再生し終えたかどうかを判断する。
再生し終えたならば、判断結果が「ＹＥＳ」となり、本ルーチンを完了させるが、再生終了していなければ判断結果は「ＮＯ」となり、次のステップＳＥ３に進み、現在設定されているパートの演奏データを、現在アドレスに応じて読み出す。
【００２０】
次いで、ステップＳＥ４では、イベントタイミングに達したどうかを判断し、イベントタイミングに達していなければ、判断結果は「ＮＯ」となり、ステップＳＬ９に進み、次パートの演奏データの読み出しを進めるべく、パート番号を更新してステップＳＥ２に処理を戻す。
一方、イベントタイミングに達すると、ステップＳＥ４の判断結果が「ＹＥＳ」となり、ステップＳＥ５に進み、経過時間をゼロリセットする。そして、ステップＳＥ６では、読み出された演奏データのイベント内容に応じて押鍵ガイド部２に点灯／消灯指示を与えて押鍵案内すると共に、腕交差が生じる際の手の使い方を案内するイベント処理を実行する。次に、ステップＳＥ７では、次イベント迄の待ち時間をワークエリアにセットした後、ステップＳＥ８にて読み出しアドレスをインクリメントして歩進させてからステップＳＥ３に処理を戻す。
【００２１】
（５）イベント処理ルーチンの動作
次に、図８〜図９を参照してイベント処理ルーチンの動作について説明する。上述したステップＳＥ６を介してイベント処理が実行されると、ＣＰＵ５は図８に示すステップＳＦ１に進み、処理すべきイベントがノートオンイベントであれば、そのイベントに含まれるノートナンバに対応する鍵の発光手段２ａを点灯するよう押鍵ガイド部２に指示し、一方、処理すべきイベントがノートオフイベントであれば、そのイベントに含まれるノートナンバに対応する鍵の発光手段２ａを消灯するよう押鍵ガイド部２に指示する押鍵案内を実行する。
【００２２】
次いで、ステップＳＦ２では、処理すべきイベントが右手パートのノートオンイベントであるか否かを判断する。右手パートのノートオンイベントであると、判断結果は「ＹＥＳ」となり、ステップＳＦ３に進む。ステップＳＦ３では、後述する右手ノートＢＵＦ  ＯＮ処理ルーチンを実行し、右手パートとして同時発音される複数のノートオンイベントの内から最高音のノートナンバを検索し、それを今回右手ノートに設定する。次いで、ステップＳＦ４では、この今回右手ノートから前回右手ノートを減算して右手ノート差を算出する。
【００２３】
一方、処理すべきイベントが左手パートのノートオンイベントであると、ステップＳＦ５の判断結果が「ＹＥＳ」となり、ステップＳＦ６に進み、左手ノートＢＵＦ  ＯＮ処理ルーチンを実行し、左手パートとして同時発音される複数のノートオンイベントの内から最低音のノートナンバを検索し、それを今回左手ノートに設定する。そしてこの後、ステップＳＦ７に処理を進め、この今回左手ノートから前回左手ノートを減算して左手ノート差を算出する。
なお、左手ノートＢＵＦ  ＯＮ処理ルーチンは、後述する右手ノートＢＵＦ  ＯＮ処理ルーチンと基本的に同様な処理フローにて構成され、ノートナンバを大小比較する判断が逆論理になる点で相違するだけである。したがって、説明の重複を避ける為、その詳細については省略する。
【００２４】
続いて、ステップＳＦ８では、今回右手ノートから前回左手ノートを減算するか、あるいは前回右手ノートから今回左手ノートを減算してパート間ノート差を算出する。次いで、図９に図示するステップＳＦ９に処理を進め、算出したパート間ノート差が「０」より小さいか、つまり、腕交差が生じるかどうかを判断する。
腕交差が生じない場合には、判断結果が「ＮＯ」となり、ステップＳＦ１３に処理を進め、今回右手ノートを前回右手ノートに更新するか、あるいは今回左手ノートを前回左手ノートに更新して本ルーチンを完了させる。
【００２５】
これに対し、右手パートの最大ノートが左手パートの最小ノートより低くなり、腕交差が生じる状況では、上記ステップＳＦ９の判断結果が「ＹＥＳ」となり、ステップＳＦ１０に処理を進める。ステップＳＦ１０では、左手ノート差の絶対値が右手ノート差の絶対値より大きいかどうかを判断する。ここで、左手ノート差の絶対値が右手ノート差の絶対値より大きければ、判断結果は「ＹＥＳ」となり、ステップＳＦ１１に進み、左手が右手の上に被さるように腕交差する状態を表すアイコンを表示部４に画面表示して案内する。一方、右手ノート差の絶対値が左手ノート差の絶対値より大きければ、上記ステップＳＦ１０の判断結果が「ＮＯ」となり、ステップＳＦ１２に処理を進め、右手が左手の上に被さるように腕交差する状態を表すアイコンを表示部４に画面表示して案内する。そして、この後、ステップＳＦ１３を介して本ルーチンを完了させる。
【００２６】
このように、イベント処理ルーチンでは、右手パートのノートオンイベントの内から最大ノートを、左手パートのノートオンイベントの内から最小ノートをそれぞれ検索し、右手パートの最大ノートが左手パートの最小ノートより低く、かつ左手パート側の前回ノートと今回ノートとの差が右手パート側より大きければ左手が右手の上に被さる腕交差をアイコン表示し、一方、右手パート側の前回ノートと今回ノートとの差が左手パート側より大きければ右手が左手の上に被さる腕交差をアイコン表示するので、腕交差が生じるタイミングや腕交差が生じる際の手の使い方を案内し得るようになっている。
【００２７】
（６）右手ノートＢＵＦ  ＯＮ処理ルーチンの動作
次に、図１０を参照して右手ノートＢＵＦ  ＯＮ処理ルーチンの動作について説明する。上述したステップＳＦ３（図８参照）を介して本ルーチンが起動されると、ＣＰＵ５は図１０に示すステップＳＧ１，ＳＧ２にてノートバッファアドレスおよびレジスタｍｉｎＮＯＴＥを初期化する。次いで、ステップＳＧ３に進むと、ＲＡＭ７のノートバッファエリアＮＢＥ（図２参照）のアドレスがＥＮＤ＋１に達したか、つまりノートバッファ終端を超えたかどうかを判断する。
バッファ終端を超えていなければ、判断結果は「ＮＯ」となり、次のステップＳＧ４に進む。ステップＳＧ４では、現アドレスに応じてノートバッファエリアＮＢＥを読み出す。続いて、ステップＳＧ５では、読み出した値が「０」、つまりノートバッファに空きがあるか否かを判断する。
【００２８】
ノートバッファに空きが無ければ、ステップＳＧ５の判断結果は「ＮＯ」となり、ステップＳＧ６に進む。ステップＳＧ６では、ノートバッファから読み出したノートナンバがレジスタｍｉｎＮＯＴＥに格納されるノートナンバより小さいか否かを判断する。このレジスタｍｉｎＮＯＴＥとは、ノートバッファに格納されるノートナンバの内、最も低い音高のノートナンバ（以下、最小ノートと記す）を保持するものである。
【００２９】
ノートバッファから読み出したノートナンバが最小ノートより高ければ、判断結果は「ＮＯ」となり、後述するステップＳＧ９に処理を進めるが、最小ノートより低ければ、判断結果が「ＹＥＳ」となり、ステップＳＧ７に進む。ステップＳＧ７では、読み出したノートナンバを最小ノートとしてレジスタｍｉｎＮＯＴＥにストアし、続くステップＳＧ８では、この最小ノートが格納されるノートバッファのアドレス値をレジスタｍｉｎＮＯＴＥａｄｒに保持する。
【００３０】
この後、ステップＳＧ９に処理を進め、ノートバッファアドレスを歩進させてステップＳＧ３に処理を戻す。そして、バッファ終端を超えていなければ、上述したステップＳＧ４を介してノートバッファを読み出し、そこが空き領域であればステップＳＧ５の判断結果が「ＹＥＳ」となり、ステップＳＧ１０に進み、右手パートのノートオンイベント中のノートナンバ（以下、これをオンノートと記す）を、その空き領域に書き込む。こうして、ノートバッファに新たなオンノートを書き込むと、ＣＰＵ５はステップＳＧ１１を介して後述するｍａｘノートサーチ処理を実行し、ノートバッファに格納されるオンノートの内から最も高い音高のノートナンバを検索する。
【００３１】
さて一方、ノートバッファに空きが無く、ノートバッファアドレスがバッファ終端を超えた場合には、ステップＳＧ３の判断結果が「ＹＥＳ」となり、ステップＳＧ１２に進む。ステップＳＧ１２では、オンノートがレジスタｍｉｎＮＯＴＥに格納される最小ノートより高い音高であるかどうかを判断する。
最小ノートより低ければ、判断結果は「ＮＯ」となり、ステップＳＧ１１のｍａｘノートサーチ処理に進むが、最小ノートより高い場合には、レジスタｍｉｎＮＯＴＥａｄｒに保持されたアドレスに従い、ノートバッファにオンノートを書き込む。
【００３２】
このように、右手ノートＢＵＦ  ＯＮ処理ルーチンでは、ノートバッファに空きがあれば、オンノートをその空き領域に書き込んだ後、ｍａｘノートサーチ処理を実行してノートバッファに格納されるオンノートの内から最も高い音高のノートナンバを検索する。
一方、ノートバッファに空きが無い場合には、ノートバッファ中の最小ノートとオンノートとを比較し、そのオンノートが最小ノートより高ければ、ノートバッファ中の最小ノートをオンノートに更新した後、ｍａｘノートサーチ処理を実行してノートバッファに格納されるオンノートの内から最も高い音高のノートナンバを検索するようになっている。
【００３３】
（７）ｍａｘノートサーチ処理ルーチンの動作
次に、図１１を参照してｍａｘノートサーチ処理ルーチンの動作について説明する。前述の右手ノートＢＵＦ  ＯＮ処理ルーチンのステップＳＧ１１（図１０参照）を介して本処理ルーチンが実行されると、ＣＰＵ５は図１１に示すステップＳＨ１に処理を進めてノートバッファアドレスを初期化し、続くステップＳＨ２では、レジスタｍａｘＮＯＴＥをゼロリセットする。
次いで、ステップＳＨ３に進むと、ノートバッファアドレスがＥＮＤ＋１に達したか、つまりノートバッファ終端を超えたかどうかを判断する。ここで、バッファ終端を超えていなければ、判断結果は「ＮＯ」となり、次のステップＳＨ４に進み、現アドレスに応じてノートバッファエリアＮＢＥを読み出す。
【００３４】
そして、ステップＳＨ５では、読み出したノートナンバがレジスタｍａｘＮＯＴＥの値より大きいか否かを比較する。ここで、読み出したノートナンバがレジスタｍａｘＮＯＴＥの値より大きければ、判断結果は「ＹＥＳ」となり、次のステップＳＨ６に処理を進め、その読み出したノートナンバをレジスタｍａｘＮＯＴＥにストアした後、ステップＳＨ７に進む。
一方、読み出したノートナンバがレジスタｍａｘＮＯＴＥの値より小さければ、上記ステップＳＨ５の判断結果は「ＮＯ」となり、ステップＳＨ７に進み、ノートバッファアドレスを歩進させてステップＳＨ３に処理を戻す。
【００３５】
以後、ノートバッファアドレスがバッファ終端を超える迄、順次ノートバッファからノートナンバを読み出し、読み出したノートナンバとレジスタｍａｘＮＯＴＥに格納されるノートナンバとを大小比較し、読み出したノートナンバがレジスタｍａｘＮＯＴＥの値より大きければ、その読み出したノートナンバをレジスタｍａｘＮＯＴＥにストアすることによって、ノートバッファに格納されるノートナンバの内、最も高い音高のノートナンバがレジスタｍａｘＮＯＴＥに格納される。そして、ノートバッファアドレスがバッファ終端を超えると、ステップＳＦ３の判断結果が「ＹＥＳ」となり、本処理ルーチンを完了させる。
【００３６】
以上のように、本実施例によれば、右手パートのノートオンイベントの内から最大ノートを、左手パートのノートオンイベントの内から最小ノートをそれぞれ検索し、右手パートの最大ノートが左手パートの最小ノートより低く、かつ左手パート側の前回ノートと今回ノートとの差が右手パート側より大きければ左手が右手の上に被さる腕交差が生じる旨をアイコン表示し、一方、右手パートの最大ノートが左手パートの最小ノートより低く、かつ右手パート側の前回ノートと今回ノートとの差が左手パート側より大きければ右手が左手の上に被さる腕交差が生じる旨をアイコン表示するようにしたので、腕交差が生じるタイミングや腕交差が生じる際の手の使い方を案内できるようになっている。
【００３７】
なお、本実施例では、左右両手パートの演奏データＰＤＲ、ＰＤＬに基づいて腕交差が生じる演奏タイミングを抽出し、そのタイミングで腕交差の状況をアイコン表示して案内するようにしたが、これに限らず、例えば腕交差が生じる旨を表すデータを予め曲データ中に設けておき、曲再生時にそのデータが読み出されたら腕交差の状況をアイコン表示する態様としても良い。また、案内する形態はアイコン表示に限らず、音声合成された人声音にて腕交差する旨をユーザーに報知することも可能である。
【００３８】
【発明の効果】
請求項１、３に記載の発明によれば、左手パートおよび右手パート別に記憶され、発音すべきノートとその発音タイミングとを表す曲データを曲進行に同期して読み出し、この読み出された曲データから右手パートの発音すべきノートが検出されたか否か判別し、右手パートの発音すべきノートが判別されない場合に、読み出された曲データの内から左手パートの発音すべきノートが検出されたか否か判別する。右手パートの発音すべきノートが判別された場合には、当該判別された右手ノートを今回右手ノートとして、今回右手ノートから前回ノート記憶手段に記憶されている前回左手ノートを減算してパート間ノート差を算出するとともに、左手パートの発音すべきノートが判別された場合には、当該判別された左手ノートを今回左手ノートとして、前記前回ノート記憶手段に記憶されている前回右手ノートから今回左手ノートを減算してパート間ノート差を算出し、この算出されたパート差が０より小さいか否か判別して、０より小さいと判別された場合に腕交差が生じる旨を案内するとともに、前記判別の後に、今回右手ノートを前回右手ノートとして、あるいは今回左手ノートを前回左手ノートとして、前記前回ノート記憶手段の記憶内容を更新するので、腕交差が生じるタイミングを案内することが可能になる。
請求項２、４に記載の発明によれば、左手パートおよび右手パート別に記憶された発音すべきノートとその発音タイミングとを表す曲データを曲進行に同期して読み出し、読み出された曲データから右手パートの発音すべきノートが検出されたか否か判別して右手パートの発音すべきノートが判別された場合に、当該判別されたノートを今回右手ノートとし、前回ノート記憶手段に記憶されている前回右手ノートとの差を右手ノート差として算出する。右手パートの発音すべきノートが判別されない場合には、前記読み出された曲データの内から左手パートの発音すべきノートが検出されたか否か判別し、左手パートの発音すべきノートが判別された場合には、当該判別されたノートを今回左手ノートとし、前記前回ノート記憶手段に記憶されている前回左手ノートとの差を左手ノート差として算出し、右手パートの発音すべきノートが判別された場合には、今回右手ノートから前回左手ノートを減算してパート間ノート差を算出するとともに、左手パートの発音すべきノートが判別された場合には、前回右手ノートから今回左手ノートを減算してパート間ノート差を算出する。そして、算出されたパート差が０より小さいか否か判別して、０より小さいと判別された場合に、算出された左手ノート差と算出された右手ノート差との大小を比較し、前記左手ノート差が大きい場合に左手が右手に被さる腕交差である旨を案内するとともに、前記右手ノート差が大きい場合に右手が左手に被さる腕交差である旨を案内し、前記判別の後に、今回右手ノートを前回右手ノートとして、あるいは今回左手ノートを前回左手ノートとして、前記前回ノート記憶手段の記憶内容を更新する為、腕交差が生じる際の手の使い方を案内することができる。
【図面の簡単な説明】
【図１】本発明による一実施例の構成を示すブロック図である。
【図２】ＲＯＭ６に記憶される曲データの構成およびＲＡＭ７の構成を示す図である。
【図３】メインルーチンの動作を示すフローチャートである。
【図４】タイマ割込み処理ルーチンの動作を示すフローチャートである。
【図５】曲選択スイッチ処理ルーチンの動作を示すフローチャートである。
【図６】スタートスイッチ処理ルーチンの動作を示すフローチャートである。
【図７】曲データ再生処理ルーチンの動作を示すフローチャートである。
【図８】イベント処理ルーチンの動作を示すフローチャートである。
【図９】イベント処理ルーチンの動作を示すフローチャートである。
【図１０】右手ノートＢＵＦ  ＯＮ処理ルーチンの動作を示すフローチャートである。
【図１１】ｍａｘノートサーチ処理ルーチンの動作を示すフローチャートである。
【図１２】腕交差が生じる演奏ポイントの一例を示す楽譜である。
【符号の説明】
１  鍵盤
２  押鍵ガイド部
２ａ  発光手段
２ｂ  ドライバ
３  パネルスイッチ群
４  表示部
５  ＣＰＵ
６  ＲＯＭ
７  ＲＡＭ
８  音源
９  Ｄ／Ａ変換回路
１０  サウンドシステム
【図１】
0003812729.tif 000002
【図２】
0003812729.tif 000003
【図３】
0003812729.tif 000004
【図４】
0003812729.tif 000005
【図５】
0003812729.tif 000006
【図６】
0003812729.tif 000007
【図７】
0003812729.tif 000008
【図８】
0003812729.tif 000009
【図９】
0003812729.tif 000010
【図１０】
0003812729.tif 000011
【図１１】
0003812729.tif 000012
【図１２】
0003812729.tif 000013