(57)【特許請求の範囲】
【請求項１】
それぞれに音高が割り当てられている複数の演奏操作子と、
演奏者による演奏操作子の操作にしたがって、イベント、発音タイミングおよび消音タイミングを示すレコードを含む演奏データを生成して、記憶手段の演奏データ記憶エリアに格納する演奏データ生成手段と、
楽曲を構成する楽音のそれぞれについて、音高を含むイベント、発音タイミングおよび消音タイミングを示すレコードを含む楽曲データのレコードを、予め設定された第１のテンポに基づいて前記記憶手段の楽曲データ記憶エリアから読み出すことにより、前記レコードに含まれるイベント、発音タイミングおよび消音タイミングにしたがった演奏情報を生成する楽曲演奏制御手段と、
前記演奏者による入力にしたがって、前記第１のテンポの上限および下限を調整する演奏情報調整手段と、を備え、
前記演奏情報調整手段が、
前記演奏データに基づいて定まる第２のテンポから前記第１のテンポを減じた値に相当する第１のテンポ差分値を算出し、
前記第１のテンポ差分値に基づいて前記演奏者の心理状態を示す演奏者心理情報を取得し、前記取得された演奏者心理情報に基づき、前記第１のテンポの上限および下限を決定することを特徴とする自動演奏装置。
【請求項２】
前記記憶手段が、前記演奏者による複数回の演奏に伴う前記第１のテンポ差分値の平均値に相当する第２のテンポ差分値を記憶し、  前記演奏情報調整手段が、  前記第２のテンポ差分値から第１のテンポ差分値を減じた、第３のテンポ差分値が大きくなるのにしたがって、前記第１のテンポの上限および下限をそれぞれ増大させるための、前記演奏者心理情報を取得し、前記取得された演奏者心理情報に基づき、前記演奏情報の第１のテンポの上限および下限を決定することを特徴とする請求項１に記載の自動演奏装置。
【請求項３】
それぞれに音高が割り当てられている複数の演奏操作子と、
演奏者による演奏操作子の操作にしたがって、イベント、発音タイミングおよび消音タイミングを示すレコードを含む演奏データを生成して、記憶手段の演奏データ記憶エリアに格納する演奏データ生成手段と、
楽曲を構成する楽音のそれぞれについて、音高を含むイベント、発音タイミングおよび消音タイミングを示すレコードを含む楽曲データのレコードを、前記記憶手段の楽曲データ記憶エリアから読み出すことにより、前記レコードに含まれるイベント、発音タイミングおよび消音タイミングにしたがった演奏情報を生成する楽曲演奏制御手段と、
前記演奏者による入力にしたがって、前記演奏情報に含まれる、楽音の発音タイミングと消音タイミングとの間の時間であるゲートタイムの上限および下限を調整する演奏情報調整手段と、を備え、
前記演奏情報調整手段が、
前記演奏データにおける、それぞれの楽音についての第１のゲートタイムから前記楽曲データにおけるそれぞれの楽音についての第２のゲートタイムを減じた値に相当する第１のゲートタイム差分値を算出し、
前記第１のゲートタイム差分値に基づいて前記演奏者の心理状態を示す演奏者心理情報を取得し、前記取得された演奏者心理情報に基づき、前記ゲートタイムの上限および下限を決定することを特徴とする自動演奏装置。
【請求項４】
前記記憶手段が、前記演奏者による複数回の演奏に伴う前記第１のゲートタイム差分値の平均値に相当する第２のゲートタイム差分値を記憶し、
前記演奏情報調整手段が、
前記第１のゲートタイム差分値から第２のゲートタイム差分値を減じた、第３のテンポ差分値が小さくなるのにしたがって、前記ゲートタイムの上限および下限をそれぞれ増大させるための、前記演奏者心理情報を取得し、前記取得された演奏者心理情報に基づき、前記ゲートタイムの上限および下限を決定することを特徴とする請求項３に記載の自動演奏装置。
【請求項５】
それぞれに音高が割り当てられている複数の演奏操作子と、
演奏者による演奏操作子の操作にしたがって、イベント、発音タイミングおよび消音タイミングを示すレコードを含む演奏データを生成して、記憶手段の演奏データ記憶エリアに格納する演奏データ生成手段と、
楽曲を構成する楽音のそれぞれについて、音高および音量を含むイベント、発音タイミングおよび消音タイミングを示すレコードを含む楽曲データのレコードを、前記記憶手段の楽曲データ記憶エリアから読み出すことにより、前記レコードに含まれるイベント、発音タイミングおよび消音タイミングにしたがった演奏情報を生成する楽曲演奏制御手段と、
前記演奏者による入力にしたがって、前記演奏情報に含まれる、イベントの音量に相当するベロシティの上限および下限を調整する演奏情報調整手段と、を備え、
前記演奏情報調整手段が、
前記演奏データにおける、それぞれの楽音についての第１のベロシティから前記楽曲データにおけるそれぞれの楽音についての第２のベロシティを減じた値に相当する第１のベロシティ差分値を算出し、
前記第１のベロシティ差分値に基づいて前記演奏者の心理状態を示す演奏者心理情報を取得し、前記取得された演奏者心理情報に基づき、前記演奏情報のベロシティの上限および下限を決定することを特徴とする自動演奏装置。
【請求項６】
前記記憶手段が、前記演奏者による複数回の演奏に伴う前記第１のベロシティ差分値の平均値に相当する第２のベロシティ差分値を記憶し、
前記演奏情報調整手段が、
前記第１のベロシティ差分値から第２のベロシティ差分値を減じた、第３のベロシティ差分値が大きくなるのにしたがって、前記音量の上限および下限をそれぞれ増大させるための、前記演奏者心理情報を取得し、前記演奏者心理情報に基づき、前記演奏情報のベロシティの上限および下限を決定することを特徴とする請求項５に記載の自動演奏装置。
【請求項７】
コンピュータに、  
演奏者による演奏操作子の操作にしたがって、イベント、発音タイミングおよび消音タイミングを示すレコードを含む演奏データを生成して、記憶手段の演奏データ記憶エリアに格納する演奏データ生成ステップと、
楽曲を構成する楽音のそれぞれについて、音高を含むイベント、発音タイミングおよび消音タイミングを示すレコードを含む楽曲データのレコードを、予め設定された第１のテンポに基づいて前記記憶手段の楽曲データ記憶エリアから読み出すことにより、前記レコードに含まれるイベント、発音タイミングおよび消音タイミングにしたがった演奏情報を生成する楽曲演奏制御ステップと、
前記演奏者による入力にしたがって、前記第１のテンポの上限および下限を調整する演奏情報調整ステップと、を実行させ、
前記演奏情報調整ステップが、
前記演奏データに基づいて定まる第２のテンポから前記第１のテンポを減じた値に相当する第１のテンポ差分値を算出し、
前記第１のテンポ差分値に基づいて前記演奏者の心理状態を示す演奏者心理情報を取得し、前記取得された演奏者心理情報に基づき、前記第１のテンポの上限および下限を決定するステップを含むことを特徴とする自動演奏プログラム。
【請求項８】
コンピュータに、
演奏者による演奏操作子の操作にしたがって、イベント、発音タイミングおよび消音タイミングを示すレコードを含む演奏データを生成して、記憶手段の演奏データ記憶エリアに格納する演奏データ生成ステップと、
楽曲を構成する楽音のそれぞれについて、音高を含むイベント、発音タイミングおよび消音タイミングを示すレコードを含む楽曲データのレコードを、前記記憶手段の楽曲データ記憶エリアから読み出すことにより、前記レコードに含まれるイベント、発音タイミングおよび消音タイミングにしたがった演奏情報を生成する楽曲演奏制御ステップと、
前記演奏者による入力にしたがって、前記演奏情報に含まれる、楽音の発音タイミングと消音タイミングとの間の時間であるゲートタイムの上限および下限を調整する演奏情報調整ステップと、を実行させ、
前記演奏情報調整ステップが、
前記演奏データにおける、それぞれの楽音についての第１のゲートタイムから前記楽曲データにおけるそれぞれの楽音についての第２のゲートタイムを減じた値に相当する第１のゲートタイム差分値を算出し、
前記第１のゲートタイム差分値に基づいて前記演奏者の心理状態を示す演奏者心理情報を取得し、前記取得された演奏者心理情報に基づき、前記ゲートタイムの上限および下限を決定するステップを含むことを特徴とする自動演奏プログラム。
【請求項９】
コンピュータに、
演奏者による演奏操作子の操作にしたがって、イベント、発音タイミングおよび消音タイミングを示すレコードを含む演奏データを生成して、記憶手段の演奏データ記憶エリアに格納する演奏データ生成ステップと、
楽曲を構成する楽音のそれぞれについて、音高および音量を含むイベント、発音タイミングおよび消音タイミングを示すレコードを含む楽曲データのレコードを、前記記憶手段の楽曲データ記憶エリアから読み出すことにより、前記レコードに含まれるイベント、発音タイミングおよび消音タイミングにしたがった演奏情報を生成する楽曲演奏制御ステップと、
前記演奏者による入力にしたがって、前記演奏情報に含まれる、イベントの音量に相当するベロシティの上限および下限を調整する演奏情報調整ステップと、を備え、
前記演奏情報調整ステップが、
前記演奏データにおける、それぞれの楽音についての第１のベロシティから前記楽曲データにおけるそれぞれの楽音についての第２のベロシティを減じた値に相当する第１のベロシティ差分値を算出し、
前記第１のベロシティ差分値に基づいて前記演奏者の心理状態を示す演奏者心理情報を取得し、前記取得された演奏者心理情報に基づき、前記演奏情報のベロシティの上限および下限を決定するステップを含むことを特徴とする自動演奏プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デモンストレーション演奏が可能な自動演奏装置および自動演奏プログラムに関する。
【背景技術】
【０００２】
電子楽器など楽音を発生することができる装置では、ＲＯＭや、メモリカードに格納されたデモンストレーション曲（以下、「デモ曲」と称する）のデータを読み出して、当該デモ曲データに基づいた演奏が可能であるものが多い。デモ曲データの演奏では、通常、操作者（以下、「演奏者」と称する）の操作によりテンポの変更が可能である。しかしながら、単にテンポの変更ができるだけでは、演奏者のそのときの気分に応じたデモ演奏が実現できないという問題点があった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平７−７２８５７号公報
【特許文献２】特開平８−１６１６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
たとえば、特許文献１には、デモ曲を複数ブロックに分けて、指示にしたがってデモ演奏のパターンを変化させる自動演奏装置が開示されている。また、特許文献２には、演奏者がデモ曲と同一の楽曲を演奏した場合の演奏時間を計測し、デモ曲の演奏時間と比較して、比較結果に基づいてデモ曲演奏時のテンポを制御する自動演奏装置が開示されている。
【０００５】
演奏者による演奏は、演奏者の心理的な状態を表すため、演奏者による演奏に基づく、テンポ、音量などを含む演奏情報を、デモ曲の自動演奏に反映させることにより、デモ曲の自動演奏を、演奏者の心理状態により合致させることができる。
【０００６】
本発明は、さらに、デモ曲など楽曲の自動演奏における演奏情報の調整可能な範囲を、演奏者の心理状態を反映して設定することができる自動演奏装置、および、自動演奏プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の目的は、それぞれに音高が割り当てられている複数の演奏操作子と、
演奏者による演奏操作子の操作にしたがって、イベント、発音タイミングおよび消音タイミングを示すレコードを含む演奏データを生成して、記憶手段の演奏データ記憶エリアに格納する演奏データ生成手段と、
楽曲を構成する楽音のそれぞれについて、音高を含むイベント、発音タイミングおよび消音タイミングを示すレコードを含む楽曲データのレコードを、予め設定された第１のテンポに基づいて前記記憶手段の楽曲データ記憶エリアから読み出すことにより、前記レコードに含まれるイベント、発音タイミングおよび消音タイミングにしたがった演奏情報を生成する楽曲演奏制御手段と、
前記演奏者による入力にしたがって、前記第１のテンポの上限および下限を調整する演奏情報調整手段と、を備え、
前記演奏情報調整手段が、
前記演奏データに基づいて定まる第２のテンポから前記第１のテンポを減じた値に相当する第１のテンポ差分値を算出し、
前記第１のテンポ差分値に基づいて前記演奏者の心理状態を示す演奏者心理情報を取得し、前記取得された演奏者心理情報に基づき、前記第１のテンポの上限および下限を決定することを特徴とする自動演奏装置により達成される。
【０００８】  好ましい実施態様においては、前記記憶手段が、前記演奏者による複数回の演奏に伴う前記第１のテンポ差分値の平均値に相当する第２のテンポ差分値を記憶し、  前記演奏情報調整手段が、  前記第２のテンポ差分値から第１のテンポ差分値を減じた、第３のテンポ差分値が大きくなるのにしたがって、前記第１のテンポの上限および下限をそれぞれ増大させるための、前記演奏者心理情報を取得し、前記取得された演奏者心理情報に基づき、前記演奏情報の第１のテンポの上限および下限を決定する。【０００９】
別の好ましい実施態様においては、それぞれに音高が割り当てられている複数の演奏操作子と、
演奏者による演奏操作子の操作にしたがって、イベント、発音タイミングおよび消音タイミングを示すレコードを含む演奏データを生成して、記憶手段の演奏データ記憶エリアに格納する演奏データ生成手段と、
楽曲を構成する楽音のそれぞれについて、音高を含むイベント、発音タイミングおよび消音タイミングを示すレコードを含む楽曲データのレコードを、前記記憶手段の楽曲データ記憶エリアから読み出すことにより、前記レコードに含まれるイベント、発音タイミングおよび消音タイミングにしたがった演奏情報を生成する楽曲演奏制御手段と、
前記演奏者による入力にしたがって、前記演奏情報に含まれる、楽音の発音タイミングと消音タイミングとの間の時間であるゲートタイムの上限および下限を調整する演奏情報調整手段と、を備え、
前記演奏情報調整手段が、
前記演奏データにおける、それぞれの楽音についての第１のゲートタイムから前記楽曲データにおけるそれぞれの楽音についての第２のゲートタイムを減じた値に相当する第１のゲートタイム差分値を算出し、
前記第１のゲートタイム差分値に基づいて前記演奏者の心理状態を示す演奏者心理情報を取得し、前記取得された演奏者心理情報に基づき、前記ゲートタイムの上限および下限を決定することを特徴とする自動演奏装置により達成される。
【００１０】
より好ましい実施形態においては、前記記憶手段が、前記演奏者による複数回の演奏に伴う前記第１のゲートタイム差分値の平均値に相当する第２のゲートタイム差分値を記憶し、
前記演奏情報調整手段が、
前記第１のゲートタイム差分値から第２のゲートタイム差分値を減じた、第３のテンポ差分値が小さくなるのにしたがって、前記ゲートタイムの上限および下限をそれぞれ増大させるための、前記演奏者心理情報を取得し、前記取得された演奏者心理情報に基づき、前記ゲートタイムの上限および下限を決定する。
【００１１】
別の好ましい実施態様においては、それぞれに音高が割り当てられている複数の演奏操作子と、
演奏者による演奏操作子の操作にしたがって、イベント、発音タイミングおよび消音タイミングを示すレコードを含む演奏データを生成して、記憶手段の演奏データ記憶エリアに格納する演奏データ生成手段と、
楽曲を構成する楽音のそれぞれについて、音高および音量を含むイベント、発音タイミングおよび消音タイミングを示すレコードを含む楽曲データのレコードを、前記記憶手段の楽曲データ記憶エリアから読み出すことにより、前記レコードに含まれるイベント、発音タイミングおよび消音タイミングにしたがった演奏情報を生成する楽曲演奏制御手段と、
前記演奏者による入力にしたがって、前記演奏情報に含まれる、イベントの音量に相当するベロシティの上限および下限を調整する演奏情報調整手段と、を備え、
前記演奏情報調整手段が、
前記演奏データにおける、それぞれの楽音についての第１のベロシティから前記楽曲データにおけるそれぞれの楽音についての第２のベロシティを減じた値に相当する第１のベロシティ差分値を算出し、
前記第１のベロシティ差分値に基づいて前記演奏者の心理状態を示す演奏者心理情報を取得し、前記取得された演奏者心理情報に基づき、前記演奏情報のベロシティの上限および下限を決定することを特徴とする自動演奏装置により達成される。
【００１２】
より好ましい実施態様においては、前記記憶手段が、前記演奏者による複数回の演奏に伴う前記第１のベロシティ差分値の平均値に相当する第２のベロシティ差分値を記憶し、
前記演奏情報調整手段が、
前記第１のベロシティ差分値から第２のベロシティ差分値を減じた、第３のベロシティ差分値が大きくなるのにしたがって、前記音量の上限および下限をそれぞれ増大させるための、前記演奏者心理情報を取得し、前記演奏者心理情報に基づき、前記演奏情報のベロシティの上限および下限を決定する。
【００１３】
また、本発明の目的は、コンピュータに、
演奏者による演奏操作子の操作にしたがって、イベント、発音タイミングおよび消音タイミングを示すレコードを含む演奏データを生成して、記憶手段の演奏データ記憶エリアに格納する演奏データ生成ステップと、
楽曲を構成する楽音のそれぞれについて、音高を含むイベント、発音タイミングおよび消音タイミングを示すレコードを含む楽曲データのレコードを、予め設定された第１のテンポに基づいて前記記憶手段の楽曲データ記憶エリアから読み出すことにより、前記レコードに含まれるイベント、発音タイミングおよび消音タイミングにしたがった演奏情報を生成する楽曲演奏制御ステップと、
前記演奏者による入力にしたがって、前記第１のテンポの上限および下限を調整する演奏情報調整ステップと、を実行させ、
前記演奏情報調整ステップが、
前記演奏データに基づいて定まる第２のテンポから前記第１のテンポを減じた値に相当する第１のテンポ差分値を算出し、
前記第１のテンポ差分値に基づいて前記演奏者の心理状態を示す演奏者心理情報を取得し、前記取得された演奏者心理情報に基づき、前記第１のテンポの上限および下限を決定するステップを含むことを特徴とする自動演奏プログラムにより達成される。
【００１４】
また、本発明の目的は、コンピュータに、
演奏者による演奏操作子の操作にしたがって、イベント、発音タイミングおよび消音タイミングを示すレコードを含む演奏データを生成して、記憶手段の演奏データ記憶エリアに格納する演奏データ生成ステップと、
楽曲を構成する楽音のそれぞれについて、音高を含むイベント、発音タイミングおよび消音タイミングを示すレコードを含む楽曲データのレコードを、前記記憶手段の楽曲データ記憶エリアから読み出すことにより、前記レコードに含まれるイベント、発音タイミングおよび消音タイミングにしたがった演奏情報を生成する楽曲演奏制御ステップと、
前記演奏者による入力にしたがって、前記演奏情報に含まれる、楽音の発音タイミングと消音タイミングとの間の時間であるゲートタイムの上限および下限を調整する演奏情報調整ステップと、を実行させ、
前記演奏情報調整ステップが、
前記演奏データにおける、それぞれの楽音についての第１のゲートタイムから前記楽曲データにおけるそれぞれの楽音についての第２のゲートタイムを減じた値に相当する第１のゲートタイム差分値を算出し、
前記第１のゲートタイム差分値に基づいて前記演奏者の心理状態を示す演奏者心理情報を取得し、前記取得された演奏者心理情報に基づき、前記ゲートタイムの上限および下限を決定するステップを含むことを特徴とする自動演奏プログラムにより達成される。
また、本発明の目的は、コンピュータに、
演奏者による演奏操作子の操作にしたがって、イベント、発音タイミングおよび消音タイミングを示すレコードを含む演奏データを生成して、記憶手段の演奏データ記憶エリアに格納する演奏データ生成ステップと、
楽曲を構成する楽音のそれぞれについて、音高および音量を含むイベント、発音タイミングおよび消音タイミングを示すレコードを含む楽曲データのレコードを、前記記憶手段の楽曲データ記憶エリアから読み出すことにより、前記レコードに含まれるイベント、発音タイミングおよび消音タイミングにしたがった演奏情報を生成する楽曲演奏制御ステップと、
前記演奏者による入力にしたがって、前記演奏情報に含まれる、イベントの音量に相当するベロシティの上限および下限を調整する演奏情報調整ステップと、を備え、
前記演奏情報調整ステップが、
前記演奏データにおける、それぞれの楽音についての第１のベロシティから前記楽曲データにおけるそれぞれの楽音についての第２のベロシティを減じた値に相当する第１のベロシティ差分値を算出し、
前記第１のベロシティ差分値に基づいて前記演奏者の心理状態を示す演奏者心理情報を取得し、前記取得された演奏者心理情報に基づき、前記演奏情報のベロシティの上限および下限を決定するステップを含むことを特徴とする自動演奏プログラムにより達成される。
【発明の効果】
【００１５】
本発明によれば、デモ曲など楽曲の自動演奏における演奏情報の調整可能な範囲を、演奏者の心理状態を反映して設定することができる自動演奏装置、および、自動演奏プログラムを提供することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】図１は、本実施の形態にかかる電子楽器の概略を示す図である。
【図２】図２は、本実施の形態にかかる電子楽器の構成を示すブロックダイヤグラムである。
【図３】図３は、本実施の形態にかかるＲＯＭに格納されたデータの一例を説明する図である。
【図４】図４は、本実施の形態にかかるＲＡＭに格納されたデータの一例を説明する図である。
【図５】図５は、本実施の形態にかかる演奏データ記憶エリアおよび曲データエリアのデータ構成例を示す図である。
【図６】図６は、本実施の形態にかかる電子楽器において実行される処理の例を概略的に示すフローチャートである。
【図７】図７は、本実施の形態にかかる鍵盤処理の例を示すフローチャートである。
【図８】図８は、本実施の形態にかかるスイッチ処理の例を示すフローチャートである。
【図９】図９は、本実施の形態にかかる録音スタートスイッチ処理の例を示すフローチャートである。
【図１０】図１０は、本実施の形態にかかるデモ曲選択スイッチ処理の例を示すフローチャートである。
【図１１】図１１は、本実施の形態にかかる曲データ変換処理の例を示すフローチャートである。
【図１２】図１２は、本実施の形態にかかる曲データ変換処理の例を示すフローチャートである。
【図１３】図１３は、本実施の形態にかかるデモ曲スタート・ストップスイッチ処理の例を示すフローチャートである。
【図１４】図１４は、本実施の形態にかかるデモ曲スタート・ストップスイッチ処理の例を示すフローチャートである。
【図１５】図１５は、本実施の形態にかかるパラメータ選択スイッチ処理の例を示すフローチャートである。
【図１６】図１６は、本実施の形態にかかるパラメータ増減スイッチ処理の例を示すフローチャートである。
【図１７】図１７は、本実施の形態にかかる分析処理の例を示すフローチャートである。
【図１８】図１８は、本実施の形態にかかる分析処理の例を示すフローチャートである。
【図１９】図１９は、本実施の形態にかかるデモ曲処理の例を示すフローチャートである。
【図２０】図１０は、本実施の形態にかかるデモ曲処理の例を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、添付図面を参照して、本発明の実施の形態について説明する。図１は、本実施の形態にかかる電子楽器の概略を示す図である。図１に示すように、本実施の形態にかかる電子楽器１０は、複数（たとえば６１個）の鍵１６−１、１６−２、・・・を含む鍵盤１１を有する。また、鍵盤１１の上部には、音色の指定、デモ曲などを含む楽曲の自動演奏のテンポを含むパラメータの設定、演奏者による録音スタートの指示、デモ曲の選択、デモ曲のスタート・ストップのための複数のスイッチ（たとえば、スイッチ１７、テンキー１８など）や、演奏される楽曲に関する種々の情報、たとえば、音色、デモ曲番号、テンポなどを表示する表示部１４を有する。
【００１８】
図２は、本実施の形態にかかる電子楽器の構成を示すブロックダイヤグラムである。図２に示すように、本実施の形態にかかる電子楽器１０は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、サウンドシステム２４、鍵盤１１、スイッチ部１２、および、液晶表示装置を有する表示部１４を備える。
【００１９】
ＣＰＵ２１は、電子楽器１０全体の制御、鍵盤１１の鍵（たとえば、図１の符号１６−１、１６−２参照）の押鍵やスイッチ部１２を構成するスイッチの操作の検出、鍵やスイッチの操作にしたがったサウンドシステム２４の制御など種々の処理を実行する。また、本実施の形態において、ＣＰＵ２１は、ＲＯＭ２２に格納されたデモ曲のデータを読み出して、音源部２６に発音させ、また、演奏者による鍵盤１１の鍵の押鍵に基づく演奏データの生成およびＲＡＭ２３への格納の処理を実行する。さらに、ＣＰＵ２１は、演奏者によるスイッチ１２の操作などに基づいて、デモ曲の演奏を規定する演奏情報パラメータを制御するための処理を実行する。
【００２０】
ＲＯＭ２２は、ＣＰＵ２１に実行させる種々の処理、たとえば、鍵盤の鍵のオン（押鍵）・オフ（離鍵）の検出、スイッチの操作、押鍵に応じた楽音の発音、デモ曲等の自動演奏、押鍵に基づく演奏データの生成、演奏情報パラメータの制御などのプログラムを格納する。また、ＲＯＭ２２は、ピアノ、ギター、バスドラム、スネアドラム、シンバルなどの楽音を生成するための波形データを格納した波形データエリア、および、自動伴奏を格納したデモ曲データエリア、上記プログラムを格納したプログラムエリアを有する。ＲＡＭ２３は、ＲＯＭ２２から読み出されたプログラムや、処理の過程で生成されたデータなどを記憶する。
【００２１】
サウンドシステム２４は、音源部２６、オーディオ回路２７およびスピーカ２８を有する。音源部２６は、たとえば、押鍵された鍵に関するノートオンイベントをＣＰＵ２１から受信すると、ＲＯＭ２２の波形データエリアから所定の波形データを読み出して、所定の音高で所定のベロシティの楽音データを生成して出力する。また、音源部２６は、波形データ、特に、スネアドラム、バスドラム、シンバルなど打楽器の音色の波形データを、そのまま楽音データとして出力することもできる。オーディオ回路２７は、楽音データをＤ／Ａ変換して増幅する。これによりスピーカ２８から音響信号が出力される。
【００２２】
図３は、本実施の形態にかかるＲＯＭに格納されたデータの一例を説明する図である。図３に示すように、本実施の形態にかかるＲＯＭ２２には、プログラムエリア３０１、波形データエリア３０２およびデモ曲データエリア３０３を含む。デモ曲データエリア３０３には、複数のデモ曲（たとえば、デモ曲（１）、（２）、（３）・・・）のそれぞれのデータエリア（たとえば、符号３１１、３１２、３１３）を含む。デモ曲データエリア（たとえば、デモ曲（１）のデータエリア３１１）は、時間情報であるタイムのデータレコード（たとえば符号３２１、３２３参照）と、押鍵（ノートオン）或いは離鍵（ノートオフ）のいずれかのイベント情報であるイベントのデータレコード（たとえば符号３２２、３２４参照）とを含む。イベントのデータレコードは、そのイベントの内容（ノートオン或いはノートオフ）、イベントにかかる音高情報（たとえば、ＭＩＤＩにしたがったノート番号）、および、ノートオンイベントであれば音量を指定するベロシティを含む。
【００２３】
２つのイベントのレコードの間に位置するタイムのレコードは、当該２つのイベントの間の時間間隔を示す。たとえば、イベントのレコード３２２がある音高のノートオンイベントを示し、イベントのレコード３２４が当該音高のノートオフイベントを示す場合に、その間のタイムのレコード３２３は、当該音高の楽音の発音時間を示す。
【００２４】
図４および図５は、本実施の形態にかかるＲＡＭ２３に格納されたデータの一例を説明する図である。図４に示すように、ＲＡＭ２３には、演奏データ記憶エリア４００、デモ曲対応履歴データエリア４０１、パラメータエリア４０２、第１の差分データエリア４０３、演奏者状態情報ＳＴＡＴＥの格納エリア４０４、デモ曲の曲データを格納する曲データエリア４０５、曲番号ＳＯＮＧの格納エリア４０６、第１のタイマ値Ｔ１の格納エリア４０７、および、第２のタイマ値Ｔ２の格納エリア４０８を有する。後に詳述するが、第１の差分データ４０３は、テンポについての第１の差分値（第１テンポ差分値）Δｔｅｍｐｏ、ベロシティについての第１の差分値（第１ベロシティ差分値）Δｖｅｌ、および、押鍵時間に相当するゲートタイムについての第１の差分値（第１ゲートタイム差分値）Δｇａｔｅのデータレコードを有する。
【００２５】
デモ曲対応履歴データエリア４０１には、デモ曲ごと（たとえば符号４１１、４１２参照）に、第２の差分値データ（符号４２１参照）を含む。第２の差分データ４２１は、テンポについての第２の差分値（第２テンポ差分値）ΔＴＥＭＰＯ、ベロシティについての第２の差分値（第２ベロシティ差分値）ΔＶＥＬ、および、押鍵時間に相当するゲートタイムについての第２の差分値（第２ゲートタイム差分値）ΔＧＡＴＥのデータレコードを有する。
【００２６】
パラメータエリア４０２は、テンポデータ、ベロシティデータおよびゲートタイムデータを有する（符号４１３〜４１５参照）。本実施の形態においては、演奏情報パラメータとして、楽曲のテンポ、音量（ベロシティ）、および、ゲートタイムを調整することができるようになっている。上記演奏情報パラメータには、デモ曲演奏の際に用いられるプリセット値データと、値の上限および下限をそれぞれ示す最大値データおよび最小値データが存在する。
【００２７】
テンポデータ４１３は、テンポプリセット値データＰＲ（０）、テンポ最大値データＭＡＸ（０）およびテンポ最小値データＭＩＮ（０）のデータレコードを有する（符号４２２参照）。音量データ４１４は、音量プリセット値データ（ＰＲ（１）、音量最大値データＭＡＸ（１）および音量最小値データＭＩＮ（１）のデータレコードを有する（符号４２３参照）。また、ゲートタイムデータ４１５は、ゲートタイムプリセット値データＰＲ（２）、ゲートタイム最大値データＭＡＸ（２）およびゲートタイム最小値データＭＩＮ（２）のデータレコードを有する（符号４２４参照）。
【００２８】
図５は、本実施の形態にかかる演奏データ記憶エリアおよび曲データエリアのデータ構成例を示す図である。演奏データ記憶エリアおよび曲データエリアの双方とも、同様のデータ構成を備えており、以下、演奏データ記憶エリアについて説明する。演奏データ記憶エリアのレコード群５００は、先頭にイニシャルタイムのレコードを有する（符号５０１）、次いで、ノートオンイベントのレコード（符号５０２）、ゲートタイムのレコード（符号５０３）およびステップタイムのレコード（符号５０４）が格納され、その後に、次のノートオンイベントのレコード（符号５０５）が格納される。ゲートタイムは、ノートオンイベントによりオン状態となった楽音を消音するまでの時間間隔を示す。その一方、ステップタイムは、ノートオンイベントと次のノートオンイベントとの間の時間間隔を示す。すなわち、ゲートタイムが短くなる（値が小さくなる）ことは、鍵のオン時間が短くなることを示し、演奏において、聴感上フレーズの跳躍感が増大することになる。
【００２９】
図６は、本実施の形態にかかる電子楽器において実行される処理の例を概略的に示すフローチャートである。図６に示すように、電子楽器１０の電源が投入されると、ＣＰＵ２１は、ＲＡＭ２３中のデータや、表示部１４の画面に表示された画像のクリアを含むイニシャライズを実行する（ステップ６０１）。イニシャライズが終了すると、電子楽器１０のＣＰＵ２１は、スイッチ処理を実行する（ステップ６０２）。スイッチ処理が終了すると、ＣＰＵ２１は、鍵盤処理を実行する（ステップ６０３）。処理が前後するが、以下、鍵盤処理の詳細について先に説明する。
【００３０】
図７は、本実施の形態にかかる鍵盤処理の例を示すフローチャートである。図７に示すように、ＣＰＵ２１は、鍵盤１１の鍵を所定の順で（たとえば、音高の低い鍵から）走査して（ステップ７０１）、処理対象となる鍵の状態に変化があったか否かを判断する（ステップ７０２）。ステップ７０２で鍵がオン状態となったと判断された場合には、ＣＰＵ２１は、当該鍵の押鍵に基づき、鍵に対応する音高の楽音を発音することを示すノートオンイベントを生成する（ステップ７０３）。ノートオンイベントには、音高情報に加え、鍵の押鍵速度に基づき得られたベロシティが含まれる。ＣＰＵ２１は、ノートオンイベントを音源部２６に与える（ステップ７０４）。
【００３１】
次いで、ＣＰＵ２１は、録音スタートフラグＲＳＴＦが「１」であるかを判断する（ステップ７０５）。ステップ７０５でＹｅｓと判断された場合には、ＣＰＵ２１は、オン状態となった鍵の押鍵が、最初の押鍵に該当するかを判断する（ステップ７０６）。ここに、最初の押鍵とは、録音スタートフラグが「１」になってからの最初の押鍵を意味する。ステップ７０６でＹｅｓと判断された場合には、ＣＰＵ２１は、ＲＡＭ２３の曲データエリア（符号４０５参照）のアドレスＡＤをインクリメント、つまり、「１」だけ増大させる（ステップ７０７）。その一方、ステップ７０６でＮｏと判断された場合には、ＣＰＵ２１は、アドレスＡＤを「３」だけ増大させる（ステップ７０８）。
【００３２】
次いで、ＣＰＵ２１は、ＲＡＭ２３において、アドレスＡＤに示す位置にイベント（ノートオンイベント）を格納する（ステップ７０９）。ＣＰＵ２１は、押鍵が最初の押鍵に該当するかを再度判断する（ステップ７１０）。ステップ７１０でＮｏと判断された場合には、ＣＰＵ２１は、ＲＡＭ２３においてアドレス（ＡＤ＋１）に示す位置に、第１のタイマ値Ｔ１を格納する（ステップ７１１）。その後、ＣＰＵ２１は、第１のタイマ値Ｔ１および第２のタイマ値Ｔ２を「０」にクリアする。
【００３３】
次に、処理対象となる鍵がオフ状態となった場合について説明する。鍵がオフ状態となった場合には、ＣＰＵ２１は、離鍵された鍵に対応する音高の楽音を消音することを示すノートオフイベントを生成する（ステップ７１３）。ＣＰＵ２１は、ノートオフイベントを音源部２６に与える（ステップ７１４）。次いで、ＣＰＵ２１は、録音スタートフラグＲＳＴＦが「１」であるかを判断する（ステップ７１５）。ステップ７１５でＹｅｓと判断された場合には、ＣＰＵ２１は、ＲＡＭ２３においてアドレス（ＡＤ＋２）に示す位置に、第２のタイマ値Ｔ２を格納する（ステップ７１６）。
【００３４】
なお、後述するように、録音スタートスイッチ処理（図８のステップ８０１、図９）において、録音がスタートされると、ＲＳＴＦが「１」となっている。また、ＲＳＴＦが「１」に変化したときに、タイマカウントが開始される。ＲＳＴＦが「１」の状態では、タイマ（図示せず）が起動し、タイマインタラプトによって、第１のタイマ値Ｔ１および第２のタイマ値Ｔ２がインクリメントされる。ここでタイマがインクリメントされる周期（タイマ周期）は、テンポ値プリセットデータＰＲ（０）に基づいて決定される。
【００３５】
鍵盤処理によって、イベント（ノートオンイベント）、ゲートタイム、および、ステップタイムの順でレコードが繰り返し格納された演奏データが生成され、ＲＡＭ２３の演奏データ記憶エリア４００に格納される。
【００３６】
次に、スイッチ処理（ステップ６０２）についてより詳細に説明する。図８は、本実施の形態にかかるスイッチ処理の例を示すフローチャートである。図８に示すように、スイッチ処理には、録音スタートスイッチ処理（ステップ８０１）、デモ曲選択スイッチ処理（ステップ８０２）、デモ曲スタート・ストップスイッチ処理（ステップ８０３）、パラメータ選択スイッチ処理（ステップ８０４）、および、パラメータ増減スイッチ処理（ステップ８０５）を含む。以下、それぞれの処理について説明する。
【００３７】
図９は、本実施の形態にかかる録音スタートスイッチ処理の例を示すフローチャートである。図９に示すように、ＣＰＵ２１は、スイッチ部１２中の録音スタートスイッチが操作されたかを判断する（ステップ９０１）。録音スタートスイッチ（図示せず）は、１回目の操作でオン、次の操作でオフとなる、いわゆるトグルスイッチである。スイッチ操作があった場合（ステップ９０１でＹｅｓ）、ＣＰＵ２１は、録音スタートフラグＲＳＴＦを反転させて（ステップ９０２）、ＲＳＴＦが「１」となったかを判断する（ステップ９０３）。ステップ９０３でＹｅｓと判断された場合には、ＣＰＵ２１は、ＲＡＭ２３中に演奏データ記憶エリア（図４の符号４００参照）を確保する（ステップ９０４）。また、ＣＰＵ２１は、ＲＡＭ２３の演奏エータ記憶エリア２３の先頭アドレスを、パラメータＡＤとして設定する。また、ＣＰＵ２１は、ＲＡＭ２３中、アドレスＡＤで示される位置に、現在時刻を格納し（ステップ９０６）、第１のタイマ値Ｔ１および第２のタイマ値Ｔ２（図４の符号４０７、４０８参照）を「０」にリセットする（ステップ９０７）。その後、ＣＰＵ２１は、タイマカウントを開始する（ステップ９０８）。タイマカウントが開始されると、第１のタイマ値Ｔ１および第２のタイマ値Ｔ２は、所定のタイマ周期で実行されるタイマインタラプト処理（図示せず）においてインクリメントされる。
【００３８】
ステップ９０３でＮｏと判断された場合には、ＣＰＵ２１は、タイマカウントを停止する（ステップ９０９）。これにより、タイマインタラプト処理のよるタイマ値Ｔ１、Ｔ２のインクリメントが停止される。また、ＣＰＵ２１は、分析処理を実行する（ステップ９１０）。分析処理については後に詳述する。その後、ＣＰＵ２１は、ＲＡＭ２３の演奏データ記憶エリアに格納されたデータをクリアする（ステップ９１１）。
【００３９】
次に、デモ曲選択スイッチ処理（ステップ８０２）について説明する。図１０は、本実施の形態にかかるデモ曲選択スイッチ処理の例を示すフローチャートである。デモ曲選択スイッチは、たとえば、テンキーであり、番号が入力できるようになっている。デモ曲選択スイッチの操作があった場合には（ステップ１００１でＹｅｓ）、ＣＰＵ２１は、入力された番号を、ＲＡＭ２３中の曲番号ＳＯＮＧのエリア（図４の符号４０６参照）に格納する（ステップ１００２）。その後、ＣＰＵ２１は、曲データ変換処理を実行する（ステップ１００３）。
【００４０】
図１１および図１２は、本実施の形態にかかる曲データ変換処理の例を示すフローチャートである。曲データ変換処理においては、デモ曲データエリアに格納されたデモ曲のデータのデータ形式（図３の符号３２１〜３２４参照）を、図５に示すデータ形式に変換する。ＣＰＵ２１は、ＲＡＭ２３中に曲データエリア（図４の符号４０５参照）を確保する（ステップ１１０１）。次いで、ＣＰＵ２１は、ＲＯＭのアドレスを示すパラメータＡＤとして、曲番号ＳＯＮＧで示されたデモ曲について、ＲＯＭ２２中のデモ曲データエリアの先頭アドレスを設定する（ステップ１１０２）。また、ＣＰＵ２１は、ＲＡＭ２３のアドレスを示すパラメータＡＤ１として、曲データエリアの先頭アドレスを設定する（ステップ１１０３）。
【００４１】
ＣＰＵ２１は、ＲＡＭ２３のパラメータ（アドレス）ＡＤ１で示される位置に、イニシャルタイムを格納する（ステップ１１０４）。ここに、イニシャルタイムとして最初のノートオンが開始されるまでの時間を示す。次いで、ＣＰＵ２１は、第１のタイマ値Ｔ１および第２のタイマ値Ｔ２を初期化する（ステップ１１０５）。次いで、ＣＰＵ２１は、ＲＯＭ２２において、パラメータ（アドレス）ＡＤに示す位置のデータを読み出し、そのデータ種別を判断する（ステップ１１０６）。
【００４２】
データ種別が「タイム」であった場合には、ＣＰＵ２１は、第１のタイマ値Ｔ１に「タイム」の値を加算するとともに、第２のタイマ値Ｔ２に「タイム」の値を加算する（ステップ１１０７）。また、データ種別がノートオンであった場合には、ＣＰＵ２１は、アドレスＡＤ１をインクリメントして（ステップ１１０８）、ＲＡＭ２３中、アドレスＡＤ１に示す位置に、ＲＯＭから読み出されたデータであるノートオンイベントを格納する（ステップ１１０９）。データ種別がノートオフであった場合には、ＣＰＵ２１は、アドレスＡＤ１を「２」だけ加算して、ＲＡＭ２３中、アドレスＡＤ１に示す位置に第２のタイマ値Ｔ２を格納する（ステップ１１１１）。
【００４３】
ステップ１１０７或いはステップ１１１１が実行された後、図１２に示すように、ＣＰＵ２１は、アドレスＡＤをインクリメントして（ステップ１２０４）、ＲＯＭ２２においてアドレスＡＤにデモ曲データのレコードが存在しないかを判断する（ステップ１２０５）。ステップ１２０５でＮｏと判断された場合には、ステップ１１０６に戻り、その一方、ステップ１２０５でＹｅｓと判断された場合には、処理を終了する。
【００４４】
ステップ１１０９が実行された後には、ＣＰＵ２１は、ＲＯＭ２２から読み出されたデータがデモ曲データの最初のデータであるかを判断する（ステップ１２０１）。ステップ１２０１でＹｅｓと判断された場合には、ステップ１２０４に進む。その一方、ステップ１２０１でＮｏと判断された場合には、ＲＡＭ２３中、において、アドレス（ＡＤ１−２）に示す位置に、第１のタイマ値Ｔ１を格納する（ステップ１２０２）。その後、ＣＰＵ２１は、第１のタイマ値Ｔ１および第２のタイマ値Ｔ２を、それぞれ「０」にリセットし（ステップ１２０３）、ステップ１２０４に進む。
【００４５】
次に、デモ曲スタート・ストップスイッチ処理について説明する。図１３および図１４は、本実施の形態にかかるデモ曲スタート・ストップスイッチ処理の例を示すフローチャートである。図１３に示すように、ＣＰＵ２１は、スイッチ部２１のデモ曲スタート・ストップスイッチが操作されたかを判断する（ステップ１３０１）。デモ曲スタート・ストップスイッチ（図示せず）は、１回目の操作でオン、次の操作でオフとなる、いわゆるトグルスイッチである。スイッチ操作があった場合（ステップ１３０１でＹｅｓ）、スタートフラグＳＴＦを反転させて（ステップ１３０２）、ＳＴＦが「１」になったかを判断する（ステップ１３０３）。ステップ１３０３でＹｅｓと判断された場合には、ＲＡＭ２３中、テンポプリセット値データＰＲ（０）として、曲番号Ｓｏｎｇで指定されたデモ曲のテンポデータを与える（ステップ１３０６）。また、ＣＰＵ２１は、パラメータＡＤとして、ＲＡＭ２３中の曲データの先頭アドレスを設定する（ステップ１３０７）。次いで、ＣＰＵ２１は、ＡＤを用いて、ＲＡＭ２３の曲データエリアにおいて、アドレスＡＤが示す位置の値（タイム）を読み出して、読み出された値を、ＲＡＭ２３中の第１のタイマ値Ｔ１および第２のタイマ値Ｔ２として格納する（ステップ１３０８）。その後、ＣＰＵ２１は、演奏者状態情報ＳＴＡＴＥに基づき、ＲＡＭ２３中のテンポプリセット値データＰＲ（０）を変更する（ステップ１３０９）。このＳＴＡＴＥに基づく値の変更は後に詳述する。
【００４６】
次いで、ＣＰＵ２１は、ＲＡＭ２３中の音量プリセット値データＰＲ（１）に予め定められた音量デフォルト値を与える（ステップ１４０１）。次いで、ＣＰＵ２１は、演奏者状態情報ＳＴＡＴＥに基づき、ＲＡＭ２３中の音量プリセット値データＰＲ（１）を変更する（ステップ１４０２）。
【００４７】
また、ＣＰＵ２１は、ＲＡＭ２３中のゲートタイムプリセット値データＰＲ（２）に予め定められたゲートタイム係数デフォルト値を与える（ステップ１４０３）。次いで、ＣＰＵ２１は、演奏者状態情報ＳＴＡＴＥに基づき、ＲＡＭ２３中のゲートタイムプリセット値データＰＲ（２）を変更する（ステップ１４０４）。その後、ＣＰＵ２１は、テンポプリセット値データＰＲ（０）に基づいてタイマ周期を決定し（ステップ１４０５）、タイマカウントを開始する（ステップ１４０６）。デモ曲演奏時のタイマカウントは、演奏の録音時のタイマカウントと異なる。後述するデモ曲処理（図１９、図２０）で説明するが、第１のタイマ値Ｔ１および第２のタイマ値Ｔ２に、それぞれ、ステップタイムおよびゲートタイムを格納しておき、定められたタイマ周期で、タイマ値を減算している。
【００４８】
ステップ１３０３でＮｏと判断された場合には、ＣＰＵ２１は、オールノートオフ処理を実行する（ステップ１３０４）。オールノートオフ処理においては、発音中の全ての楽音についてノートオフイベントが生成され、音源部２６に送信される。次いで、ＣＰＵ２１は、タイマカウントを停止する（ステップ１３０５）。
【００４９】
次に、パラメータ選択スイッチ処理（ステップ８０４）について説明する。図１５は、本実施の形態にかかるパラメータ選択スイッチ処理の例を示すフローチャートである。パラメータ選択スイッチにより、後述するパラメータ増減スイッチにて値が増減されるパラメータが選択させる。図１５に示すように、ＣＰＵ２１は、スイッチ部１２のテンポスイッチがオンされたかを判断し（ステップ１５０１）、オンされている場合には、スイッチ選択パラメータＰに「０」を与える（ステップ１５０２）。ステップ１５０１でＮｏと判断された場合には、ＣＰＵ２１は、スイッチ部１２の音量スイッチがオンされたかを判断し（ステップ１５０３）、オンされている場合には、スイッチ選択パラメータＰに「１」を与える（ステップ１５０４）。ステップ１５０３でＮｏと判断された場合には、ゲートタイムスイッチがオンされているかを判断し（ステップ１５０５）、オンされている場合には、パラメータＰに「２」を与える（ステップ１５０７）。ステップ１５０２、１５０５および１５０６の後、ＣＰＵ１２は、スイッチ押下回数カウンタ値ｍを「０」にリセットする（ステップ１５０７）。
【００５０】
次に、パラメータ増減スイッチ処理（ステップ８０５）について説明する。図１６は、本実施の形態にかかるパラメータ増減スイッチ処理の例を示すフローチャートである。図１６に示すように、ＣＰＵ１２は、スイッチ部１２の増加スイッチ（「＋」スイッチ）がオンされたかを判断する（ステップ１６０１）。ステップ１６０１においてＹｅｓと判断された場合には、スイッチ押下回数カウンタ値ｍが、ＲＡＭ２３に格納された最大値データＭＡＸ（Ｐ）より小さいかを判断する（ステップ１６０２）。本実施の形態においては、ＲＡＭ２３には、テンポ最大値データＭＡＸ（０）、音量最大値データＭＡＸ（１）およびゲートタイム最大値データＭＡＸ（２）が格納されている。したがって、スイッチ選択パラメータＰで指定されるＭＡＸ（Ｐ）が読み出されて、カウンタ値ｍと比較される。
【００５１】
ステップ１６０２でＹｅｓと判断された場合には、ＣＰＵ２１は、スイッチ押下回数パラメータをインクリメントし（ステップ１６０３）、スイッチ選択パラメータＰで指定されるプリセット値データＰＲ（Ｐ）をインクリメントする（ステップ１６０４）。
【００５２】
ステップ１６０１でＮｏと判断された場合には、スイッチ部１２の減少スイッチ（「−」スイッチ）がオンされたかを判断する（ステップ１６０５）。ステップ１６０５でＹｅｓと判断された場合には、スイッチ押下回数カウンタｍが、ＲＡＭ２３に格納された最小値データＭＩＮ（Ｐ）より大きいかを判断する（ステップ１６０６）。本実施の形態においては、ＲＡＭ２３には、テンポ最小値データＭＩＮ（０）、音量最小値データＭＩＮ（１）およびゲートタイム最小値データＭＩＮ（２）が格納されている。したがって、スイッチ選択パラメータＰで指定されるＭＩＮ（Ｐ）が読み出されて、カウンタ値ｍと比較される。
【００５３】
ステップ１６０６でＹｅｓと判断された場合には、ＣＰＵ２１は、スイッチ押下回数パラメータをデクリメントし（ステップ１６０７）、スイッチ選択パラメータＰで指定されるプリセット値データＰＲ（Ｐ）をデクリメントする（ステップ１６０８）。
【００５４】
次に、録音スタートスイッチ処理のステップ９１０の分析処理についてより詳細に説明する。図１７および図１８は、本実施の形態にかかる分析処理の例を示すフローチャートである。分析処理は、ＲＡＭ２３中の演奏データ記憶エリア（図４の符号４００参照）に格納された演奏データと、曲データエリア（図４の符号４０５参照）に格納された曲データとを比較して、比較に基づいて、各差分値を更新するとともに、差分値から演奏者状態情報ＳＴＡＴＥを更新する。
【００５５】
図１７に示すように、ＣＰＵ２１は、ＲＡＭ２３中の演奏データ記憶エリア（図４の符号４００参照）に格納された演奏データと、曲データエリア（図４の符号４０５参照）に格納された曲データとを比較する（ステップ１７０１）。なお、演奏データは、鍵盤処理（図７）によってＲＡＭ２３中に格納されている。また、曲データは、曲データ変換処理（図１１、図１２）によってＲＡＭ２３中に格納されている。
【００５６】
ＣＰＵ２１は、テンポ分析を実行する（ステップ１７０２）。ステップ１７０２において、ＣＰＵ２１は、曲データに含まれるステップタイムのレコードを参照して、ステップタイムの第１の総和Σ（曲データのステップタイム）を算出するとともに、演奏データに含まれるステップタイムのレコードを参照して、ステップタイムの第２の総和Σ（演奏データのステップタイム）を求める。次いで、ＣＰＵ２１は、第２の総和の、第１の総和に対する比（第２の総和／第１の総和）を求め、得られた比と、曲データのテンポ値とを乗算する。これにより、演奏データに基づく演奏（演奏者による演奏）の、デモ演奏に対する比から、演奏者による演奏のテンポを求めることができる。
【００５７】
ステップ１７０２においては、ＣＰＵ２１は、（（演奏者による演奏のテンポ）−（曲データのテンポ））を第１テンポ差分値ΔｔｅｍｐｏとしてＲＡＭ２３中に格納する。
【００５８】
次いで、ＣＰＵ２１は、ベロシティ分析を実行する（ステップ１７０３）。ステップ１７０３においては、ＲＡＭ２３の演奏データのイベントのレコードに含まれるベロシティを参照して、ＣＰＵ２１は、演奏データにおけるベロシティの平均値を算出するとともに、曲データのイベント（ノートオンイベント）のレコードに含まれるベロシティを参照して、曲データにおけるベロシティの平均値を算出する。
【００５９】
ＣＰＵ２１は、（（演奏データにおけるベロシティの平均値）−（曲データにおけるベロシティの平均値））を第１ベロシティ差分値ΔｖｅｌとしてＲＡＭ２３中に格納する。
【００６０】
また、ＣＰＵ２１は、ゲートタイム分析を実行する（ステップ１７０４）。ステッ１７０４においては、ＣＰＵ２１は、ＲＡＭ２３の演奏データのゲートタイムのレコードを参照して演奏データにおけるレコードの平均値を算出するとともに、曲データのゲートタイムのレコードを参照して曲データにおけるレコードの平均値を算出する。
【００６１】
ＣＰＵ２１は、（（演奏データにおけるゲートタイムの平均値）−（曲データにおけるゲートタイムの平均値））を第１ゲートタイム差分値ΔｇａｔｅとしてＲＡＭ２３に格納する。
【００６２】
次いで、ＣＰＵ２１は、ＲＡＭ２３から第２テンポ差分値ΔＴＥＭＰＯ、第２ベロシティ差分値ΔＶＥＬおよび第２ゲートタイム差分値ΔＧＡＴＥを読み出す（ステップ１７０５）。さらに、ＣＰＵ２１は、第１の差分値と、対応する第２の差分値との間の差分値を算出する（ステップ１７０６〜１７０８）。より具体的には、
ＣＰＵ２１は、
Δｔ（第３のテンポ差分値）＝Δｔｅｍｐｏ−ΔＴＥＭＰＯ
Δｖ（第３のベロシティ差分値）＝Δｖｅｌ−ΔＶＥＬ
Δｇ（第３のゲートタイム差分値）＝Δｇａｔｅ−ΔＧＡＴＥ
を算出する。次に、ＣＰＵ２１は、ＲＡＭ２３中の演奏者状態情報ＳＴＡＴＥを、（Δｔ，Δｖ，Δｇ）の組み合わせにしたがって修正する。より具体的には、ＣＰＵ２１は、ＲＯＭ２２に、値の組（Δｔ，Δｖ，Δｇ）と演奏者状態情報ＳＴＡＴＥの値とを対応付けたテーブルを用意しておき、ＳＴＡＴＥ＝テーブル値（ＴＡＢＬＥ（Δｔ，Δｖ，Δｇ））とすればよい。
【００６３】
以下、テーブル値について説明する。テーブル値は、Δｔが増大するのにしたがって値が増大し、Δｖが増大するのにしたがって値が増大し、その一方、Δｇが増大するのにしたがって、値が減少する。たとえば、α１、α２、α３を正の係数とすると、
ＴＡＢＬＥ（Δｔ，Δｖ，Δｇ）  ＝α１・Δｔ＋α２・Δｖ−α３・Δｇ
という値になる。したがって上記式に基づいて算出された値を、値の組（Δｔ，Δｖ，Δｇ）と関連付けてＲＯＭ２２中に格納しておけば良い。
【００６４】
次いで、ＣＰＵ２１は、パラメータｎを「０」に初期化して（ステップ１８０１）、パラメータｎで指定される演奏情報の最大値ＭＡＸ（ｎ）および最小値ＭＩＮ（ｎ）を、ＳＴＡＴＥに基づいて変更する（ステップ１８０２）。ステップ１８０２においては、たとえば、正の係数βｎを用いて、以下のように新たなＭＡＸ（ｎ）およびＭＩＮ（ｎ）を算出すれば良い。
【００６５】
ＭＡＸ（ｎ）＝ＭＡＸ（ｎ）＋ＳＴＡＴＥ・βｎ・ＭＡＸ（ｎ）
ＭＩＮ（ｎ）＝ＭＩＮ（ｎ）＋ＳＴＡＴＥ・βｎ・ＭＩＮ（ｎ）
つまり、演奏家状態情報ＳＴＡＴＥが正の値をとる場合には、演奏情報の最大値および最小値がそれぞれ増大する。つまり、テンポ、音量（ベロシティ）およびゲートタイムのそれぞれについて、パラメータ増減スイッチ処理（図８のステップ８０５、図１６）において、ユーザのスイッチ操作による値の増減可能な範囲が、上方（値が増大する側）にシフトする。その一方、演奏家状態情報ＳＴＡＴＥが負の値をとる場合には、テンポ、音量（ベロシティ）およびゲートタイムのそれぞれについて、ユーザのスイッチ操作による値の増減可能な範囲が、下方（値が減少する側）にシフトする。
【００６６】
ＣＰＵ２１は、パラメータｎをインクリメントして（ステップ１８０３）、パラメータｎが「２」より大きいかを判断する（ステップ１８０４）。ステップ１８０４でＮｏと判断された場合にはステップ１８０２に戻る。ステップ１８０４でＹｅｓと判断された場合には、ＣＰＵ２１は、第１のテンポ差分値Δｔｅｍｐｏにしたがって、第２のテンポ差分値ΔＴＥＭＰＯを更新し（ステップ１８０５）、第１のベロシティ差分値Δｖｅｌにしたがって第２のベロシティ差分値ΔＶＥＬを更新し（ステップ１８０６）、さらに、第１のゲートタイム差分値Δｇａｔｅにしたがって第２のゲートタイム差分値ΔＧＡＴＥを更新する（ステップ１８０７）。たとえば、第２の差分値の更新は、新たに算出された第１の差分値を考慮して、差分値の平均値を再算出することにより実現される。
【００６７】
たとえば、分析処理の処理回数がｍ回であるとすると、第２のテンポ差分値ΔＴＥＭＰＯ、第２のベロシティ差分値ΔＶＥＬおよび第２のゲートタイム差分値ΔＧＡＴＥは、以下のように新たに算出される。
【００６８】
ΔＴＥＭＰＯ＝（１／ｍ）・（（ｍ−１）・ΔＴＥＭＰＯ＋Δｔｅｍｐｏ）
ΔＶＥＬ＝（１／ｍ）・（（ｍ−１）・ΔＶＥＬ＋Δｔｅｍｐｏ）
ΔＧＡＴＥ＝（１／ｍ）・（（ｍ−１）・ΔＧＡＴＥ＋Δｔｅｍｐｏ）
新たに算出された第２の差分値はそれぞれＲＡＭ２３中に格納される。
【００６９】
なお、デモ曲スタート・ストップスイッチ処理（図１３、図１４）においても、演奏家状態情報ＳＴＡＴＥに基づいて、テンポプリセット値データＰＲ（０）、音量プリセット値データＰＲ（１）およびゲートタイムプリセット値データＰＲ（２）が変更されている（ステップ１３０９、ステップ１４０２、ステップ１４０４）。ここでも、たとえば、所定の正の計数γｎを用いて、以下のように新たなＰＲ（ｎ）を算出すればよい。
【００７０】
ＰＲ（ｎ）＝ＰＲ（ｎ）＋ＳＴＡＴＥ・γｎ・ＰＲ（ｎ）
スイッチ処理（ステップ６０２）および鍵盤処理（ステップ６０３）が終了すると、ＣＰＵ２１は、デモ曲処理を実行する（ステップ６０４）。図１９および図２０は、本実施の形態にかかるデモ曲処理の例を示すフローチャートである。図１９に示すように、ＣＰＵ２１は、スタートフラグＳＴＦが「１」であるかを判断する（ステップ１９０１）。ステップ１９０１でＹｅｓと判断された場合には、タイマ周期に基づく最小単位時間が経過したかを判断する（ステップ１９０２）。ステップ１９０２でＹｅｓと判断された場合には、ＣＰＵ２１は、第２のタイマ値Ｔ２をデクリメントして（ステップ１９０３）、第２のタイマ値Ｔ２が「０」になったかを判断する（ステップ１９０４）。ステップ１９０４でＹｅｓと判断された場合には、ＣＰＵ２１は、現在発音中の楽音についてノートオフイベントを生成して、音源部２６に送信する（ステップ１９０５）。次いで、ＣＰＵ２１は、第１のタイマ値Ｔ１をデクリメントして（ステップ１９０６）、第１のタイマ値Ｔ１が「０」になったかを判断する（ステップ１９０７）。ステップ１９０７でＹｅｓと判断された場合には、ＣＰＵ２１は、ＲＡＭ２３中の曲データエリアのアドレスを示すパラメータＡＤをインクリメントする（ステップ１９０８）。
【００７１】
次いで、ＣＰＵ２１は、ＲＡＭ２３中の曲データエリアにおいて、パラメータ（アドレス）ＡＤが示す位置に曲データのレコードが存在しないかを判断する（ステップ１９０９）。曲データのレコードが存在しない場合（ステップ１９０９でＹｅｓ）には、ＣＰＵ２１は、オールノートオフ処理を実行して、発音中のすべの楽音についてノートオフイベントを生成し、ノートオフイベントを音源部２６に送信する（ステップ１９１０）。その後、ＣＰＵ２１は、スタートフラグＳＴＦを「０」にリセットする（ステップ１９１１）とともに、タイマカウントを停止する（ステップ１９１２）。
【００７２】
ステップ１９０９でＮｏと判断された場合には、ＣＰＵ２１は、ＲＡＭ２３中、パラメータ（アドレス）ＡＤが示す位置のデータを読み出して、そのデータ種別を判断する（ステップ２００１）。データ種別がステップタイムであれば、ＣＰＵ２１は、データ値を、ＲＡＭ２３中の第１のタイマ値Ｔ１として格納する（ステップ２００２）。データ種別がイベントであれば、ＣＰＵ２１は、ノートオンイベントを生成して、音源部２６に送信する（ステップ２００３）。
【００７３】
データ種別がゲートタイムであった場合には、ＣＰＵ２１は、ノートオフイベントを生成して、音源部２６に送信する（ステップ２００４）。その後、ＣＰＵ２１は、読み出されたゲートタイムを、ゲートタイムプリセット値データＰＲ（２）に基づいて変更する。ＣＰＵ２１は、変更されたゲートタイムプリセット値を、ＲＡＭ２３中の第２のタイマ値Ｔ２として格納する（ステップ２００５）。
【００７４】
デモ曲処理（ステップ６０４）の後、音源部２６は、音源発音処理を実行する（ステップ６０５）。音源発音処理においては、音源部２６が、受信したノートオンイベントにしたがって、所定の音高およびベロシティで、楽音データを生成する。また、音源部２６は、受信したノートオフイベントにしたがって、ノートオフイベントが示す音高の楽音を消音する。
【００７５】
音源発音処理（ステップ６０５）の後、ＣＰＵ２１は、表示部１４の更新などを含むその他の処理（ステップ６０６）を実行して、ステップ６０２に戻る。
【００７６】
本実施の形態においては、パラメータ増減スイッチ処理において、テンポ、音量及びゲートタイムという演奏情報パラメータが、それぞれの最大値および最小値の範囲内で変更される。パラメータ増減スイッチにより値が増減されたテンポプリセット値データＰＲ（０）により、タイマ周期、つまり、楽曲の再生速度が決定される（ステップ１４０５）。また、音量プリセット値データＰＲ（１）によってデモ曲演奏の際のベロシティが調整される。また、ゲートタイムプリセット値データＰＲ（２）によってデモ曲演奏の際のゲートタイム、つまり、鍵のオン時間が調整される。
【００７７】
さらに、演奏情報パラメータの可変範囲である最大値および最小値は、演奏者による演奏により生成される演奏データと、デモ曲の曲データとの相違に基づいて決定される。
【００７８】
本実施の形態においては、ＣＰＵ２１は、演奏者による鍵操作にしたがって、ノートオンイベント、次のノートオンイベントまでの時間を規定するステップタイム、および、消音までの時間を規定するゲートタイムを示すレコードを含む演奏データを生成する。また、ＣＰＵ２１は、デモ曲データを、テンポ情報に基づく所定のタイマ周期にしたがって読み出して、音源部２６に発音或いは消音の指示を与える。さらに、ＣＰＵ２１は、演奏者によるスイッチ操作にしたがって、デモ曲を演奏するためのテンポを含む演奏情報を、それぞれの最上値および最小値の間で調整する。ＣＰＵ１１は、デモ曲データ記憶エリアに格納されたデモ曲データのレコードと、演奏データ記憶エリアに格納された演奏データのレコードとを比較して、演奏情報の可変範囲である最大値および最小値を決定する。したがって、演奏者の心理状態を反映していると考えられる実際の演奏に基づいて、デモ曲の自動演奏における演奏情報の可変範囲を適切に変更することが可能となる。
【００７９】
また、本実施の形態においては、第１のテンポ差分値Δｔｅｍｐｏから、複数回の演奏による第１のテンポ差分値の平均値である第２のテンポ差分値ΔＴＥＭＰＯを減じた第３のテンポ差分値Δｔを求め、第３のテンポ差分値Δｔに基づいて、テンポの可変範囲である最大値および最小値を決定している。
【００８０】
また、本実施の形態において、同様に、第１のベロシティ差分値Δｖｅｌから、複数回の演奏による第１のベロシティ差分値の平均値である第２のベロシティ差分値ΔＶＥＬを減じた第３のベロシティ差分値Δｖを求め、第３のベロシティ差分値Δｖに基づいて、ベロシティの可変範囲である最大値および最小値を決定している。さらに、第１のゲートタイム差分値Δｇａｔｅから、複数回の演奏による第１のゲートタイム差分値の平均値である第２のゲートタイム差分値ΔＧＡＴＥを減じた第３のゲートタイム差分値Δｇを求め、第３のゲートタイム差分値Δｇに基づいて、ゲートタイムの可変範囲である最大値および最小値を決定している。
【００８１】
演奏者がデモ曲の演奏を複数回行なうことで、演奏の傾向がより適切に現れることを考慮して、その演奏の傾向が反映される第２の差分値から、さらに第１の差分値がどのように変化したかを見て、演奏者状態情報を決定している。
【００８２】
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【００８３】
たとえば、前記実施の形態においては、複数の演奏による第１のテンポ差分値、第１のベロシティ差分値および第１のゲートタイム差分値の、それぞれの平均値である第２のテンポ差分値、第２のベロシティ差分値および第２のゲートタイム差分値を算出している。そして、第１の差分値と対応する第２の差分値を比較して、第３の差分値を得て、第３の差分値（  Δｔ（第３のテンポ差分値）、Δｖ（第３のベロシティ差分値）、Δｇ（第３のゲートタイム差分値））から演奏者状態情報ＳＴＡＴＥを得ている。すなわち、演奏者がデモ曲の演奏を複数回行なうことで、演奏者の心理状態の傾向がより顕著に現れることを考慮して、その演奏の傾向が現れる第２の差分値から、さらに第１の差分値がどのように変化したかを見て、演奏者状態情報を決定している。
【００８４】
しかしながら、これに限定されず、第３のテンポ差分値Δｔの代わりに第１のテンポ差分値Δｔｅｍｐｏ、第３のベロシティ差分値Δｖの代わりに第１のベロシティ差分値Δｖｅｌ、第３のゲートタイム差分値Δｇの代わりに第１のゲートタイム差分値Δｇａｔｅを用いて、ＳＴＡＴＥ＝テーブル値（ＴＡＢＬＥ（Δｔｅｍｐｏ，Δｖｅｌ，Δｇａｔｅ）を取得しても良い。これにより、単一の演奏による演奏者の心理状態を反映した、演奏者状態情報を取得し、さらに、これに基づき、演奏情報の最大値および最小値を決定することが可能となる。
【符号の説明】
【００８５】
１０        電子楽器
１１        鍵盤
１２        スイッチ部
１４        表示部
１６        鍵
２１        ＣＰＵ
２２        ＲＯＭ
２３        ＲＡＭ
２４        サウンドシステム
２６        音源部
２７        オーディオ回路
２８        スピーカ
【図１】
0005600968.tif 000002
【図２】
0005600968.tif 000003
【図３】
0005600968.tif 000004
【図４】
0005600968.tif 000005
【図５】
0005600968.tif 000006
【図６】
0005600968.tif 000007
【図７】
0005600968.tif 000008
【図８】
0005600968.tif 000009
【図９】
0005600968.tif 000010
【図１０】
0005600968.tif 000011
【図１１】
0005600968.tif 000012
【図１２】
0005600968.tif 000013
【図１３】
0005600968.tif 000014
【図１４】
0005600968.tif 000015
【図１５】
0005600968.tif 000016
【図１６】
0005600968.tif 000017
【図１７】
0005600968.tif 000018
【図１８】
0005600968.tif 000019
【図１９】
0005600968.tif 000020
【図２０】
0005600968.tif 000021