(57)【要約】【課題】電子楽器、電子楽器の制御方法、及びプログラムに関し、演奏技術が上達途中であっても音楽的な意味づけを行いながら上手にレッスンを行うことができる電子楽器を提供する。【解決手段】例えば指定される拍子によって決まる複数拍毎に決まる小節毎に、自動演奏曲データから優先音が決定される。この優先音は、例えば小節内の強拍タイミングで自動演奏曲データによりノートオンされる楽音である。また、優先音の候補がコード構成音である場合には、その中で例えばメロディを構成し得る１つの楽音が優先音として決定される。自動演奏曲データの先頭から順次、決定された優先音が例えば鍵盤上の光る鍵として演奏者に表示されながら、その表示した優先音の鍵を演奏者が押鍵等して演奏する毎にその次の優先音までの自動演奏曲データが自動演奏される。【選択図】図９
2018163183.tif 000002
【特許請求の範囲】
【請求項１】
曲データをそれぞれの区間長で区切った区間ごとに優先音をそれぞれ決定する優先音決定処理と、
前記区間に対応して決定された前記優先音を示す識別子を表示する優先音表示処理と、
演奏者が前記優先音を示す識別子を指定すると、前記指定された優先音及び、前記指定された優先音と次の区間の優先音の間の前記優先音以外の音の自動演奏を進行させる自動演奏処理と、
を実行する処理部を有することを特徴とする電子楽器。
【請求項２】
前記優先音決定処理は、前記曲データからコード構成音を特定し、前記コード構成音を特定できた場合は、前記特定したコード構成音の中で音長が異なる１つの音を前記優先音として決定し、前記コード構成音を特定できなかった場合は、前記区間中の最高音を前記優先音として決定する、ことを特徴とする請求項１に記載の電子楽器。
【請求項３】
前記区間は小節であり、
前記優先音決定処理は、前記小節毎に、強拍のタイミングで、前記曲データから前記優先音を決定する、
ことを特徴とする請求項１又は２に記載の電子楽器。
【請求項４】
前記強拍のタイミングがシンコペーションに対応している場合には、前記シンコペーションの処理により前記強拍のタイミングからずらされたタイミングで、前記曲データから前記優先音を決定する、
ことを特徴とする請求項３に記載の電子楽器。
【請求項５】
前記電子楽器は電子鍵盤楽器であり、前記自動演奏処理は、前記演奏者への前記優先音を示す識別子の表示を鍵盤上の前記優先音に対応する鍵を光らせることにより行う、ことを特徴とする請求項１乃至４の何れかに記載の電子楽器。
【請求項６】
前記自動演奏処理は、前記曲データの自動演奏に合わせて、前記曲データに対応する歌詞データに基づく歌声を前記曲データに対応する音高及び音長で音声合成しながら出力する、ことを特徴とする請求項１乃至５の何れかに記載の電子楽器。
【請求項７】
曲データをそれぞれの区間長で区切った区間ごとに優先音をそれぞれ決定する優先音決定処理と、
前記区間に対応して決定された前記優先音を示す識別子を表示する優先音表示処理と、
演奏者が前記優先音を示す識別子を指定すると、前記指定された優先音及び、前記指定された優先音と次の区間の優先音の間の前記優先音以外の音の自動演奏を進行させる自動演奏処理と、
を実行することを特徴とする自動演奏方法。
【請求項８】
曲データをそれぞれの区間長で区切った区間ごとに優先音をそれぞれ決定するステップと、
前記区間に対応して決定された前記優先音を示す識別子を表示するステップと、
演奏者が前記優先音を示す識別子を指定すると、前記指定された優先音及び、前記指定された優先音と次の区間の優先音の間の前記優先音以外の音の自動演奏を進行させるステップと、
を電子楽器を制御するコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子楽器、電子楽器の制御方法、及びプログラムに関する。
【背景技術】
【０００２】
自動演奏に同期して鍵盤上で演奏すべき鍵を光らせることにより、演奏者が楽曲演奏を上達できるようにした光鍵盤を装備した電子楽器が知られている。
【０００３】
このような楽器演奏レッスンを初心者でも容易に行えるようにするために従来、鍵盤上の鍵を押鍵するタイミングと記録されているメロディの出力タイミングが合っていればどの鍵を押鍵してもメロディが再生されるようにした光鍵盤楽器の技術が知られている。
【０００４】
また、本格的な楽器演奏レッスンを可能とするために従来、押鍵すべきメロディに対応する鍵が全て光り、それらの光る鍵を押鍵するとメロディが再生されるようにした光鍵盤楽器の技術が知られている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、タイミングが合っていればどの鍵を押鍵してもメロディが再生されるようにした光鍵盤楽器の従来技術では、ユーザによっては簡単すぎる可能性がある。
【０００６】
また、押鍵すべきメロディに対応する全ての光る鍵を正しく押鍵したときにメロディが再生されるようにした光鍵盤楽器の従来技術では、ユーザによっては難しすぎる可能性がある。
【０００７】
そこで、本発明は、演奏技術が上達途中であっても音楽的な意味づけを行いながら上手にレッスンを行うことができる電子楽器を提供することを目的とする。
【課題を解決するための手段】
【０００８】
態様の一例では、曲データをそれぞれの区間長で区切った区間ごとに優先音をそれぞれ決定する優先音決定処理と、区間に対応して決定された優先音を示す識別子を表示する優先音表示処理と、演奏者が優先音を示す識別子を指定すると、指定された優先音及び、指定された優先音と次の区間の優先音の間の優先音以外の音の自動演奏を進行させる自動演奏処理と、を実行する処理部を有する。
【発明の効果】
【０００９】
本発明によれば、演奏技術が上達途中であっても音楽的な意味づけを行いながら上手にレッスンを行うことができる電子楽器を提供することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】電子鍵盤楽器の一実施形態の外観例を示す図である。
【図２】電子鍵盤楽器の制御システムの一実施形態のハードウェア構成例を示すブロック図である。
【図３】自動演奏曲データのデータ構成例を示す図である。
【図４】鍵点灯制御データのデータ構成例を示す図である。
【図５】本実施形態における電子楽器の制御処理例を示すメインフローチャートである。
【図６】初期化処理の詳細例を示すフローチャートである。
【図７】スイッチ処理の詳細例を示すフローチャートである。
【図８】テンポ変更処理の詳細例を示すフローチャートである。
【図９】自動演奏曲読込み処理の詳細例を示すフローチャートである。
【図１０】本実施形態の動作説明図である。
【図１１】自動演奏開始処理の詳細例を示すフローチャートである。
【図１２】押鍵／離鍵処理の詳細例を示すフローチャートである。
【図１３】自動演奏割込み処理の詳細例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。本実施形態ではまず、自動演奏の曲データ（以下「自動演奏曲データ」と呼ぶ）を所定の区間長毎に区切って得た区間毎、例えば自動演奏曲データの拍子（４拍子、３拍子等）によって決まる複数拍（例えば４拍、３拍等）毎に決まる小節毎に、自動演奏曲データから優先音が決定される。この優先音は、例えば小節内の強拍（中強拍を含む）のタイミングで自動演奏曲データによりノートオンされる楽音である。また、優先音の候補がコード構成音である場合には、その中で例えばメロディを構成し得る１つの楽音が優先音として決定される。そして、本実施形態では、自動演奏曲データの先頭から順次、決定された優先音が例えば鍵盤上の光る鍵として演奏者に表示されながら、その表示した優先音の鍵を演奏者が押鍵等して演奏する毎にその次の優先音までの自動演奏曲データが自動演奏される。
【００１２】
演奏者が優先音として光る鍵を押鍵等すると、次の優先音の鍵が光ると共に、当該次の優先音の手前まで自動演奏が進行し、そこで演奏者が当該次に光っている優先音の鍵を押鍵等するまで一旦停止する。演奏者が光るタイミングに合わせて当該次に光っている優先音の鍵を押鍵等すれば、更にその次の優先音の鍵が光ってそこまで自動演奏が進行する。従って、演奏者は、音楽的に重要な意味を有する例えば各小節の強拍及び中強拍（４拍子の場合は第１拍目と第２拍目、３拍子の場合は第１泊目）のタイミングで光る鍵を追いながら、無理のないレッスンを行うことが可能となる。
【００１３】
また、本実施形態では、自動演奏曲データの自動演奏に合わせて、例えば自動演奏曲データの一部として電子楽器の演奏データに対応して与えられている歌詞データに基づく歌声が、当該演奏に対応する音高及び音長で音声合成されながら出力される。この場合も、演奏者が優先音として光る鍵を押鍵等すると、次の優先音の鍵が光ると共に、当該次の優先音の手前まで電子楽器の自動演奏が進行しながら、歌声の歌唱も進行する。
【００１４】
これにより、演奏者は、歌声の歌唱も楽しみながら、レッスンを行うことが可能となる。
【００１５】
図１は、電子鍵盤楽器の一実施形態１００の外観例を示す図である。電子鍵盤楽器１００は、演奏操作子としての複数の鍵からなりそれぞれの鍵が光る機能を有する鍵盤１０１と、音量の指定、自動演奏のテンポ設定、自動演奏開始等の各種設定を指示する第１のスイッチパネル１０２と、自動演奏曲の選曲や音色の選択等を行う第２のスイッチパネル１０３と、自動演奏時の歌詞や各種設定情報を表示するＬＣＤ１０４（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶ディスプレイ）等を備える。また、電子鍵盤楽器１００は、特には図示しないが、演奏により生成された楽音を放音するスピーカを裏面部、側面部、又は背面部等に備える。
【００１６】
図２は、図１の電子鍵盤楽器１００の制御システム２００の一実施形態のハードウェア構成例を示す図である。図２において、制御システム２００は、ＣＰＵ（中央演算処理装置）２０１、ＲＯＭ（リードオンリーメモリ）２０２、ＲＡＭ（ランダムアクセスメモリ）２０３、音源ＬＳＩ（大規模集積回路）２０４、音声合成ＬＳＩ２０５、図１の鍵盤１０１、第１のスイッチパネル１０２、及び第２のスイッチパネル１０３が接続されるキースキャナ２０６、図１の鍵盤１０１の各鍵を光らせるための各ＬＥＤ（Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ：発光ダイオード）を発光制御するＬＥＤコントローラ２０７、及び図１のＬＣＤ１０４が接続されるＬＣＤコントローラ２０８が、それぞれシステムバス２０９に接続される構成を備える。また、ＣＰＵ２０１には、自動演奏のシーケンスを制御するためのタイマ２１０が接続される。更に、音源ＬＳＩ２０４及び音声合成ＬＳＩ２０５からそれぞれ出力されるデジタル楽音波形データ及びデジタル歌声音声データは、Ｄ／Ａコンバータ２１１、２１２によりそれぞれアナログ楽音波形信号及びアナログ歌声音声信号に変換される。アナログ楽音波形信号及びアナログ歌声音声信号は、ミキサ２１３で混合され、その混合信号がアンプ２１４で増幅された後に、特には図示しないスピーカ又は出力端子から出力される。
【００１７】
ＣＰＵ２０１は、ＲＡＭ２０３をワークメモリとして使用しながらＲＯＭ２０２に記憶された制御プログラムを実行することにより、図１の電子鍵盤楽器１００の制御動作を実行する。また、ＲＯＭ２０２は、上記制御プログラム及び各種固定データのほか、自動演奏曲データを記憶する。
【００１８】
ＣＰＵ６０１には、本実施形態で使用するタイマ６０４が実装されており、例えば電子鍵盤楽器１００における自動演奏の進行をカウントする。
【００１９】
音源ＬＳＩ２０４は、特には図示しない波形ＲＯＭから楽音波形データを読み出し、Ｄ／Ａコンバータ２１１に出力する。音源ＬＳＩ２０４は、同時に最大２５６ボイスを発振させる能力を有する。
【００２０】
音声合成ＬＳＩ２０５は、ＣＰＵ２０１から、歌詞のテキストデータと音高と音長を与えられると、それに対応する歌声の音声データを合成し、Ｄ／Ａコンバータ２１２に出力する。
【００２１】
キースキャナ２０６は、図１の鍵盤１０１の押鍵／離鍵状態、第１のスイッチパネル１０２、及び第２のスイッチパネル１０３のスイッチ操作状態を定常的に走査し、ＣＰＵ２０１に割り込みを掛けて状態変化を伝える。
【００２２】
ＬＥＤコントローラ２０７は、ＣＰＵ２０１からの指示により鍵盤１０１の鍵を光らせて演奏者の演奏をナビゲートするＩＣ（集積回路）である。
【００２３】
ＬＣＤコントローラ６０９は、ＬＣＤ５０５の表示状態を制御するＩＣである。
【００２４】
図１及び図２の構成例を有する本実施形態の動作について、以下に詳細に説明する。図３は、図２のＲＯＭ２０２からＲＡＭ２０３に読み込まれる自動演奏曲データのデータ構成例を示す図である。このデータ構成例は、ＭＩＤＩ（Ｍｕｓｉｃａｌ  Ｉｎｓｔｒｕｍｅｎｔ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ）用ファイルフォーマットの一つであるスタンダードＭＩＤＩファイルのフォーマットに準拠している。この自動演奏曲データは、チャンクと呼ばれるデータブロックから構成される。具体的には、自動演奏曲データは、ファイルの先頭にあるヘッダチャンクと、それに続く右手パート用の演奏データ及び歌詞データが格納されるトラックチャンク１と、左手パート用の演奏データ及び歌詞データが格納されるトラックチャンク２とから構成される。
【００２５】
ヘッダチャンクは、ＣｈｕｎｋＩＤ、ＣｈｕｎｋＳｉｚｅ、ＦｏｒｍａｔＴｙｐｅ、ＮｕｍｂｅｒＯｆＴｒａｃｋ、及びＴｉｍｅＤｉｖｉｓｉｏｎの４つの値からなる。ＣｈｕｎｋＩＤは、ヘッダチャンクであることを示す"MThd"という半角４文字に対応する４バイトのアスキーコード「4D 54 68 64」（数字は１６進数）である。ＣｈｕｎｋＳｉｚｅは、ヘッダチャンクにおいて、ＣｈｕｎｋＩＤとＣｈｕｎｋＳｉｚｅを除く、ＦｏｒｍａｔＴｙｐｅ、ＮｕｍｂｅｒＯｆＴｒａｃｋ、及びＴｉｍｅＤｉｖｉｓｉｏｎの部分のデータ長を示す４バイトデータであり、データ長は６バイト：「00 00 00 06」（数字は１６進数）に固定されている。ＦｏｒｍａｔＴｙｐｅは、本実施形態の場合、複数トラックを使用するフォーマット１を意味する２バイトのデータ「00 01」（数字は１６進数）である。ＮｕｍｂｅｒＯｆＴｒａｃｋは、本実施形態の場合、右手パートと左手パートに対応する２トラックを使用することを示す２バイトのデータ「00 02」（数字は１６進数）である。ＴｉｍｅＤｉｖｉｓｉｏｎは、４分音符あたりの分解能を示すタイムベース値を示すデータであり、本実施形態の場合、１０進法で４８０を示す２バイトのデータ「01 E0」（数字は１６進数）である。
【００２６】
トラックチャンク１、２はそれぞれ、ＣｈｕｎｋＩＤ、ＣｈｕｎｋＳｉｚｅと、ＤｅｌｔａＴｉｍｅ［ｉ］及びＥｖｅｎｔ［ｉ］からなる演奏データ組（０≦ｉ≦Ｌ：トラックチャンク１／右手パートの場合、０≦ｉ≦Ｍ：トラックチャンク２／左手パートの場合）とからなる。ＣｈｕｎｋＩＤは、トラックチャンクであることを示す"MTrk"という半角４文字に対応する４バイトのアスキーコード「4D 54 72 6B」（数字は１６進数）である。ＣｈｕｎｋＳｉｚｅは、各トラックチャンクにおいて、ＣｈｕｎｋＩＤとＣｈｕｎｋＳｉｚｅを除く部分のデータ長を示す４バイトデータである。ＤｅｌｔａＴｉｍｅ［ｉ］は、その直前のＥｖｅｎｔ［ｉ−１］の実行時刻からの待ち時間（相対時間）を示す１〜４バイトの可変長データである。Ｅｖｅｎｔ［ｉ］は、電子鍵盤楽器１００に対して演奏を指示するコマンドであり、ノートオン、ノートオフ、音色変更などを指示するＭＩＤＩイベントと、歌詞データ又は拍子が指示されるメタイベントとがある。各演奏データ組ＤｅｌｔａＴｉｍｅ［ｉ］及びＥｖｅｎｔ［ｉ］において、その直前のＥｖｅｎｔ［ｉ−１］の実行時刻からＤｅｌｔａＴｉｍｅ［ｉ］だけ待った上でＥｖｅｎｔ［ｉ］が実行されることにより、自動演奏が実現される。
【００２７】
図４は、図２のＲＡＭ２０３上に生成される鍵点灯制御データのデータ構成例を示す図である。鍵点灯制御データは、図１の鍵盤１０１上の何れかの鍵を光らせるための制御データであり、１曲の自動演奏曲に対してＮ個（Ｎは１以上の自然数）のデータ組ＬｉｇｈｔＮｏｔｅ［０］〜ＬｉｇｈｔＮｏｔｅ［Ｎ−１］からなる。１つの鍵点灯制御データ組ＬｉｇｈｔＮｏｔｅ［ｉ］（０≦ｉ≦Ｎ−１）は、ＬｉｇｈｔＯｎＴｉｍｅ及びＬｉｇｈｔＯｎＫｅｙの２つの値からなる。ＬｉｇｈｔＯｎＴｉｍｅは、鍵が発光される自動演奏開始時を基準とする経過時刻を示すデータである。ＬｉｇｈｔＯｎＫｅｙは、発光される鍵のキーナンバーを示すデータである。
【００２８】
図５は、本実施形態における電子楽器の制御処理例を示すメインフローチャートである。この制御処理は例えば、図２のＣＰＵ２０１が、ＲＯＭ２０２からＲＡＭ２０３にロードされた制御処理プログラムを実行する動作である。
【００２９】
ＣＰＵ２０１は、まず初期化処理を実行した後（ステップＳ５０１）、ステップＳ５０２からＳ５０７の一連の処理を繰り返し実行する。
【００３０】
この繰返し処理において、ＣＰＵ２０１はまず、スイッチ処理を実行する（ステップＳ５０２）。ここでは、ＣＰＵ２０１は、図２のキースキャナ２０６からの割込みに基づいて、図１の第１のスイッチパネル１０２又は第２のスイッチパネル１０３のスイッチ操作に対応する処理を実行する。
【００３１】
次に、ＣＰＵ２０１は、図２のキー・スキャナ２０７からの割込みに基づいて図１の鍵盤１０１の何れかの鍵が操作されたか否かを判定し（ステップＳ５０３）、その判定がＹＥＳならば、押鍵／離鍵処理を実行する（ステップＳ５０６）。ここでは、ＣＰＵ２０１は、演奏者による何れかの鍵の押鍵又は離鍵の操作に応じて、図２の音源ＬＳＩ２０４に対して、発音開始又は発音停止の指示を出力する。また、ＣＰＵ２０１は、演奏者により押鍵された鍵が現在光っている鍵と一致するか否かの判定処理及びそれに伴う制御処理を実行する。ステップＳ５０３の判定がＮＯならば、ＣＰＵ２０１は、ステップＳ５０６の処理はスキップする。
【００３２】
そして、ＣＰＵ２０１は、音源ＬＳＩ２０４において発音中の楽音のエンベロープ制御等のその他定常サービス処理を実行する（ステップＳ５０７）。
【００３３】
図６は、図５のステップＳ５０１の初期化処理の詳細例を示すフローチャートである。ＣＰＵ２０１は、本実施形態に特に関連する処理として、ＴｉｃｋＴｉｍｅの初期化処理を実行する。本実施形態において、自動演奏は、ＴｉｃｋＴｉｍｅという時間を単位として進行する。図３の自動演奏曲データのヘッダチャンク内のＴｉｍｅＤｉｖｉｓｉｏｎ値として指定されるタイムベース値は４分音符の分解能を示しており、この値が例えば４８０ならば、４分音符は４８０ＴｉｃｋＴｉｍｅの時間長を有する。また、図３の自動演奏曲データのトラックチャンク内の待ち時間ＤｅｌｔａＴｉｍｅ［ｉ］値も、ＴｉｃｋＴｉｍｅの時間単位によりカウントされる。ここで、１ＴｉｃｋＴｉｍｅが実際に何秒になるかは、自動演奏曲データに対して指定されるテンポによって異なる。今、テンポ値をＴｅｍｐｏ［ビート／分］、上記タイムベース値をＴｉｍｅＤｉｖｉｓｉｏｎとすれば、ＴｉｃｋＴｉｍｅの秒数は、次式により算出される。
【００３４】
ＴｉｃｋＴｉｍｅ［秒］＝６０／Ｔｅｍｐｏ／ＴｉｍｅＤｉｖｉｓｉｏｎ  （１）
【００３５】
そこで、図６のフローチャートで例示される初期化処理において、ＣＰＵ２０１はまず、上記（１）式に対応する演算処理により、ＴｉｃｋＴｉｍｅ［秒］を算出する（ステップＳ６０１）。なお、テンポ値Ｔｅｍｐｏは、初期状態では図２のＲＯＭ２０２に所定の値、例えば６０［ビート／秒］が記憶されているとする。或いは、不揮発性メモリに、前回終了時のテンポ値が記憶されていてもよい。
【００３６】
次に、ＣＰＵ２０１は、図２のタイマ２１０に対して、ステップＳ６０１で算出したＴｉｃｋＴｉｍｅ［秒］によるタイマ割込みを設定する（ステップＳ６０２）。この結果、タイマ２１０において上記ＴｉｃｋＴｉｍｅ［秒］が経過する毎に、ＣＰＵ２０１に対して自動演奏のための割込み（以下「自動演奏割込み」と記載）が発生する。従って、この自動演奏割込みに基づいてＣＰＵ２０１で実行される自動演奏割込み処理（後述する図１３）では、１ＴｉｃｋＴｉｍｅ毎に自動演奏を進行させる制御処理が実行されることになる。
【００３７】
続いて、ＣＰＵ２０１は、図２のＲＡＭ２０３の初期化等のその他初期化処理を実行する（ステップＳ６０３）。その後、ＣＰＵ２０１は、図６のフローチャートで例示される図５のステップＳ５０１の初期化処理を終了する。
【００３８】
図７は、図５のステップＳ５０２のスイッチ処理の詳細例を示すフローチャートである。
【００３９】
ＣＰＵ２０１はまず、図１の第１のスイッチパネル１０２内のテンポ変更スイッチにより自動演奏のテンポが変更されたか否かを判定する（ステップＳ７０１）。その判定がＹＥＳならば、ＣＰＵ２０１は、テンポ変更処理を実行する（ステップＳ７０２）。この処理の詳細は、図８を用いて後述する。ステップＳ７０１の判定がＮＯならば、ＣＰＵ２０１は、ステップＳ７０２の処理はスキップする。
【００４０】
次に、ＣＰＵ２０１は、図１の第２のスイッチパネル１０３において何れかの自動演奏曲が選曲されたか否かを判定する（ステップＳ７０３）。その判定がＹＥＳならば、ＣＰＵ２０１は、自動演奏曲読込み処理を実行する（ステップＳ７０４）。この処理の詳細は、図９及び図１０を用いて後述する。ステップＳ７０３の判定がＮＯならば、ＣＰＵ２０１は、ステップＳ７０４の処理はスキップする。
【００４１】
続いて、ＣＰＵ２０１は、図１の第１のスイッチパネル１０２において自動演奏開始スイッチが操作されたか否かを判定する（ステップＳ７０５）。その判定がＹＥＳならば、ＣＰＵ２０１は、自動演奏開始処理を実行する（ステップＳ７０６）。この処理の詳細は、図１１を用いて後述する。ステップＳ７０５の判定がＮＯならば、ＣＰＵ２０１は、ステップＳ７０６の処理はスキップする。
【００４２】
最後に、ＣＰＵ２０１は、図１の第１のスイッチパネル１０２又は第２のスイッチパネル１０３においてその他のスイッチが操作されたか否かを判定し、各スイッチ操作に対応する処理を実行する（ステップＳ７０７）。その後、ＣＰＵ２０１は、図７のフローチャートで例示される図５のステップＳ５０２のスイッチ処理を終了する。
【００４３】
図８は、図７のステップＳ７０２のテンポ変更処理の詳細例を示すフローチャートである。前述したように、テンポ値が変更されるとＴｉｃｋＴｉｍｅ［秒］も変更になる。図８のフローチャートでは、ＣＰＵ２０１は、このＴｉｃｋＴｉｍｅ［秒］の変更に関する制御処理を実行する。
【００４４】
まず、ＣＰＵ２０１は、図５のステップＳ５０１の初期化処理で実行された図６のステップＳ６０１の場合と同様にして、前述した（１）式に対応する演算処理により、ＴｉｃｋＴｉｍｅ［秒］を算出する（ステップＳ８０１）。なお、テンポ値Ｔｅｍｐｏは、図１の第１のスイッチパネル１０２内のテンポ変更スイッチにより変更された後の値がＲＡＭ２０３等に記憶されているものとする。
【００４５】
次に、ＣＰＵ２０１は、図５のステップＳ５０１の初期化処理で実行された図６のステップＳ６０２の場合と同様にして、図２のタイマ２１０に対して、ステップＳ８０１で算出したＴｉｃｋＴｉｍｅ［秒］によるタイマ割込みを設定する（ステップＳ８０２）。その後、ＣＰＵ２０１は、図８のフローチャートで例示される図７のステップＳ７０２のテンポ変更処理を終了する。
【００４６】
図９は、図７のステップＳ７０４の自動演奏曲読込み処理の詳細例を示すフローチャートである。ここでは、図１の第２のスイッチパネル１０３により選曲された自動演奏曲をＲＯＭ２０２からＲＡＭ２０３に読み込む処理と、図３の鍵点灯制御データを生成する処理が実行される。
【００４７】
まずＣＰＵ２０１は、図１の第２のスイッチパネル１０３により選曲された自動演奏曲を、図２のデータフォーマットで、ＲＯＭ２０２からＲＡＭ２０３に読み込む（ステップＳ９０１）。
【００４８】
次に、ＣＰＵ２０１は、ステップＳ９０１でＲＡＭ２０３に読み込んだ自動演奏曲データのトラックチャンク１のＥｖｅｎｔ［ｉ］（１≦ｉ≦Ｌ−１）中の全ノートオンイベントについて、以下の処理を実行する。今、１つのノートオンイベントをＥｖｅｎｔ［ｊ］（ｊは１からＬ−１の範囲の何れか）としたとき、ＣＰＵ２０１は、曲先頭からそのノートオンイベントＥｖｅｎｔ［ｊ］までの全イベントの待ち時間ＤｅｌｔａＴｉｍｅ［０］〜ＤｅｌｔａＴｉｍｅ［ｊ］までを累算することにより、ＴｉｃｋＴｉｍｅを単位とするそのノートオンＥｖｅｎｔ［ｊ］のイベント発生時刻を算出する。ＣＰＵ２０１は、この処理を、全てのノートオンイベントについて実行し、各イベント発生時刻をＲＡＭ２０３に記憶する（以上、ステップＳ９０２）。なお、本実施形態では、右手パートの鍵を光らせてナビゲートを行うため、トラックチャンク１のみについて自動演奏曲読込み処理を実行するものとする。勿論、トラックチャンク２が選択されてもよい。
【００４９】
次に、ＣＰＵ２０１は、現在指定されているテンポ値Ｔｅｍｐｏと拍子とに基づいて、自動演奏曲の先頭から各小節区間と小節内の拍（強拍／弱拍）を設定し、その情報をＲＡＭ２０３に記憶する（ステップＳ９０３）。ここで、テンポ値Ｔｅｍｐｏは、初期設定値又は図１の第１のスイッチパネル１０２内のテンポスイッチにより設定された値である。また、拍子は、図３の自動演奏曲データのトラックチャンク１中の何れかのＥｖｅｎｔ［ｉ］として設定されるメタイベントにより指定される。曲の途中で拍子が変更される場合もある。前述したように、タイムベース値が示すＴｉｃｋＴｉｍｅ時間が４分音符のＴｉｃｋＴｉｍｅを単位とする時間長を決定し、４拍子が設定されていれば、４分音符４個で１小節になり、更に１ＴｉｃｋＴｉｍｅ［秒］は前述した（１）式により算出できる。また、４拍子の場合、１小節内の第１拍目と第３拍目が強拍（第３拍目は厳密には中強拍だがこれも便宜上強拍とする）、第２拍目と第４拍目が弱拍となる。３拍子の場合には、１小節内の第１拍目が強拍、第２拍目と第３泊目が弱拍となる。２拍子の場合には、１小節内の第１拍目が強拍、第２拍目が弱拍となる。図１０のｂ０からｂ１９は、２／４拍子の童謡「どんぐりころころ」（作詞：青木存義、作曲：梁田貞或）の自動演奏曲の一部における各小節の拍（強拍又は弱拍）期間を例示するものである。ステップＳ９０３において、ＣＰＵ２０１は、上述の各情報から、１つの自動演奏曲の各小節の各拍のＴｉｃｋＴｉｍｅを単位とする期間（時間範囲）を算出する。例えば、第１小節の第１拍目の強拍期間ｂ０は、ＴｉｃｋＴｉｍｅを単位として、０から４７９の時間範囲である。また、第１小節の第２拍目の弱拍期間ｂ１は、４８０から９５９の時間範囲である。以下同様に、最終小節の第４拍目までの各拍の期間が算出される。
【００５０】
次に、ＣＰＵ２０１は、ステップＳ９０３で算出された各拍期間を参照しながら、ステップＳ９０４で第１小節の第１番目の強拍期間を指定した後、ステップＳ９１５で強拍位置を順次インクリメントしながら、ステップＳ９１４で最終小節の最後の強拍になったと判定されるまで、各強拍毎に以下のステップＳ９０５からＳ９１３の一連の処理を繰り返し実行する。
【００５１】
上記繰返し処理において、ＣＰＵ２０１はまず、ステップＳ９０２でＲＡＭ２０３に算出されているノートオンイベントのうち、イベント発生時刻が現在指定されている強拍期間の先頭（又は先頭から所定ＴｉｃｋＴｉｍｅ内）でノートオンするノートオンイベントを、優先音候補として抽出する（ステップＳ９０５）。
【００５２】
次に、ＣＰＵ２０１は、ステップＳ９０５で優先音候補が抽出できたか否かを判定する（ステップＳ９０６）。
【００５３】
ステップＳ９０５で優先音候補が抽出できなかったと判定された（ステップＳ９０６の判定がＮＯである）場合、ＣＰＵ２０１は、シンコペーションが発生していると判定し、直前の弱拍期間に位置する最終音を優先音候補として抽出する（ステップＳ９０７）。
【００５４】
ステップＳ９０５で優先音候補が抽出できたと判定された（ステップＳ９０６の判定がＹＥＳである）場合、ＣＰＵ２０１は、ステップＳ９０７の処理はスキップする。
【００５５】
次に、ＣＰＵ２０１は、抽出された優先音候補が単音であるか否かを判定する（ステップＳ９０８）。
【００５６】
抽出された優先音候補が単音であると判定された（ステップＳ９０８の判定がＹＥＳである）場合、ＣＰＵ２０１は、抽出されている単音の優先音候補を優先音として採用する（ステップＳ９０９）。図１０の例では、強拍期間ｂ０の先頭のＧ４音、強拍期間ｂ２の先頭のＧ４音、強拍期間ｂ４の先頭のＧ４音等の「○」印で囲まれた音に対応するノートオンイベントが、ステップＳ９０９で優先音として採用される。
【００５７】
抽出された優先音候補が単音ではないと判定された（ステップＳ９０８の判定がＮＯである）場合、ＣＰＵ２０１は更に、優先音候補はコード構成音であるか否かを判定する（ステップＳ９１０）。
【００５８】
優先音候補がコード構成音であると判定された（ステップＳ９１０の判定がＹＥＳである）場合、ＣＰＵ２０１は、コード構成音の主音を優先音として採用する（ステップＳ９１１）。
【００５９】
優先音候補がコード構成音ではないと判定された（ステップＳ９１０の判定がＮＯである）場合、ＣＰＵ２０１は、複数の優先音候補のうちの音高が最高の音（以下「最高音」と記載）を優先音として採用する（ステップＳ９１２）。図１０の例では、強拍期間ｂ６のＧ３音、強拍期間ｂ８のＥ３音、強拍期間ｂ１０のＣ４音、強拍期間ｂ１２のＧ３音、強拍期間ｂ１４のＧ３音、強拍期間ｂ１６のＧ３音、強拍期間ｂ１８のＡ３音等の「○」印で囲まれた音に対応するノートオンイベントが、ステップＳ９１２で優先音として採用される。
【００６０】
ステップＳ９０９、Ｓ９１１又はＳ９１２の処理の後、ＣＰＵ２０１は、ＲＡＭ２０３に記憶される図４のデータ構成例を有する鍵点灯制御データの末尾に鍵点灯制御データ組ＬｉｇｈｔＮｏｔｅ［ｉ］のエントリを追加する。そして、ＣＰＵ２０１は、上記エントリのＬｉｇｈｔＯｎＴｉｍｅ値として、ステップＳ９０９、Ｓ９１１又はＳ９１２で採用された優先音のノートオンイベントに対してステップＳ９０２で計算されＲＡＭ２０３に記憶されているイベント発生時刻を設定する。また、ＣＰＵ２０１は、上記エントリのＬｉｇｈｔＯｎＫｅｙ値として、ステップＳ９０９、Ｓ９１１又はＳ９１２で採用された優先音のノートオンイベントに設定されているキーナンバーを設定する（以上、ステップＳ９１３）。
【００６１】
その後、ＣＰＵ２０１は、最終小節の最後の強拍まで処理が完了したか否かを判定する（ステップＳ９１４）。
【００６２】
ステップＳ９１４の判定がＮＯならば、ＣＰＵ２０１は、次の強拍期間を指定した後（ステップＳ９１５）、ステップＳ９０５の処理に戻る。
【００６３】
ステップＳ９１４の判定がＹＥＳになったならば、ＣＰＵ２０１は、図９のフローチャートで例示される図７のステップＳ７０４の自動演奏曲読込み処理を終了する。
【００６４】
以上の図９のフローチャートで例示される自動演奏曲読込み処理により、ＲＡＭ２０３に、図３のデータフォーマット例を有する自動演奏曲データが展開されると共に、図４のデータフォーマット例を有する鍵点灯制御データが生成される。図１０の自動演奏曲の例においては、各拍位置で「○」印で囲まれた音に対応するノートオンイベントに対応する鍵点灯制御データが生成される。
【００６５】
図１１は、図７のステップＳ７０６の自動演奏開始処理の詳細例を示すフローチャートである。
【００６６】
ＣＰＵ２０１はまず、図４に例示される鍵点灯制御データ組ＬｉｇｈｔＮｏｔｅ［ｉ］（１≦ｉ≦Ｎ−１）の夫々ｉを指定するためのＲＡＭ２０３上の変数ＬｉｇｈｔＯｎＩｎｄｅｘの値を０に初期設定する（ステップＳ１１０１）。これにより、図４の例では、初期状態としてまず、鍵点灯制御データ組ＬｉｇｈｔＮｏｔｅ［ＬｉｇｈｔＯｎＩｎｄｅｘ］＝ＬｉｇｈｔＮｏｔｅ［０］が参照される。
【００６７】
次に、ＣＰＵ２０１は、図２のＬＥＤコントローラ２０７から鍵盤１０１を制御して、ＬｉｇｈｔＯｎＩｎｄｅｘ＝０が示す図４の先頭の鍵点灯制御データ組ＬｉｇｈｔＮｏｔｅ［０］におけるＬｉｇｈｔＯｎＫｅｙ値（＝ＬｉｇｈｔＮｏｔｅ［０］．ＬｉｇｈｔＯｎＫｅｙ）に対応するキーナンバーの鍵の下に配置されているＬＥＤを点灯させる（ステップＳ１１０２）。
【００６８】
次に、ＣＰＵ２０１は、自動演奏の進行において、ＴｉｃｋＴｉｍｅを単位として、直前のイベントの発生時刻からの相対時間をカウントするためのＲＡＭ２０３上の変数ＤｅｌｔａＴｉｍｅの値を０に初期設定する（ステップＳ１１０３）。
【００６９】
続いて、ＣＰＵ２０１は、自動演奏の進行において、ＴｉｃｋＴｉｍｅを単位として、曲の先頭からの経過時刻をカウントするためのＲＡＭ２０３上の変数ＡｕｔｏＴｉｍｅを０に初期設定する（ステップＳ１１０４）。
【００７０】
更に、ＣＰＵ２０１は、図３に例示される自動演奏曲データのトラックチャンク１内の演奏データ組ＤｅｌｔａＴｉｍｅ［ｉ］及びＥｖｅｎｔ［ｉ］（１≦ｉ≦Ｌ−１）の夫々ｉを指定するためのＲＡＭ２０３上の変数ＡｕｔｏＩｎｄｅｘの値を０に初期設定する（ステップＳ１１０５）。これにより、図３の例では、初期状態としてまず、トラックチャンク１内の先頭の演奏データ組ＤｅｌｔａＴｉｍｅ［０］及びＥｖｅｎｔ［０］が参照される。
【００７１】
最後に、ＣＰＵ２０１は、自動演奏を停止させることを指示するＲＡＭ２０３上の変数ＡｕｔｏＳｔｏｐの初期値を１（停止）に設定する（ステップＳ１１０６）。その後、ＣＰＵ２０１は、図１１のフローチャートで例示される図７のステップＳ７０６の自動演奏開始処理を終了する。
【００７２】
図１２は、図５のステップＳ５０６の押鍵／離鍵処理の詳細例を示すフローチャートである。
【００７３】
まずＣＰＵ２０１は、キースキャナ２０６からの割込みにより発生した鍵操作が押鍵であるか否かを判定する（ステップＳ１２０１）。
【００７４】
鍵操作が押鍵であると判定された（ステップＳ１２０１の判定がＹＥＳである）場合には、ＣＰＵ２０１は、図２の音源ＬＳＩ２０４に対して押鍵処理を実行する（ステップＳ１２０２）。この処理は通常の自動演奏の処理であるためその詳細は省略するが、キースキャナ２０６から通知された押鍵のキーナンバー及びベロシティを指定したノートオン命令を、音源ＬＳＩ２０４に発行する。
【００７５】
次に、ＣＰＵ２０１は、キースキャナ２０６から通知された押鍵のキーナンバーが、ＲＡＭ２０３に記憶されているＬｉｇｈｔＯｎＩｎｄｅｘ値が示す鍵点灯制御データ組ＬｉｇｈｔＮｏｔｅ［ＬｉｇｈｔＯｎＩｎｄｅｘ］内のＬｉｇｈｔＯｎＫｅｙ値（＝ＬｉｇｈｔＮｏｔｅ［ＬｉｇｈｔＯｎＩｎｄｅｘ］．ＬｉｇｈｔＯｎＫｅｙ）に等しいか否かを判定する（ステップＳ１２０３）。
【００７６】
ステップＳ１２０３の判定がＮＯならば、ＣＰＵ２０１は、図１２のフローチャートで例示される図５のステップＳ５０６の押鍵／離鍵処理を終了する）。
【００７７】
ステップＳ１２０３の判定がＹＥＳならば、ＣＰＵ２０１は、ＬＥＤコントローラ２０７から鍵盤１０１を制御して、ＬｉｇｈｔＮｏｔｅ［ＬｉｇｈｔＯｎＩｎｄｅｘ］．ＬｉｇｈｔＯｎＫｅｙに対応するキーナンバーの鍵の下に配置されているＬＥＤを消灯させる（ステップＳ１２０４）。
【００７８】
次に、ＣＰＵ２０１は、鍵点灯制御データを参照するＬｉｇｈｔＯｎＩｎｄｅｘ値を＋１インクリメントする（ステップＳ１２０５）。
【００７９】
更に、ＣＰＵ２０１は、ＡｕｔｏＳｔｏｐ値を０にリセットして、演奏者が光っている鍵を押鍵したことにより自動演奏の停止状態を解除する（ステップＳ１２０６）。
【００８０】
その後、ＣＰＵ２０１は、自動演奏割込みを発生させて自動演奏割込み処理（図１３）を開始させる。自動演奏割込み処理の終了後に、ＣＰＵ２０１は、図１２のフローチャートで例示される図５のステップＳ５０６の押鍵／離鍵処理を終了する。
【００８１】
一方、鍵操作が離鍵であると判定された（ステップＳ１２０１の判定がＮＯである）場合には、ＣＰＵ２０１は、図２の音源ＬＳＩ２０４に対して離鍵処理を実行する（ステップＳ１２０８）。この処理は通常の自動演奏の処理であるためその詳細は省略するが、キースキャナ２０６から通知された離鍵のキーナンバー及びベロシティを指定したノートオフ命令を、音源ＬＳＩ２０４に発行する。
【００８２】
図１３は、上述の図１２のステップＳ１２０７からの割込み、又は図２のタイマ２１０においてＴｉｃｋＴｉｍｅ［秒］毎に発生する割込み（図６のステップＳ６０２又は図８のステップＳ８０２を参照）に基づいて実行される自動演奏割込み処理の詳細例を示すフローチャートである。以下の処理は、図３に例示される自動演奏曲データのトラックチャンク１の演奏データ組に対して実行される。図１０の例では、上パート（右手パート）の楽音群に対する処理である。
【００８３】
まずＣＰＵ２０１は、ＡｕｔｏＳｔｏｐ値が０であるか否か、即ち自動演奏の停止が指示されてない（進行が指示されている）か否かを判定する（ステップＳ１３０１）。
【００８４】
自動演奏の停止が指示されていると判定された（ステップＳ１３０１の判定がＮＯである）場合には、ＣＰＵ２０１は、自動演奏の進行は行わずに図１３のフローチャートで例示される自動演奏割込み処理をそのまま終了する。
【００８５】
自動演奏の停止が指示されてない（進行が指示されている）と判定された（ステップＳ１３０１の判定がＹＥＳである）場合には、ＣＰＵ２０１はまず、前回のイベントの発生時刻からの相対時刻を示すＤｅｌｔａＴｉｍｅ値が、ＡｕｔｏＩｎｄｅｘ値が示すこれから実行しようとする演奏データ組の待ち時間ＤｅｌｔａＴｉｍｅ［ＡｕｔｏＩｎｄｅｘ］に一致したか否かを判定する（ステップＳ１３０２）。
【００８６】
ステップＳ１３０２の判定がＮＯならば、ＣＰＵ２０１は、前回のイベントの発生時刻からの相対時刻を示すＤｅｌｔａＴｉｍｅ値を＋１インクリメントさせて、今回の割込みに対応する１ＴｉｃｋＴｉｍｅ単位分だけ時刻を進行させる（ステップＳ１３０３）。その後、ＣＰＵ２０１は、後述するステップＳ１３１０に移行する。
【００８７】
ステップＳ１３０２の判定がＹＥＳになると、ＣＰＵ２０１は、ＡｕｔｏＩｎｄｅｘ値が示す演奏データ組のイベントＥｖｅｎｔ［ＡｕｔｏＩｎｄｅｘ］を実行する（ステップＳ１３０４）。
【００８８】
ステップＳ１３０４において実行されるイベントＥｖｅｎｔ［ＡｕｔｏＩｎｄｅｘ］が、例えばノートオンイベントであれば、そのノートオンイベントにより指定されるキーナンバー及びベロシティにより、図２の音源ＬＳＩ２０４に対して楽音の発音命令が発行される。一方、イベントＥｖｅｎｔ［ＡｕｔｏＩｎｄｅｘ］が、例えばノートオフイベントであれば、そのノートオフイベントにより指定されるキーナンバー及びベロシティにより、図２の音源ＬＳＩ２０４に対して楽音の消音命令が発行される。
【００８９】
更に、イベントＥｖｅｎｔ［ＡｕｔｏＩｎｄｅｘ］が、例えば歌詞を指定するメタイベントであれば、その歌詞のテキストデータと、その直前に指定されているノートオンイベントのキーナンバーに対応するピッチとにより、図２の音声合成ＬＳＩ２０５に対して音声の発生命令が発行される。また、そのノートオンイベントに対応するノートオフイベントが実行された時点で、図２の音声合成ＬＳＩ２０５に対して発音させていた音声の消音命令が発行される。これにより、図１０の例では、楽譜の上に表示されている歌詞のテキストデータに対応する音声が発音される。
【００９０】
続いて、ＣＰＵ２０１は、演奏データ組を参照するためのＡｕｔｏＩｎｄｅｘ値を＋１インクリメントする（ステップＳ１３０５）。
【００９１】
また、ＣＰＵ２０１は、今回実行したイベントの発生時刻からの相対時刻を示すＤｅｌｔａＴｉｍｅ値を０にリセットする（ステップＳ１３０６）。
【００９２】
そして、ＣＰＵ２０１は、ＡｕｔｏＩｎｄｅｘ値が示す次に実行される演奏データ組の待ち時間ＤｅｌｔａＴｉｍｅ［ＡｕｔｏＩｎｄｅｘ］が０であるか否か、即ち、今回のイベントと同時に実行されるイベントであるか否かを判定する（ステップＳ１３０７）。
【００９３】
ステップＳ１３０７の判定がＮＯならば、ＣＰＵ２０１は、後述するステップＳ１３１０に移行する。
【００９４】
ステップＳ１３０７の判定がＹＥＳならば、ＣＰＵ２０１は、ＡｕｔｏＩｎｄｅｘ値が示す次に実行される演奏データ組のイベントＥｖｅｎｔ［ＡｕｔｏＩｎｄｅｘ］がノートオンイベントであって、かつ自動演奏開始時からの現在の経過時刻を示すＡｕｔｏＴｉｍｅ値が、ＬｉｇｈｔＯｎＩｎｄｅｘ値が示す鍵点灯制御データ組ＬｉｇｈｔＮｏｔｅ［ＬｉｇｈｔＯｎＩｎｄｅｘ］のＬｉｇｈｔＯｎＴｉｍｅ値（＝ＬｉｇｈｔＮｏｔｅ［ＬｉｇｈｔＯｎＩｎｄｅｘ］．ＬｉｇｈｔＯｎＴｉｍｅ）に到達したか否かを判定する（ステップＳ１３０８）。
【００９５】
ステップＳ１３０８の判定がＮＯならば、ＣＰＵ２０１は、ステップＳ１３０４に戻って、ＡｕｔｏＩｎｄｅｘ値が示す次に実行される演奏データ組のイベントＥｖｅｎｔ［ＡｕｔｏＩｎｄｅｘ］を今回実行されたイベントと同時に実行する。ＣＰＵ２０１は、今回同時に実行される回数分だけ、ステップＳ１３０４からＳ１３０８の処理を繰り返し実行する。以上の処理シーケンスは、例えば和音などのように複数のノートオンイベントが同時タイミングで発音されるような場合に実行される。
【００９６】
ステップＳ１３０８の判定がＹＥＳになった場合には、演奏者が次の光る鍵を押鍵するまで自動演奏を停止させるために、ＣＰＵ２０１は、ＡｕｔｏＳｔｏｐ値を１にセットする（ステップＳ１３０９）。その後、ＣＰＵ２０１は、図１３のフローチャートで示される自動演奏割込み処理を終了する。この処理シーケンスは、図１０の例のｂ２、ｂ４、ｂ６、ｂ１０、ｂ１４、及びｂ１８の各優先音のノートオンイベントが実行される直前に発音されていた音を消音させるノートオフイベントが実行された後に実行される。
【００９７】
前述したステップＳ１３０３又はＳ１３０７の処理の後、ＣＰＵ２０１は、次回の自動演奏処理のための準備として、自動演奏開始時からの経過時刻を示すＡｕｔｏＴｉｍｅ値を＋１インクリメントさせて、今回の割込みに対応する１ＴｉｃｋＴｉｍｅ単位分だけ時刻を進行させる（ステップＳ１３１０）。
【００９８】
続いて、ＣＰＵ２０１は、上記ＡｕｔｏＴｉｍｅ値に所定のオフセット値ＬｉｇｈｔＯｎＯｆｆｓｅｔを加算した値が、ＬｉｇｈｔＯｎＩｎｄｅｘ値が示す次回の鍵点灯制御データ組ＬｉｇｈｔＮｏｔｅ［ＬｉｇｈｔＯｎＩｎｄｅｘ］のＬｉｇｈｔＯｎＴｉｍｅ値（＝ＬｉｇｈｔＮｏｔｅ［ＬｉｇｈｔＯｎＩｎｄｅｘ］．ＬｉｇｈｔＯｎＴｉｍｅ）に到達したか否かを判定する（ステップＳ１３１１）。即ち、次回点灯されるべき鍵の点灯時刻から一定時間内に近づいたか否かが判定される。
【００９９】
ステップＳ１３１１の判定がＹＥＳになったら、ＣＰＵ２０１は、図２のＬＥＤコントローラ２０７から鍵盤１０１を制御して、ＬｉｇｈｔＯｎＩｎｄｅｘ値が示す図４の鍵点灯制御データ組ＬｉｇｈｔＮｏｔｅ［ＬｉｇｈｔＯｎＩｎｄｅｘ］におけるＬｉｇｈｔＯｎＫｅｙ値に対応するキーナンバーの鍵の下に配置されているＬＥＤを点灯させる（ステップＳ１３１２）。
【０１００】
ステップＳ１３１１の判定がＮＯならば、ＣＰＵ２０１は、ステップＳ１３１２の処理はスキップする。
【０１０１】
最後に、ＣＰＵ２０１は、ステップＳ１３０８の場合と同様に、ＡｕｔｏＩｎｄｅｘ値が示す次に実行される演奏データ組のイベントＥｖｅｎｔ［ＡｕｔｏＩｎｄｅｘ］がノートオンイベントであって、かつ自動演奏開始時からの次の経過時刻を示すＡｕｔｏＴｉｍｅ値が、ＬｉｇｈｔＯｎＩｎｄｅｘ値が示す鍵点灯制御データ組ＬｉｇｈｔＮｏｔｅ［ＬｉｇｈｔＯｎＩｎｄｅｘ］のＬｉｇｈｔＯｎＴｉｍｅ値に到達したか否かを判定する（ステップＳ１３１３）。
【０１０２】
ステップＳ１３１３の判定がＹＥＳになった場合には、演奏者が次の光る鍵を押鍵するまで自動演奏を停止させるために、ＣＰＵ２０１は、ＡｕｔｏＳｔｏｐ値を１にセットする（ステップＳ１３１４）。この処理シーケンスは、ノートオフイベントの実行からその直後の優先音のノートオンイベントの実行までの間に時間が空いている場合、例えば休符になっているような場合に実行される。図１０の例では、ｂ８、ｂ１２、及びｂ１６の各優先音のノートオンイベントが実行されるタイミングの直前（１ＴｉｃｋＴｉｍｅ前）に図１３の自動演奏割込み処理が実行されたときに実行される。
【０１０３】
ステップＳ１３１３の判定がＮＯならば、ＣＰＵ２０１は、ステップＳ１３１４の処理はスキップする。
【０１０４】
その後、ＣＰＵ２０１は、図１３のフローチャートで示される自動演奏割込み処理を終了する。
【０１０５】
前述した図１２のフローチャートで例示される押鍵／離鍵処理と上述の図１３のフローチャートで例示される自動演奏割込み処理により、自動演奏曲データの先頭から順次、決定された優先音が例えば鍵盤１０１上の光る鍵として演奏者に表示されながら、その表示した優先音の鍵を演奏者が押鍵等して演奏する毎にその次の優先音までの自動演奏曲データが自動演奏されるというインタラクティブな動作を実現することが可能となる。
【０１０６】
また、ステップＳ１３０４の説明で前述したように、自動演奏曲データの自動演奏に合わせて、音源ＬＳＩ２０４に対して発行されるノートオンやノートオフのイベントデータに対応して、例えばトラックチャンク１のメタイベントとして与えられている歌詞データに基づく歌声を、当上記ノートオン／ノートオフイベントに対応する音高及び音長で音声合成ＬＳＩ２０５から出力させることが可能となる。この場合も、演奏者が優先音として光る鍵を押鍵等すると、次の優先音の鍵が光ると共に、当該次の優先音の手前まで音源ＬＳＩ２０４による自動演奏を進行させながら、音声合成ＬＳＩ２０５による歌声の歌唱も進行させることが可能となる。
【０１０７】
以上の説明において、自動演奏割込み処理は図３に例示される自動演奏曲データのうち、鍵を光らせる制御に関連するトラックチャンク１についてのみ説明したが、トラックチャンク２については通常の自動演奏割込み処理が実行される。即ち、トラックチャンク２については、図１３のステップＳ１３０９と、ステップＳ１３１０からＳ１３０８を省略した自動演奏割込み処理が、タイマ２１０等からの割込みに基づいて実行される。この場合に、トラックチャンク２に関する図１３のステップＳ１３０１に相当する自動演奏の停止／進行の制御は、トラックチャンク１に関する図１３のフローチャート等で設定されたＡｕｔｏＳｔｏｐ値が判定されることによりトラックチャンク１の場合と同期して制御される。
【０１０８】
以上説明した実施形態は、電子鍵盤楽器について本発明を実施したものであるが、本発明は電子管楽器など他の電子楽器にも適用することができる。例えば電子管楽器に本発明が適用される場合には、優先音を決定する際にコード構成音に関する例えば図９のステップＳ９０８、Ｓ９１０〜Ｓ９１２の制御処理は不要であり、ステップＳ９０９の単音のみから優先音が決定されればよい。
【０１０９】
以上の実施形態に関して、更に以下の付記を開示する。
（付記１）
曲データをそれぞれの区間長で区切った区間ごとに優先音をそれぞれ決定する優先音決定処理と、
前記区間に対応して決定された前記優先音を示す識別子を表示する優先音表示処理と、
演奏者が前記優先音を示す識別子を指定すると、前記指定された優先音及び、前記指定された優先音と次の区間の優先音の間の前記優先音以外の音の自動演奏を進行させる自動演奏処理と、
を実行する処理部を有することを特徴とする電子楽器。
（付記２）
前記優先音決定処理は、前記曲データからコード構成音を特定し、前記コード構成音を特定できた場合は、前記特定したコード構成音の中で音長が異なる１つの音を前記優先音として決定し、前記コード構成音を特定できなかった場合は、前記区間中の最高音を前記優先音として決定する、ことを特徴とする付記１に記載の電子楽器。
（付記３）
前記区間は小節であり、
前記優先音決定処理は、前記小節毎に、強拍のタイミングで、前記曲データから前記優先音を決定する、
ことを特徴とする付記１又は２に記載の電子楽器。
（付記４）
前記強拍のタイミングがシンコペーションに対応している場合には、前記シンコペーションの処理により前記強拍のタイミングからずらされたタイミングで、前記曲データから前記優先音を決定する、
ことを特徴とする付記３に記載の電子楽器。
（付記５）
前記電子楽器は電子鍵盤楽器であり、前記自動演奏処理は、前記演奏者への前記優先音を示す識別子の表示を鍵盤上の前記優先音に対応する鍵を光らせることにより行う、ことを特徴とする付記１乃至４の何れかに記載の電子楽器。
（付記６）
前記自動演奏処理は、前記曲データの自動演奏に合わせて、前記曲データに対応する歌詞データに基づく歌声を前記曲データに対応する音高及び音長で音声合成しながら出力する、ことを特徴とする付記１乃至５の何れかに記載の電子楽器。
（付記７）
曲データをそれぞれの区間長で区切った区間ごとに優先音をそれぞれ決定する優先音決定処理と、
前記区間に対応して決定された前記優先音を示す識別子を表示する優先音表示処理と、
演奏者が前記優先音を示す識別子を指定すると、前記指定された優先音及び、前記指定された優先音と次の区間の優先音の間の前記優先音以外の音の自動演奏を進行させる自動演奏処理と、
を実行することを特徴とする自動演奏方法。
（付記８）
曲データをそれぞれの区間長で区切った区間ごとに優先音をそれぞれ決定するステップと、
前記区間に対応して決定された前記優先音を示す識別子を表示するステップと、
演奏者が前記優先音を示す識別子を指定すると、前記指定された優先音及び、前記指定された優先音と次の区間の優先音の間の前記優先音以外の音の自動演奏を進行させるステップと、
を電子楽器を制御するコンピュータに実行させることを特徴とするプログラム。
【符号の説明】
【０１１０】
１００  電子鍵盤楽器
１０１  鍵盤
１０２  第１のスイッチパネル
１０３  第２のスイッチパネル
１０４  ＬＣＤ
２００  制御システム
２０１  ＣＰＵ
２０２  ＲＯＭ
２０３  ＲＡＭ
２０４  音源ＬＳＩ
２０５  音声合成ＬＳＩ
２０６  キースキャナ
２０７  ＬＥＤコントローラ
２０８  ＬＣＤコントローラ
２０９  システムバス
２１０  タイマ
２１１、２１２  Ｄ／Ａコンバータ
２１３  ミキサ
２１４  アンプ
【図１】
2018163183.tif 000003
【図２】
2018163183.tif 000004
【図３】
2018163183.tif 000005
【図４】
2018163183.tif 000006
【図５】
2018163183.tif 000007
【図６】
2018163183.tif 000008
【図７】
2018163183.tif 000009
【図８】
2018163183.tif 000010
【図９】
2018163183.tif 000011
【図１０】
2018163183.tif 000012
【図１１】
2018163183.tif 000013
【図１２】
2018163183.tif 000014
【図１３】
2018163183.tif 000015
【手続補正書】
【提出日】平成29年12月26日(2017.12.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
曲データは少なくとも第１区間及び前記第１区間に続く第２区間を有する複数の区間を含んでおり、前記第１区間に含まれている複数の音高のなかの１つの音高が示す第１区間優先音を、演奏者に指定させるために少なくとも表示させる優先音表示処理と、
前記第１区間優先音が指定されることにより、前記第１区間優先音に応じた音を発音部に発音させるとともに、前記第２区間に含まれている複数の音高のなかの１つの音高が示す第２区間優先音の前の音まで、発音部に発音させる自動演奏を進行させる自動演奏処理、
を実行する制御部を有することを特徴とする電子楽器。
【請求項２】
前記優先音表示処理は、前記第１区間優先音が指定された後に、前記第２区間優先音を、前記演奏者に指定させるために表示させることを特徴とする請求項１に記載の電子楽器。
【請求項３】
前記区間は、少なくとも１つの拍子の区間長を含み、
前記制御部は、
前記区間ごとに、優先音をそれぞれ決定する優先音決定処理、
を実行し、
前記自動演奏処理は、前記優先音がそれぞれ指定されるごとに、前記自動演奏を進行させることを特徴とする請求項１又は２に記載の電子楽器。
【請求項４】
前記優先音決定処理は、前記曲データからコード構成音を特定し、前記コード構成音を特定できた場合は、前記特定したコード構成音の中で音長が異なる１つの音を前記優先音として決定し、前記コード構成音を特定できなかった場合は、前記区間中の最高音を前記優先音として決定することを特徴とする請求項３に記載の電子楽器。
【請求項５】
前記区間は小節であり、
前記優先音決定処理は、前記小節毎に、強拍のタイミングで、前記曲データから前記優先音を決定する、
ことを特徴とする請求項３又は４に記載の電子楽器。
【請求項６】
前記強拍のタイミングがシンコペーションに対応している場合には、前記シンコペーションの処理により前記強拍のタイミングからずらされたタイミングで、前記曲データから前記優先音を決定する、
ことを特徴とする請求項５に記載の電子楽器。
【請求項７】
前記電子楽器は電子鍵盤楽器であり、前記優先音表示処理は、前記第１区間優先音に対応する鍵を光らせることにより行う、ことを特徴とする請求項１乃至６の何れかに記載の電子楽器。
【請求項８】
前記自動演奏処理は、前記曲データの自動演奏に合わせて、前記曲データに対応する歌詞データに基づく歌声を前記曲データに対応する音高及び音長で音声合成しながら出力する、ことを特徴とする請求項１乃至７の何れかに記載の電子楽器。
【請求項９】
電子楽器のコンピュータに、
曲データは少なくとも第１区間及び前記第１区間に続く第２区間を有する複数の区間を含んでおり、前記第１区間に含まれている複数の音高のなかの１つの音高が示す第１区間優先音を、演奏者に指定させるために少なくとも表示させる第１区間優先音表示処理と、
前記第１区間優先音が指定されることにより、前記第１区間優先音に応じた音を発音部に発音させるとともに、前記第２区間に含まれている複数の音高のなかの１つの音高が示す第２区間優先音の前の音まで、発音部に発音させる自動演奏を進行させる自動演奏処理、
を実行させる自動演奏方法。
【請求項１０】
電子楽器のコンピュータに、
曲データは少なくとも第１区間及び前記第１区間に続く第２区間を有する複数の区間を含んでおり、前記第１区間に含まれている複数の音高のなかの１つの音高が示す第１区間優先音を、演奏者に指定させるために少なくとも表示させる第１区間優先音表示処理と、
前記第１区間優先音が指定されることにより、前記第１区間優先音に応じた音を発音部に発音させるとともに、前記第２区間に含まれている複数の音高のなかの１つの音高が示す第２区間優先音の前の音まで、発音部に発音させる自動演奏を進行させる自動演奏処理、
を実行させるプログラム。
【手続補正書】
【提出日】平成30年7月3日(2018.7.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
優先音候補として、或る区間における最初に発生させる音が複数あった場合、前記複数の前記優先音候補のなかのいずれかの優先音候補を優先音として決定する優先音決定処理と、
前記或る区間に対して前記優先音決定処理により決定された優先音を、演奏者に指定させるために少なくとも表示させる優先音表示処理と、
決定された前記優先音が指定されることにより、決定された前記優先音を発音部に発音させるとともに、前記或る区間の最後まで自動演奏を進行させる自動演奏処理、
を実行する電子楽器。
【請求項２】
前記優先音決定処理は、前記複数の優先音候補のなかの最高音を優先音と決定する、ことを特徴とする請求項１に記載の電子楽器。
【請求項３】
前記複数の前記優先音候補でコードを構成しているか否かを判断する判断処理、
を実行し、
前記優先音決定処理は、前記判断処理によりコードを構成していると判断された場合に、主音を優先音と決定する、ことを特徴とする請求項１に記載の電子楽器。
【請求項４】
電子楽器のコンピュータに、
優先音候補として、或る区間における最初に発生させる音が複数あった場合、前記複数の前記優先音候補のなかのいずれかの優先音候補を優先音として決定する優先音決定処理と、
前記或る区間に対して前記優先音決定処理により決定された優先音を、演奏者に指定させるために少なくとも表示させる優先音表示処理と、
決定された前記優先音が指定されることにより、決定された前記優先音を発音部に発音させるとともに、前記或る区間の最後まで自動演奏を進行させる自動演奏処理、
を実行させる方法。
【請求項５】
電子楽器のコンピュータに、
優先音候補として、或る区間における最初に発生させる音が複数あった場合、前記複数の前記優先音候補のなかのいずれかの優先音候補を優先音として決定する優先音決定処理と、
前記或る区間に対して前記優先音決定処理により決定された優先音を、演奏者に指定させるために少なくとも表示させる優先音表示処理と、
決定された前記優先音が指定されることにより、決定された前記優先音を発音部に発音させるとともに、前記或る区間の最後まで自動演奏を進行させる自動演奏処理、
を実行させるプログラム。
【請求項６】
第１区間の直後の第２区間の最初に新たに発生させる音が無い場合であって前記第１区間の最後に発生させる音が有る場合に、前記第１区間の最後に発生させる音を優先音と決定し、前記第２区間の最初に新たに発生させる音が有る場合に、前記第２区間の最初に発生させる音を優先音と決定する優先音決定処理と、
前記優先音として決定された、前記第１区間の最後に発生させる音または前記第２区間の最初に発生させる音を、演奏者に指定させるために少なくとも表示させる優先音表示処理と、
決定された前記優先音が指定されることにより、決定された前記優先音を発音部に発音させるとともに、前記第２区間の最後まで自動演奏を進行させる自動演奏処理、
を実行する電子楽器。
【請求項７】
電子楽器のコンピュータに、
第１区間の直後の第２区間の最初に新たに発生させる音が無い場合であって前記第１区間の最後に発生させる音が有る場合に、前記第１区間の最後に発生させる音を優先音と決定し、前記第２区間の最初に新たに発生させる音が有る場合に、前記第２区間の最初に発生させる音を優先音と決定する優先音決定処理と、
前記優先音として決定された、前記第１区間の最後に発生させる音または前記第２区間の最初に発生させる音を、演奏者に指定させるために少なくとも表示させる優先音表示処理と、
決定された前記優先音が指定されることにより、決定された前記優先音を発音部に発音させるとともに、前記第２区間の最後まで自動演奏を進行させる自動演奏処理、
を実行させる方法。
【請求項８】
電子楽器のコンピュータに、
第１区間の直後の第２区間の最初に新たに発生させる音が無い場合であって前記第１区間の最後に発生させる音が有る場合に、前記第１区間の最後に発生させる音を優先音と決定し、前記第２区間の最初に新たに発生させる音が有る場合に、前記第２区間の最初に発生させる音を優先音と決定する優先音決定処理と、
前記優先音として決定された、前記第１区間の最後に発生させる音または前記第２区間の最初に発生させる音を、演奏者に指定させるために少なくとも表示させる優先音表示処理と、
決定された前記優先音が指定されることにより、決定された前記優先音を発音部に発音させるとともに、前記第２区間の最後まで自動演奏を進行させる自動演奏処理、
を実行させるプログラム。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、電子楽器、方法、及びプログラムに関する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
態様の一例は、優先音候補として、或る区間における最初に発生させる音が複数あった場合、前記複数の前記優先音候補のなかのいずれかの優先音候補を優先音として決定する優先音決定処理と、前記或る区間に対して前記優先音決定処理により決定された優先音を、演奏者に指定させるために少なくとも表示させる優先音表示処理と、決定された前記優先音が指定されることにより、決定された前記優先音を発音部に発音させるとともに、前記或る区間の最後まで自動演奏を進行させる自動演奏処理、を実行する電子楽器である。
また、態様の一例は、第１区間の直後の第２区間の最初に新たに発生させる音が無い場合であって前記第１区間の最後に発生させる音が有る場合に、前記第１区間の最後に発生させる音を優先音と決定し、前記第２区間の最初に新たに発生させる音が有る場合に、前記第２区間の最初に発生させる音を優先音と決定する優先音決定処理と、前記優先音として決定された、前記第１区間の最後に発生させる音または前記第２区間の最初に発生させる音を、演奏者に指定させるために少なくとも表示させる優先音表示処理と、決定された前記優先音が指定されることにより、決定された前記優先音を発音部に発音させるとともに、前記第２区間の最後まで自動演奏を進行させる自動演奏処理、を実行する電子楽器である。