(57)【要約】【課題】演奏中にユーザーが必要とするガイド表示を確実に実施可能な演奏ガイド装置を提供する。【解決手段】ＣＰＵ１０１は、プログラム−ＲＯＭ１０２に格納された曲データを参照して、鍵盤１０３に設けられたＬＥＤ、或いは表示装置１０７を用いたガイド表示を行う。そのガイド表示は、スイッチ群１０５のリマインドスイッチへの操作により、或いは鍵盤１０４のなかで押鍵すべき鍵がそのタイミングとなってから一定時間が経過してもユーザーが押鍵しないことにより一時的に行う。【選択図】      図１
2008268760.tif 000002
【特許請求の範囲】
【請求項１】
演奏操作子群を構成する演奏操作子への操作により行われる楽曲の演奏をガイドする演奏ガイド装置において、
前記演奏操作子群のなかで操作すべき演奏操作子、及び該演奏操作子への操作に用いるのを推奨する指のうちの少なくとも一方を演奏操作情報としてユーザーに通知するための通知手段と、
前記楽曲の演奏の進行に応じて前記演奏操作情報を順次、通知するための演奏ガイド情報を記憶する情報記憶手段と、
前記情報記憶手段に記憶された演奏ガイド情報を前記楽曲の演奏の進行に合わせて処理することにより、前記通知手段を介して前記演奏操作情報の通知を行うことが可能な演奏ガイド手段と、
前記演奏ガイド情報を用いて前記演奏ガイド手段が前記ガイドを行っている場合に、所定の操作子へのユーザーの操作、及び前記演奏操作子群へのユーザーの操作の有無のうちの少なくとも一方に基づいて、該演奏ガイド情報中の該演奏ガイド手段が処理している処理位置以降の内容を変更し、該変更した内容で該演奏ガイド手段に前記演奏操作情報の通知を行わせるガイド制御手段と、
を具備することを特徴とする演奏ガイド装置。
【請求項２】
前記ガイド制御手段は、前記情報記憶手段が同一の楽曲の前記演奏ガイド情報を複数、記憶している場合に、前記演奏ガイド手段に処理させる該演奏ガイド情報を切り替えることにより、該演奏ガイド情報中の前記処理位置以降の内容を変更する、
ことを特徴とする請求項１記載の演奏ガイド装置。
【請求項３】
前記ガイド制御手段は、前記演奏操作子群のなかで操作すべきタイミングとなった演奏操作子を所定時間、ユーザーが操作しなかった場合に、前記演奏ガイド情報中の前記処理位置以降の内容を変更する、
ことを特徴とする請求項１、または２記載の演奏ガイド装置。
【請求項４】
前記演奏ガイド情報の内容の変更を指示するための１つ以上の指示用操作子と、
前記指示用操作子へのユーザーの操作により、該演奏ガイド情報中の該演奏ガイド手段が処理している処理位置の内容を変更する情報更新手段と、
を更に具備することを特徴とする請求項１記載の演奏ガイド装置。
【請求項５】
前記指示用操作子として、前記演奏操作情報の通知、該演奏操作情報の非通知、及び前記推奨する指の変更、のうち少なくとも一つを指示するための操作子を備え、
前記情報更新手段は、前記演奏ガイド手段による前記ガイド中に前記指示用操作子が操作された場合に、前記演奏ガイド手段中の該演奏ガイド手段が処理している処理位置の内容を変更する、
ことを特徴とする請求項４記載の演奏ガイド装置。
【請求項６】
演奏操作子群を構成する演奏操作子への操作により行われる楽曲の演奏をガイドする演奏ガイド装置において、
前記演奏操作子群のなかで操作すべき演奏操作子、及び該演奏操作子への操作に用いるのを推奨する指のうちの少なくとも一方を演奏操作情報としてユーザーに通知するための通知手段と、
前記楽曲の演奏の進行に応じて前記演奏操作情報を順次、通知するため演奏ガイド情報を記憶する情報記憶手段と、
前記情報記憶手段に記憶された演奏ガイド情報を前記楽曲の演奏の進行に合わせて処理することにより、前記通知手段を介して前記演奏操作情報の通知を行うことが可能な演奏ガイド手段と、
前記演奏ガイド情報の内容の変更を指示するための１つ以上の指示用操作子と、
前記演奏ガイド情報を用いて前記演奏ガイド手段が前記ガイドを行っている場合に、前記指示用操作子へのユーザーの操作により、該演奏ガイド情報中の該演奏ガイド手段が処理している処理位置の内容を変更する情報更新手段と、
を具備することを特徴とする演奏ガイド装置。
【請求項７】
演奏操作子群を構成する演奏操作子への操作により行われる楽曲の演奏をガイドする演奏ガイド装置として用いることが可能なコンピュータに、
前記演奏操作子群のなかで操作すべき演奏操作子、及び該演奏操作子への操作に用いるのを推奨する指のうちの少なくとも一方を演奏操作情報としてユーザーに通知するための通知機能と、
前記楽曲の演奏の進行に応じて前記演奏操作情報を順次、通知するため演奏ガイド情報を記憶する記憶手段に記憶された演奏ガイド情報を用いて前記楽曲の演奏の進行に合わせて処理することにより、前記通知機能を介して前記演奏操作情報の通知を行うことが可能な演奏ガイド機能と、
前記演奏ガイド情報を用いて前記演奏ガイド機能により前記ガイドを行っている場合に、所定の操作子へのユーザーの操作、及び前記演奏操作子群へのユーザーの操作の有無のうちの少なくとも一方に基づいて、該演奏ガイド情報中の該演奏ガイド機能が処理している処理位置以降の内容を変更し、該変更した内容で該演奏ガイド機能により前記演奏操作情報の通知を行わせるガイド制御機能と、
を実現させるためのプログラム。
【請求項８】
演奏操作子群を構成する演奏操作子への操作により行われる楽曲の演奏をガイドする演奏ガイド装置として用いることが可能なコンピュータに、
前記演奏操作子群のなかで操作すべき演奏操作子、及び該演奏操作子への操作に用いるのを推奨する指のうちの少なくとも一方を演奏操作情報としてユーザーに通知するための通知機能と、
前記楽曲の演奏の進行に応じて前記演奏操作情報を順次、通知するため演奏ガイド情報を記憶する記憶手段に記憶された演奏ガイド情報を用いて前記楽曲の演奏の進行に合わせて処理することにより、前記通知機能を介して前記演奏操作情報の通知を行うことが可能な演奏ガイド機能と、
前記演奏ガイド情報を用いて前記演奏ガイド機能により前記ガイドを行っている場合に、前記演奏ガイド情報の内容の変更を指示するための１つ以上の指示用操作子へのユーザーの操作により、該演奏ガイド情報中の該演奏ガイド機能が処理している処理位置の内容を変更する情報更新機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演奏操作子群を構成する演奏操作子への操作により行われる楽曲の演奏をガイドするための技術に関する。
【背景技術】
【０００２】
鍵盤等の演奏操作子群への操作により行う楽曲の演奏を支援するものとして、演奏ガイド装置がある。その演奏ガイド装置は普通、演奏の進行に応じて順次、操作すべき演奏操作子、及びその演奏操作子の操作に用いるのを推奨する指（運指）のうちの少なくとも一方を視覚的にユーザーに通知することにより、正しい操作を行えるように支援する。
【０００３】
演奏ガイド装置による演奏のガイドは、楽曲単位、つまり楽曲の先頭から最後まで通して行うのが普通である。しかし、そのように一貫してガイドを行うと、つまり常に操作すべき演奏操作子毎に、その演奏操作子、或いは運指（演奏操作情報）の通知を行うと、ユーザーはそのガイドに頼ってしまい、練習効率は低いものとなる傾向がある。このことから、従来の演奏ガイド装置のなかには、特許文献１に記載されているように、演奏のガイドとしての運指の表示（指示）を行うか否かを操作すべき演奏操作子（楽音）毎に設定し、その設定に従って運指表示を行うようにしたものがある。その演奏ガイド装置では、演奏操作子への操作が適切に行われたか否かを監視し、その監視結果に応じて設定を変更することにより、ユーザーが適切な操作を行えなかった演奏操作子への操作に対してのみ、運指表示を行うことを可能とさせている。
【０００４】
運指表示、操作すべき演奏操作子の通知は、演奏の進行に合わせて行わなければならないことから、演奏のガイド自体はその通知を行っているか否かに係わらずに実行される。このことから、運指表示や演奏操作子の通知によるガイドについては「ガイド表示」と総称し、そのガイド表示を行うために実行するガイドは単に「ガイド」と呼ぶことにする。
【０００５】
なお、演奏の難易度は楽曲全体で常に同レベルとは限らない。その難易度にむらがあるのが普通である。このため、従来の演奏ガイド装置のなかには、特許文献２に記載されているように、楽曲の一部のみをガイドできるようにしたものもある。
【０００６】
演奏技術の未熟なユーザー（演奏者）では、演奏中に適切に操作できた演奏操作子への操作を次の演奏でも適切に行えるとは限らない。適切な演奏が行えなかった部分を重視したために、過去に適切な演奏が行えた部分を適切に演奏できなくなることもある。このようなことからガイド表示を必要とする部分を事前に正確に予測するのは非常に困難な面がある。それにより演奏のガイドでは、ユーザーが必要とするガイド表示を確実に実施できるようにすることが重要と考えられる。
【特許文献１】特開平１０−２０７３４６号公報
【特許文献２】特開昭６０−２５７９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の課題は、演奏中にユーザーが必要とするガイド表示を確実に実施可能な演奏ガイド装置を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の第１〜第２の態様の演奏ガイド装置は共に、演奏操作子群を構成する演奏操作子への操作により行われる楽曲の演奏をガイドすることを前提とし、演奏操作子群のなかで操作すべき演奏操作子、及び該演奏操作子への操作に用いるのを推奨する指のうちの少なくとも一方を演奏操作情報としてユーザーに通知するための通知手段と、前記楽曲の演奏の進行に応じて前記演奏操作情報を順次、通知するための演奏ガイド情報を記憶する情報記憶手段と、情報記憶手段に記憶された演奏ガイド情報前記楽曲の演奏の進行に合わせて処理することにより、前記通知手段を介して前記演奏操作情報の通知を行うことが可能な演奏ガイド手段と、を共通に備え、それぞれ以下の手段を更に具備する。
【０００９】
第１の態様の演奏ガイド装置は、演奏ガイド情報を用いて演奏ガイド手段がガイドを行っている場合に、所定の操作子へのユーザーの操作、及び演奏操作子群へのユーザーの操作の有無のうちの少なくとも一方に基づいて、該演奏ガイド情報中の該演奏ガイド手段が処理している処理位置以降の内容を変更し、該変更した内容で該演奏ガイド手段に前記演奏操作情報の通知を行わせるガイド制御手段、を更に具備する。
【００１０】
なお、上記ガイド制御手段は、前記情報記憶手段が同一の楽曲の前記演奏ガイド情報を複数、記憶している場合に、前記演奏ガイド手段に処理させる該演奏ガイド情報を切り替えることにより、該演奏ガイド情報中の前記処理位置以降の内容を変更する、ことが望ましい。
【００１１】
また、前記ガイド制御手段は、前記演奏操作子群のなかで操作すべきタイミングとなった演奏操作子を所定時間、ユーザーが操作しなかった場合に、前記演奏ガイド情報中の前記処理位置以降の内容を変更する、ことが望ましい。
【００１２】
第２の態様の演奏ガイド装置は、上記第１の態様における構成に加えて、演奏ガイド情報の内容の変更を指示するための１つ以上の指示用操作子と、指示用操作子へのユーザーの操作により、該演奏ガイド情報中の該演奏ガイド手段が処理している処理位置の内容を変更する情報更新手段と、を更に具備する。
【００１３】
なお、上記指示用操作子として、前記演奏操作情報の通知、該演奏操作情報の非通知、及び前記推奨する指の変更、のうち少なくとも一つを指示するための操作子を備え、前記情報更新手段は、前記演奏ガイド手段による前記ガイド中に前記指示用操作子が操作された場合に、前記演奏ガイド情報中の該演奏ガイド手段が処理している処理位置の変更を行う、ことが望ましい。  
【００１４】
本発明の第１及び第２の態様のプログラムは共に、演奏操作子群を構成する演奏操作子への操作により行われる楽曲の演奏をガイドする演奏ガイド装置として用いることが可能なコンピュータに対し、上記第１及び第２の態様の演奏ガイド装置を実現させるための機能を搭載している。
【発明の効果】
【００１５】
本発明では、演奏ガイド情報を用いて演奏ガイド手段がガイドを行っている場合に、所定の操作子へのユーザーの操作、及び演奏操作子群へのユーザーの操作の有無のうちの少なくとも一方に基づいて、演奏ガイド情報中の位置以降の内容を変更し、該変更した内容で演奏操作情報の通知を行わせるガイド通知を行う。そのようにしてガイド通知（演奏操作情報の通知）を行う演奏箇所をユーザーが必要と感じる部分に制限する。このためユーザーにとっては、ガイド通知に頼るのを抑えつつ、必要と考えるガイド通知に支援された演奏を行うことができる。それにより、より効率的な演奏練習を行えるようになる。
【００１６】
本発明では、演奏ガイド情報の内容の変更を指示するための１つ以上の指示用操作子へのユーザーの操作により、演奏ガイド情報中の処理位置の内容を変更する。このため、ガイド通知を行わせる演奏箇所をユーザーが必要と感じる部分に制限することができる。それにより、同様の効果を得ることができる。その変更は、演奏ガイド情報を用いてガイドを行っている場合に制限することにより、演奏の流れのなかで必要と感じた変更をユーザーに適切に行わせることができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
図１は、第１の実施の形態による演奏ガイド装置を搭載した電子楽器の構成図である。
その電子楽器は、図１に示すように、楽器全体の制御を行うＣＰＵ１０１と、ＣＰＵ１０１が実行するプログラムや演奏ガイド用の曲データ（演奏ガイドデータ）、及び各種制御用データを格納したプログラム−ＲＯＭ（以降「ＲＯＭ」）１０２と、ＣＰＵ１０１がワークに用いるワーク−ＲＡＭ（以降「ＲＡＭ」）１０３と、ユーザーが演奏するための鍵盤（演奏操作子群）１０４と、各種スイッチからなるスイッチ（ＳＷ）群１０５と、鍵盤１０４、或いはスイッチ群１０５に対して行われた操作をそれぞれ検出する複数のインターフェースからなるインターフェース群１０６と、演奏ガイドに用いることが可能な表示装置１０７と、その表示装置１０７上に画像を表示させるインターフェース１０８と、楽音放音用の波形データを格納したＷ−ＲＯＭ１０９と、そのＷ−ＲＯＭ１０９に格納された波形データを用いて放音すべき楽音の波形データを生成する音源１１０と、その音源１１０が出力する波形データをアナログの波形信号（オーディオ信号）に変換するＤ／Ａ変換器（ＤＡＣ）１１１と、そのＤＡＣが出力するオーディオ信号を放音するスピーカ１１２と、各部１０１〜１０３、１０６、１０７及び１１０を相互に接続するアドレスバス１２１、及びデータバス１２２と、を備えた構成となっている。
【００１８】
図２は、上記表示装置を介して行われる演奏ガイドを示す図である。図２に示すように演奏のガイドでは、右手、左手でそれぞれ演奏により放音させるべき楽音を示す音符（操作すべき鍵（演奏操作子）に相当する）、及びその鍵の操作（押鍵）に使うのを推奨する指（運指）を演奏操作情報としてユーザー（演奏者）に視覚的に通知（ガイド表示）できるようになっている。
【００１９】
本実施の形態では、特には図示していないが、鍵盤１０４としては各鍵にＬＥＤを配置したものを採用している。それにより操作すべき鍵は、その鍵に対応するＬＥＤを点灯させてユーザーに視覚的に通知するのが可能となっている。そのＬＥＤの点灯／消灯は、インターフェース群１０６を構成する、その駆動用のインターフェースを介して行われる。このようなことから本実施の形態による演奏ガイド装置は、Ｗ−ＲＯＭ１０９、音源１１０、ＤＡＣ１１１及びスピーカ１１１を除く構成によって実現される。図２に示すような演奏情報が表示装置１０７に表示可能であり、鍵盤１０４には各鍵にＬＥＤを配置していることから、操作すべき鍵、及び運指のうちの少なくとも一方を視覚的にユーザーに通知する形でガイド表示を行えるようになっている。
【００２０】
図３は、ＲＯＭ１０２及びＲＡＭ１０３にそれぞれ格納された演奏ガイド用のデータを示す図である。図３（ａ）はＲＯＭ１０２、図３（ｂ）はＲＡＭ１０３に格納されたデータを示している。図３（ａ）に示すように、ＲＯＭ１０２にはオリジナルガイドＤＢ（データベース）、及びリマインドガイドＤＢが格納される領域が確保されている。一方のＲＡＭ１０３には、図３（ｂ）に示すように、ユーザーガイドＤＢ、及びｔｅｍｐガイドデータが格納されるエリア（領域）が確保されている。
【００２１】
図４は、オリジナルガイドＤＢのデータ構成を示す図である。このＤＢは、オリジナルの曲データを楽曲毎に管理するために構築されたものである。図４中「曲データ（１）」のように「曲データ」の後に括弧書きで付した「（１）」は、その曲データに割り当てられた曲番号が１であることを示している。その曲データは、演奏ガイドを実行するためのデータであり、曲データ自体は、図４に示すように、演奏イベント毎にそのイベントを発生させるべきタイミングを示すタイムデータ、及びイベント内容を示すイベントデータ（以降それらをまとめて「ガイド表示データ」と呼ぶ）をまとめ、そのまとめたデータを発生させるべきタイミングが早いほうから順に並べた形の構成となっている。タイムデータは、直前のガイド表示データを処理してからの時間（デルタタイム）を示すデータである。そのタイムデータ、及びイベントデータはそれぞれ１アドレスに格納されているものと想定する。
【００２２】
上記イベントデータは、演奏イベントが楽音の発音（開始）であれば、そのイベントの種類（図中「ＯＮ」と表記）、楽音の音高「図中「ＮＯＴＥ」と表記の例えば鍵番号である）、及び放音させるべき楽音の音量を示すベロシティの各データを備えたものである。楽音の消音であれば、そのイベントの種類（図中「ＯＦＦ」と表記）、楽音の音高（ＮＯＴＥ）、及び実施ガイド（図中「ｙｚ」と表記）の各データを備えたものである。以降、前者は「ノートオンイベントデータ」と呼び、後者は「ノートオフイベントデータ」と呼ぶことにする。
【００２３】
「ｙｚ」で示す実施ガイドデータは、実際に表示すべきガイドの内容を指定するためのものである。「ｙ」はその内容を指定するガイド内容データ、「ｚ」は運指データをそれぞれ示している。その運指データｚは１〜１０の間の整数値であり、１〜５は左手の指、６〜１０は右手の指を示している。１と６は親指を示し、５と１０は小指を示している。ガイド内容データｙは１〜４の間の整数値であり、１は鍵と運指の両方のガイド表示をしない、２は運指のみガイド表示する、３は鍵のみガイド表示する、４は鍵と運指の両方のガイド表示をする、という演奏ガイド内容を指示する。それにより曲データは、演奏（ガイド）中に行うべきガイド表示を楽音（鍵）毎に予め設定したものとなっている。上記運指データについては、指番号とも呼ぶことにする。
【００２４】
オリジナルガイドＤＢに格納される曲データは、或る程度の演奏技術を持っている演奏者を想定したものである。リマインドガイドＤＢには、演奏技術がかなり低い演奏者を想定して作成の曲データを格納している。それにより本実施の形態では、演奏中に必要に応じて、リマインドガイドＤＢに格納された曲データによるガイド表示を一時的に行えるようにしている。
【００２５】
リマインドガイドＤＢの曲データによる演奏ガイドでは、非常に容易に操作可能と考えられる鍵への押鍵以外は、ＬＥＤ（鍵）の点灯、或いは運指表示（図２）が行われることになる。このためユーザーにとっては、その曲データによる演奏ガイドに切り替えることにより、そのときに必要とするガイド表示のみを一時的に行わせることができるようになっている。そのようにして必要とするガイド表示のみを一時的に行うため、ガイド表示に頼りすぎる演奏を行うようなことは回避でき、ガイド表示に頼る必要のある箇所はガイド表示に頼った演奏を行うことができる。それにより、ガイド表示を常に行う場合と比較して、演奏の練習はより効率的に行うことができる。
【００２６】
楽曲で演奏が難しいと感じる部分はユーザーによって異なる場合がある。これは、ガイド表示が必要と考える部分はユーザーによって異なることを意味する。このことから本実施の形態では、ユーザーが所望するガイド表示を行える曲データを生成できるようにしている。その生成は、オリジナルの曲データを更新する形で行うようにしている。ＲＡＭ１０３に確保されたｔｅｍｐガイドデータ格納用のエリア（ｔｅｍｐガイドデータエリア）は、その更新を行うためのものである。その更新を行った後の曲データはユーザーガイドＤＢに格納される。このようなことから曲データ自体は、それが格納されるＤＢやエリアに係わらず同じ構成となっている。
【００２７】
ユーザーガイドＤＢに格納された曲データは、オリジナルの曲データと比較して、ユーザーにとってより適切なガイド表示を行えるものである可能性が高い。このため本実施の形態では、演奏する楽曲の曲データとしてはユーザーガイドＤＢに格納されているものを優先するようにしている。
【００２８】
演奏ガイドは、通常の自動演奏と同じく、スタートの指示によりスタートし、ガイド表示データを順次、それが持つタイムデータに従って処理することで行われる。曲データの更新は、その演奏ガイド中に行うようにしている。これは、演奏中に必要と感じたガイド表示を確実に行えるようにするためである。それにより、ユーザーガイドＤＢの曲データによるガイド表示は、演奏中に必要とユーザーが考えたもののみを確実に行えるものとさせている。そのような曲データを用いた演奏ガイドにより、ユーザーにとってより効率的な練習を行えるようにしている。
【００２９】
上記曲データの選択、つまり曲番号の入力は、スイッチ群１０５を構成する曲選択スイッチへの操作により行われる。その曲選択スイッチは、２桁以上の曲番号の入力を可能とするために複数、配置されている。それ以外には、演奏ガイドに係わるスイッチとして、演奏ガイドのスタート／ストップを指示するためのスタート／ストップスイッチ、ガイド表示を行わせるように修正を指示するためのガイド表示設定スイッチ、そのガイド表示を行わないように修正を指示するためのガイド消去設定スイッチ、運指表示の変更を指示するための運指変更スイッチ、ガイド表示の一時的な実施を指示するためのリマインドスイッチ、などを備えている。リマインドガイドＤＢの曲データを一時的に用いた演奏ガイドは、リマインドスイッチを操作することで行われる。
【００３０】
上記各種スイッチは、全て備える必要はない。例えば運指変更スイッチは、曲選択スイッチと同様に、指毎に運指表示の変更を指示できるように複数、存在する。それらのスイッチは共に、機能の割り当てを変更するテンキーで代用することができる。しかし、ここでは混乱を避けるため、上記各種スイッチは全て実在しているとの前提で説明を行うこととする。
【００３１】
インターフェース群１０６のスイッチ群１０５用のインターフェースは、例えばスイッチ群１０５を構成する各スイッチを走査し、その走査結果を解析することにより、状態が変化したスイッチ、及びその状態変化の内容を特定し、その特定結果をＣＰＵ１０１に通知する。鍵盤１０４用のインターフェースも同様にして、状態が変化した鍵、その状態変化の内容（押鍵による変化であればベロシティを含む）を特定し、その特定結果をＣＰＵ１０１に通知する。それによりＣＰＵ１０１は、スイッチ群１０５へのユーザーの操作に応じて楽器全体の制御を行い、鍵盤１０４への操作に応じて楽音を発音させる制御を行う。それらの制御は、ＣＰＵ１０１がＲＯＭ１０２から読み出したプログラムを実行することで実現される。
【００３２】
楽音の発音／消音は、音源１１０へのコマンドの送出によって行われる。音源１１０は、ＣＰＵ１０１から入力したコマンドに応じて、Ｗ−ＲＯＭ１０９に格納されている波形データを用いて発音させるべき楽音の波形データの生成の開始、或いはその生成の終了を行う。生成した波形データは、ＤＡＣ１１１に出力する。そのＤＡＣ１１１への波形データの入力により、ＤＡＣ１１１からオーディオ信号がスピーカ１１２に出力されて楽音が放音される。
【００３３】
ＣＰＵ１０１は、上記プログラムを実行することにより、以下のような処理を行い、曲データを用いた演奏ガイドを実現させる。図５〜図１８に示す各種処理のフローチャートを参照して具体的に説明する。
【００３４】
図５は、全体処理のフローチャートである。始めに図５を参照して、全体処理について詳細に説明する。
先ず、ステップＳＡ１では、電源の投入によりイニシャライズを行う。続くステップＳＡ２では、スイッチ群１０５へのユーザーの操作に対応するためのスイッチ処理を実行する。それ以降は、ステップＳＡ３で演奏ガイドを実施するためのガイド処理、ステップＳＡ４で鍵盤１０４へのユーザーの操作に対応するための鍵盤処理、及びステップＳＡ５でその他の処理を実行してから、上記ステップＳＡ２に戻る。それにより、電源がオンされている間は、ステップＳＡ２〜５で形成される処理ループを繰り返し実行することにより、ユーザーの指示に対応するように動作する。不図示のＭＩＤＩ端子を介したＭＩＤＩデータの送受信等は、ステップＳＡ５の処理を実行することで実現される。
【００３５】
以降は、上記全体処理内で実行されるサブルーチン処理について詳細に説明する。
図６は、上記ステップＳＡ２として実行されるスイッチ処理のフローチャートである。サブルーチン処理では始めに図６を参照して、そのスイッチ処理について詳細に説明する。
【００３６】
先ず、ステップＳＢ１では、上記曲選択スイッチへの操作に対応するための曲選択スイッチ処理を実行する。その後は、スタート／ストップスイッチ、ガイド表示設定スイッチ、ガイド消去設定スイッチ、運指変更スイッチ、リマインドスイッチ、及びその他のスイッチへの操作に対応するための処理をそれぞれステップＳＢ２〜７で実行してから、このスイッチ処理を終了する。
【００３７】
上記ステップＳＢ１〜６では、それぞれ以下のようなサブルーチン処理が実行される。図７〜図１２を参照して詳細に説明する。
図７は、上記ステップＳＢ１として実行される曲選択スイッチ処理のフローチャートである。図６に示すスイッチ処理内で実行されるサブルーチン処理では、始めに図７を参照して、その曲選択スイッチ処理について詳細に説明する。
【００３８】
上述したように曲選択スイッチは複数、存在し、１つ以上の曲選択スイッチを操作して曲の選択、つまり曲番号の入力を行うようになっている。しかしここでは便宜的に、そのような操作に対応する部分についての詳細な説明は省略することとする。
【００３９】
先ず、ステップＳＣ１では、変数ＳＴＦの値が０か否か判定する。その変数ＳＴＦは、演奏ガイド中か否かを管理するための変数であり、代入された値としての１は演奏ガイド中であることを示し、値としての０は演奏ガイド中でないことを示している。このことから、演奏ガイド中でない場合、判定はＹＥＳとなってステップＳＣ２に移行し、そうでない場合には、判定はＮＯとなり、ここで曲選択スイッチ処理を終了する。
【００４０】
ステップＳＣ２では、曲選択スイッチがＯＮしたか否か判定する。そのスイッチをユーザーが操作した場合、その旨がインターフェース群１０６のスイッチ群１０５用のインターフェースからＣＰＵ１０１に通知されることから、判定はＹＥＳとなり、ステップＳＣ３で変数Ｍに、曲選択スイッチへの操作により入力された曲番号を代入してからステップＳＣ４に移行する。そうでない場合には、判定はＮＯとなり、ここで曲選択スイッチ処理を終了する。
【００４１】
ステップＳＣ４では、ユーザーガイドＤＢ内に、曲番号が変数Ｍの値の曲データ（図中「曲［Ｍ］のデータ」）が存在しないか否か判定する。その曲データが存在しない場合、判定はＹＥＳとなり、ステップＳＣ５でオリジナルガイドＤＢの曲番号が変数Ｍの値の曲データを読み出し、ユーザーガイドＤＢ内にコピーし、更にステップＳＣ６でユーザーガイドＤＢの曲番号が変数Ｍの値の曲データをｔｅｍｐガイドデータエリア内にコピーしてから、曲選択スイッチ処理を終了する。一方、そうでない場合には、判定はＮＯとなり、次にステップＳＣ６に移行する。
【００４２】
このようにして、演奏ガイドが行われていない状況下で曲選択スイッチが操作されると、ユーザーが曲の選択を行ったとして、その選択のために入力された曲番号の曲データがｔｅｍｐガイドデータエリアに用意される。そのエリアにコピーする曲データとしては、ユーザーガイドＤＢのものを優先しているが、コピーすべき曲データが格納されているＤＢをユーザーが選択できるようにしても良い。
【００４３】
図８は、図６に示すスイッチ処理内でステップＳＢ２として実行されるスタート／ストップスイッチ処理のフローチャートである。次に図８を参照して、そのスイッチ処理について詳細に説明する。
【００４４】
先ず、ステップＳＤ１では、スタート／ストップスイッチがＯＮしたか否か判定する。そのスイッチをユーザーが操作した場合、判定はＹＥＳとなり、ステップＳＤ２で変数ＳＴＦの値を反転、つまりその値が１であれば０、その値が０であれば１に更新してからステップＳＤ３に移行する。そうでない場合には、判定はＮＯとなり、ここでスタート。ストップスイッチ処理を終了する。
【００４５】
ステップＳＤ３では、変数ＳＴＦの値が１か否か判定する。その値が０であった場合、判定はＮＯとなってステップＳＤ１２に移行し、そうでない場合には、判定はＹＥＳとなってステップＳＤ４に移行する。
【００４６】
ステップＳＤ４では、変数ＡＤ１に、ユーザーガイドＤＢの曲番号として変数Ｍの値が割り当てられた曲データの開始アドレスの値を代入する。続くステップＳＤ５では、変数ＡＤ２に、ｔｅｍｐガイドデータエリアの開始アドレスの値を代入する。その次のステップＳＤ６では、変数ＡＤ３に、オリジナルガイドＤＢの曲番号として変数Ｍの値が割り当てられた曲データの開始アドレスの値を代入する。そのようにして、演奏ガイドに用いる曲データの切り替えや曲データの更新を行えるように、ユーザーガイドＤＢ、ｔｅｍｐガイドデータエリア、及びリマインドガイドＤＢのそれぞれに格納されている同じ曲番号の曲データからデータを読み出す、或いはデータを書き込む準備を各変数ＡＤ１〜３に初期値を代入することで行った後、ステップＳＤ７に移行する。
【００４７】
ステップＳＤ７では、ｔｅｍｐガイドデータエリア内の変数ＡＤ２の値で指定されるアドレスに格納されているデータ（ここでは図４に示すようにタイムデータである）を読み出す。その次に移行するステップＳＤ８では、読み出したタイムデータを変数Ｔに代入する。その後は、ステップＳＤ９で変数ｎ及びｍにそれぞれ０及び１を代入し、ステップＳＤ１０でイベントデータの処理タイミングの到来を判定するための計時用のタイマインタラプト処理の実行禁止解除を行い、更にステップＳＤ１１で変数ＯＮＦに０を代入してから、スタート／ストップスイッチ処理を終了する。
【００４８】
上記タイマインタラプト処理は、タイムデータの最小時間分解能に相当する時間間隔で発生する割り込み信号により起動されるものであり、起動される度に、変数Ｔの値をデクリメントするようになっている。従って、その０の値は処理タイミングの到来を示している。その実行禁止解除は、その割り込み信号を有効にすることで行われる。逆に禁止は、その割り込み信号を無効にすることで行われる。変数ｎ及びｍは、主に曲データ中からデータを読み出すアドレスの指定用に使われる。変数ＯＮＦは、操作すべき鍵の有無を判定するために用意したものであり、代入した０の値は、そのような鍵が存在していないことを示し、１の値は、それが存在することを示している。
【００４９】
上記ステップＳＤ３の判定がＮＯとなって移行するステップＳＤ１２では、インターフェース１０８、及びインターフェース群１０６の対応するインターフェースに指示して、演奏ガイド用の表示を全て終了させる。続くステップＳＤ１３では、上記タイマインタラプト処理の実行を禁止し、その後に移行するステップＳＤ１４では、ｔｅｍｐガイドデータエリアの曲データをユーザーガイドＤＢに上書き保存するか否かをユーザーに問い合わせ、その問い合わせによるユーザーの指示に応じて上書き保存する。保存を指示しなければ、その曲データは単に廃棄する。スタート／ストップスイッチ処理は、そのようなことを行ってから終了する。
【００５０】
図９は、図６に示すスイッチ処理内でステップＳＢ３として実行されるガイド表示設定スイッチ処理のフローチャートである。次に図９を参照して、そのスイッチ処理について詳細に説明する。
【００５１】
本実施の形態では、上述したように、曲データ中に挿入されている実施ガイドデータに従ってガイド表示を行うようにしている。それにより、ユーザーがガイド表示を望む部分でガイド表示が実施されるとは限らない。このことから、ガイド表示の実施を望む部分（演奏箇所）でガイド表示を実際に実施させることができるように、このガイド表示設定スイッチを設けている。
【００５２】
先ず、ステップＳＥ１では、変数ＳＴＦの値が１か否か判定する。その値が１、つまり演奏ガイド中であった場合、判定はＹＥＳとなってステップＳＥ２に移行する。そうでない場合には、判定はＮＯとなり、ここでガイド表示設定スイッチ処理を終了する。
【００５３】
ステップＳＥ２では、ガイド表示設定スイッチがＯＮしたか否か判定する。そのスイッチを演奏ガイド中にユーザーが操作した場合、判定はＹＥＳとなり、ステップＳＥ３で変数ＧＯＮに１を代入した後、この設定スイッチ処理を終了する。そうでない場合には、判定はＮＯとなり、ここでこの設定スイッチ処理を終了する。
【００５４】
このようにして本実施の形態では、ガイド表示設定スイッチへの操作は演奏ガイド中のみ有効とさせている。それにより、演奏ガイド中にこの設定スイッチを操作した箇所でのガイド表示を実施するように、ｔｅｍｐガイドデータエリアに格納されている曲データの変更を行うようにしている。変数ＧＯＮに代入した１は、ガイド表示設定スイッチが操作されたことを示す値であり、通常は０が代入される。
【００５５】
上述したように、ガイド消去設定スイッチは、ガイド表示の実施を望まない部分でガイド表示を実際に実施させることがないように設けられたスイッチ、リマインドスイッチは、ガイド表示を一時的に実施させられるように設けられたスイッチ、運指変更スイッチは、運指表示を変更させられるように設けられたスイッチである。それらのスイッチもガイド表示設定スイッチと同様に、演奏ガイド中のみ有効とされ、演奏ガイド中の操作により、それぞれ変数ＧＯＦＦ、ＲＥＭＩＮＤＦ、及びＣＨＧＦに１が代入される。運指変更スイッチへの操作では、操作された運指変更スイッチに割り当てられた指番号（上記のように１〜１０の間の整数値）が変数ＦＩＮＧＥＲに代入される。
【００５６】
このようなことから、図１０〜図１２に示すように、それらへの操作に対応するために図６のスイッチ処理内でステップＳＢ４〜６として実行される各サブルーチン処理のフローチャートは、ステップＳＢ５の運指変更スイッチ処理では指番号を変数ＦＩＮＧＥＲに代入する処理ステップが追加されていることを除き、基本的に同じものとなっている。それにより、これらのサブルーチン処理についての詳細な説明は省略することとする。
【００５７】
図５に示す全体処理内で実行されるサブルーチン処理の説明に戻る。
図１３〜図１７は、ステップＳＡ３として実行されるガイド処理のフローチャートである。次に図１３〜図１７を参照して、そのガイド処理について詳細に説明する。
【００５８】
先ず、ステップＳＩ１では、変数ＳＴＦの値が１か否か判定する。その値が１であった場合、判定はＹＥＳとなってステップＳＩ２に移行し、そうでない場合には、判定はＮＯとなり、ここでガイド処理を終了する。
【００５９】
ステップＳＩ２では、変数ＯＮＦの値が０か、つまり押鍵すべき鍵がないか否か判定する。押鍵すべき鍵が存在しない場合、判定はＹＥＳとなってステップＳＩ３に移行し、そうでない場合には、判定はＮＯとなって図１６のステップＳＩ３２に移行する。
【００６０】
ステップＳＩ３では、変数Ｔの値が０以下か否か判定する。その値が０以下、つまり変数Ｔにタイムデータを代入したガイド表示データ中のイベントデータを処理すべきタイミングが到来した場合、判定はＹＥＳとなり、ステップＳＩ４で変数ｎの値をインクリメントして進め、更にステップＳＩ５でｔｅｍｐガイドデータエリアの、変数ＡＤ２の値と変数ｎの値の加算結果により指定されるアドレスに格納されているデータの読み出しを行ってからステップＳＩ６に移行する。そうでない場合には、判定はＮＯとなり、ここでガイド処理を終了する。
【００６１】
ステップＳＩ６では、読み出したデータが曲データの最後を示すもの（図中「ＥＮＤ」と表記）か否か判定する。その最後を示すものであった場合、判定はＹＥＳとなり、ステップＳＩ７で変数ＳＴＦに０を代入し、ステップＳＩ８で表示中のガイド表示を全て終了させ、更にステップＳＩ９でｔｅｍｐガイドデータエリアの曲データをユーザーガイドＤＢに上書き保存するか否かをユーザーに問い合わせ、その問い合わせによるユーザーの指示に応じて上書き保存してから、ガイド処理を終了する。そうでない場合には、判定はＮＯとなってステップＳＩ１０に移行する。
【００６２】
ステップＳＩ１０では、読み出したデータがタイムデータか否か判定する。そのタイムデータを読み出した場合、判定はＹＥＳとなり、ステップＳＩ１１で変数Ｔにタイムデータを代入した後、ガイド処理を終了する。そうでない場合には、判定はＮＯとなって図１４のステップＳＩ１２に移行する。
【００６３】
ステップＳＩ１２では、読み出したデータがノートオフイベントデータか否か判定する。そのイベントデータを読み出した場合、判定はＹＥＳとなり、ステップＳＩ１３でそのイベントデータ中の音高（ＮＯＴＥ）データに対応する鍵のＬＥＤを消灯させ、ステップＳＩ１５で変数ＯＮＦに０を代入してから、図１３のステップＳＩ４に戻る。そうでない場合には、判定はＮＯとなって図１５のステップＳＩ１６に移行する。
【００６４】
ステップＳＩ１６では、読み出したデータがノートオンイベントデータか否か判定する。そのイベントデータを読み出していない場合、判定はＮＯとなり、ステップＳＩ１７でその他のイベントデータに対応するための処理を実行した後、図１３のステップＳＩ４に戻る。そうでない場合には、つまりノートオンイベントデータを読み出した場合には、判定はＹＥＳとなり、ステップＳＩ１８でそのイベントデータ中の音高データ（図中「ノート」と表記）を変数ＮＯＴＥに代入し、ステップＳＩ１９で変数ｍに１を代入してからステップＳＩ２０に移行する。
【００６５】
本実施の形態では、図４に示すように、実施ガイドデータはノートオフイベントデータ中に挿入している。これは、ノートオフイベントデータでは不要なベロシティデータの格納スペースを有効利用するためである。ステップＳＩ２０〜ＳＩ２３では、変数ｍの値を順次、インクリメントしながら、読み出したノートオンイベントデータに対応するノートオフイベントデータを読み出すための処理が行われる。
【００６６】
先ず、ステップＳＩ２０では、ｔｅｍｐガイドデータエリアの変数ＡＤ２、ｎ及びｍの各値の加算結果により指定されるアドレスからデータを読み出す。次のステップＳＩ２１では、読み出したデータがノートオフイベントデータか否か判定する。読み出したデータがそのイベントデータでない場合、判定はＮＯとなり、ステップＳＩ２２で変数ｍの値をインクリメントしてから上記ステップＳＩ２０に戻る。そうでない場合には、判定はＹＥＳとなってステップＳＩ２３に移行する。
【００６７】
ステップＳＩ２３では、ノートオフイベントデータ中の音高データの値（鍵番号）が変数ノートの値と等しいか否か判定する。それらの値が等しくない場合、判定はＮＯとなり、上記ステップＳＩ２２に移行して変数ｍの値のインクリメントを行う。そうでない場合には、図１３のステップＳＩ５で読み出したノートオンイベントデータに対応するノートオフイベントデータを読み出せた場合には、判定はＹＥＳとなってステップＳＩ２４に移行する。
【００６８】
ステップＳＩ２４では、ステップＳＩ２０で読み出したイベントデータから実施ガイドデータｙｚを抽出する。その抽出後はステップＳＩ２５に移行して、ガイド内容データｙの値が３及び４のうちの一方と等しいか否か判定する。その値が３或いは４であった場合、判定はＹＥＳとなってステップＳＩ２６に移行する。そうでない場合には、判定はＮＯとなってステップＳＩ３１に移行する。
【００６９】
ステップＳＩ２６では、変数ＮＯＴＥの値（鍵番号）が割り当てられた鍵のＬＥＤを点灯させる。続くステップＳＩ２７では、ガイド内容データｙの値が４か否か判定する。その値が４であった場合、判定はＹＥＳとなり、ステップＳＩ２８で運指データｚに従って押鍵すべき鍵の押鍵に推奨する運指の表示を行い（図２）、ステップＳＩ２９で変数Ｎに変数ｎ及びｍの加算結果を代入し、更にステップＳＩ３０で変数ＯＮＦに１を代入してから図１３のステップＳＩ４に戻る。そうでない場合には、判定はＮＯとなり、上記ステップＳＩ２９に移行する。
【００７０】
一方、ステップＳＩ３１では、ガイド内容データｙの値が２か否か判定する。その値が２であった場合、判定はＹＥＳとなって上記ステップＳＩ２８に移行する。そうでない場合には、判定はＮＯとなって上記ステップＳＩ２９に移行する。
【００７１】
このようにしてガイド表示は、上記ステップＳＩ２５〜ＳＩ２８、及びＳＩ３１の処理を実行することにより、ガイド内容データｙに応じて行われる。
図１３のステップＳＩ２の判定がＮＯとなって移行する図１６のステップＳＩ３２では、変数ＲＥＭＩＮＤＦの値が１か否か判定する。リマインドスイッチをユーザーが操作した場合、その値は１であることから、判定はＹＥＳとなってステップＳＩ３３に移行する。そうでない場合には、判定はＮＯとなってステップＳＩ４２に移行する。
【００７２】
ステップＳＩ３３では、リマインドガイドＤＢで変数Ｍの値を曲番号として割り当てられた曲データの、変数ＡＤ３及びＮの値の加算結果により指定されるアドレスからデータを読み出す。読み出した後はステップＳＩ３４に移行する。ステップＳＩ３４〜ＳＩ３９の各ステップで実行される処理の内容は、図１５のステップＳＩ２４〜ＳＩ２８及びＳＩ３１と基本的に同じであるため、詳細な説明は省略する。それらのステップの処理を実行することにより、リマインドガイドＤＢの曲データによる演奏ガイドが行われ、より演奏技術の未熟なユーザーを想定したガイド表示が実施されることになる。ステップＳＩ４０には、ステップＳＩ３７若しくはＳＩ３９でのＮＯの判定、或いはステップＳＩ３８の処理の実行により移行する。
【００７３】
ステップＳＩ４０では、タイマインタラプト処理の実行を禁止する。続くステップＳＩ４１では、変数ＲＥＭＩＮＤＦに０を代入する。図１７のステップＳＩ５６には、その後に移行する。
【００７４】
このようにして本実施の形態では、リマインドスイッチをユーザーが操作すると、１回の押鍵分のガイド表示のみを行うようにしている。これは、ユーザーが望んでいないガイド表示を行うことを確実に回避させるためである。このことは、他のスイッチでも同じとしているが、予め設定の演奏期間（例えば１小節、或いは所定数の音符）を単位としてガイド表示（曲データの変更）を行うようにしても良い。他のスイッチでは、演奏の流れのなかでガイド表示が必要、ガイド表示は必要でない、或いは運指表示されている指とは異なる指を用いるほうが望ましい、と感じたユーザーの感覚に沿った曲データの変更を容易、且つ適切に行えるようにすることを重視したためである。
【００７５】
なお、本実施の形態では、演奏ガイドに用いる曲データを切り替えることにより、リマインドスイッチへの操作に対応しているが、ガイド内容データｙに係わらず、定めたガイド表示を行うようにしても良い。
【００７６】
上記ステップＳＩ４２では、変数Ｔの値が所定値−α以下か否か判定する。鍵を押鍵すべきタイミングとなってから一定時間、ユーザーがその鍵を押鍵しなかった場合、その関係が成立して判定はＹＥＳとなり、上記ステップＳＩ３３に移行する。そうでない場合には、判定はＮＯとなってステップＳＩ４３に移行する。
【００７７】
このようにして本実施の形態では、鍵を押鍵すべきタイミングとなってから一定時間、ユーザーがその鍵を押鍵しなかった場合、リマインドスイッチが操作された時と同じ処理を実行するようにしている。これは、ユーザーが鍵を押鍵できなかったのは、その鍵の押鍵にはガイド表示が必要と見なせるためである。
【００７８】
ステップＳＩ４３では、変数ＫＥＹＯＮＦの値が１か否か判定する。その変数は、鍵盤１０４上の鍵をユーザーが新たに押鍵したか否か判定用のものである。１はその押鍵が行われたことを示し、０はその押鍵が行われていないことを示している。このことから、ユーザーが新たな押鍵を行っていない場合、判定はＮＯとなり、図１７のステップＳＩ４５に移行する。そうでない場合には、判定はＹＥＳとなってステップＳＩ４４に移行する。
【００７９】
ステップＳＩ４４では、変数ＫＥＹの値が変数ＮＯＴＥの値と等しいか否か判定する。その変数は、ユーザーが新たに押鍵した鍵に割り当てられている鍵番号が代入されるものである。このため、押鍵すべき鍵をユーザーが新たに押鍵した場合、判定はＹＥＳとなり、ステップＳＩ４４ａで変数ＯＮＦに０を代入してから、図１３のステップＳＩ４に戻る。そうでない場合には、判定はＮＯとなり、図１７のステップＳＩ４５に移行する。
【００８０】
ステップＳＩ４５では、変数ＧＯＮの値が１か否か判定する。その値が０、つまりユーザーがガイド表示設定スイッチを操作していない場合、判定はＮＯとなってステップＳＩ４８に移行する。そうでない場合には、判定はＹＥＳとなってステップＳＩ４６に移行する。
【００８１】
ステップＳＩ４６では、リマインドガイドＤＢで変数Ｍの値を曲番号として割り当てられた曲データの、変数ＡＤ３及びＮの値の加算結果により指定されるアドレスからデータ（ノートオフイベントデータ）を読み出し、その読み出したデータを、ｔｅｍｐガイドデータエリアの変数ＡＤ２及びＮの値の加算結果により指定されるアドレスに上書きする。その上書き後は、ステップＳＩ４７で変数ＧＯＮに０を代入してからステップＳＩ５６に移行する。
【００８２】
ステップＳＩ４８では、変数ＧＯＦＦの値が１か否か判定する。その値が０、つまりユーザーがガイド消去設定スイッチを操作していない場合、判定はＮＯとなってステップＳＩ５２に移行する。そうでない場合には、判定はＹＥＳとなってステップＳＩ４９に移行する。
【００８３】
ステップＳＩ４９では、ガイド表示中であればそれを終了させる。続くステップＳＩ５０では、ｔｅｍｐガイドデータエリアの変数ＡＤ２及びＮの値の加算結果により指定されるアドレスに格納されているデータ（ノートオフイベントデータ）中の実施ガイドデータｙｚを、「１ｚ」に書き換える。それにより、ガイド表示は行わないように実施ガイドデータｙｚを変更する。そのような変更後は、ステップＳＩ５１で変数ＧＯＦＦに０を代入してからステップＳＩ５６に移行する。
【００８４】
ステップＳＩ５２では、変数ＣＨＧＦの値が１か否か判定する。その値が０、つまりユーザーが運指変更スイッチを操作していない場合、判定はＮＯとなって図１３のステップＳＩ４に戻る。そうでない場合には、判定はＹＥＳとなってステップＳＩ５３に移行する。
【００８５】
ステップＳＩ５３では、運指表示中であればそれを終了させる。続くステップＳＩ５４では、ｔｅｍｐガイドデータエリアの変数ＡＤ２及びＮの値の加算結果により指定されるアドレスに格納されているデータ（ノートオフイベントデータ）中の実施ガイドデータｙｚを、その運指データのみ変数ＦＩＮＧＥＲの値に書き換える（図中、書き換え後の実施ガイドデータを「ｙ・ＦＩＮＧＥＲ」と表記）。その書き換え後は、ステップＳＩ５５で変数ＣＨＧＦに０を代入してからステップＳＩ５６に移行する。
【００８６】
ステップＳＩ５６では、変数ｎに、それまでの値から所定値を引いた値を代入する。それにより、ガイド表示を行うべき箇所を前に戻す。その後はステップＳＩ５７に移行して、ｔｅｍｐガイドデータエリアの変数ＡＤ２及びｎの値の加算結果により指定されるアドレスからデータを読み出し、その読み出したデータがタイムデータか否か判定する。そのタイムデータを読み出した場合、判定はＹＥＳとなってステップＳＩ５９に移行し、そうでない場合には、判定はＮＯとなり、ステップＳＩ５８で変数ｎの値をインクリメントしてから、再度、ステップＳＩ５７の処理を実行する。
【００８７】
ステップＳＩ５９では、読み出したタイムデータを変数Ｔに代入する。次のステップＳＩ６０では、変数ｍに０を代入する。その次のステップＳＩ６１では、タイマインタラプト処理の実行禁止を解除する。その解除を行った後、ガイド処理を終了する。
【００８８】
このようにして本実施の形態では、リマインドスイッチ、ガイド表示設定スイッチ、ガイド消去設定スイッチ、及び運指変更スイッチのうちの何れかをユーザーが操作すると、その時点より前の位置から演奏ガイドを再度、行うようにしている。これは、それらのスイッチへの操作を適切に行えたか否かをユーザーに直ちに確認させるためである。その確認を直ちに行わせることにより、ユーザーにとってはその確認をより適切、且つ容易に行えるようになる。
【００８９】
図１８は、図５の全体処理内でステップＳＡ４として実行される鍵盤処理のフローチャートである。最後に図１８を参照して、その鍵盤処理について詳細に説明する。
先ず、ステップＳＪ１では、インターフェース群１０６の対応するインターフェースに鍵盤１０４の走査を行わせ、その走査による解析結果を受け取る。続くステップＳＪ２では、その解析結果により、鍵盤１０４上の鍵で生じた変化を判定する。その変化が何れの鍵で生じていないと判定した場合、ここで鍵盤処理を終了する。押鍵（オン）による変化が生じたと判定した場合には、ステップＳＪ３に移行する。
【００９０】
ステップＳＪ３では、押鍵による変化が生じた鍵の鍵番号を変数ＫＥＹに代入する。次のステップＳＪ４では、ベロシティを変数ＶＥＬＯＣＩＴＹに代入する。その次のステップＳＪ５では、変数ＫＥＹ及びＶＥＬＯＣＩＴＹの各値を用いて、楽音の発音指示用のコマンドを作成し、その作成したコマンドは続くステップＳＪ６で音源１１０に送付する。その送付後は、ステップＳＪ７で上記変数ＫＥＹＯＮＦに１を代入してから、鍵盤処理を終了する。上記変数ＫＥＹ及びＶＥＬＯＣＩＴＹに代入する値は、インターフェースから受け取った解析結果に存在する値である。
【００９１】
上記ステップＳＪ２において、離鍵（オフ）による変化が生じたと判定した場合には、ステップＳＪ８に移行し、離鍵による変化が生じた鍵の鍵番号を変数ＫＥＹに代入する。次のステップＳＪ９では、変数ＶＥＬＯＣＩＴＹに０を代入する。その次のステップＳＪ１０では、変数ＫＥＹ及びＶＥＬＯＣＩＴＹの各値を用いて、楽音の消音指示用のコマンドを作成し、その作成したコマンドは続くステップＳＪ１１で音源１１０に送付する。その送付後は、ステップＳＪ１２で上記変数ＫＥＹＯＮＦに０を代入してから、鍵盤処理を終了する。このとき変数ＫＥＹ及びＶＥＬＯＣＩＴＹに代入する値も、インターフェースから受け取った解析結果に存在する値である。
【００９２】
鍵盤１０４上の複数の鍵をユーザーが同時に押鍵する、或いは押鍵している状態となることも多い。しかし、上述の鍵盤処理（図１８）では、混乱を避けるために、ユーザーが同時に押鍵するのは１鍵のみとの想定で実行される処理、その流れを説明している。
【００９３】
なお、本実施の形態では、押鍵すべき鍵、その鍵の押鍵に推奨する指の両方がガイド表示可能（演奏操作情報として通知可能）となっているが、そのうちの一方のみをガイド表示しても良い。そのガイド表示は、リマインドスイッチへの操作により一時的に行わせることができるようにしているが、逆に、一時的に行わせないように指定できるようにしても良い。そのような指定を可能とすることにより、ユーザー（演奏者）にとってはガイドに頼らずに演奏すべき箇所をガイドに頼らずに演奏することができるようになる。それにより、別の視点でユーザーの要望に対応できることとなる。その実現には、上述の手法を用いることができる。本実施の形態は、電子楽器に搭載された演奏ガイド装置に本発明を適用したものであるが、本発明は専用の装置、或いは別の装置に搭載されたものに適用しても良い。
【００９４】
上述したような演奏ガイド装置を実現させるようなプログラムは、ＣＤ−ＲＯＭ、ＤＶＤ、或いは着脱自在なフラッシュメモリ等の記録媒体に記録させて配布しても良い。公衆網等の通信ネットワークを介して、そのプログラムの一部、若しくは全部を配信するようにしても良い。そのようにした場合には、ユーザーはプログラムを取得して、演奏ガイド装置として用いることが可能なコンピュータにロードすることにより、そのコンピュータに本発明を適用させることができる。このことから、記録媒体は、プログラムを配信する装置がアクセスできるものであっても良い。
【図面の簡単な説明】
【００９５】
【図１】本実施の形態による演奏ガイド装置を搭載した電子楽器の構成図である。
【図２】表示装置を介して行われる演奏ガイドを示す図である。
【図３】プログラム−ＲＯＭ及びワーク−ＲＡＭにそれぞれ格納された演奏ガイド用のデータを示す図である。
【図４】オリジナルガイドＤＢのデータ構成を示す図である。
【図５】全体処理のフローチャートである。
【図６】スイッチ処理のフローチャートである。
【図７】曲選択スイッチ処理のフローチャートである。
【図８】スタート／ストップスイッチ処理のフローチャートである。
【図９】ガイド表示設定スイッチ処理のフローチャートである。
【図１０】ガイド消去設定スイッチ処理のフローチャートである。
【図１１】運指変更スイッチ処理のフローチャートである。
【図１２】リマインドスイッチ処理のフローチャートである。
【図１３】ガイド処理のフローチャートである。
【図１４】ガイド処理のフローチャートである（続き１）。
【図１５】ガイド処理のフローチャートである（続き２）。
【図１６】ガイド処理のフローチャートである（続き３）。
【図１７】ガイド処理のフローチャートである（続き４）。
【図１８】鍵盤処理のフローチャートである。
【符号の説明】
【００９６】
１０１    ＣＰＵ
１０２    プログラム−ＲＯＭ
１０３    ワーク−ＲＡＭ
１０４    鍵盤
１０５    スイッチ群
１０６    インターフェース群
１０７    表示装置
１０８    インターフェース
１２１    アドレスバス
１２２    データバス
【図１】
2008268760.tif 000003
【図２】
2008268760.tif 000004
【図３】
2008268760.tif 000005
【図４】
2008268760.tif 000006
【図５】
2008268760.tif 000007
【図６】
2008268760.tif 000008
【図７】
2008268760.tif 000009
【図８】
2008268760.tif 000010
【図９】
2008268760.tif 000011
【図１０】
2008268760.tif 000012
【図１１】
2008268760.tif 000013
【図１２】
2008268760.tif 000014
【図１３】
2008268760.tif 000015
【図１４】
2008268760.tif 000016
【図１５】
2008268760.tif 000017
【図１６】
2008268760.tif 000018
【図１７】
2008268760.tif 000019
【図１８】
2008268760.tif 000020