(57)【要約】【課題】初心者のユーザが現在演奏している曲の位置を見失うことなく、現在演奏している曲の位置を容易に把握できるようにする。【解決手段】ＣＰＵ１は、曲データメモリ８から自動演奏曲の曲データを読み出して、読み出した曲データにおけるノートオンイベントの演奏開始タイミングをガイドし、そのガイドしたノートオンイベントの演奏開始タイミング以後の時間に、鍵盤６によって演奏データが入力されたときはその演奏データに基づいて音源９に対して発音指示を行い、ガイドしたノートオンイベントの演奏開始タイミングより前の時間に鍵盤６によって演奏データが入力されたときは、その演奏データを無効にする。【選択図】        図１
2004205892.tif 000002
【特許請求の範囲】
【請求項１】
所定の記憶手段から自動演奏曲の曲データを読み出すデータ読出手段と、
前記データ読出手段によって読み出された曲データにおけるノートオンイベントの演奏開始タイミングをガイドする演奏ガイド手段と、
操作に応じて演奏データを入力する操作子と、
前記演奏ガイド手段によってガイドされたノートオンイベントの演奏開始タイミング以後の時間に前記操作子によって演奏データが入力されたときはその演奏データに基づいて発音指示を行い、前記演奏ガイド手段によってガイドされたノートオンイベントの演奏開始タイミングより前の時間に前記操作子によって演奏データが入力されたときはその演奏データを無効にする発音制御手段と、
を備えたことを特徴とする演奏装置。
【請求項２】
ノートオンイベントの演奏開始タイミングから演奏データが入力されたタイミングまでの時間差に応じて前記自動演奏曲のテンポを補正するテンポ補正手段をさらに備えたことを特徴とする請求項１記載の演奏装置。
【請求項３】
前記操作子は、押鍵操作に応じて演奏データを入力する鍵盤であり、前記演奏ガイド手段は、前記鍵盤を各鍵ごとに点灯する機能を有し、前記データ読出手段によって読み出された曲データにおけるノートオンイベントの音高に対応する鍵をそのノートオンイベントの演奏開始タイミングで点灯して演奏をガイドすることを特徴とする請求項１記載の演奏装置。
【請求項４】
前記発音制御手段は、前記演奏ガイド手段によってガイドされたノートオンイベントの演奏開始タイミングを所定時間以上経過しても前記操作子によって演奏データが入力されない場合には、そのノートオンイベントに基づいて発音指示を行い、前記データ読出手段に曲データを読み出す指令を与えることを特徴とする請求項１記載の演奏装置。
【請求項５】
所定の記憶手段から自動演奏曲の曲データを読み出す第１のステップと、
前記第１のステップによって読み出された曲データにおけるノートオンイベントの演奏開始タイミングをガイドする第２のステップと、
前記第２のステップによりガイドされたノートオンイベントの演奏開始タイミング以後の時間に所定の操作子によって演奏データが入力されたときはその演奏データに基づいて発音指示を行い、前記第２のステップによりガイドされたノートオンイベントの演奏開始タイミングより前の時間に前記操作子によって演奏データが入力されたときはその演奏データを無効にする第３のステップと、
を実行することを特徴とする演奏処理のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、演奏装置および演奏処理のプログラムに関し、特に、ユーザに対する演奏支援の機能を持つ演奏装置および演奏処理のプログラムに関する。
【０００２】
【従来の技術】
従来、電子鍵盤楽器などの演奏装置の中には、あらかじめ記憶されている自動演奏曲を読み出して演奏する場合に、スムーズに演奏できない初心者のユーザのために、鍵盤の各鍵ごとにＬＥＤを設けて、曲データのノートオンイベントの音高に応じて押鍵すべき鍵を演奏開始タイミングで点灯させて、演奏支援を行なういわゆる光鍵を具備したものが知られている。
【０００３】
また、鍵盤の任意の鍵や特別に設けた操作子を操作するだけで、ノートオンイベントの音高を意識することなく、あたかも上級者のように曲を演奏できる「エニキーモード」や「ワンキーモード」の機能を備えたものが知られている。さらにこの場合、ノートオンイベントの演奏開始タイミングと押鍵のタイミングとの関係に基づいて、複数種類の演奏バリエーションのモードを設定することができるように構成されている。
あるモードでは、読み出したノートオンの演奏開始タイミングに達してから押鍵の有無を検出し、押鍵があったときには発音を行うが、押鍵がない場合には通常の発音を行なわず、次のイベントの読み出しを押鍵があるまで中断する。他のモードでは、ノートオンの演奏開始タイミングに達する前でも、押鍵があったときには発音を行うとともに、次のイベントを早送りで読み出す。
【０００４】
例えば、「エニキーモード」の機能を持つ従来の演奏教習装置の提案においては、読み出した発音のイベントデータの演奏開始タイミングになっても押鍵がされない場合には、その発音のイベントデータのベロシティデータを「０」に変更して消音のイベントを生成し、発音のイベントと消音のイベントとを、所定時間が経過するごとに、交互に出力する（例えば、特許文献１）。
また、「ワンキーモード」の機能を持つ従来の演奏装置の提案においては、時間データと音符長データとから特定される処理対象期間、更にはそれよりも僅かに早い期間までをワンキーの操作を有効とし、その間に行なわれたワンキーへの操作に応じて楽音を発生させている。楽音の発音開始や消音のタイミングを変化させるようにしている（例えば、特許文献２）。
【０００５】
【特許文献１】
特開２０００−２７６１４７号公報（段落番号「００４８」）
【特許文献２】
特開平１１−１８４４６５号公報（段落番号「００３６」）
【０００６】
【発明が解決しようとする課題】
しかしながら、上記従来の技術においては、広範な初心者のユーザに対する演奏支援の機能としては十分ではなかった。例えば、上記あるモードのように、押鍵を待って曲の進行を行なう場合には、音符（ノートオンイベント）ごとに正しいタイミングで押鍵しないと、演奏開始タイミングが分からなくなって、演奏が止まってしまうこともある。その結果、曲の音楽性が著しく損なわれるので、ユーザによっては自信を喪失して練習意欲が低下する場合もある。
一方、上記他のモードのように、ノートオンの演奏開始タイミングに達する前でも、押鍵があったときには発音を行う場合には、リズムに乗って押鍵する必要があり、ユーザによっては自分のペースで演奏することができない場合がある。このため、現在演奏している曲の位置を見失う可能性がある。
【０００７】
本発明は、このような従来の課題を解決するものであり、演奏開始タイミングや現在演奏している曲の位置をユーザが容易に把握できるような演奏装置および演奏処理のプログラムを提供することを目的とする。
【０００８】
【課題を解決するための手段】
請求項１に記載の演奏装置は、所定の記憶手段(実施形態においては、図１の曲データメモリ８に相当する)から自動演奏曲の曲データを読み出すデータ読出手段(実施形態においては、図１のＣＰＵ１に相当する)と、データ読出手段によって読み出された曲データにおけるノートオンイベントの演奏開始タイミングをガイドする演奏ガイド手段(実施形態においては、図１のＣＰＵ１およびガイド表示部５に相当する)と、操作に応じて演奏データを入力する操作子(実施形態においては、図１の鍵盤６に相当する)と、演奏ガイド手段によってガイドされたノートオンイベントの演奏開始タイミング以後の時間に操作子によって演奏データが入力されたときはその演奏データに基づいて発音指示を行い、演奏ガイド手段によってガイドされたノートオンイベントの演奏開始タイミングより前の時間に前記操作子によって演奏データが入力されたときはその演奏データを無効にする発音制御手段(実施形態においては、ＣＰＵ１に相当する)とを備えた構成になっている。
【０００９】
この場合において、ノートオンイベントの演奏開始タイミングから演奏データが入力されたタイミングまでの時間差に応じて自動演奏曲のテンポを補正するテンポ補正手段(実施形態においては、図１のＣＰＵ１に相当する)をさらに備えたように構成してもよい。
また、操作子は、押鍵操作に応じて演奏データを入力する鍵盤であり、演奏ガイド手段は、鍵盤を各鍵ごとに点灯する機能を有し、データ読出手段によって読み出された曲データにおけるノートオンイベントの音高に対応する鍵をそのノートオンイベントの演奏開始タイミングで点灯して演奏をガイドするように構成してもよい。
また、発音制御手段は、演奏ガイド手段によってガイドされたノートオンイベントの演奏開始タイミングを所定時間以上経過しても操作子によって演奏データが入力されない場合には、そのノートオンイベントに基づいて発音指示を行い、データ読出手段に曲データを読み出す指令を与えるように構成してもよい。
【００１０】
請求項５に記載の演奏処理のプログラムは、所定の記憶手段(実施形態においては、図１の曲データメモリ８に相当する)から自動演奏曲の曲データを読み出す第１のステップと、第１のステップによって読み出された曲データにおけるノートオンイベントの演奏開始タイミングをガイドする第２のステップと、第２のステップによりガイドされたノートオンイベントの演奏開始タイミング以後の時間に所定の操作子(実施形態においては、図１の鍵盤６に相当する)によって演奏データが入力されたときはその演奏データに基づいて発音指示を行い、第２のステップによりガイドされたノートオンイベントの演奏開始タイミングより前の時間に操作子によって演奏データが入力されたときはその演奏データを無効にする第３のステップとを実行する。
【００１１】
【発明の実施の形態】
以下、本発明による演奏装置の実施形態について、図を参照して説明する。
図１は、実施形態の演奏装置の構成を示すブロック図である。この図において、ＣＰＵ１は、システムバス２を介して、ＲＯＭ３、ＲＡＭ４、ガイド表示部５、鍵盤６、スイッチ部７、曲データメモリ８、および音源９に接続され、これら各部との間で、イベントおよびデータを授受しながら、この演奏装置全体を制御する。
【００１２】
ＲＯＭ３は、ＣＰＵ１によって実行されるプログラムや起動時のイニシャライズにおける初期データなどをあらかじめ記憶している。ＲＡＭ４は、ＣＰＵ１のワークエリアであり、プログラムの実行に必要な各種のレジスタやフラグのエリアを持っている。ガイド表示部５は、鍵盤６の各鍵ごとに設けられたＬＥＤなどの発光素子およびその駆動回路で構成され、ＣＰＵ１からの鍵番号のデータ、点灯イベントおよび消灯イベントに応じて、鍵番号で指定される鍵を点灯、点滅および消灯する。鍵盤６は、押鍵および離鍵の演奏操作に応じて鍵番号およびベロシティをＣＰＵ１に入力する。スイッチ部７は、自動演奏を開始又は停止するスタート／ストップスイッチや自動演奏曲のテンポを設定するテンポスイッチなどで構成されている。
曲データメモリ８は、複数の自動演奏曲の曲データを記憶している。音源９は、発音回路１０に接続され、ＣＰＵ１の発音指示（ノートオンイベント）に応じて楽音波形信号を生成して発音回路１０に出力し、消音指示（ノートオフイベント）に応じて楽音波形信号の出力を停止する。発音回路１０は、Ｄ／Ａ変換回路、フィルタ回路、増幅回路、スピーカなどで構成され、音源９から出力される楽音波形信号に応じて楽音を発生する。
【００１３】
次に、この実施形態における演奏装置の動作について、図２ないし図１２に示すＣＰＵ１のフローチャートに基づいて説明する。
図２は、メインフローチャートであり、所定のイニシャライズを行なって(ステップＡ１)、ＲＡＭ４のレジスタやフラグなどを初期化した後、スイッチ部７の各スイッチのオン・オフを検出するスイッチ処理(ステップＡ２)、曲データメモリ８の自動演奏曲の読み出しを行なう自動演奏処理(ステップＡ３)、鍵盤６を走査して各鍵のオンすなわち押鍵およびオフすなわち離鍵を検出する鍵盤処理(ステップＡ４)、およびその他の処理(ステップＡ５)を繰り返し実行する。
【００１４】
図３は、メインフローにおけるステップＡ２のスイッチ処理のフローチャートである。このフローでは、テンポスイッチの操作を検出するテンポスイッチ処理(ステップＢ１)、スタート／ストップスイッチの操作を検出するスタート／ストップスイッチ処理(ステップＢ２)、およびその他のスイッチ処理(ステップＢ３)を実行する。そして、このフローを終了してメインフローに戻る。
図４は、図３のスイッチ処理のフローにおけるステップＢ１のテンポスイッチ処理のフローチャートである。このフローでは、テンポスイッチが操作されたか否かを判別し(ステップＣ１)、このスイッチが操作されない場合には、このフローを終了するが、このスイッチが操作されてテンポ値が入力されたときは、レジスタＴＥＭＰＯにその入力テンポ値をストアする(ステップＣ２)。次に、ＴＥＭＰＯに基づいた最小単位音符時間を設定する(ステップＣ３)。そして、図３におけるステップＢ２のスタート／ストップスイッチ処理に移行する。
【００１５】
図５および図６は、図３におけるステップＢ２のスタート／ストップスイッチ処理のフローチャートである。まず、スタート／ストップスイッチがオンされたか否かを判別する(ステップＤ１)。このスイッチがオンでない場合にはこのフローを終了するが、このスイッチがオンされたときは、スタートフラグＳＴＦの値を反転する(ステップＤ２)。そして、ＳＴＦの値が「０」から「１」に反転したか、又は、「１」から「０」に反転したかを判別する(ステップＤ３)。
【００１６】
ＳＴＦの値が「０」から「１」に反転したときは、自動演奏の開始であるので、曲データの先頭アドレスをレジスタＡＤにストアする(ステップＤ４)。そして、ＡＤのアドレスで示される自動演奏曲のデータを読み出し(ステップＤ５)、読み出した先頭のデータであるタイムをレジスタＴ１にストアする(ステップＤ６)。Ｔ１は、次のアドレスのデータまでの時間をストアするレジスタである。さらに、Ｔ１のタイムをレジスタＴ２にもストアする(ステップＤ７)。Ｔ２は、自動演奏の開始から演奏パートの最初のノートオンイベントまでの経過時間、および、それ以降の演奏パートにおけるノートオンイベントからノートオンイベントまでの経過時間を累算してストアするレジスタである。
【００１７】
次に、演奏指示のために曲データメモリ８を先読みするレジスタＧＵＩＤＥＡＤにＡＤのアドレスをストアし(ステップＤ８)、ＧＵＩＤＥＡＤのアドレスを進める(ステップＤ９)。そして、ＧＵＩＤＥＡＤのアドレスで示されるデータを前もって読み出し(ステップＤ１０)、読み出したデータの内容を判別する。
【００１８】
ステップＤ３において、ＳＴＦが「１」から「０」に反転したときは、自動演奏の停止であるので、発音中のすべてのノートを消音するオールノートオフ処理を行い(ステップＤ１１)、鍵盤６のすべてのガイド表示を消灯する(ステップＤ１２)。また、自動演奏を進めるタイマーカウントを禁止する(ステップＤ１３)。そして、このフローを終了して、図３のスイッチ処理のステップＢ３に移行する。
【００１９】
図６のフローにおいて、ステップＤ１０においてＧＵＩＤＥＡＤのアドレスで読み出したデータが曲の終りを示すＥＮＤであるか否かを判別し(ステップＤ１４)、ＥＮＤである場合には、曲の開始から最初の押鍵までの経過時間、および、それ以降においては、前回の押鍵から今回の押鍵までの経過時間をストアするレジスタＴ３に「０」をストアして初期化する(ステップＤ１５)。そして、タイマーカウントを禁止解除にする(ステップＤ１６)。そして、このフローを終了して、図３のスイッチ処理のステップＢ３に移行する。
【００２０】
ＧＵＩＤＥＡＤのアドレスで読み出したデータがＥＮＤでない場合には、そのデータがタイムであるか否かを判別する(ステップＤ１７)。データがタイムである場合には、レジスタＴ２にそのタイムを加算して累算する(ステップＤ１８)。この後は、図５のフローのステップＤ９に移行して、ＧＵＩＤＥＡＤのアドレスを進める。読み出したデータがタイムでない場合には、そのデータが演奏パートのノートオンイベントであるか否かを判別する(ステップＤ１９ａ)。演奏パートのノートオンイベントでない場合には、図５のフローのステップＤ９に移行して、ＧＵＩＤＥＡＤのアドレスを進める。
【００２１】
ステップＤ１９ａにおける判別の結果、読み出したデータが演奏パートのノートオンイベントである場合には、レジスタＴ２の値をレジスタＴ４にストアする(ステップＤ１９ｂ)。すなわち、自動演奏曲の開始から最初のノートオンイベントまでの時間がＴ４にストアされる。次に、ノートオンイベントのノートをレジスタＮＥＸＴＮＯＴＥにストアする(ステップＤ２０)。さらに、ＮＥＸＴＮＯＴＥにストアしたノートに対応する鍵のガイド表示を点滅する(ステップＤ２１)。すなわち、次に押鍵すべき鍵を予告する。ガイド表示を点滅した後は、ステップＤ１５に移行して、Ｔ３の値を「０」に初期化し、ステップＤ１６においてタイマーカウントを禁止解除にする。そして、このフローを終了する。
【００２２】
図７ないし図１０は、メインフローにおける自動演奏処理のフローチャートである。このフローに入ると、ＳＴＦが「１（自動演奏）」であるか否かを判別し(ステップＥ１)、ＳＴＦが「１」である場合には、テンポに応じた最小単位音符時間が経過したか否かを判別する(ステップＥ２)。ＳＴＦが「０（自動演奏停止）」である場合、又は、最小単位音符時間が経過していない場合にはこのフローを終了する。最小単位音符時間が経過したときは、曲の開始からの経過時間をストアするレジスタＴ３の値をインクリメントする(ステップＥ３)。
【００２３】
次に、フラグＷＡＩＴＦが「０」であるか否かを判別する(ステップＥ４)。ＷＡＩＴＦは、演奏パートのノートオンイベントの演奏開始タイミングになったときに、押鍵を待つモードで「１」にセットされるフラグである。このフラグが「０」である場合には、Ｔ１の値をデクリメントして(ステップＥ５)、曲を進行させる。このフラグが「１」である場合には、Ｔ１の値のデクリメントは行なわず、このフローを終了して押鍵を待つ。
【００２４】
ステップＥ５においてＴ１の値をデクリメントした後は、その値が「０」に達したか否かを判別する(ステップＥ６)。すなわち、次のデータを読み出すべき時間に達したか否かを判別する。Ｔ１の値が「０」に達していない場合には、このフローを終了してメインフローに戻る。
Ｔ１の値が「０」に達したときは、ＡＤのアドレスを進める(ステップＥ７)。そして、ＡＤのアドレスで示すデータを読み出し(ステップＥ８)、読み出したデータの内容を判別する。
【００２５】
読み出したデータがＥＮＤであるか否かを判別し(ステップＥ９)、ＥＮＤである場合、すなわち、曲が終了したときは、ＳＴＦを「０」にリセットし(ステップＥ１０)、オールノートオフ処理を行い(ステップＥ１１)、ガイド表示を消灯する(ステップＥ１２)。また、タイマーカウントを禁止する(ステップＥ１３)。そして、このフローを終了してメインフローに戻る。
【００２６】
読み出したデータがＥＮＤでない場合には、図８のフローにおいて、そのデータがタイムであるか否かを判別する(ステップＥ１４)。タイムである場合には、レジスタＴ１にタイムをストアする(ステップＥ１５)。そして、このフローを終了してメインフローに戻る。
読み出したデータがタイムでない場合には、そのデータがイベントであるか否かを判別する(ステップＥ１６)。イベントでない場合には、図７のステップＥ７に移行してＡＤのアドレスを進める。イベントである場合には、イベントのパートが演奏パートでないか否かを判別する(ステップＥ１７)。演奏パートでない場合には、そのデータを音源９へ送出する(ステップＥ１８)。例えば、演奏パートがメロディパートである場合には、伴奏パートを音源９に送出する。演奏パート以外のパートのイベントを音源９に送出した後は、図７のステップＥ７に移行してＡＤのアドレスを進める。
一方、イベントのパートが演奏パートである場合には、そのイベントがノートオフであるか否かを判別する(ステップＥ１９)。ノートオフである場合には、ノートオフのノートに対応する鍵のガイド表示を消灯する(ステップＥ２０)。そして、図７のステップＥ７に移行してＡＤのアドレスを進める。
【００２７】
読み出したデータがノートオフでない場合には、図９のフローにおいて、そのデータがノートオンであるか否かを判別する(ステップＥ２１)。ノートオンでない場合には、図７のステップＥ７に移行してＡＤのアドレスを進める。ノートオンである場合には、ノートオンのノートをレジスタＣＵＲＲＥＴＮＯＴＥにストアする(ステップＥ２２)。次に、ＣＵＲＲＥＴＮＯＴＥにストアされたノートに対応するガイド表示を点灯する(ステップＥ２３)。そして、Ｔ２の値を「０」にクリアし(ステップＥ２４)、フラグＷＡＩＴＦを「１」にセットする(ステップＥ２５)。
次に、ＡＤのアドレスをＧＵＩＤＥＡＤにストアして(ステップＥ２６)、ＧＵＩＤＥＡＤのアドレスを進める(ステップＥ２７)。そして、ＧＵＩＤＥＡＤのアドレスで示すデータを読み出し(ステップＥ２８)、読み出したデータの内容を判別する。
【００２８】
読み出したデータが曲の終りを示すＥＮＤであるか否かを判別し(ステップＥ２９)、ＥＮＤである場合には、このフローを終了してメインフローに戻る。ＥＮＤでない場合には、図１０のフローにおいて、データが演奏パートのノートオンであるか否かを判別する(ステップＥ３０ａ)。演奏パートのノートオンである場合には、レジスタＴ２の値をレジスタＴ４にストアする(ステップＥ３０ｂ)。すなわち、前回のノートオンイベントから今回のノートオンイベントまでの時間をＴ４にストアする。次に、ノートオンイベントのノートをレジスタＮＥＸＴＮＯＴＥにストアし(ステップＥ３１)、ＮＥＸＴＮＯＴＥのノートに対応するガイド表示を点滅する(ステップＥ３２)。そして、このフローを終了してメインフローに戻る。
【００２９】
読み出したデータが演奏パートのノートオンでない場合には、データがタイムであるか否かを判別する(ステップＥ３３)。タイムである場合には、Ｔ２にタイムを加算して累算する(ステップＥ３４)。この後、又は、読み出したデータがタイムでない場合には、図９のステップＥ２７に移行して、ＧＵＩＤＥＡＤのアドレスを進めて、ＧＵＩＤＥＡＤのアドレスで示すデータを読み出す。すなわち、図９のステップＥ２５において、フラグＷＡＩＴＦを「１」にセットした後は、ＧＵＩＤＥＡＤのアドレスを進めながら、そのアドレスのデータをＥＮＤになるまで順次読み出す。
【００３０】
図１１および図１２は、メインフローにおける鍵盤処理のフローチャートである。このフローに入ると、鍵走査を行なって(ステップＦ１)、押鍵および離鍵の鍵変化を判別する(ステップＦ２)。鍵変化がない場合には、このフローを終了してメインフローに戻る。オフからオンへの鍵変化があったとき、すなわち押鍵がなされたときは、フラグＷＡＩＴＦが「１（押鍵待ち）」であるか否かを判別する(ステップＦ３)。
【００３１】
ＷＡＩＴＦが「１」である場合、すなわち、自動演奏処理で読み出したデータが演奏パートのノートオンイベントの演奏開始タイミングになって、対応するガイド表示を点灯し、押鍵を待っている状態である場合には、レジスタＮＯＴＥに押鍵された鍵番号をストアして(ステップＦ４)、ＮＯＴＥの鍵番号に基づくノートオンイベントを作成する(ステップＦ５)。そして、そのノートオンイベントを音源９に送出し(ステップＦ６)、フラグＷＡＩＴＦを「０」にリセットする(ステップＦ７)。
【００３２】
次に、Ｔ３にストアされている前回の押鍵から今回の押鍵までの時間と、Ｔ４にストアされている前回のノートオンイベントから今回のノートオンイベントまでの時間との比率を算出して、算出した比率をレジスタＨＩＲＩＴＵにストアする(ステップＦ８)。次に、ＲＯＭ３にあらかじめ記憶されているテーブルにおいて、ＨＩＲＩＴＵの比率に対応するテーブルの値であるＴＡＢＬＥ（ＨＩＲＩＴＵ）をレジスタＴＥＭＰＯにストアする(ステップＦ９)。そして、ＴＥＭＰＯの値に基づいて最小単位音符時間を変更する(ステップＦ１０)。この場合には、Ｔ４の時間がＴ３の時間よりも長い分だけ曲のテンポを遅くする。すなわち、演奏開始タイミングに対する押鍵タイミングの遅れ分に応じてテンポを遅くする。最小単位音符時間を変更した後は、Ｔ３の値を「０」にクリアして(ステップＦ１１)、このフローを終了してメインフローに戻る。
【００３３】
ステップＦ２において、オンからオフへの鍵変化があったとき、すなわち離鍵がなされたときは、ＮＯＴＥに基づくノートオフイベントを作成して(ステップＦ１２)、そのノートオフイベントを音源９に送出する(ステップＦ１３)。そして、このフローを終了してメインフローに戻る。
【００３４】
ステップＦ３において、フラグＷＡＩＴＦが「０」である場合、すなわち、演奏パートのノートオンの演奏開始タイミングより前に押鍵があったときは、図１２のフローにおいて、ＣＵＲＲＥＮＴＮＯＴＥのノートをＮＯＴＥにストアする(ステップＦ１４)。そして、ＮＯＴＥに基づくノートオフイベントを作成して(ステップＦ１５)、そのノートオフイベントを音源９に送出する(ステップＦ１６)。次に、ＮＯＴＥに基づくノートオンイベントを作成して(ステップＦ１７)、そのノートオンイベントを音源９に送出する(ステップＦ１８)。すなわち、現在発音中のノートを瞬間的に消音した後、再びその同じノートで発音を続行する。したがって、耳に聞こえる音としては、現在発音中のノートがそのまま続行している状態になる。
【００３５】
ステップＦ１４ないしステップＦ１６の処理で現在発音中のノートを瞬間的に消音するのは、最小単位音符時間を変更するためである。ステップＦ１８において、現在発音中のノートに基づくノートオンイベントを音源９に送出した後は、図１１のステップＦ８に移行して、Ｔ３の時間とＴ４の時間との比率を算出して、算出した比率をレジスタＨＩＲＩＴＵにストアする。そして、ステップＦ１０の処理でＴＥＭＰＯの値に基づいて最小単位音符時間を変更する。この場合には、テンポに応じた曲の進行速度よりも押鍵の操作のほうが早いので曲のテンポを早くする。
【００３６】
以上のように、上記実施形態によれば、曲データメモリ８から自動演奏曲の曲データを読み出して、読み出した曲データにおけるノートオンイベントの演奏開始タイミングをガイドし、そのガイドしたノートオンイベントの演奏開始タイミング以後の時間に鍵盤６によって演奏データが入力されたときはその演奏データに基づいて発音指示を行い、ガイドしたノートオンイベントの演奏開始タイミングより前の時間に鍵盤６によって演奏データが入力されたときはその演奏データを無効にする。したがって、初心者のユーザが現在演奏している曲の位置を見失うことがなくなり、現在演奏している曲の位置をユーザが容易に把握できる。
【００３７】
この場合において、ノートオンイベントの演奏開始タイミングから演奏データが入力されたタイミングまでの時間差に応じて自動演奏曲のテンポを補正する。したがって、自動演奏曲のテンポにユーザの演奏のタイミングが合わない場合でも、自動演奏曲のテンポをユーザの演奏のタイミングに合わせて自動的に変更することができる。
【００３８】
上記実施形態においては、ガイド表示部５によってノートオンイベントに対応する押鍵すべき鍵をガイドする構成にしたが、「エニキーモード」や「ワンキーモード」の機能によって、押鍵すべき鍵を特定せずに演奏する場合でも、本発明を適用できることはいうまでもない。したがって、本発明によれば、広範な初心者のユーザに対する演奏支援の機能を十分に発揮できる。
【００３９】
上記実施形態の変形例として、ＣＰＵ１は、ガイドしたノートオンイベントの演奏開始タイミングを所定時間以上経過しても、鍵盤６によって演奏データが入力されない場合には、そのノートオンイベントに基づいて発音指示を行い、次の曲データを読み出すように構成してもよい。この構成によれば、正しいタイミングで押鍵しない場合でも、演奏が止まってしまうことがなくなり、演奏開始タイミングをユーザが容易に把握できる。
【００４０】
なお、上記実施形態においては、ＲＯＭ３にあらかじめ格納されている演奏処理のプログラムをＣＰＵ１が実行する演奏装置について説明したが、ＦＤ（フレキシブルディスク）やＣＤ−ＲＯＭなどの外部記憶媒体に記憶された演奏処理のプログラム、又は、インターネットなどの通信網を介してダウンロードした演奏処理のプログラムをハードディスクなどにインストールして実行する構成も可能である。この場合には、プログラムの発明を実現する。
【００４１】
すなわち、その演奏処理のプログラムは、所定の記憶手段から自動演奏曲の曲データを読み出す第１のステップと、第１のステップによって読み出された曲データにおけるノートオンイベントの演奏開始タイミングをガイドする第２のステップと、第２のステップによりガイドされたノートオンイベントの演奏開始タイミング以後の時間に所定の操作子によって演奏データが入力されたときはその演奏データに基づいて発音指示を行い、第２のステップによりガイドされたノートオンイベントの演奏開始タイミングより前の時間に操作子によって演奏データが入力されたときはその演奏データを無効にする第３のステップとを実行する。
【００４２】
【発明の効果】
本発明によれば、所定の記憶手段から自動演奏曲の曲データを読み出して、読み出した曲データにおけるノートオンイベントの演奏開始タイミングをガイドし、そのガイドしたノートオンイベントの演奏開始タイミング以後の時間に操作子によって演奏データが入力されたときはその演奏データに基づいて発音指示を行い、ガイドしたノートオンイベントの演奏開始タイミングより前の時間に操作子によって演奏データが入力されたときはその演奏データを無効にする。したがって、初心者のユーザが現在演奏している曲の位置を見失うことがなくなり、現在演奏している曲の位置をユーザが容易に把握できるという効果が得られる。
【図面の簡単な説明】
【図１】本発明の実施形態における演奏装置の構成を示すブロック図。
【図２】図１のＣＰＵの動作を示すメインフローチャート。
【図３】図２のメインフローチャートにおけるスイッチ処理のフローチャート。
【図４】図３のスイッチ処理におけるテンポスイッチ処理のフローチャート。
【図５】図３のスイッチ処理におけるスタート／ストップスイッチ処理のフローチャート。
【図６】図５に続くスタート／ストップスイッチ処理のフローチャート。
【図７】図２のメインフローチャートにおける自動演奏処理のフローチャート。
【図８】図７に続く自動演奏処理のフローチャート。
【図９】図８に続く自動演奏処理のフローチャート。
【図１０】図９に続く自動演奏処理のフローチャート。
【図１１】図２のメインフローチャートにおける鍵盤処理のフローチャート。
【図１２】図１１に続く鍵盤処理のフローチャート。
【符号の説明】
１  ＣＰＵ
３  ＲＯＭ
４  ＲＡＭ
５  ガイド表示部
６  鍵盤
７  スイッチ部
８  曲データメモリ
９  音源
１０  発音回路
【図１】
2004205892.tif 000003
【図２】
2004205892.tif 000004
【図３】
2004205892.tif 000005
【図４】
2004205892.tif 000006
【図５】
2004205892.tif 000007
【図６】
2004205892.tif 000008
【図７】
2004205892.tif 000009
【図８】
2004205892.tif 000010
【図９】
2004205892.tif 000011
【図１０】
2004205892.tif 000012
【図１１】
2004205892.tif 000013
【図１２】
2004205892.tif 000014