自動演奏装置および自動演奏プログラム
【課題】 デモ曲の自動演奏における演奏情報の調整可能な範囲を、演奏者の心理状態を反映して設定する。
【解決手段】 CPU21は、演奏者による鍵操作にしたがって、ノートオンイベント、次のノートオンイベントまでの時間を規定するステップタイム、および、消音までの時間を規定するゲートタイムを示すレコードを含む演奏データを生成する。また、CPU21は、デモ曲データを、テンポ情報に基づく所定のタイマ周期にしたがって読み出して、音源部26に発音或いは消音の指示を与える。CPU21は、演奏者によるスイッチ操作にしたがって、デモ曲を演奏するためのテンポを含む演奏情報を、それぞれの最上値および最小値の間で調整する。CPU11は、デモ曲データ記憶エリアに格納されたデモ曲データのレコードと、演奏データ記憶エリアに格納された演奏データのレコードとを比較して、演奏情報の最大値および最小値を決定する。
【解決手段】 CPU21は、演奏者による鍵操作にしたがって、ノートオンイベント、次のノートオンイベントまでの時間を規定するステップタイム、および、消音までの時間を規定するゲートタイムを示すレコードを含む演奏データを生成する。また、CPU21は、デモ曲データを、テンポ情報に基づく所定のタイマ周期にしたがって読み出して、音源部26に発音或いは消音の指示を与える。CPU21は、演奏者によるスイッチ操作にしたがって、デモ曲を演奏するためのテンポを含む演奏情報を、それぞれの最上値および最小値の間で調整する。CPU11は、デモ曲データ記憶エリアに格納されたデモ曲データのレコードと、演奏データ記憶エリアに格納された演奏データのレコードとを比較して、演奏情報の最大値および最小値を決定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デモンストレーション演奏が可能な自動演奏装置および自動演奏プログラムに関する。
【背景技術】
【0002】
電子楽器など楽音を発生することができる装置では、ROMや、メモリカードに格納されたデモンストレーション曲(以下、「デモ曲」と称する)のデータを読み出して、当該デモ曲データに基づいた演奏が可能であるものが多い。デモ曲データの演奏では、通常、操作者(以下、「演奏者」と称する)の操作によりテンポの変更が可能である。しかしながら、単にテンポの変更ができるだけでは、演奏者のそのときの気分に応じたデモ演奏が実現できないという問題点があった。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平7−72857号公報
【特許文献2】特開平8−16165号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
たとえば、特許文献1には、デモ曲を複数ブロックに分けて、指示にしたがってデモ演奏のパターンを変化させる自動演奏装置が開示されている。また、特許文献2には、演奏者がデモ曲と同一の楽曲を演奏した場合の演奏時間を計測し、デモ曲の演奏時間と比較して、比較結果に基づいてデモ曲演奏時のテンポを制御する自動演奏装置が開示されている。
【0005】
演奏者による演奏は、演奏者の心理的な状態を表すため、演奏者による演奏に基づく、テンポ、音量などを含む演奏情報を、デモ曲の自動演奏に反映させることにより、デモ曲の自動演奏を、演奏者の心理状態により合致させることができる。
【0006】
本発明は、さらに、デモ曲など楽曲の自動演奏における演奏情報の調整可能な範囲を、演奏者の心理状態を反映して設定することができる自動演奏装置、および、自動演奏プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の目的は、デモ曲など楽曲を構成する楽音のそれぞれについて、音高を含むイベント、発音タイミングおよび消音タイミングを示すレコードを含む楽曲データを格納する楽曲データ記憶エリアを有する記憶手段と、
それぞれに音高が割り当てられている複数の演奏操作子と、
演奏者による演奏操作子の操作にしたがって、イベント、発音タイミングおよび消音タイミングを示すレコードを含む演奏データを生成して、前記記憶手段の演奏データ記憶エリアに格納する演奏データ生成手段と、
前記楽曲データ記憶エリアに格納された楽曲データのレコードを、テンポ情報に基づく所定のタイマ周期にしたがって読み出して、前記レコードに含まれるイベント、発音タイミングおよび消音タイミングにしたがって、楽音生成手段に発音或いは消音の指示を与える楽曲演奏制御手段と、
前記演奏者による入力にしたがって、前記楽曲を演奏するための前記テンポを含む演奏情報を、それぞれの上限および下限の間で調整する演奏情報調整手段と、を備え、
前記演奏情報調整手段が、前記楽曲データ記憶エリアに格納された楽曲データのレコードと、前記演奏データ記憶エリアに格納された演奏データのレコードとを比較して、前記演奏情報の上限および下限を決定するように構成されたことを特徴とする自動演奏装置により達成される。
【0008】
好ましい実施態様においては、前記演奏情報調整手段が、
前記演奏データに基づく第1のテンポと、前記楽曲データに基づく第2のテンポとを比較して、前記第1のテンポから第2のテンポを減じた値に相当する第1のテンポ差分値を算出し、
前記第1のテンポ差分値が大きくなるのにしたがって前記テンポの上限および下限をそれぞれ増大させるための、前記演奏者の心理状態を示す演奏者心理情報を取得し、前記演奏者心理情報に基づき、前記演奏情報のテンポの上限および下限を決定する。
【0009】
より好ましい実施態様においては、前記記憶手段が、前記演奏者による複数回の演奏に伴う前記第1のテンポ差分値の平均値に相当する第2のテンポ差分値を記憶し、
前記演奏情報調整手段が、
前記第1のテンポ差分値から第2のテンポ差分値を減じた、第3のテンポ差分値が大きくなるのにしたがって、前記テンポの上限および下限をそれぞれ増大させるための、前記演奏者心理情報を取得し、前記演奏者心理情報に基づき、前記演奏情報のテンポの上限および下限を決定する。
【0010】
別の好ましい実施態様においては、前記演奏情報として楽音の発音タイミングと消音タイミングとの間の時間であるゲートタイムを含み、
前記演奏情報調整手段が、
前記演奏データにおける、それぞれの楽音についての第1のゲートタイムと、前記楽曲データにおけるそれぞれの楽音についての第2のゲートタイムとを比較して、前記第1のゲートタイムから第2のゲートタイムを減じた値に相当する第1のゲートタイム差分値を算出し、
前記第1のゲートタイム差分値が小さくなるにしたがって前記テンポの上限および下限をそれぞれ増大させるための、前記演奏者の心理状態を示す演奏者心理情報を取得し、前記演奏者心理情報に基づき、前記演奏情報中のゲートタイムの上限および下限を決定する。
【0011】
より好ましい実施態様においては、前記記憶手段が、前記演奏者による複数回の演奏に伴う前記第1のゲートタイム差分値の平均値に相当する第2のゲートタイム差分値を記憶し、
前記演奏情報調整手段が、
前記第1のゲートタイム差分値から第2のゲートタイム差分値を減じた、第3のテンポ差分値が小さくなるのにしたがって、前記テンポの上限および下限をそれぞれ増大させるための、前記演奏者心理情報を取得し、前記演奏者心理情報に基づき、前記演奏情報のテンポの上限および下限を決定する。
【0012】
また、別の好ましい実施態様においては、前記楽曲データおよび前記演奏データのイベントが、発音の際の音量に相当するベロシティを含み、
前記演奏情報として前記発音の際の音量に相当するベロシティを含み、
前記演奏情報調整手段が、
前記演奏データにおける、それぞれの楽音についての第1のベロシティと、前記楽曲データにおけるそれぞれの楽音についての第2のベロシティとを比較して、前記第1のベロシティから第2のベロシティを減じた値に相当する第1のベロシティ差分値を算出し、
前記第1のベロシティ差分値が大きくなるのにしたがって前記テンポの上限および下限をそれぞれ増大させるための、前記演奏者の心理状態を示す演奏者心理情報を取得し、前記演奏者心理情報に基づき、前記演奏情報のベロシティの上限および下限を決定する。
【0013】
より好ましい実施態様においては、前記記憶手段が、前記演奏者による複数回の演奏に伴う前記第1のベロシティ差分値の平均値に相当する第2のベロシティ差分値を記憶し、
前記演奏情報調整手段が、
前記第1のベロシティ差分値から第2のベロシティ差分値を減じた、第3のベロシティ差分値が大きくなるのにしたがって、前記音量の上限および下限をそれぞれ増大させるための、前記演奏者心理情報を取得し、前記演奏者心理情報に基づき、前記演奏情報のベロシティの上限および下限を決定する。
【0014】
また、本発明の目的は、楽曲を構成する楽音のそれぞれについて、音高を含むイベント、発音タイミングおよび消音タイミングを示すレコードを含む楽曲データを格納する楽曲データ記憶エリアを有する記憶手段を備えたコンピュータに、
演奏者による演奏操作子の操作に基づく情報を受け入れ、当該受け入れた情報にしたがって、イベント、発音タイミングおよび消音タイミングを示すレコードを含む演奏データを生成して、前記記憶手段の演奏データ記憶エリアに格納する演奏データ生成ステップと、
前記楽曲データ記憶エリアに格納された楽曲データのレコードを、テンポ情報に基づく所定のタイマ周期にしたがって読み出して、前記レコードに含まれるイベント、発音タイミングおよび消音タイミングにしたがって、楽音生成手段に発音或いは消音の指示を与える楽曲演奏制御ステップと、
前記演奏者による入力にしたがって、前記楽曲を演奏するための前記テンポを含む演奏情報を、それぞれの上限および下限の間で調整する演奏情報調整ステップと、を実行させ、
前記演奏情報調整ステップが、前記楽曲データ記憶エリアに格納された楽曲データのレコードと、前記演奏データ記憶エリアに格納された演奏データのレコードとを比較して、前記演奏情報の上限および下限を決定するステップを含むことを特徴とする自動演奏プログラムにより達成される。
【発明の効果】
【0015】
本発明によれば、デモ曲など楽曲の自動演奏における演奏情報の調整可能な範囲を、演奏者の心理状態を反映して設定することができる自動演奏装置、および、自動演奏プログラムを提供することが可能となる。
【図面の簡単な説明】
【0016】
【図1】図1は、本実施の形態にかかる電子楽器の概略を示す図である。
【図2】図2は、本実施の形態にかかる電子楽器の構成を示すブロックダイヤグラムである。
【図3】図3は、本実施の形態にかかるROMに格納されたデータの一例を説明する図である。
【図4】図4は、本実施の形態にかかるRAMに格納されたデータの一例を説明する図である。
【図5】図5は、本実施の形態にかかる演奏データ記憶エリアおよび曲データエリアのデータ構成例を示す図である。
【図6】図6は、本実施の形態にかかる電子楽器において実行される処理の例を概略的に示すフローチャートである。
【図7】図7は、本実施の形態にかかる鍵盤処理の例を示すフローチャートである。
【図8】図8は、本実施の形態にかかるスイッチ処理の例を示すフローチャートである。
【図9】図9は、本実施の形態にかかる録音スタートスイッチ処理の例を示すフローチャートである。
【図10】図10は、本実施の形態にかかるデモ曲選択スイッチ処理の例を示すフローチャートである。
【図11】図11は、本実施の形態にかかる曲データ変換処理の例を示すフローチャートである。
【図12】図12は、本実施の形態にかかる曲データ変換処理の例を示すフローチャートである。
【図13】図13は、本実施の形態にかかるデモ曲スタート・ストップスイッチ処理の例を示すフローチャートである。
【図14】図14は、本実施の形態にかかるデモ曲スタート・ストップスイッチ処理の例を示すフローチャートである。
【図15】図15は、本実施の形態にかかるパラメータ選択スイッチ処理の例を示すフローチャートである。
【図16】図16は、本実施の形態にかかるパラメータ増減スイッチ処理の例を示すフローチャートである。
【図17】図17は、本実施の形態にかかる分析処理の例を示すフローチャートである。
【図18】図18は、本実施の形態にかかる分析処理の例を示すフローチャートである。
【図19】図19は、本実施の形態にかかるデモ曲処理の例を示すフローチャートである。
【図20】図10は、本実施の形態にかかるデモ曲処理の例を示すフローチャートである。
【発明を実施するための形態】
【0017】
以下、添付図面を参照して、本発明の実施の形態について説明する。図1は、本実施の形態にかかる電子楽器の概略を示す図である。図1に示すように、本実施の形態にかかる電子楽器10は、複数(たとえば61個)の鍵16−1、16−2、・・・を含む鍵盤11を有する。また、鍵盤11の上部には、音色の指定、デモ曲などを含む楽曲の自動演奏のテンポを含むパラメータの設定、演奏者による録音スタートの指示、デモ曲の選択、デモ曲のスタート・ストップのための複数のスイッチ(たとえば、スイッチ17、テンキー18など)や、演奏される楽曲に関する種々の情報、たとえば、音色、デモ曲番号、テンポなどを表示する表示部14を有する。
【0018】
図2は、本実施の形態にかかる電子楽器の構成を示すブロックダイヤグラムである。図2に示すように、本実施の形態にかかる電子楽器10は、CPU21、ROM22、RAM23、サウンドシステム24、鍵盤11、スイッチ部12、および、液晶表示装置を有する表示部14を備える。
【0019】
CPU21は、電子楽器10全体の制御、鍵盤11の鍵(たとえば、図1の符号16−1、16−2参照)の押鍵やスイッチ部12を構成するスイッチの操作の検出、鍵やスイッチの操作にしたがったサウンドシステム24の制御など種々の処理を実行する。また、本実施の形態において、CPU21は、ROM22に格納されたデモ曲のデータを読み出して、音源部26に発音させ、また、演奏者による鍵盤11の鍵の押鍵に基づく演奏データの生成およびRAM23への格納の処理を実行する。さらに、CPU21は、演奏者によるスイッチ12の操作などに基づいて、デモ曲の演奏を規定する演奏情報パラメータを制御するための処理を実行する。
【0020】
ROM22は、CPU21に実行させる種々の処理、たとえば、鍵盤の鍵のオン(押鍵)・オフ(離鍵)の検出、スイッチの操作、押鍵に応じた楽音の発音、デモ曲等の自動演奏、押鍵に基づく演奏データの生成、演奏情報パラメータの制御などのプログラムを格納する。また、ROM22は、ピアノ、ギター、バスドラム、スネアドラム、シンバルなどの楽音を生成するための波形データを格納した波形データエリア、および、自動伴奏を格納したデモ曲データエリア、上記プログラムを格納したプログラムエリアを有する。RAM23は、ROM22から読み出されたプログラムや、処理の過程で生成されたデータなどを記憶する。
【0021】
サウンドシステム24は、音源部26、オーディオ回路27およびスピーカ28を有する。音源部26は、たとえば、押鍵された鍵に関するノートオンイベントをCPU21から受信すると、ROM22の波形データエリアから所定の波形データを読み出して、所定の音高で所定のベロシティの楽音データを生成して出力する。また、音源部26は、波形データ、特に、スネアドラム、バスドラム、シンバルなど打楽器の音色の波形データを、そのまま楽音データとして出力することもできる。オーディオ回路27は、楽音データをD/A変換して増幅する。これによりスピーカ28から音響信号が出力される。
【0022】
図3は、本実施の形態にかかるROMに格納されたデータの一例を説明する図である。図3に示すように、本実施の形態にかかるROM22には、プログラムエリア301、波形データエリア302およびデモ曲データエリア303を含む。デモ曲データエリア303には、複数のデモ曲(たとえば、デモ曲(1)、(2)、(3)・・・)のそれぞれのデータエリア(たとえば、符号311、312、313)を含む。デモ曲データエリア(たとえば、デモ曲(1)のデータエリア311)は、時間情報であるタイムのデータレコード(たとえば符号321、323参照)と、押鍵(ノートオン)或いは離鍵(ノートオフ)のいずれかのイベント情報であるイベントのデータレコード(たとえば符号322、324参照)とを含む。イベントのデータレコードは、そのイベントの内容(ノートオン或いはノートオフ)、イベントにかかる音高情報(たとえば、MIDIにしたがったノート番号)、および、ノートオンイベントであれば音量を指定するベロシティを含む。
【0023】
2つのイベントのレコードの間に位置するタイムのレコードは、当該2つのイベントの間の時間間隔を示す。たとえば、イベントのレコード322がある音高のノートオンイベントを示し、イベントのレコード324が当該音高のノートオフイベントを示す場合に、その間のタイムのレコード323は、当該音高の楽音の発音時間を示す。
【0024】
図4および図5は、本実施の形態にかかるRAM23に格納されたデータの一例を説明する図である。図4に示すように、RAM23には、演奏データ記憶エリア400、デモ曲対応履歴データエリア401、パラメータエリア402、第1の差分データエリア403、演奏者状態情報STATEの格納エリア404、デモ曲の曲データを格納する曲データエリア405、曲番号SONGの格納エリア406、第1のタイマ値T1の格納エリア407、および、第2のタイマ値T2の格納エリア408を有する。後に詳述するが、第1の差分データ403は、テンポについての第1の差分値(第1テンポ差分値)Δtempo、ベロシティについての第1の差分値(第1ベロシティ差分値)Δvel、および、押鍵時間に相当するゲートタイムについての第1の差分値(第1ゲートタイム差分値)Δgateのデータレコードを有する。
【0025】
デモ曲対応履歴データエリア401には、デモ曲ごと(たとえば符号411、412参照)に、第2の差分値データ(符号421参照)を含む。第2の差分データ421は、テンポについての第2の差分値(第2テンポ差分値)ΔTEMPO、ベロシティについての第2の差分値(第2ベロシティ差分値)ΔVEL、および、押鍵時間に相当するゲートタイムについての第2の差分値(第2ゲートタイム差分値)ΔGATEのデータレコードを有する。
【0026】
パラメータエリア402は、テンポデータ、ベロシティデータおよびゲートタイムデータを有する(符号413〜415参照)。本実施の形態においては、演奏情報パラメータとして、楽曲のテンポ、音量(ベロシティ)、および、ゲートタイムを調整することができるようになっている。上記演奏情報パラメータには、デモ曲演奏の際に用いられるプリセット値データと、値の上限および下限をそれぞれ示す最大値データおよび最小値データが存在する。
【0027】
テンポデータ413は、テンポプリセット値データPR(0)、テンポ最大値データMAX(0)およびテンポ最小値データMIN(0)のデータレコードを有する(符号422参照)。音量データ414は、音量プリセット値データ(PR(1)、音量最大値データMAX(1)および音量最小値データMIN(1)のデータレコードを有する(符号423参照)。また、ゲートタイムデータ415は、ゲートタイムプリセット値データPR(2)、ゲートタイム最大値データMAX(2)およびゲートタイム最小値データMIN(2)のデータレコードを有する(符号424参照)。
【0028】
図5は、本実施の形態にかかる演奏データ記憶エリアおよび曲データエリアのデータ構成例を示す図である。演奏データ記憶エリアおよび曲データエリアの双方とも、同様のデータ構成を備えており、以下、演奏データ記憶エリアについて説明する。演奏データ記憶エリアのレコード群500は、先頭にイニシャルタイムのレコードを有する(符号501)、次いで、ノートオンイベントのレコード(符号502)、ゲートタイムのレコード(符号503)およびステップタイムのレコード(符号504)が格納され、その後に、次のノートオンイベントのレコード(符号505)が格納される。ゲートタイムは、ノートオンイベントによりオン状態となった楽音を消音するまでの時間間隔を示す。その一方、ステップタイムは、ノートオンイベントと次のノートオンイベントとの間の時間間隔を示す。すなわち、ゲートタイムが短くなる(値が小さくなる)ことは、鍵のオン時間が短くなることを示し、演奏において、聴感上フレーズの跳躍感が増大することになる。
【0029】
図6は、本実施の形態にかかる電子楽器において実行される処理の例を概略的に示すフローチャートである。図6に示すように、電子楽器10の電源が投入されると、CPU21は、RAM23中のデータや、表示部14の画面に表示された画像のクリアを含むイニシャライズを実行する(ステップ601)。イニシャライズが終了すると、電子楽器10のCPU21は、スイッチ処理を実行する(ステップ602)。スイッチ処理が終了すると、CPU21は、鍵盤処理を実行する(ステップ603)。処理が前後するが、以下、鍵盤処理の詳細について先に説明する。
【0030】
図7は、本実施の形態にかかる鍵盤処理の例を示すフローチャートである。図7に示すように、CPU21は、鍵盤11の鍵を所定の順で(たとえば、音高の低い鍵から)走査して(ステップ701)、処理対象となる鍵の状態に変化があったか否かを判断する(ステップ702)。ステップ702で鍵がオン状態となったと判断された場合には、CPU21は、当該鍵の押鍵に基づき、鍵に対応する音高の楽音を発音することを示すノートオンイベントを生成する(ステップ703)。ノートオンイベントには、音高情報に加え、鍵の押鍵速度に基づき得られたベロシティが含まれる。CPU21は、ノートオンイベントを音源部26に与える(ステップ704)。
【0031】
次いで、CPU21は、録音スタートフラグRSTFが「1」であるかを判断する(ステップ705)。ステップ705でYesと判断された場合には、CPU21は、オン状態となった鍵の押鍵が、最初の押鍵に該当するかを判断する(ステップ706)。ここに、最初の押鍵とは、録音スタートフラグが「1」になってからの最初の押鍵を意味する。ステップ706でYesと判断された場合には、CPU21は、RAM23の曲データエリア(符号405参照)のアドレスADをインクリメント、つまり、「1」だけ増大させる(ステップ707)。その一方、ステップ706でNoと判断された場合には、CPU21は、アドレスADを「3」だけ増大させる(ステップ708)。
【0032】
次いで、CPU21は、RAM23において、アドレスADに示す位置にイベント(ノートオンイベント)を格納する(ステップ709)。CPU21は、押鍵が最初の押鍵に該当するかを再度判断する(ステップ710)。ステップ710でNoと判断された場合には、CPU21は、RAM23においてアドレス(AD+1)に示す位置に、第1のタイマ値T1を格納する(ステップ711)。その後、CPU21は、第1のタイマ値T1および第2のタイマ値T2を「0」にクリアする。
【0033】
次に、処理対象となる鍵がオフ状態となった場合について説明する。鍵がオフ状態となった場合には、CPU21は、離鍵された鍵に対応する音高の楽音を消音することを示すノートオフイベントを生成する(ステップ713)。CPU21は、ノートオフイベントを音源部26に与える(ステップ714)。次いで、CPU21は、録音スタートフラグRSTFが「1」であるかを判断する(ステップ715)。ステップ715でYesと判断された場合には、CPU21は、RAM23においてアドレス(AD+2)に示す位置に、第2のタイマ値T2を格納する(ステップ716)。
【0034】
なお、後述するように、録音スタートスイッチ処理(図8のステップ801、図9)において、録音がスタートされると、RSTFが「1」となっている。また、RSTFが「1」に変化したときに、タイマカウントが開始される。RSTFが「1」の状態では、タイマ(図示せず)が起動し、タイマインタラプトによって、第1のタイマ値T1および第2のタイマ値T2がインクリメントされる。ここでタイマがインクリメントされる周期(タイマ周期)は、テンポ値プリセットデータPR(0)に基づいて決定される。
【0035】
鍵盤処理によって、イベント(ノートオンイベント)、ゲートタイム、および、ステップタイムの順でレコードが繰り返し格納された演奏データが生成され、RAM23の演奏データ記憶エリア400に格納される。
【0036】
次に、スイッチ処理(ステップ602)についてより詳細に説明する。図8は、本実施の形態にかかるスイッチ処理の例を示すフローチャートである。図8に示すように、スイッチ処理には、録音スタートスイッチ処理(ステップ801)、デモ曲選択スイッチ処理(ステップ802)、デモ曲スタート・ストップスイッチ処理(ステップ803)、パラメータ選択スイッチ処理(ステップ804)、および、パラメータ増減スイッチ処理(ステップ805)を含む。以下、それぞれの処理について説明する。
【0037】
図9は、本実施の形態にかかる録音スタートスイッチ処理の例を示すフローチャートである。図9に示すように、CPU21は、スイッチ部12中の録音スタートスイッチが操作されたかを判断する(ステップ901)。録音スタートスイッチ(図示せず)は、1回目の操作でオン、次の操作でオフとなる、いわゆるトグルスイッチである。スイッチ操作があった場合(ステップ901でYes)、CPU21は、録音スタートフラグRSTFを反転させて(ステップ902)、RSTFが「1」となったかを判断する(ステップ903)。ステップ903でYesと判断された場合には、CPU21は、RAM23中に演奏データ記憶エリア(図4の符号400参照)を確保する(ステップ904)。また、CPU21は、RAM23の演奏エータ記憶エリア23の先頭アドレスを、パラメータADとして設定する。また、CPU21は、RAM23中、アドレスADで示される位置に、現在時刻を格納し(ステップ906)、第1のタイマ値T1および第2のタイマ値T2(図4の符号407、408参照)を「0」にリセットする(ステップ907)。その後、CPU21は、タイマカウントを開始する(ステップ908)。タイマカウントが開始されると、第1のタイマ値T1および第2のタイマ値T2は、所定のタイマ周期で実行されるタイマインタラプト処理(図示せず)においてインクリメントされる。
【0038】
ステップ903でNoと判断された場合には、CPU21は、タイマカウントを停止する(ステップ909)。これにより、タイマインタラプト処理のよるタイマ値T1、T2のインクリメントが停止される。また、CPU21は、分析処理を実行する(ステップ910)。分析処理については後に詳述する。その後、CPU21は、RAM23の演奏データ記憶エリアに格納されたデータをクリアする(ステップ911)。
【0039】
次に、デモ曲選択スイッチ処理(ステップ802)について説明する。図10は、本実施の形態にかかるデモ曲選択スイッチ処理の例を示すフローチャートである。デモ曲選択スイッチは、たとえば、テンキーであり、番号が入力できるようになっている。デモ曲選択スイッチの操作があった場合には(ステップ1001でYes)、CPU21は、入力された番号を、RAM23中の曲番号SONGのエリア(図4の符号406参照)に格納する(ステップ1002)。その後、CPU21は、曲データ変換処理を実行する(ステップ1003)。
【0040】
図11および図12は、本実施の形態にかかる曲データ変換処理の例を示すフローチャートである。曲データ変換処理においては、デモ曲データエリアに格納されたデモ曲のデータのデータ形式(図3の符号321〜324参照)を、図5に示すデータ形式に変換する。CPU21は、RAM23中に曲データエリア(図4の符号405参照)を確保する(ステップ1101)。次いで、CPU21は、ROMのアドレスを示すパラメータADとして、曲番号SONGで示されたデモ曲について、ROM22中のデモ曲データエリアの先頭アドレスを設定する(ステップ1102)。また、CPU21は、RAM23のアドレスを示すパラメータAD1として、曲データエリアの先頭アドレスを設定する(ステップ1103)。
【0041】
CPU21は、RAM23のパラメータ(アドレス)AD1で示される位置に、イニシャルタイムを格納する(ステップ1104)。ここに、イニシャルタイムとして最初のノートオンが開始されるまでの時間を示す。次いで、CPU21は、第1のタイマ値T1および第2のタイマ値T2を初期化する(ステップ1105)。次いで、CPU21は、ROM22において、パラメータ(アドレス)ADに示す位置のデータを読み出し、そのデータ種別を判断する(ステップ1106)。
【0042】
データ種別が「タイム」であった場合には、CPU21は、第1のタイマ値T1に「タイム」の値を加算するとともに、第2のタイマ値T2に「タイム」の値を加算する(ステップ1107)。また、データ種別がノートオンであった場合には、CPU21は、アドレスAD1をインクリメントして(ステップ1108)、RAM23中、アドレスAD1に示す位置に、ROMから読み出されたデータであるノートオンイベントを格納する(ステップ1109)。データ種別がノートオフであった場合には、CPU21は、アドレスAD1を「2」だけ加算して、RAM23中、アドレスAD1に示す位置に第2のタイマ値T2を格納する(ステップ1111)。
【0043】
ステップ1107或いはステップ1111が実行された後、図12に示すように、CPU21は、アドレスADをインクリメントして(ステップ1204)、ROM22においてアドレスADにデモ曲データのレコードが存在しないかを判断する(ステップ1205)。ステップ1205でNoと判断された場合には、ステップ1106に戻り、その一方、ステップ1205でYesと判断された場合には、処理を終了する。
【0044】
ステップ1109が実行された後には、CPU21は、ROM22から読み出されたデータがデモ曲データの最初のデータであるかを判断する(ステップ1201)。ステップ1201でYesと判断された場合には、ステップ1204に進む。その一方、ステップ1201でNoと判断された場合には、RAM23中、において、アドレス(AD1−2)に示す位置に、第1のタイマ値T1を格納する(ステップ1202)。その後、CPU21は、第1のタイマ値T1および第2のタイマ値T2を、それぞれ「0」にリセットし(ステップ1203)、ステップ1204に進む。
【0045】
次に、デモ曲スタート・ストップスイッチ処理について説明する。図13および図14は、本実施の形態にかかるデモ曲スタート・ストップスイッチ処理の例を示すフローチャートである。図13に示すように、CPU21は、スイッチ部21のデモ曲スタート・ストップスイッチが操作されたかを判断する(ステップ1301)。デモ曲スタート・ストップスイッチ(図示せず)は、1回目の操作でオン、次の操作でオフとなる、いわゆるトグルスイッチである。スイッチ操作があった場合(ステップ1301でYes)、スタートフラグSTFを反転させて(ステップ1302)、STFが「1」になったかを判断する(ステップ1303)。ステップ1303でYesと判断された場合には、RAM23中、テンポプリセット値データPR(0)として、曲番号Songで指定されたデモ曲のテンポデータを与える(ステップ1306)。また、CPU21は、パラメータADとして、RAM23中の曲データの先頭アドレスを設定する(ステップ1307)。次いで、CPU21は、ADを用いて、RAM23の曲データエリアにおいて、アドレスADが示す位置の値(タイム)を読み出して、読み出された値を、RAM23中の第1のタイマ値T1および第2のタイマ値T2として格納する(ステップ1308)。その後、CPU21は、演奏者状態情報STATEに基づき、RAM23中のテンポプリセット値データPR(0)を変更する(ステップ1309)。このSTATEに基づく値の変更は後に詳述する。
【0046】
次いで、CPU21は、RAM23中の音量プリセット値データPR(1)に予め定められた音量デフォルト値を与える(ステップ1401)。次いで、CPU21は、演奏者状態情報STATEに基づき、RAM23中の音量プリセット値データPR(1)を変更する(ステップ1402)。
【0047】
また、CPU21は、RAM23中のゲートタイムプリセット値データPR(2)に予め定められたゲートタイム係数デフォルト値を与える(ステップ1403)。次いで、CPU21は、演奏者状態情報STATEに基づき、RAM23中のゲートタイムプリセット値データPR(2)を変更する(ステップ1404)。その後、CPU21は、テンポプリセット値データPR(0)に基づいてタイマ周期を決定し(ステップ1405)、タイマカウントを開始する(ステップ1406)。デモ曲演奏時のタイマカウントは、演奏の録音時のタイマカウントと異なる。後述するデモ曲処理(図19、図20)で説明するが、第1のタイマ値T1および第2のタイマ値T2に、それぞれ、ステップタイムおよびゲートタイムを格納しておき、定められたタイマ周期で、タイマ値を減算している。
【0048】
ステップ1303でNoと判断された場合には、CPU21は、オールノートオフ処理を実行する(ステップ1304)。オールノートオフ処理においては、発音中の全ての楽音についてノートオフイベントが生成され、音源部26に送信される。次いで、CPU21は、タイマカウントを停止する(ステップ1305)。
【0049】
次に、パラメータ選択スイッチ処理(ステップ804)について説明する。図15は、本実施の形態にかかるパラメータ選択スイッチ処理の例を示すフローチャートである。パラメータ選択スイッチにより、後述するパラメータ増減スイッチにて値が増減されるパラメータが選択させる。図15に示すように、CPU21は、スイッチ部12のテンポスイッチがオンされたかを判断し(ステップ1501)、オンされている場合には、スイッチ選択パラメータPに「0」を与える(ステップ1502)。ステップ1501でNoと判断された場合には、CPU21は、スイッチ部12の音量スイッチがオンされたかを判断し(ステップ1503)、オンされている場合には、スイッチ選択パラメータPに「1」を与える(ステップ1504)。ステップ1503でNoと判断された場合には、ゲートタイムスイッチがオンされているかを判断し(ステップ1505)、オンされている場合には、パラメータPに「2」を与える(ステップ1507)。ステップ1502、1505および1506の後、CPU12は、スイッチ押下回数カウンタ値mを「0」にリセットする(ステップ1507)。
【0050】
次に、パラメータ増減スイッチ処理(ステップ805)について説明する。図16は、本実施の形態にかかるパラメータ増減スイッチ処理の例を示すフローチャートである。図16に示すように、CPU12は、スイッチ部12の増加スイッチ(「+」スイッチ)がオンされたかを判断する(ステップ1601)。ステップ1601においてYesと判断された場合には、スイッチ押下回数カウンタ値mが、RAM23に格納された最大値データMAX(P)より小さいかを判断する(ステップ1602)。本実施の形態においては、RAM23には、テンポ最大値データMAX(0)、音量最大値データMAX(1)およびゲートタイム最大値データMAX(2)が格納されている。したがって、スイッチ選択パラメータPで指定されるMAX(P)が読み出されて、カウンタ値mと比較される。
【0051】
ステップ1602でYesと判断された場合には、CPU21は、スイッチ押下回数パラメータをインクリメントし(ステップ1603)、スイッチ選択パラメータPで指定されるプリセット値データPR(P)をインクリメントする(ステップ1604)。
【0052】
ステップ1601でNoと判断された場合には、スイッチ部12の減少スイッチ(「−」スイッチ)がオンされたかを判断する(ステップ1605)。ステップ1605でYesと判断された場合には、スイッチ押下回数カウンタmが、RAM23に格納された最小値データMIN(P)より大きいかを判断する(ステップ1606)。本実施の形態においては、RAM23には、テンポ最小値データMIN(0)、音量最小値データMIN(1)およびゲートタイム最小値データMIN(2)が格納されている。したがって、スイッチ選択パラメータPで指定されるMIN(P)が読み出されて、カウンタ値mと比較される。
【0053】
ステップ1606でYesと判断された場合には、CPU21は、スイッチ押下回数パラメータをデクリメントし(ステップ1607)、スイッチ選択パラメータPで指定されるプリセット値データPR(P)をデクリメントする(ステップ1608)。
【0054】
次に、録音スタートスイッチ処理のステップ910の分析処理についてより詳細に説明する。図17および図18は、本実施の形態にかかる分析処理の例を示すフローチャートである。分析処理は、RAM23中の演奏データ記憶エリア(図4の符号400参照)に格納された演奏データと、曲データエリア(図4の符号405参照)に格納された曲データとを比較して、比較に基づいて、各差分値を更新するとともに、差分値から演奏者状態情報STATEを更新する。
【0055】
図17に示すように、CPU21は、RAM23中の演奏データ記憶エリア(図4の符号400参照)に格納された演奏データと、曲データエリア(図4の符号405参照)に格納された曲データとを比較する(ステップ1701)。なお、演奏データは、鍵盤処理(図7)によってRAM23中に格納されている。また、曲データは、曲データ変換処理(図11、図12)によってRAM23中に格納されている。
【0056】
CPU21は、テンポ分析を実行する(ステップ1702)。ステップ1702において、CPU21は、曲データに含まれるステップタイムのレコードを参照して、ステップタイムの第1の総和Σ(曲データのステップタイム)を算出するとともに、演奏データに含まれるステップタイムのレコードを参照して、ステップタイムの第2の総和Σ(演奏データのステップタイム)を求める。次いで、CPU21は、第2の総和の、第1の総和に対する比(第2の総和/第1の総和)を求め、得られた比と、曲データのテンポ値とを乗算する。これにより、演奏データに基づく演奏(演奏者による演奏)の、デモ演奏に対する比から、演奏者による演奏のテンポを求めることができる。
【0057】
ステップ1702においては、CPU21は、((演奏者による演奏のテンポ)−(曲データのテンポ))を第1テンポ差分値ΔtempoとしてRAM23中に格納する。
【0058】
次いで、CPU21は、ベロシティ分析を実行する(ステップ1703)。ステップ1703においては、RAM23の演奏データのイベントのレコードに含まれるベロシティを参照して、CPU21は、演奏データにおけるベロシティの平均値を算出するとともに、曲データのイベント(ノートオンイベント)のレコードに含まれるベロシティを参照して、曲データにおけるベロシティの平均値を算出する。
【0059】
CPU21は、((演奏データにおけるベロシティの平均値)−(曲データにおけるベロシティの平均値))を第1ベロシティ差分値ΔvelとしてRAM23中に格納する。
【0060】
また、CPU21は、ゲートタイム分析を実行する(ステップ1704)。ステッ1704においては、CPU21は、RAM23の演奏データのゲートタイムのレコードを参照して演奏データにおけるレコードの平均値を算出するとともに、曲データのゲートタイムのレコードを参照して曲データにおけるレコードの平均値を算出する。
【0061】
CPU21は、((演奏データにおけるゲートタイムの平均値)−(曲データにおけるゲートタイムの平均値))を第1ゲートタイム差分値ΔgateとしてRAM23に格納する。
【0062】
次いで、CPU21は、RAM23から第2テンポ差分値ΔTEMPO、第2ベロシティ差分値ΔVELおよび第2ゲートタイム差分値ΔGATEを読み出す(ステップ1705)。さらに、CPU21は、第1の差分値と、対応する第2の差分値との間の差分値を算出する(ステップ1706〜1708)。より具体的には、
CPU21は、
Δt(第3のテンポ差分値)=Δtempo−ΔTEMPO
Δv(第3のベロシティ差分値)=Δvel−ΔVEL
Δg(第3のゲートタイム差分値)=Δgate−ΔGATE
を算出する。次に、CPU21は、RAM23中の演奏者状態情報STATEを、(Δt,Δv,Δg)の組み合わせにしたがって修正する。より具体的には、CPU21は、ROM22に、値の組(Δt,Δv,Δg)と演奏者状態情報STATEの値とを対応付けたテーブルを用意しておき、STATE=テーブル値(TABLE(Δt,Δv,Δg))とすればよい。
【0063】
以下、テーブル値について説明する。テーブル値は、Δtが増大するのにしたがって値が増大し、Δvが増大するのにしたがって値が増大し、その一方、Δgが増大するのにしたがって、値が減少する。たとえば、α1、α2、α3を正の係数とすると、
TABLE(Δt,Δv,Δg) =α1・Δt+α2・Δv−α3・Δg
という値になる。したがって上記式に基づいて算出された値を、値の組(Δt,Δv,Δg)と関連付けてROM22中に格納しておけば良い。
【0064】
次いで、CPU21は、パラメータnを「0」に初期化して(ステップ1801)、パラメータnで指定される演奏情報の最大値MAX(n)および最小値MIN(n)を、STATEに基づいて変更する(ステップ1802)。ステップ1802においては、たとえば、正の係数βnを用いて、以下のように新たなMAX(n)およびMIN(n)を算出すれば良い。
【0065】
MAX(n)=MAX(n)+STATE・βn・MAX(n)
MIN(n)=MIN(n)+STATE・βn・MIN(n)
つまり、演奏家状態情報STATEが正の値をとる場合には、演奏情報の最大値および最小値がそれぞれ増大する。つまり、テンポ、音量(ベロシティ)およびゲートタイムのそれぞれについて、パラメータ増減スイッチ処理(図8のステップ805、図16)において、ユーザのスイッチ操作による値の増減可能な範囲が、上方(値が増大する側)にシフトする。その一方、演奏家状態情報STATEが負の値をとる場合には、テンポ、音量(ベロシティ)およびゲートタイムのそれぞれについて、ユーザのスイッチ操作による値の増減可能な範囲が、下方(値が減少する側)にシフトする。
【0066】
CPU21は、パラメータnをインクリメントして(ステップ1803)、パラメータnが「2」より大きいかを判断する(ステップ1804)。ステップ1804でNoと判断された場合にはステップ1802に戻る。ステップ1804でYesと判断された場合には、CPU21は、第1のテンポ差分値Δtempoにしたがって、第2のテンポ差分値ΔTEMPOを更新し(ステップ1805)、第1のベロシティ差分値Δvelにしたがって第2のベロシティ差分値ΔVELを更新し(ステップ1806)、さらに、第1のゲートタイム差分値Δgateにしたがって第2のゲートタイム差分値ΔGATEを更新する(ステップ1807)。たとえば、第2の差分値の更新は、新たに算出された第1の差分値を考慮して、差分値の平均値を再算出することにより実現される。
【0067】
たとえば、分析処理の処理回数がm回であるとすると、第2のテンポ差分値ΔTEMPO、第2のベロシティ差分値ΔVELおよび第2のゲートタイム差分値ΔGATEは、以下のように新たに算出される。
【0068】
ΔTEMPO=(1/m)・((m−1)・ΔTEMPO+Δtempo)
ΔVEL=(1/m)・((m−1)・ΔVEL+Δtempo)
ΔGATE=(1/m)・((m−1)・ΔGATE+Δtempo)
新たに算出された第2の差分値はそれぞれRAM23中に格納される。
【0069】
なお、デモ曲スタート・ストップスイッチ処理(図13、図14)においても、演奏家状態情報STATEに基づいて、テンポプリセット値データPR(0)、音量プリセット値データPR(1)およびゲートタイムプリセット値データPR(2)が変更されている(ステップ1309、ステップ1402、ステップ1404)。ここでも、たとえば、所定の正の計数γnを用いて、以下のように新たなPR(n)を算出すればよい。
【0070】
PR(n)=PR(n)+STATE・γn・PR(n)
スイッチ処理(ステップ602)および鍵盤処理(ステップ603)が終了すると、CPU21は、デモ曲処理を実行する(ステップ604)。図19および図20は、本実施の形態にかかるデモ曲処理の例を示すフローチャートである。図19に示すように、CPU21は、スタートフラグSTFが「1」であるかを判断する(ステップ1901)。ステップ1901でYesと判断された場合には、タイマ周期に基づく最小単位時間が経過したかを判断する(ステップ1902)。ステップ1902でYesと判断された場合には、CPU21は、第2のタイマ値T2をデクリメントして(ステップ1903)、第2のタイマ値T2が「0」になったかを判断する(ステップ1904)。ステップ1904でYesと判断された場合には、CPU21は、現在発音中の楽音についてノートオフイベントを生成して、音源部26に送信する(ステップ1905)。次いで、CPU21は、第1のタイマ値T1をデクリメントして(ステップ1906)、第1のタイマ値T1が「0」になったかを判断する(ステップ1907)。ステップ1907でYesと判断された場合には、CPU21は、RAM23中の曲データエリアのアドレスを示すパラメータADをインクリメントする(ステップ1908)。
【0071】
次いで、CPU21は、RAM23中の曲データエリアにおいて、パラメータ(アドレス)ADが示す位置に曲データのレコードが存在しないかを判断する(ステップ1909)。曲データのレコードが存在しない場合(ステップ1909でYes)には、CPU21は、オールノートオフ処理を実行して、発音中のすべの楽音についてノートオフイベントを生成し、ノートオフイベントを音源部26に送信する(ステップ1910)。その後、CPU21は、スタートフラグSTFを「0」にリセットする(ステップ1911)とともに、タイマカウントを停止する(ステップ1912)。
【0072】
ステップ1909でNoと判断された場合には、CPU21は、RAM23中、パラメータ(アドレス)ADが示す位置のデータを読み出して、そのデータ種別を判断する(ステップ2001)。データ種別がステップタイムであれば、CPU21は、データ値を、RAM23中の第1のタイマ値T1として格納する(ステップ2002)。データ種別がイベントであれば、CPU21は、ノートオンイベントを生成して、音源部26に送信する(ステップ2003)。
【0073】
データ種別がゲートタイムであった場合には、CPU21は、ノートオフイベントを生成して、音源部26に送信する(ステップ2004)。その後、CPU21は、読み出されたゲートタイムを、ゲートタイムプリセット値データPR(2)に基づいて変更する。CPU21は、変更されたゲートタイムプリセット値を、RAM23中の第2のタイマ値T2として格納する(ステップ2005)。
【0074】
デモ曲処理(ステップ604)の後、音源部26は、音源発音処理を実行する(ステップ605)。音源発音処理においては、音源部26が、受信したノートオンイベントにしたがって、所定の音高およびベロシティで、楽音データを生成する。また、音源部26は、受信したノートオフイベントにしたがって、ノートオフイベントが示す音高の楽音を消音する。
【0075】
音源発音処理(ステップ605)の後、CPU21は、表示部14の更新などを含むその他の処理(ステップ606)を実行して、ステップ602に戻る。
【0076】
本実施の形態においては、パラメータ増減スイッチ処理において、テンポ、音量及びゲートタイムという演奏情報パラメータが、それぞれの最大値および最小値の範囲内で変更される。パラメータ増減スイッチにより値が増減されたテンポプリセット値データPR(0)により、タイマ周期、つまり、楽曲の再生速度が決定される(ステップ1405)。また、音量プリセット値データPR(1)によってデモ曲演奏の際のベロシティが調整される。また、ゲートタイムプリセット値データPR(2)によってデモ曲演奏の際のゲートタイム、つまり、鍵のオン時間が調整される。
【0077】
さらに、演奏情報パラメータの可変範囲である最大値および最小値は、演奏者による演奏により生成される演奏データと、デモ曲の曲データとの相違に基づいて決定される。
【0078】
本実施の形態においては、CPU21は、演奏者による鍵操作にしたがって、ノートオンイベント、次のノートオンイベントまでの時間を規定するステップタイム、および、消音までの時間を規定するゲートタイムを示すレコードを含む演奏データを生成する。また、CPU21は、デモ曲データを、テンポ情報に基づく所定のタイマ周期にしたがって読み出して、音源部26に発音或いは消音の指示を与える。さらに、CPU21は、演奏者によるスイッチ操作にしたがって、デモ曲を演奏するためのテンポを含む演奏情報を、それぞれの最上値および最小値の間で調整する。CPU11は、デモ曲データ記憶エリアに格納されたデモ曲データのレコードと、演奏データ記憶エリアに格納された演奏データのレコードとを比較して、演奏情報の可変範囲である最大値および最小値を決定する。したがって、演奏者の心理状態を反映していると考えられる実際の演奏に基づいて、デモ曲の自動演奏における演奏情報の可変範囲を適切に変更することが可能となる。
【0079】
また、本実施の形態においては、第1のテンポ差分値Δtempoから、複数回の演奏による第1のテンポ差分値の平均値である第2のテンポ差分値ΔTEMPOを減じた第3のテンポ差分値Δtを求め、第3のテンポ差分値Δtに基づいて、テンポの可変範囲である最大値および最小値を決定している。
【0080】
また、本実施の形態において、同様に、第1のベロシティ差分値Δvelから、複数回の演奏による第1のベロシティ差分値の平均値である第2のベロシティ差分値ΔVELを減じた第3のベロシティ差分値Δvを求め、第3のベロシティ差分値Δvに基づいて、ベロシティの可変範囲である最大値および最小値を決定している。さらに、第1のゲートタイム差分値Δgateから、複数回の演奏による第1のゲートタイム差分値の平均値である第2のゲートタイム差分値ΔGATEを減じた第3のゲートタイム差分値Δgを求め、第3のゲートタイム差分値Δgに基づいて、ゲートタイムの可変範囲である最大値および最小値を決定している。
【0081】
演奏者がデモ曲の演奏を複数回行なうことで、演奏の傾向がより適切に現れることを考慮して、その演奏の傾向が反映される第2の差分値から、さらに第1の差分値がどのように変化したかを見て、演奏者状態情報を決定している。
【0082】
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【0083】
たとえば、前記実施の形態においては、複数の演奏による第1のテンポ差分値、第1のベロシティ差分値および第1のゲートタイム差分値の、それぞれの平均値である第2のテンポ差分値、第2のベロシティ差分値および第2のゲートタイム差分値を算出している。そして、第1の差分値と対応する第2の差分値を比較して、第3の差分値を得て、第3の差分値( Δt(第3のテンポ差分値)、Δv(第3のベロシティ差分値)、Δg(第3のゲートタイム差分値))から演奏者状態情報STATEを得ている。すなわち、演奏者がデモ曲の演奏を複数回行なうことで、演奏者の心理状態の傾向がより顕著に現れることを考慮して、その演奏の傾向が現れる第2の差分値から、さらに第1の差分値がどのように変化したかを見て、演奏者状態情報を決定している。
【0084】
しかしながら、これに限定されず、第3のテンポ差分値Δtの代わりに第1のテンポ差分値Δtempo、第3のベロシティ差分値Δvの代わりに第1のベロシティ差分値Δvel、第3のゲートタイム差分値Δgの代わりに第1のゲートタイム差分値Δgateを用いて、STATE=テーブル値(TABLE(Δtempo,Δvel,Δgate)を取得しても良い。これにより、単一の演奏による演奏者の心理状態を反映した、演奏者状態情報を取得し、さらに、これに基づき、演奏情報の最大値および最小値を決定することが可能となる。
【符号の説明】
【0085】
10 電子楽器
11 鍵盤
12 スイッチ部
14 表示部
16 鍵
21 CPU
22 ROM
23 RAM
24 サウンドシステム
26 音源部
27 オーディオ回路
28 スピーカ
【技術分野】
【0001】
本発明は、デモンストレーション演奏が可能な自動演奏装置および自動演奏プログラムに関する。
【背景技術】
【0002】
電子楽器など楽音を発生することができる装置では、ROMや、メモリカードに格納されたデモンストレーション曲(以下、「デモ曲」と称する)のデータを読み出して、当該デモ曲データに基づいた演奏が可能であるものが多い。デモ曲データの演奏では、通常、操作者(以下、「演奏者」と称する)の操作によりテンポの変更が可能である。しかしながら、単にテンポの変更ができるだけでは、演奏者のそのときの気分に応じたデモ演奏が実現できないという問題点があった。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平7−72857号公報
【特許文献2】特開平8−16165号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
たとえば、特許文献1には、デモ曲を複数ブロックに分けて、指示にしたがってデモ演奏のパターンを変化させる自動演奏装置が開示されている。また、特許文献2には、演奏者がデモ曲と同一の楽曲を演奏した場合の演奏時間を計測し、デモ曲の演奏時間と比較して、比較結果に基づいてデモ曲演奏時のテンポを制御する自動演奏装置が開示されている。
【0005】
演奏者による演奏は、演奏者の心理的な状態を表すため、演奏者による演奏に基づく、テンポ、音量などを含む演奏情報を、デモ曲の自動演奏に反映させることにより、デモ曲の自動演奏を、演奏者の心理状態により合致させることができる。
【0006】
本発明は、さらに、デモ曲など楽曲の自動演奏における演奏情報の調整可能な範囲を、演奏者の心理状態を反映して設定することができる自動演奏装置、および、自動演奏プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の目的は、デモ曲など楽曲を構成する楽音のそれぞれについて、音高を含むイベント、発音タイミングおよび消音タイミングを示すレコードを含む楽曲データを格納する楽曲データ記憶エリアを有する記憶手段と、
それぞれに音高が割り当てられている複数の演奏操作子と、
演奏者による演奏操作子の操作にしたがって、イベント、発音タイミングおよび消音タイミングを示すレコードを含む演奏データを生成して、前記記憶手段の演奏データ記憶エリアに格納する演奏データ生成手段と、
前記楽曲データ記憶エリアに格納された楽曲データのレコードを、テンポ情報に基づく所定のタイマ周期にしたがって読み出して、前記レコードに含まれるイベント、発音タイミングおよび消音タイミングにしたがって、楽音生成手段に発音或いは消音の指示を与える楽曲演奏制御手段と、
前記演奏者による入力にしたがって、前記楽曲を演奏するための前記テンポを含む演奏情報を、それぞれの上限および下限の間で調整する演奏情報調整手段と、を備え、
前記演奏情報調整手段が、前記楽曲データ記憶エリアに格納された楽曲データのレコードと、前記演奏データ記憶エリアに格納された演奏データのレコードとを比較して、前記演奏情報の上限および下限を決定するように構成されたことを特徴とする自動演奏装置により達成される。
【0008】
好ましい実施態様においては、前記演奏情報調整手段が、
前記演奏データに基づく第1のテンポと、前記楽曲データに基づく第2のテンポとを比較して、前記第1のテンポから第2のテンポを減じた値に相当する第1のテンポ差分値を算出し、
前記第1のテンポ差分値が大きくなるのにしたがって前記テンポの上限および下限をそれぞれ増大させるための、前記演奏者の心理状態を示す演奏者心理情報を取得し、前記演奏者心理情報に基づき、前記演奏情報のテンポの上限および下限を決定する。
【0009】
より好ましい実施態様においては、前記記憶手段が、前記演奏者による複数回の演奏に伴う前記第1のテンポ差分値の平均値に相当する第2のテンポ差分値を記憶し、
前記演奏情報調整手段が、
前記第1のテンポ差分値から第2のテンポ差分値を減じた、第3のテンポ差分値が大きくなるのにしたがって、前記テンポの上限および下限をそれぞれ増大させるための、前記演奏者心理情報を取得し、前記演奏者心理情報に基づき、前記演奏情報のテンポの上限および下限を決定する。
【0010】
別の好ましい実施態様においては、前記演奏情報として楽音の発音タイミングと消音タイミングとの間の時間であるゲートタイムを含み、
前記演奏情報調整手段が、
前記演奏データにおける、それぞれの楽音についての第1のゲートタイムと、前記楽曲データにおけるそれぞれの楽音についての第2のゲートタイムとを比較して、前記第1のゲートタイムから第2のゲートタイムを減じた値に相当する第1のゲートタイム差分値を算出し、
前記第1のゲートタイム差分値が小さくなるにしたがって前記テンポの上限および下限をそれぞれ増大させるための、前記演奏者の心理状態を示す演奏者心理情報を取得し、前記演奏者心理情報に基づき、前記演奏情報中のゲートタイムの上限および下限を決定する。
【0011】
より好ましい実施態様においては、前記記憶手段が、前記演奏者による複数回の演奏に伴う前記第1のゲートタイム差分値の平均値に相当する第2のゲートタイム差分値を記憶し、
前記演奏情報調整手段が、
前記第1のゲートタイム差分値から第2のゲートタイム差分値を減じた、第3のテンポ差分値が小さくなるのにしたがって、前記テンポの上限および下限をそれぞれ増大させるための、前記演奏者心理情報を取得し、前記演奏者心理情報に基づき、前記演奏情報のテンポの上限および下限を決定する。
【0012】
また、別の好ましい実施態様においては、前記楽曲データおよび前記演奏データのイベントが、発音の際の音量に相当するベロシティを含み、
前記演奏情報として前記発音の際の音量に相当するベロシティを含み、
前記演奏情報調整手段が、
前記演奏データにおける、それぞれの楽音についての第1のベロシティと、前記楽曲データにおけるそれぞれの楽音についての第2のベロシティとを比較して、前記第1のベロシティから第2のベロシティを減じた値に相当する第1のベロシティ差分値を算出し、
前記第1のベロシティ差分値が大きくなるのにしたがって前記テンポの上限および下限をそれぞれ増大させるための、前記演奏者の心理状態を示す演奏者心理情報を取得し、前記演奏者心理情報に基づき、前記演奏情報のベロシティの上限および下限を決定する。
【0013】
より好ましい実施態様においては、前記記憶手段が、前記演奏者による複数回の演奏に伴う前記第1のベロシティ差分値の平均値に相当する第2のベロシティ差分値を記憶し、
前記演奏情報調整手段が、
前記第1のベロシティ差分値から第2のベロシティ差分値を減じた、第3のベロシティ差分値が大きくなるのにしたがって、前記音量の上限および下限をそれぞれ増大させるための、前記演奏者心理情報を取得し、前記演奏者心理情報に基づき、前記演奏情報のベロシティの上限および下限を決定する。
【0014】
また、本発明の目的は、楽曲を構成する楽音のそれぞれについて、音高を含むイベント、発音タイミングおよび消音タイミングを示すレコードを含む楽曲データを格納する楽曲データ記憶エリアを有する記憶手段を備えたコンピュータに、
演奏者による演奏操作子の操作に基づく情報を受け入れ、当該受け入れた情報にしたがって、イベント、発音タイミングおよび消音タイミングを示すレコードを含む演奏データを生成して、前記記憶手段の演奏データ記憶エリアに格納する演奏データ生成ステップと、
前記楽曲データ記憶エリアに格納された楽曲データのレコードを、テンポ情報に基づく所定のタイマ周期にしたがって読み出して、前記レコードに含まれるイベント、発音タイミングおよび消音タイミングにしたがって、楽音生成手段に発音或いは消音の指示を与える楽曲演奏制御ステップと、
前記演奏者による入力にしたがって、前記楽曲を演奏するための前記テンポを含む演奏情報を、それぞれの上限および下限の間で調整する演奏情報調整ステップと、を実行させ、
前記演奏情報調整ステップが、前記楽曲データ記憶エリアに格納された楽曲データのレコードと、前記演奏データ記憶エリアに格納された演奏データのレコードとを比較して、前記演奏情報の上限および下限を決定するステップを含むことを特徴とする自動演奏プログラムにより達成される。
【発明の効果】
【0015】
本発明によれば、デモ曲など楽曲の自動演奏における演奏情報の調整可能な範囲を、演奏者の心理状態を反映して設定することができる自動演奏装置、および、自動演奏プログラムを提供することが可能となる。
【図面の簡単な説明】
【0016】
【図1】図1は、本実施の形態にかかる電子楽器の概略を示す図である。
【図2】図2は、本実施の形態にかかる電子楽器の構成を示すブロックダイヤグラムである。
【図3】図3は、本実施の形態にかかるROMに格納されたデータの一例を説明する図である。
【図4】図4は、本実施の形態にかかるRAMに格納されたデータの一例を説明する図である。
【図5】図5は、本実施の形態にかかる演奏データ記憶エリアおよび曲データエリアのデータ構成例を示す図である。
【図6】図6は、本実施の形態にかかる電子楽器において実行される処理の例を概略的に示すフローチャートである。
【図7】図7は、本実施の形態にかかる鍵盤処理の例を示すフローチャートである。
【図8】図8は、本実施の形態にかかるスイッチ処理の例を示すフローチャートである。
【図9】図9は、本実施の形態にかかる録音スタートスイッチ処理の例を示すフローチャートである。
【図10】図10は、本実施の形態にかかるデモ曲選択スイッチ処理の例を示すフローチャートである。
【図11】図11は、本実施の形態にかかる曲データ変換処理の例を示すフローチャートである。
【図12】図12は、本実施の形態にかかる曲データ変換処理の例を示すフローチャートである。
【図13】図13は、本実施の形態にかかるデモ曲スタート・ストップスイッチ処理の例を示すフローチャートである。
【図14】図14は、本実施の形態にかかるデモ曲スタート・ストップスイッチ処理の例を示すフローチャートである。
【図15】図15は、本実施の形態にかかるパラメータ選択スイッチ処理の例を示すフローチャートである。
【図16】図16は、本実施の形態にかかるパラメータ増減スイッチ処理の例を示すフローチャートである。
【図17】図17は、本実施の形態にかかる分析処理の例を示すフローチャートである。
【図18】図18は、本実施の形態にかかる分析処理の例を示すフローチャートである。
【図19】図19は、本実施の形態にかかるデモ曲処理の例を示すフローチャートである。
【図20】図10は、本実施の形態にかかるデモ曲処理の例を示すフローチャートである。
【発明を実施するための形態】
【0017】
以下、添付図面を参照して、本発明の実施の形態について説明する。図1は、本実施の形態にかかる電子楽器の概略を示す図である。図1に示すように、本実施の形態にかかる電子楽器10は、複数(たとえば61個)の鍵16−1、16−2、・・・を含む鍵盤11を有する。また、鍵盤11の上部には、音色の指定、デモ曲などを含む楽曲の自動演奏のテンポを含むパラメータの設定、演奏者による録音スタートの指示、デモ曲の選択、デモ曲のスタート・ストップのための複数のスイッチ(たとえば、スイッチ17、テンキー18など)や、演奏される楽曲に関する種々の情報、たとえば、音色、デモ曲番号、テンポなどを表示する表示部14を有する。
【0018】
図2は、本実施の形態にかかる電子楽器の構成を示すブロックダイヤグラムである。図2に示すように、本実施の形態にかかる電子楽器10は、CPU21、ROM22、RAM23、サウンドシステム24、鍵盤11、スイッチ部12、および、液晶表示装置を有する表示部14を備える。
【0019】
CPU21は、電子楽器10全体の制御、鍵盤11の鍵(たとえば、図1の符号16−1、16−2参照)の押鍵やスイッチ部12を構成するスイッチの操作の検出、鍵やスイッチの操作にしたがったサウンドシステム24の制御など種々の処理を実行する。また、本実施の形態において、CPU21は、ROM22に格納されたデモ曲のデータを読み出して、音源部26に発音させ、また、演奏者による鍵盤11の鍵の押鍵に基づく演奏データの生成およびRAM23への格納の処理を実行する。さらに、CPU21は、演奏者によるスイッチ12の操作などに基づいて、デモ曲の演奏を規定する演奏情報パラメータを制御するための処理を実行する。
【0020】
ROM22は、CPU21に実行させる種々の処理、たとえば、鍵盤の鍵のオン(押鍵)・オフ(離鍵)の検出、スイッチの操作、押鍵に応じた楽音の発音、デモ曲等の自動演奏、押鍵に基づく演奏データの生成、演奏情報パラメータの制御などのプログラムを格納する。また、ROM22は、ピアノ、ギター、バスドラム、スネアドラム、シンバルなどの楽音を生成するための波形データを格納した波形データエリア、および、自動伴奏を格納したデモ曲データエリア、上記プログラムを格納したプログラムエリアを有する。RAM23は、ROM22から読み出されたプログラムや、処理の過程で生成されたデータなどを記憶する。
【0021】
サウンドシステム24は、音源部26、オーディオ回路27およびスピーカ28を有する。音源部26は、たとえば、押鍵された鍵に関するノートオンイベントをCPU21から受信すると、ROM22の波形データエリアから所定の波形データを読み出して、所定の音高で所定のベロシティの楽音データを生成して出力する。また、音源部26は、波形データ、特に、スネアドラム、バスドラム、シンバルなど打楽器の音色の波形データを、そのまま楽音データとして出力することもできる。オーディオ回路27は、楽音データをD/A変換して増幅する。これによりスピーカ28から音響信号が出力される。
【0022】
図3は、本実施の形態にかかるROMに格納されたデータの一例を説明する図である。図3に示すように、本実施の形態にかかるROM22には、プログラムエリア301、波形データエリア302およびデモ曲データエリア303を含む。デモ曲データエリア303には、複数のデモ曲(たとえば、デモ曲(1)、(2)、(3)・・・)のそれぞれのデータエリア(たとえば、符号311、312、313)を含む。デモ曲データエリア(たとえば、デモ曲(1)のデータエリア311)は、時間情報であるタイムのデータレコード(たとえば符号321、323参照)と、押鍵(ノートオン)或いは離鍵(ノートオフ)のいずれかのイベント情報であるイベントのデータレコード(たとえば符号322、324参照)とを含む。イベントのデータレコードは、そのイベントの内容(ノートオン或いはノートオフ)、イベントにかかる音高情報(たとえば、MIDIにしたがったノート番号)、および、ノートオンイベントであれば音量を指定するベロシティを含む。
【0023】
2つのイベントのレコードの間に位置するタイムのレコードは、当該2つのイベントの間の時間間隔を示す。たとえば、イベントのレコード322がある音高のノートオンイベントを示し、イベントのレコード324が当該音高のノートオフイベントを示す場合に、その間のタイムのレコード323は、当該音高の楽音の発音時間を示す。
【0024】
図4および図5は、本実施の形態にかかるRAM23に格納されたデータの一例を説明する図である。図4に示すように、RAM23には、演奏データ記憶エリア400、デモ曲対応履歴データエリア401、パラメータエリア402、第1の差分データエリア403、演奏者状態情報STATEの格納エリア404、デモ曲の曲データを格納する曲データエリア405、曲番号SONGの格納エリア406、第1のタイマ値T1の格納エリア407、および、第2のタイマ値T2の格納エリア408を有する。後に詳述するが、第1の差分データ403は、テンポについての第1の差分値(第1テンポ差分値)Δtempo、ベロシティについての第1の差分値(第1ベロシティ差分値)Δvel、および、押鍵時間に相当するゲートタイムについての第1の差分値(第1ゲートタイム差分値)Δgateのデータレコードを有する。
【0025】
デモ曲対応履歴データエリア401には、デモ曲ごと(たとえば符号411、412参照)に、第2の差分値データ(符号421参照)を含む。第2の差分データ421は、テンポについての第2の差分値(第2テンポ差分値)ΔTEMPO、ベロシティについての第2の差分値(第2ベロシティ差分値)ΔVEL、および、押鍵時間に相当するゲートタイムについての第2の差分値(第2ゲートタイム差分値)ΔGATEのデータレコードを有する。
【0026】
パラメータエリア402は、テンポデータ、ベロシティデータおよびゲートタイムデータを有する(符号413〜415参照)。本実施の形態においては、演奏情報パラメータとして、楽曲のテンポ、音量(ベロシティ)、および、ゲートタイムを調整することができるようになっている。上記演奏情報パラメータには、デモ曲演奏の際に用いられるプリセット値データと、値の上限および下限をそれぞれ示す最大値データおよび最小値データが存在する。
【0027】
テンポデータ413は、テンポプリセット値データPR(0)、テンポ最大値データMAX(0)およびテンポ最小値データMIN(0)のデータレコードを有する(符号422参照)。音量データ414は、音量プリセット値データ(PR(1)、音量最大値データMAX(1)および音量最小値データMIN(1)のデータレコードを有する(符号423参照)。また、ゲートタイムデータ415は、ゲートタイムプリセット値データPR(2)、ゲートタイム最大値データMAX(2)およびゲートタイム最小値データMIN(2)のデータレコードを有する(符号424参照)。
【0028】
図5は、本実施の形態にかかる演奏データ記憶エリアおよび曲データエリアのデータ構成例を示す図である。演奏データ記憶エリアおよび曲データエリアの双方とも、同様のデータ構成を備えており、以下、演奏データ記憶エリアについて説明する。演奏データ記憶エリアのレコード群500は、先頭にイニシャルタイムのレコードを有する(符号501)、次いで、ノートオンイベントのレコード(符号502)、ゲートタイムのレコード(符号503)およびステップタイムのレコード(符号504)が格納され、その後に、次のノートオンイベントのレコード(符号505)が格納される。ゲートタイムは、ノートオンイベントによりオン状態となった楽音を消音するまでの時間間隔を示す。その一方、ステップタイムは、ノートオンイベントと次のノートオンイベントとの間の時間間隔を示す。すなわち、ゲートタイムが短くなる(値が小さくなる)ことは、鍵のオン時間が短くなることを示し、演奏において、聴感上フレーズの跳躍感が増大することになる。
【0029】
図6は、本実施の形態にかかる電子楽器において実行される処理の例を概略的に示すフローチャートである。図6に示すように、電子楽器10の電源が投入されると、CPU21は、RAM23中のデータや、表示部14の画面に表示された画像のクリアを含むイニシャライズを実行する(ステップ601)。イニシャライズが終了すると、電子楽器10のCPU21は、スイッチ処理を実行する(ステップ602)。スイッチ処理が終了すると、CPU21は、鍵盤処理を実行する(ステップ603)。処理が前後するが、以下、鍵盤処理の詳細について先に説明する。
【0030】
図7は、本実施の形態にかかる鍵盤処理の例を示すフローチャートである。図7に示すように、CPU21は、鍵盤11の鍵を所定の順で(たとえば、音高の低い鍵から)走査して(ステップ701)、処理対象となる鍵の状態に変化があったか否かを判断する(ステップ702)。ステップ702で鍵がオン状態となったと判断された場合には、CPU21は、当該鍵の押鍵に基づき、鍵に対応する音高の楽音を発音することを示すノートオンイベントを生成する(ステップ703)。ノートオンイベントには、音高情報に加え、鍵の押鍵速度に基づき得られたベロシティが含まれる。CPU21は、ノートオンイベントを音源部26に与える(ステップ704)。
【0031】
次いで、CPU21は、録音スタートフラグRSTFが「1」であるかを判断する(ステップ705)。ステップ705でYesと判断された場合には、CPU21は、オン状態となった鍵の押鍵が、最初の押鍵に該当するかを判断する(ステップ706)。ここに、最初の押鍵とは、録音スタートフラグが「1」になってからの最初の押鍵を意味する。ステップ706でYesと判断された場合には、CPU21は、RAM23の曲データエリア(符号405参照)のアドレスADをインクリメント、つまり、「1」だけ増大させる(ステップ707)。その一方、ステップ706でNoと判断された場合には、CPU21は、アドレスADを「3」だけ増大させる(ステップ708)。
【0032】
次いで、CPU21は、RAM23において、アドレスADに示す位置にイベント(ノートオンイベント)を格納する(ステップ709)。CPU21は、押鍵が最初の押鍵に該当するかを再度判断する(ステップ710)。ステップ710でNoと判断された場合には、CPU21は、RAM23においてアドレス(AD+1)に示す位置に、第1のタイマ値T1を格納する(ステップ711)。その後、CPU21は、第1のタイマ値T1および第2のタイマ値T2を「0」にクリアする。
【0033】
次に、処理対象となる鍵がオフ状態となった場合について説明する。鍵がオフ状態となった場合には、CPU21は、離鍵された鍵に対応する音高の楽音を消音することを示すノートオフイベントを生成する(ステップ713)。CPU21は、ノートオフイベントを音源部26に与える(ステップ714)。次いで、CPU21は、録音スタートフラグRSTFが「1」であるかを判断する(ステップ715)。ステップ715でYesと判断された場合には、CPU21は、RAM23においてアドレス(AD+2)に示す位置に、第2のタイマ値T2を格納する(ステップ716)。
【0034】
なお、後述するように、録音スタートスイッチ処理(図8のステップ801、図9)において、録音がスタートされると、RSTFが「1」となっている。また、RSTFが「1」に変化したときに、タイマカウントが開始される。RSTFが「1」の状態では、タイマ(図示せず)が起動し、タイマインタラプトによって、第1のタイマ値T1および第2のタイマ値T2がインクリメントされる。ここでタイマがインクリメントされる周期(タイマ周期)は、テンポ値プリセットデータPR(0)に基づいて決定される。
【0035】
鍵盤処理によって、イベント(ノートオンイベント)、ゲートタイム、および、ステップタイムの順でレコードが繰り返し格納された演奏データが生成され、RAM23の演奏データ記憶エリア400に格納される。
【0036】
次に、スイッチ処理(ステップ602)についてより詳細に説明する。図8は、本実施の形態にかかるスイッチ処理の例を示すフローチャートである。図8に示すように、スイッチ処理には、録音スタートスイッチ処理(ステップ801)、デモ曲選択スイッチ処理(ステップ802)、デモ曲スタート・ストップスイッチ処理(ステップ803)、パラメータ選択スイッチ処理(ステップ804)、および、パラメータ増減スイッチ処理(ステップ805)を含む。以下、それぞれの処理について説明する。
【0037】
図9は、本実施の形態にかかる録音スタートスイッチ処理の例を示すフローチャートである。図9に示すように、CPU21は、スイッチ部12中の録音スタートスイッチが操作されたかを判断する(ステップ901)。録音スタートスイッチ(図示せず)は、1回目の操作でオン、次の操作でオフとなる、いわゆるトグルスイッチである。スイッチ操作があった場合(ステップ901でYes)、CPU21は、録音スタートフラグRSTFを反転させて(ステップ902)、RSTFが「1」となったかを判断する(ステップ903)。ステップ903でYesと判断された場合には、CPU21は、RAM23中に演奏データ記憶エリア(図4の符号400参照)を確保する(ステップ904)。また、CPU21は、RAM23の演奏エータ記憶エリア23の先頭アドレスを、パラメータADとして設定する。また、CPU21は、RAM23中、アドレスADで示される位置に、現在時刻を格納し(ステップ906)、第1のタイマ値T1および第2のタイマ値T2(図4の符号407、408参照)を「0」にリセットする(ステップ907)。その後、CPU21は、タイマカウントを開始する(ステップ908)。タイマカウントが開始されると、第1のタイマ値T1および第2のタイマ値T2は、所定のタイマ周期で実行されるタイマインタラプト処理(図示せず)においてインクリメントされる。
【0038】
ステップ903でNoと判断された場合には、CPU21は、タイマカウントを停止する(ステップ909)。これにより、タイマインタラプト処理のよるタイマ値T1、T2のインクリメントが停止される。また、CPU21は、分析処理を実行する(ステップ910)。分析処理については後に詳述する。その後、CPU21は、RAM23の演奏データ記憶エリアに格納されたデータをクリアする(ステップ911)。
【0039】
次に、デモ曲選択スイッチ処理(ステップ802)について説明する。図10は、本実施の形態にかかるデモ曲選択スイッチ処理の例を示すフローチャートである。デモ曲選択スイッチは、たとえば、テンキーであり、番号が入力できるようになっている。デモ曲選択スイッチの操作があった場合には(ステップ1001でYes)、CPU21は、入力された番号を、RAM23中の曲番号SONGのエリア(図4の符号406参照)に格納する(ステップ1002)。その後、CPU21は、曲データ変換処理を実行する(ステップ1003)。
【0040】
図11および図12は、本実施の形態にかかる曲データ変換処理の例を示すフローチャートである。曲データ変換処理においては、デモ曲データエリアに格納されたデモ曲のデータのデータ形式(図3の符号321〜324参照)を、図5に示すデータ形式に変換する。CPU21は、RAM23中に曲データエリア(図4の符号405参照)を確保する(ステップ1101)。次いで、CPU21は、ROMのアドレスを示すパラメータADとして、曲番号SONGで示されたデモ曲について、ROM22中のデモ曲データエリアの先頭アドレスを設定する(ステップ1102)。また、CPU21は、RAM23のアドレスを示すパラメータAD1として、曲データエリアの先頭アドレスを設定する(ステップ1103)。
【0041】
CPU21は、RAM23のパラメータ(アドレス)AD1で示される位置に、イニシャルタイムを格納する(ステップ1104)。ここに、イニシャルタイムとして最初のノートオンが開始されるまでの時間を示す。次いで、CPU21は、第1のタイマ値T1および第2のタイマ値T2を初期化する(ステップ1105)。次いで、CPU21は、ROM22において、パラメータ(アドレス)ADに示す位置のデータを読み出し、そのデータ種別を判断する(ステップ1106)。
【0042】
データ種別が「タイム」であった場合には、CPU21は、第1のタイマ値T1に「タイム」の値を加算するとともに、第2のタイマ値T2に「タイム」の値を加算する(ステップ1107)。また、データ種別がノートオンであった場合には、CPU21は、アドレスAD1をインクリメントして(ステップ1108)、RAM23中、アドレスAD1に示す位置に、ROMから読み出されたデータであるノートオンイベントを格納する(ステップ1109)。データ種別がノートオフであった場合には、CPU21は、アドレスAD1を「2」だけ加算して、RAM23中、アドレスAD1に示す位置に第2のタイマ値T2を格納する(ステップ1111)。
【0043】
ステップ1107或いはステップ1111が実行された後、図12に示すように、CPU21は、アドレスADをインクリメントして(ステップ1204)、ROM22においてアドレスADにデモ曲データのレコードが存在しないかを判断する(ステップ1205)。ステップ1205でNoと判断された場合には、ステップ1106に戻り、その一方、ステップ1205でYesと判断された場合には、処理を終了する。
【0044】
ステップ1109が実行された後には、CPU21は、ROM22から読み出されたデータがデモ曲データの最初のデータであるかを判断する(ステップ1201)。ステップ1201でYesと判断された場合には、ステップ1204に進む。その一方、ステップ1201でNoと判断された場合には、RAM23中、において、アドレス(AD1−2)に示す位置に、第1のタイマ値T1を格納する(ステップ1202)。その後、CPU21は、第1のタイマ値T1および第2のタイマ値T2を、それぞれ「0」にリセットし(ステップ1203)、ステップ1204に進む。
【0045】
次に、デモ曲スタート・ストップスイッチ処理について説明する。図13および図14は、本実施の形態にかかるデモ曲スタート・ストップスイッチ処理の例を示すフローチャートである。図13に示すように、CPU21は、スイッチ部21のデモ曲スタート・ストップスイッチが操作されたかを判断する(ステップ1301)。デモ曲スタート・ストップスイッチ(図示せず)は、1回目の操作でオン、次の操作でオフとなる、いわゆるトグルスイッチである。スイッチ操作があった場合(ステップ1301でYes)、スタートフラグSTFを反転させて(ステップ1302)、STFが「1」になったかを判断する(ステップ1303)。ステップ1303でYesと判断された場合には、RAM23中、テンポプリセット値データPR(0)として、曲番号Songで指定されたデモ曲のテンポデータを与える(ステップ1306)。また、CPU21は、パラメータADとして、RAM23中の曲データの先頭アドレスを設定する(ステップ1307)。次いで、CPU21は、ADを用いて、RAM23の曲データエリアにおいて、アドレスADが示す位置の値(タイム)を読み出して、読み出された値を、RAM23中の第1のタイマ値T1および第2のタイマ値T2として格納する(ステップ1308)。その後、CPU21は、演奏者状態情報STATEに基づき、RAM23中のテンポプリセット値データPR(0)を変更する(ステップ1309)。このSTATEに基づく値の変更は後に詳述する。
【0046】
次いで、CPU21は、RAM23中の音量プリセット値データPR(1)に予め定められた音量デフォルト値を与える(ステップ1401)。次いで、CPU21は、演奏者状態情報STATEに基づき、RAM23中の音量プリセット値データPR(1)を変更する(ステップ1402)。
【0047】
また、CPU21は、RAM23中のゲートタイムプリセット値データPR(2)に予め定められたゲートタイム係数デフォルト値を与える(ステップ1403)。次いで、CPU21は、演奏者状態情報STATEに基づき、RAM23中のゲートタイムプリセット値データPR(2)を変更する(ステップ1404)。その後、CPU21は、テンポプリセット値データPR(0)に基づいてタイマ周期を決定し(ステップ1405)、タイマカウントを開始する(ステップ1406)。デモ曲演奏時のタイマカウントは、演奏の録音時のタイマカウントと異なる。後述するデモ曲処理(図19、図20)で説明するが、第1のタイマ値T1および第2のタイマ値T2に、それぞれ、ステップタイムおよびゲートタイムを格納しておき、定められたタイマ周期で、タイマ値を減算している。
【0048】
ステップ1303でNoと判断された場合には、CPU21は、オールノートオフ処理を実行する(ステップ1304)。オールノートオフ処理においては、発音中の全ての楽音についてノートオフイベントが生成され、音源部26に送信される。次いで、CPU21は、タイマカウントを停止する(ステップ1305)。
【0049】
次に、パラメータ選択スイッチ処理(ステップ804)について説明する。図15は、本実施の形態にかかるパラメータ選択スイッチ処理の例を示すフローチャートである。パラメータ選択スイッチにより、後述するパラメータ増減スイッチにて値が増減されるパラメータが選択させる。図15に示すように、CPU21は、スイッチ部12のテンポスイッチがオンされたかを判断し(ステップ1501)、オンされている場合には、スイッチ選択パラメータPに「0」を与える(ステップ1502)。ステップ1501でNoと判断された場合には、CPU21は、スイッチ部12の音量スイッチがオンされたかを判断し(ステップ1503)、オンされている場合には、スイッチ選択パラメータPに「1」を与える(ステップ1504)。ステップ1503でNoと判断された場合には、ゲートタイムスイッチがオンされているかを判断し(ステップ1505)、オンされている場合には、パラメータPに「2」を与える(ステップ1507)。ステップ1502、1505および1506の後、CPU12は、スイッチ押下回数カウンタ値mを「0」にリセットする(ステップ1507)。
【0050】
次に、パラメータ増減スイッチ処理(ステップ805)について説明する。図16は、本実施の形態にかかるパラメータ増減スイッチ処理の例を示すフローチャートである。図16に示すように、CPU12は、スイッチ部12の増加スイッチ(「+」スイッチ)がオンされたかを判断する(ステップ1601)。ステップ1601においてYesと判断された場合には、スイッチ押下回数カウンタ値mが、RAM23に格納された最大値データMAX(P)より小さいかを判断する(ステップ1602)。本実施の形態においては、RAM23には、テンポ最大値データMAX(0)、音量最大値データMAX(1)およびゲートタイム最大値データMAX(2)が格納されている。したがって、スイッチ選択パラメータPで指定されるMAX(P)が読み出されて、カウンタ値mと比較される。
【0051】
ステップ1602でYesと判断された場合には、CPU21は、スイッチ押下回数パラメータをインクリメントし(ステップ1603)、スイッチ選択パラメータPで指定されるプリセット値データPR(P)をインクリメントする(ステップ1604)。
【0052】
ステップ1601でNoと判断された場合には、スイッチ部12の減少スイッチ(「−」スイッチ)がオンされたかを判断する(ステップ1605)。ステップ1605でYesと判断された場合には、スイッチ押下回数カウンタmが、RAM23に格納された最小値データMIN(P)より大きいかを判断する(ステップ1606)。本実施の形態においては、RAM23には、テンポ最小値データMIN(0)、音量最小値データMIN(1)およびゲートタイム最小値データMIN(2)が格納されている。したがって、スイッチ選択パラメータPで指定されるMIN(P)が読み出されて、カウンタ値mと比較される。
【0053】
ステップ1606でYesと判断された場合には、CPU21は、スイッチ押下回数パラメータをデクリメントし(ステップ1607)、スイッチ選択パラメータPで指定されるプリセット値データPR(P)をデクリメントする(ステップ1608)。
【0054】
次に、録音スタートスイッチ処理のステップ910の分析処理についてより詳細に説明する。図17および図18は、本実施の形態にかかる分析処理の例を示すフローチャートである。分析処理は、RAM23中の演奏データ記憶エリア(図4の符号400参照)に格納された演奏データと、曲データエリア(図4の符号405参照)に格納された曲データとを比較して、比較に基づいて、各差分値を更新するとともに、差分値から演奏者状態情報STATEを更新する。
【0055】
図17に示すように、CPU21は、RAM23中の演奏データ記憶エリア(図4の符号400参照)に格納された演奏データと、曲データエリア(図4の符号405参照)に格納された曲データとを比較する(ステップ1701)。なお、演奏データは、鍵盤処理(図7)によってRAM23中に格納されている。また、曲データは、曲データ変換処理(図11、図12)によってRAM23中に格納されている。
【0056】
CPU21は、テンポ分析を実行する(ステップ1702)。ステップ1702において、CPU21は、曲データに含まれるステップタイムのレコードを参照して、ステップタイムの第1の総和Σ(曲データのステップタイム)を算出するとともに、演奏データに含まれるステップタイムのレコードを参照して、ステップタイムの第2の総和Σ(演奏データのステップタイム)を求める。次いで、CPU21は、第2の総和の、第1の総和に対する比(第2の総和/第1の総和)を求め、得られた比と、曲データのテンポ値とを乗算する。これにより、演奏データに基づく演奏(演奏者による演奏)の、デモ演奏に対する比から、演奏者による演奏のテンポを求めることができる。
【0057】
ステップ1702においては、CPU21は、((演奏者による演奏のテンポ)−(曲データのテンポ))を第1テンポ差分値ΔtempoとしてRAM23中に格納する。
【0058】
次いで、CPU21は、ベロシティ分析を実行する(ステップ1703)。ステップ1703においては、RAM23の演奏データのイベントのレコードに含まれるベロシティを参照して、CPU21は、演奏データにおけるベロシティの平均値を算出するとともに、曲データのイベント(ノートオンイベント)のレコードに含まれるベロシティを参照して、曲データにおけるベロシティの平均値を算出する。
【0059】
CPU21は、((演奏データにおけるベロシティの平均値)−(曲データにおけるベロシティの平均値))を第1ベロシティ差分値ΔvelとしてRAM23中に格納する。
【0060】
また、CPU21は、ゲートタイム分析を実行する(ステップ1704)。ステッ1704においては、CPU21は、RAM23の演奏データのゲートタイムのレコードを参照して演奏データにおけるレコードの平均値を算出するとともに、曲データのゲートタイムのレコードを参照して曲データにおけるレコードの平均値を算出する。
【0061】
CPU21は、((演奏データにおけるゲートタイムの平均値)−(曲データにおけるゲートタイムの平均値))を第1ゲートタイム差分値ΔgateとしてRAM23に格納する。
【0062】
次いで、CPU21は、RAM23から第2テンポ差分値ΔTEMPO、第2ベロシティ差分値ΔVELおよび第2ゲートタイム差分値ΔGATEを読み出す(ステップ1705)。さらに、CPU21は、第1の差分値と、対応する第2の差分値との間の差分値を算出する(ステップ1706〜1708)。より具体的には、
CPU21は、
Δt(第3のテンポ差分値)=Δtempo−ΔTEMPO
Δv(第3のベロシティ差分値)=Δvel−ΔVEL
Δg(第3のゲートタイム差分値)=Δgate−ΔGATE
を算出する。次に、CPU21は、RAM23中の演奏者状態情報STATEを、(Δt,Δv,Δg)の組み合わせにしたがって修正する。より具体的には、CPU21は、ROM22に、値の組(Δt,Δv,Δg)と演奏者状態情報STATEの値とを対応付けたテーブルを用意しておき、STATE=テーブル値(TABLE(Δt,Δv,Δg))とすればよい。
【0063】
以下、テーブル値について説明する。テーブル値は、Δtが増大するのにしたがって値が増大し、Δvが増大するのにしたがって値が増大し、その一方、Δgが増大するのにしたがって、値が減少する。たとえば、α1、α2、α3を正の係数とすると、
TABLE(Δt,Δv,Δg) =α1・Δt+α2・Δv−α3・Δg
という値になる。したがって上記式に基づいて算出された値を、値の組(Δt,Δv,Δg)と関連付けてROM22中に格納しておけば良い。
【0064】
次いで、CPU21は、パラメータnを「0」に初期化して(ステップ1801)、パラメータnで指定される演奏情報の最大値MAX(n)および最小値MIN(n)を、STATEに基づいて変更する(ステップ1802)。ステップ1802においては、たとえば、正の係数βnを用いて、以下のように新たなMAX(n)およびMIN(n)を算出すれば良い。
【0065】
MAX(n)=MAX(n)+STATE・βn・MAX(n)
MIN(n)=MIN(n)+STATE・βn・MIN(n)
つまり、演奏家状態情報STATEが正の値をとる場合には、演奏情報の最大値および最小値がそれぞれ増大する。つまり、テンポ、音量(ベロシティ)およびゲートタイムのそれぞれについて、パラメータ増減スイッチ処理(図8のステップ805、図16)において、ユーザのスイッチ操作による値の増減可能な範囲が、上方(値が増大する側)にシフトする。その一方、演奏家状態情報STATEが負の値をとる場合には、テンポ、音量(ベロシティ)およびゲートタイムのそれぞれについて、ユーザのスイッチ操作による値の増減可能な範囲が、下方(値が減少する側)にシフトする。
【0066】
CPU21は、パラメータnをインクリメントして(ステップ1803)、パラメータnが「2」より大きいかを判断する(ステップ1804)。ステップ1804でNoと判断された場合にはステップ1802に戻る。ステップ1804でYesと判断された場合には、CPU21は、第1のテンポ差分値Δtempoにしたがって、第2のテンポ差分値ΔTEMPOを更新し(ステップ1805)、第1のベロシティ差分値Δvelにしたがって第2のベロシティ差分値ΔVELを更新し(ステップ1806)、さらに、第1のゲートタイム差分値Δgateにしたがって第2のゲートタイム差分値ΔGATEを更新する(ステップ1807)。たとえば、第2の差分値の更新は、新たに算出された第1の差分値を考慮して、差分値の平均値を再算出することにより実現される。
【0067】
たとえば、分析処理の処理回数がm回であるとすると、第2のテンポ差分値ΔTEMPO、第2のベロシティ差分値ΔVELおよび第2のゲートタイム差分値ΔGATEは、以下のように新たに算出される。
【0068】
ΔTEMPO=(1/m)・((m−1)・ΔTEMPO+Δtempo)
ΔVEL=(1/m)・((m−1)・ΔVEL+Δtempo)
ΔGATE=(1/m)・((m−1)・ΔGATE+Δtempo)
新たに算出された第2の差分値はそれぞれRAM23中に格納される。
【0069】
なお、デモ曲スタート・ストップスイッチ処理(図13、図14)においても、演奏家状態情報STATEに基づいて、テンポプリセット値データPR(0)、音量プリセット値データPR(1)およびゲートタイムプリセット値データPR(2)が変更されている(ステップ1309、ステップ1402、ステップ1404)。ここでも、たとえば、所定の正の計数γnを用いて、以下のように新たなPR(n)を算出すればよい。
【0070】
PR(n)=PR(n)+STATE・γn・PR(n)
スイッチ処理(ステップ602)および鍵盤処理(ステップ603)が終了すると、CPU21は、デモ曲処理を実行する(ステップ604)。図19および図20は、本実施の形態にかかるデモ曲処理の例を示すフローチャートである。図19に示すように、CPU21は、スタートフラグSTFが「1」であるかを判断する(ステップ1901)。ステップ1901でYesと判断された場合には、タイマ周期に基づく最小単位時間が経過したかを判断する(ステップ1902)。ステップ1902でYesと判断された場合には、CPU21は、第2のタイマ値T2をデクリメントして(ステップ1903)、第2のタイマ値T2が「0」になったかを判断する(ステップ1904)。ステップ1904でYesと判断された場合には、CPU21は、現在発音中の楽音についてノートオフイベントを生成して、音源部26に送信する(ステップ1905)。次いで、CPU21は、第1のタイマ値T1をデクリメントして(ステップ1906)、第1のタイマ値T1が「0」になったかを判断する(ステップ1907)。ステップ1907でYesと判断された場合には、CPU21は、RAM23中の曲データエリアのアドレスを示すパラメータADをインクリメントする(ステップ1908)。
【0071】
次いで、CPU21は、RAM23中の曲データエリアにおいて、パラメータ(アドレス)ADが示す位置に曲データのレコードが存在しないかを判断する(ステップ1909)。曲データのレコードが存在しない場合(ステップ1909でYes)には、CPU21は、オールノートオフ処理を実行して、発音中のすべの楽音についてノートオフイベントを生成し、ノートオフイベントを音源部26に送信する(ステップ1910)。その後、CPU21は、スタートフラグSTFを「0」にリセットする(ステップ1911)とともに、タイマカウントを停止する(ステップ1912)。
【0072】
ステップ1909でNoと判断された場合には、CPU21は、RAM23中、パラメータ(アドレス)ADが示す位置のデータを読み出して、そのデータ種別を判断する(ステップ2001)。データ種別がステップタイムであれば、CPU21は、データ値を、RAM23中の第1のタイマ値T1として格納する(ステップ2002)。データ種別がイベントであれば、CPU21は、ノートオンイベントを生成して、音源部26に送信する(ステップ2003)。
【0073】
データ種別がゲートタイムであった場合には、CPU21は、ノートオフイベントを生成して、音源部26に送信する(ステップ2004)。その後、CPU21は、読み出されたゲートタイムを、ゲートタイムプリセット値データPR(2)に基づいて変更する。CPU21は、変更されたゲートタイムプリセット値を、RAM23中の第2のタイマ値T2として格納する(ステップ2005)。
【0074】
デモ曲処理(ステップ604)の後、音源部26は、音源発音処理を実行する(ステップ605)。音源発音処理においては、音源部26が、受信したノートオンイベントにしたがって、所定の音高およびベロシティで、楽音データを生成する。また、音源部26は、受信したノートオフイベントにしたがって、ノートオフイベントが示す音高の楽音を消音する。
【0075】
音源発音処理(ステップ605)の後、CPU21は、表示部14の更新などを含むその他の処理(ステップ606)を実行して、ステップ602に戻る。
【0076】
本実施の形態においては、パラメータ増減スイッチ処理において、テンポ、音量及びゲートタイムという演奏情報パラメータが、それぞれの最大値および最小値の範囲内で変更される。パラメータ増減スイッチにより値が増減されたテンポプリセット値データPR(0)により、タイマ周期、つまり、楽曲の再生速度が決定される(ステップ1405)。また、音量プリセット値データPR(1)によってデモ曲演奏の際のベロシティが調整される。また、ゲートタイムプリセット値データPR(2)によってデモ曲演奏の際のゲートタイム、つまり、鍵のオン時間が調整される。
【0077】
さらに、演奏情報パラメータの可変範囲である最大値および最小値は、演奏者による演奏により生成される演奏データと、デモ曲の曲データとの相違に基づいて決定される。
【0078】
本実施の形態においては、CPU21は、演奏者による鍵操作にしたがって、ノートオンイベント、次のノートオンイベントまでの時間を規定するステップタイム、および、消音までの時間を規定するゲートタイムを示すレコードを含む演奏データを生成する。また、CPU21は、デモ曲データを、テンポ情報に基づく所定のタイマ周期にしたがって読み出して、音源部26に発音或いは消音の指示を与える。さらに、CPU21は、演奏者によるスイッチ操作にしたがって、デモ曲を演奏するためのテンポを含む演奏情報を、それぞれの最上値および最小値の間で調整する。CPU11は、デモ曲データ記憶エリアに格納されたデモ曲データのレコードと、演奏データ記憶エリアに格納された演奏データのレコードとを比較して、演奏情報の可変範囲である最大値および最小値を決定する。したがって、演奏者の心理状態を反映していると考えられる実際の演奏に基づいて、デモ曲の自動演奏における演奏情報の可変範囲を適切に変更することが可能となる。
【0079】
また、本実施の形態においては、第1のテンポ差分値Δtempoから、複数回の演奏による第1のテンポ差分値の平均値である第2のテンポ差分値ΔTEMPOを減じた第3のテンポ差分値Δtを求め、第3のテンポ差分値Δtに基づいて、テンポの可変範囲である最大値および最小値を決定している。
【0080】
また、本実施の形態において、同様に、第1のベロシティ差分値Δvelから、複数回の演奏による第1のベロシティ差分値の平均値である第2のベロシティ差分値ΔVELを減じた第3のベロシティ差分値Δvを求め、第3のベロシティ差分値Δvに基づいて、ベロシティの可変範囲である最大値および最小値を決定している。さらに、第1のゲートタイム差分値Δgateから、複数回の演奏による第1のゲートタイム差分値の平均値である第2のゲートタイム差分値ΔGATEを減じた第3のゲートタイム差分値Δgを求め、第3のゲートタイム差分値Δgに基づいて、ゲートタイムの可変範囲である最大値および最小値を決定している。
【0081】
演奏者がデモ曲の演奏を複数回行なうことで、演奏の傾向がより適切に現れることを考慮して、その演奏の傾向が反映される第2の差分値から、さらに第1の差分値がどのように変化したかを見て、演奏者状態情報を決定している。
【0082】
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【0083】
たとえば、前記実施の形態においては、複数の演奏による第1のテンポ差分値、第1のベロシティ差分値および第1のゲートタイム差分値の、それぞれの平均値である第2のテンポ差分値、第2のベロシティ差分値および第2のゲートタイム差分値を算出している。そして、第1の差分値と対応する第2の差分値を比較して、第3の差分値を得て、第3の差分値( Δt(第3のテンポ差分値)、Δv(第3のベロシティ差分値)、Δg(第3のゲートタイム差分値))から演奏者状態情報STATEを得ている。すなわち、演奏者がデモ曲の演奏を複数回行なうことで、演奏者の心理状態の傾向がより顕著に現れることを考慮して、その演奏の傾向が現れる第2の差分値から、さらに第1の差分値がどのように変化したかを見て、演奏者状態情報を決定している。
【0084】
しかしながら、これに限定されず、第3のテンポ差分値Δtの代わりに第1のテンポ差分値Δtempo、第3のベロシティ差分値Δvの代わりに第1のベロシティ差分値Δvel、第3のゲートタイム差分値Δgの代わりに第1のゲートタイム差分値Δgateを用いて、STATE=テーブル値(TABLE(Δtempo,Δvel,Δgate)を取得しても良い。これにより、単一の演奏による演奏者の心理状態を反映した、演奏者状態情報を取得し、さらに、これに基づき、演奏情報の最大値および最小値を決定することが可能となる。
【符号の説明】
【0085】
10 電子楽器
11 鍵盤
12 スイッチ部
14 表示部
16 鍵
21 CPU
22 ROM
23 RAM
24 サウンドシステム
26 音源部
27 オーディオ回路
28 スピーカ
【特許請求の範囲】
【請求項1】
楽曲を構成する楽音のそれぞれについて、音高を含むイベント、発音タイミングおよび消音タイミングを示すレコードを含む楽曲データを格納する楽曲データ記憶エリアを有する記憶手段と、
それぞれに音高が割り当てられている複数の演奏操作子と、
演奏者による演奏操作子の操作にしたがって、イベント、発音タイミングおよび消音タイミングを示すレコードを含む演奏データを生成して、前記記憶手段の演奏データ記憶エリアに格納する演奏データ生成手段と、
前記楽曲データ記憶エリアに格納された楽曲データのレコードを、テンポ情報に基づく所定のタイマ周期にしたがって読み出して、前記レコードに含まれるイベント、発音タイミングおよび消音タイミングにしたがって、楽音生成手段に発音或いは消音の指示を与える楽曲演奏制御手段と、
前記演奏者による入力にしたがって、前記楽曲を演奏するための前記テンポを含む演奏情報を、それぞれの上限および下限の間で調整する演奏情報調整手段と、を備え、
前記演奏情報調整手段が、前記楽曲データ記憶エリアに格納された楽曲データのレコードと、前記演奏データ記憶エリアに格納された演奏データのレコードとを比較して、前記演奏情報の上限および下限を決定するように構成されたことを特徴とする自動演奏装置。
【請求項2】
前記演奏情報調整手段が、
前記演奏データに基づく第1のテンポと、前記楽曲データに基づく第2のテンポとを比較して、前記第1のテンポから第2のテンポを減じた値に相当する第1のテンポ差分値を算出し、
前記第1のテンポ差分値が大きくなるのにしたがって前記テンポの上限および下限をそれぞれ増大させるための、前記演奏者の心理状態を示す演奏者心理情報を取得し、前記演奏者心理情報に基づき、前記演奏情報のテンポの上限および下限を決定することを特徴とする請求項1に記載の自動演奏装置。
【請求項3】
前記記憶手段が、前記演奏者による複数回の演奏に伴う前記第1のテンポ差分値の平均値に相当する第2のテンポ差分値を記憶し、
前記演奏情報調整手段が、
前記第1のテンポ差分値から第2のテンポ差分値を減じた、第3のテンポ差分値が大きくなるのにしたがって、前記テンポの上限および下限をそれぞれ増大させるための、前記演奏者心理情報を取得し、前記演奏者心理情報に基づき、前記演奏情報のテンポの上限および下限を決定することを特徴とする請求項2に記載の自動演奏装置。
【請求項4】
前記演奏情報として楽音の発音タイミングと消音タイミングとの間の時間であるゲートタイムを含み、
前記演奏情報調整手段が、
前記演奏データにおける、それぞれの楽音についての第1のゲートタイムと、前記楽曲データにおけるそれぞれの楽音についての第2のゲートタイムとを比較して、前記第1のゲートタイムから第2のゲートタイムを減じた値に相当する第1のゲートタイム差分値を算出し、
前記第1のゲートタイム差分値が小さくなるにしたがって前記テンポの上限および下限をそれぞれ増大させるための、前記演奏者の心理状態を示す演奏者心理情報を取得し、前記演奏者心理情報に基づき、前記演奏情報中のゲートタイムの上限および下限を決定することを特徴とする請求項1ないし3の何れか一項に記載の自動演奏装置。
【請求項5】
前記記憶手段が、前記演奏者による複数回の演奏に伴う前記第1のゲートタイム差分値の平均値に相当する第2のゲートタイム差分値を記憶し、
前記演奏情報調整手段が、
前記第1のゲートタイム差分値から第2のゲートタイム差分値を減じた、第3のテンポ差分値が小さくなるのにしたがって、前記テンポの上限および下限をそれぞれ増大させるための、前記演奏者心理情報を取得し、前記演奏者心理情報に基づき、前記演奏情報のテンポの上限および下限を決定することを特徴とする請求項4に記載の自動演奏装置。
【請求項6】
前記楽曲データおよび前記演奏データのイベントが、発音の際の音量に相当するベロシティを含み、
前記演奏情報として前記発音の際の音量に相当するベロシティを含み、
前記演奏情報調整手段が、
前記演奏データにおける、それぞれの楽音についての第1のベロシティと、前記楽曲データにおけるそれぞれの楽音についての第2のベロシティとを比較して、前記第1のベロシティから第2のベロシティを減じた値に相当する第1のベロシティ差分値を算出し、
前記第1のベロシティ差分値が大きくなるのにしたがって前記テンポの上限および下限をそれぞれ増大させるための、前記演奏者の心理状態を示す演奏者心理情報を取得し、前記演奏者心理情報に基づき、前記演奏情報のベロシティの上限および下限を決定することを特徴とする請求項1ないし5の何れか一項に記載の自動演奏装置。
【請求項7】
前記記憶手段が、前記演奏者による複数回の演奏に伴う前記第1のベロシティ差分値の平均値に相当する第2のベロシティ差分値を記憶し、
前記演奏情報調整手段が、
前記第1のベロシティ差分値から第2のベロシティ差分値を減じた、第3のベロシティ差分値が大きくなるのにしたがって、前記音量の上限および下限をそれぞれ増大させるための、前記演奏者心理情報を取得し、前記演奏者心理情報に基づき、前記演奏情報のベロシティの上限および下限を決定することを特徴とする請求項6に記載の自動演奏装置。
【請求項8】
楽曲を構成する楽音のそれぞれについて、音高を含むイベント、発音タイミングおよび消音タイミングを示すレコードを含む楽曲データを格納する楽曲データ記憶エリアを有する記憶手段を備えたコンピュータに、
演奏者による演奏操作子の操作に基づく情報を受け入れ、当該受け入れた情報にしたがって、イベント、発音タイミングおよび消音タイミングを示すレコードを含む演奏データを生成して、前記記憶手段の演奏データ記憶エリアに格納する演奏データ生成ステップと、
前記楽曲データ記憶エリアに格納された楽曲データのレコードを、テンポ情報に基づく所定のタイマ周期にしたがって読み出して、前記レコードに含まれるイベント、発音タイミングおよび消音タイミングにしたがって、楽音生成手段に発音或いは消音の指示を与える楽曲演奏制御ステップと、
前記演奏者による入力にしたがって、前記楽曲を演奏するための前記テンポを含む演奏情報を、それぞれの上限および下限の間で調整する演奏情報調整ステップと、を実行させ、
前記演奏情報調整ステップが、前記楽曲データ記憶エリアに格納された楽曲データのレコードと、前記演奏データ記憶エリアに格納された演奏データのレコードとを比較して、前記演奏情報の上限および下限を決定するステップを含むことを特徴とする自動演奏プログラム。
【請求項1】
楽曲を構成する楽音のそれぞれについて、音高を含むイベント、発音タイミングおよび消音タイミングを示すレコードを含む楽曲データを格納する楽曲データ記憶エリアを有する記憶手段と、
それぞれに音高が割り当てられている複数の演奏操作子と、
演奏者による演奏操作子の操作にしたがって、イベント、発音タイミングおよび消音タイミングを示すレコードを含む演奏データを生成して、前記記憶手段の演奏データ記憶エリアに格納する演奏データ生成手段と、
前記楽曲データ記憶エリアに格納された楽曲データのレコードを、テンポ情報に基づく所定のタイマ周期にしたがって読み出して、前記レコードに含まれるイベント、発音タイミングおよび消音タイミングにしたがって、楽音生成手段に発音或いは消音の指示を与える楽曲演奏制御手段と、
前記演奏者による入力にしたがって、前記楽曲を演奏するための前記テンポを含む演奏情報を、それぞれの上限および下限の間で調整する演奏情報調整手段と、を備え、
前記演奏情報調整手段が、前記楽曲データ記憶エリアに格納された楽曲データのレコードと、前記演奏データ記憶エリアに格納された演奏データのレコードとを比較して、前記演奏情報の上限および下限を決定するように構成されたことを特徴とする自動演奏装置。
【請求項2】
前記演奏情報調整手段が、
前記演奏データに基づく第1のテンポと、前記楽曲データに基づく第2のテンポとを比較して、前記第1のテンポから第2のテンポを減じた値に相当する第1のテンポ差分値を算出し、
前記第1のテンポ差分値が大きくなるのにしたがって前記テンポの上限および下限をそれぞれ増大させるための、前記演奏者の心理状態を示す演奏者心理情報を取得し、前記演奏者心理情報に基づき、前記演奏情報のテンポの上限および下限を決定することを特徴とする請求項1に記載の自動演奏装置。
【請求項3】
前記記憶手段が、前記演奏者による複数回の演奏に伴う前記第1のテンポ差分値の平均値に相当する第2のテンポ差分値を記憶し、
前記演奏情報調整手段が、
前記第1のテンポ差分値から第2のテンポ差分値を減じた、第3のテンポ差分値が大きくなるのにしたがって、前記テンポの上限および下限をそれぞれ増大させるための、前記演奏者心理情報を取得し、前記演奏者心理情報に基づき、前記演奏情報のテンポの上限および下限を決定することを特徴とする請求項2に記載の自動演奏装置。
【請求項4】
前記演奏情報として楽音の発音タイミングと消音タイミングとの間の時間であるゲートタイムを含み、
前記演奏情報調整手段が、
前記演奏データにおける、それぞれの楽音についての第1のゲートタイムと、前記楽曲データにおけるそれぞれの楽音についての第2のゲートタイムとを比較して、前記第1のゲートタイムから第2のゲートタイムを減じた値に相当する第1のゲートタイム差分値を算出し、
前記第1のゲートタイム差分値が小さくなるにしたがって前記テンポの上限および下限をそれぞれ増大させるための、前記演奏者の心理状態を示す演奏者心理情報を取得し、前記演奏者心理情報に基づき、前記演奏情報中のゲートタイムの上限および下限を決定することを特徴とする請求項1ないし3の何れか一項に記載の自動演奏装置。
【請求項5】
前記記憶手段が、前記演奏者による複数回の演奏に伴う前記第1のゲートタイム差分値の平均値に相当する第2のゲートタイム差分値を記憶し、
前記演奏情報調整手段が、
前記第1のゲートタイム差分値から第2のゲートタイム差分値を減じた、第3のテンポ差分値が小さくなるのにしたがって、前記テンポの上限および下限をそれぞれ増大させるための、前記演奏者心理情報を取得し、前記演奏者心理情報に基づき、前記演奏情報のテンポの上限および下限を決定することを特徴とする請求項4に記載の自動演奏装置。
【請求項6】
前記楽曲データおよび前記演奏データのイベントが、発音の際の音量に相当するベロシティを含み、
前記演奏情報として前記発音の際の音量に相当するベロシティを含み、
前記演奏情報調整手段が、
前記演奏データにおける、それぞれの楽音についての第1のベロシティと、前記楽曲データにおけるそれぞれの楽音についての第2のベロシティとを比較して、前記第1のベロシティから第2のベロシティを減じた値に相当する第1のベロシティ差分値を算出し、
前記第1のベロシティ差分値が大きくなるのにしたがって前記テンポの上限および下限をそれぞれ増大させるための、前記演奏者の心理状態を示す演奏者心理情報を取得し、前記演奏者心理情報に基づき、前記演奏情報のベロシティの上限および下限を決定することを特徴とする請求項1ないし5の何れか一項に記載の自動演奏装置。
【請求項7】
前記記憶手段が、前記演奏者による複数回の演奏に伴う前記第1のベロシティ差分値の平均値に相当する第2のベロシティ差分値を記憶し、
前記演奏情報調整手段が、
前記第1のベロシティ差分値から第2のベロシティ差分値を減じた、第3のベロシティ差分値が大きくなるのにしたがって、前記音量の上限および下限をそれぞれ増大させるための、前記演奏者心理情報を取得し、前記演奏者心理情報に基づき、前記演奏情報のベロシティの上限および下限を決定することを特徴とする請求項6に記載の自動演奏装置。
【請求項8】
楽曲を構成する楽音のそれぞれについて、音高を含むイベント、発音タイミングおよび消音タイミングを示すレコードを含む楽曲データを格納する楽曲データ記憶エリアを有する記憶手段を備えたコンピュータに、
演奏者による演奏操作子の操作に基づく情報を受け入れ、当該受け入れた情報にしたがって、イベント、発音タイミングおよび消音タイミングを示すレコードを含む演奏データを生成して、前記記憶手段の演奏データ記憶エリアに格納する演奏データ生成ステップと、
前記楽曲データ記憶エリアに格納された楽曲データのレコードを、テンポ情報に基づく所定のタイマ周期にしたがって読み出して、前記レコードに含まれるイベント、発音タイミングおよび消音タイミングにしたがって、楽音生成手段に発音或いは消音の指示を与える楽曲演奏制御ステップと、
前記演奏者による入力にしたがって、前記楽曲を演奏するための前記テンポを含む演奏情報を、それぞれの上限および下限の間で調整する演奏情報調整ステップと、を実行させ、
前記演奏情報調整ステップが、前記楽曲データ記憶エリアに格納された楽曲データのレコードと、前記演奏データ記憶エリアに格納された演奏データのレコードとを比較して、前記演奏情報の上限および下限を決定するステップを含むことを特徴とする自動演奏プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【公開番号】特開2011−180468(P2011−180468A)
【公開日】平成23年9月15日(2011.9.15)
【国際特許分類】
【出願番号】特願2010−46051(P2010−46051)
【出願日】平成22年3月3日(2010.3.3)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】
【公開日】平成23年9月15日(2011.9.15)
【国際特許分類】
【出願日】平成22年3月3日(2010.3.3)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】
[ Back to top ]