(57)【特許請求の範囲】
【請求項１】
入力された音高を含む演奏データを記憶する記憶手段と、
入力された演奏データに対する発音のパラメータを設定する設定手段と、
記憶手段に記憶されている過去の複数の演奏データを選択する選択手段と、
入力された今回の演奏データに対して前記設定手段によって設定されている発音のパラメータを前記選択手段によって選択された複数の演奏データの音高の平均値と、基準値との差分に基づいて今回の演奏データに対する発音のパラメータを変更するための演算処理を行う演算手段と、
を備えた楽音制御装置。
【請求項２】
入力された音高を含む演奏データを記憶手段に記憶するステップＡと、
入力された演奏データに対する発音のパラメータを設定するステップＢと、
前記記憶手段に記憶されている過去の複数の演奏データを選択するステップＣと、
入力された今回の演奏データに対して前記ステップＢによって設定されている発音のパラメータを前記ステップＣによって選択された複数の演奏データの音高の平均値と、基準値との差分に基づいて今回の演奏データに対する発音のパラメータを変更するための演算処理を行うステップＤと、
をコンピュータに実行させる楽音制御処理のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽音制御装置および楽音制御処理のプログラムに関し、特に、入力された演奏データの発音のパラメータを制御する楽音制御装置および楽音制御処理のプログラムに関するものである。
【背景技術】
【０００２】
電子鍵盤楽器における演奏データの発音のパラメータを制御する方法としてキースケーリングがある。キースケーリングにおいては、キーナンバに応じて音色変化を得るために、演奏するキー（鍵）ごとにパラメータ値の増減を制御する。
例えば、ある特許文献における電子楽器のキースケーリングデータ表示装置では、いずれかの鍵に対応した少なくとも２つのポイントを指定して、そのポイントごとにキースケーリングデータを入力する入力手段と、入力手段により入力されたポイント毎のキースケーリングデータおよびそのポイント間を結ぶキースケーリングデータをグラフィック表示し得るデータ表示手段とを有し、直線によって結ばれたポイント間のキースケーリングデータを補間する構成になっている。（特許文献１参照）
また、別の特許文献におけるキースケーリング装置では、可変のキーナンバを入力する演奏入力手段と、演奏入力手段から入力されたキーナンバに対応する楽音を形成する音源手段とを備える電子楽器で用いられるキースケーリング装置において、少なくとも３つの異なるキーナンバを指定し、指定された各キーナンバにおけるキースケーリングデータを指定する基準データ入力手段と、基準データ入力手段により指定されたデータに基づいて演奏入力手段から入力されたキーナンバにおけるキースケーリングデータを演算する補間手段と、補間手段により演算されたキースケーリングデータに従って音源手段を調整する楽音調整手段と、を有する構成になっている。この場合において、補間手段は、直線補間又は非直線補間を実行する。（特許文献２参照）
また、別の特許文献における電子鍵盤楽器のキースケーリング装置では、キースケーリング指示手段と、所望の鍵位置の補間用の基準値の入力手段と、入力基準値の鍵割当手段と、割り当てられた鍵の位置の前後の所定範囲の補間方法選択手段と、選択される各補間方法のプログラムを記憶する補間方法テーブルと、選択された補間方法で所定区間の補間処理用の演算を行い各鍵への重み付けの割り当てを行う演算手段と、演算結果を展開するキースケーリングエディットバッファと、キースケーリングが終了するとキースケーリングエディットバッファに展開されたデータの確定処理を指示するライトリクエスト手段と、展開されたデータを記憶するキースケーリングバッファと、で構成されている。（特許文献３参照）
【０００３】
【特許文献１】実開平１−１７３７９６号公報
【特許文献２】特開昭６４−７７０９５号公報
【特許文献３】特開平９−９０９４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、キースケーリング機能は、あくまで演奏された鍵（キーナンバ）ごとの音色特性を調整するものであるので、エフェクタやＬＦＯ（低周波発振）などの音色に共通の特性を制御するのには適していない。例えば、前回演奏した鍵から離れた鍵をつぎに演奏したときに、その鍵の音色特性が前回の鍵の音色特定から大きく変化すると、音楽の流れや統一性が失われるおそれがある。
本発明は、このような従来の課題を解決するためのものであり、音楽の流れや統一性が失われることなくキースケーリングの制御を行うことを目的とする。
【課題を解決するための手段】
【０００５】
請求項１に記載の楽音制御装置は、入力された音高を含む演奏データを記憶する記憶手段と、入力された演奏データに対する発音のパラメータを設定する設定手段と、記憶手段に記憶されている過去の複数の演奏データを選択する選択手段と、入力された今回の演奏データに対して前記設定手段によって設定されている発音のパラメータを前記選択手段によって選択された複数の演奏データの音高の平均値と、基準値との差分に基づいて今回の演奏データに対する発音のパラメータを変更するための演算処理を行う演算手段と、を備えた構成になっている。
【０００７】
請求項２に記載の楽音制御処理のプログラムは、入力された音高を含む演奏データを記憶手段に記憶するステップＡと、入力された演奏データに対する発音のパラメータを設定するステップＢと、前記記憶手段に記憶されている過去の複数の演奏データを選択するステップＣと、入力された今回の演奏データに対して前記ステップＢによって設定されている発音のパラメータを前記ステップＣによって選択された複数の演奏データの音高の平均値と、基準値との差分に基づいて今回の演奏データに対する発音のパラメータを変更するための演算処理を行うステップＤと、をコンピュータに実行させる。
【発明の効果】
【０００９】
本発明の楽音制御装置および楽音制御処理のプログラムによれば、音楽の流れや統一性が失われることなくキースケーリングの制御を行うことができるという効果が得られる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の楽音制御装置におけるキースケーリングの実施の形態について、電子鍵盤楽器を例に採って、図面を参照しながら詳細に説明する。この実施形態においては、演奏すなわちイベントに応じてパラメータのモジュレーション（変調）値を発生するが、その発生方法として、４つの変調モードＭｏｄｅ[０]ないしＭｏｄｅ[３]があり、操作に応じていずれかのモードが選択される。
【００１１】
図１は、実施の形態における電子鍵盤楽器のシステム構成図である。図１において、ＣＰＵ１は、システムバス２を介して、ＲＯＭ３、ＲＡＭ４、スイッチ部５、キースキャナ６、音源ＬＳＩ７、エフェクトＬＳＩ８に接続され、これら各部との間でデータやコマンドの授受を行ってこの電子鍵盤楽器を制御する。なお、図には示していないが、ＣＰＵ１にはタイマが設けられている。キースキャナ６には鍵盤９が接続され、演奏に応じて各鍵のオン（押鍵）およびオフ（離鍵）の状態がキースキャナ６によって検出され、そのイベントデータがＣＰＵ１に入力される。音源ＬＳＩ７には波形ＲＯＭ１０が接続され、音色に対応する波形データが記憶されている。エフェクトＬＳＩ８にはＤ／Ａ変換回路１１が接続され、デジタルの楽音信号をアナログに変換する。Ｄ／Ａ変換回路１１には出力回路１２が接続され、楽音信号の増幅処理を行ってスピーカ（図示せず）に出力する。
【００１２】
ＲＯＭ３は、ＣＰＵ１によって実行される楽音制御処理のプログラムおよび初期データを記憶している。ＲＡＭ４は、ＣＰＵ１のワークエリアであり、楽音制御処理のパラメータを記憶するエリアや入力されたイベントデータを順に記憶するイベントリングバッファを有する他、各種のデータや変数を記憶するレジスタ、ポインタ、フラグなどを有する。スイッチ部５は、パラメータ名選択スイッチ、パラメータ種選択スイッチ、数値データを入力するテンキーなどのスイッチ群で構成されている。音源ＬＳＩ７は、ＣＰＵ１からの発音コマンドおよびイベントデータに応じて、波形ＲＯＭ１０の波形データを読み出して楽音信号を生成する。エフェクトＬＳＩ８は、音源ＬＳＩ７から入力される楽音信号に対して、ＣＰＵ１から入力されるパラメータに応じたエフェクト処理を施して、Ｄ／Ａ変換回路１１に入力する。
【００１３】
図２は、ＲＡＭ４にストアされるキースケーリングのパラメータの変数を示す図である。変数ｋには、今回の演奏されたキーナンバ（鍵番号）がストアされる。変数Ｋには、キーナンバの基準値がストアされて設定される。変数Ｘには、観測すべき過去の演奏の発音イベント数が固定値としてストアされて設定される。変数Ｔには、観測すべき過去の演奏の時間がストアされて設定される。
【００１４】
図３は、ＲＡＭ４にストアされるキースケーリングの各パラメータにおけるパラメータ種の値を示す図である。この実施形態におけるパラメータ名は、インデックス[０],[１],[２],[３]によって特定され、フィルタカットオフ周波数、フィルタレゾナンス、エフェクトパラメータ１、およびエフェクトパラメータ２の４個のパラメータがある。それぞれのパラメータ種には、最小値、最大値、設定値、変調モード、変調深さ変数名、および変更後の値の変数名がある。
【００１５】
図４は、ＲＡＭ４におけるイベントリングバッファの構成を示している。イベントが発生するたびに、指定された書き込みポインタにイベントの発生した時刻とキーナンバを書き込む。図４に示すように、このイベントリングバッファは「０ｘ００」から「０ｘＦＦ」までの２５６個の書き込みエリアがあり、−１２７〜＋１２７のモジュレーション値をストアすることができる。２５６個の書き込みエリアの全てにモジュレーション値が書き込まれた後に、新たにイベントが発生したときは、最も古いモジュレーション値に最新のモジュレーション値を上書きする。
【００１６】
図５は、図１のＣＰＵ１によって実行されるメインルーチンのフローチャートである。所定のイニシャライズ（ステップＳＡ１）の後、タイマをスタートさせる（ステップＳＡ２）。そして、各スイッチのオン／オフを検出するスイッチ処理（ステップＳＡ３）、キースキャナ６を介して鍵盤９の各鍵のオン／オフを検出する鍵盤処理（ステップＳＡ４）、鍵盤９の演奏に応じたキースケーリングのパラメータ変調処理（ステップＳＡ５）、およびその他の処理（ステップＳＡ６）を繰り返し実行する。
【００１７】
図６は、図５のメインルーチンにおけるステップＳＡ３のスイッチ処理のフローチャートである。このスイッチ処理においては、パラメータ名選択スイッチ処理（ステップＳＢ１）、パラメータ種選択スイッチ処理（ステップＳＢ２）、データ入力スイッチ処理（ステップＳＢ３）、およびその他のスイッチ処理（ステップＳＢ４）を実行する。
図７は、パラメータ名選択スイッチ処理のフローチャートである。いずれかのパラメータ名スイッチがオンされたか否かを判別し（ステップＳＣ１）、オンされたときは、オンにより選択されたパラメータ名をレジスタｍにセットする（ステップＳＣ２）。
図８は、パラメータ種選択スイッチ処理のフローチャートである。いずれかのパラメータ種スイッチがオンされたか否かを判別し（ステップＳＤ１）、オンされたときは、オンにより選択されたパラメータ種をレジスタｎにセットする（ステップＳＤ２）。
図９は、データ入力スイッチ処理のフローチャートである。テンキーによって数値が入力されたか否かを判別し（ステップＳＥ１）、数値データが入力されたときは、その入力数値をパラメータ名ｍとパラメータ種ｎによって特定される図３のエリアであるパラメータ（ｍ）（ｎ）に書き込む（ステップＳＥ２）。
【００１８】
図１０は、図５のメインルーチンにおけるステップＳＡ４の鍵盤処理のフローチャートである。鍵変化があるか否かを判別し（ステップＳＦ１）、鍵変化がない場合にはメインルーチンに戻るが、オフからオンに鍵変化があったとき、すなわち押鍵がされたときは、その鍵番号に対応するノートオンイベントを作成して（ステップＳＦ２）、そのノートオンイベントを音源ＬＳＩ７に送付する（ステップＳＦ３）。次に、ノートすなわち音高の値を図２の変数ｋにストアする（ステップＳＦ４）。そして、タイマカウントの時刻をレジスタｔｉｍｅにストアする（ステップＳＦ５）。ステップＳＦ１において、オンからオフに鍵変化があったとき、すなわち離鍵がされたときは、その鍵番号に対応するノートオフイベントを作成して（ステップＳＦ６）、そのノートオフイベントを音源ＬＳＩ７に送付する（ステップＳＦ７）。
【００１９】
図１１は、図５のメインルーチンにおけるステップＳＡ５のパラメータの変調処理のフローチャートである。レジスタｋおよびレジスタｔｉｍｅのキーナンバおよび時刻が新たに取得されたか否かを判別し（ステップＳＧ１）、新たに取得されない場合にはメインルーチンに戻るが、キーナンバおよび時刻が新たに取得されたとき、すなわち、押鍵の演奏によるイベントが発生したときは、現時刻からＴ時間前のイベントのデータ数ｘを求める（ステップＳＧ２）。すなわち、図４のイベントリングバッファから過去のＴ時間のデータｘを検索して図２のレジスタｘにストアする。次に、各変調モードに対応するモジュレーション値の演算処理であるｍ[０]演算処理（ステップＳＧ３）、ｍ[１]演算処理（ステップＳＧ４）、ｍ[２]演算処理（ステップＳＧ５）、ｍ[３]演算処理（ステップＳＧ６）を実行する。
【００２０】
次に、ポインタｎの値を０にセットして（ステップＳＧ７）、ｎの値をインクリメントしながら、ステップＳＧ８ないしステップＳＧ１１のループ処理を実行する。すなわち、ＭＶａｌ[ｎ]の計算を行い（ステップＳＧ８）、音源エフェクタＬＳＩ８に送付する（ステップＳＧ９）。そして、ｎの値をインクリメントして（ステップＳＧ１０）、ｎの値が３を超えたか否かを判別する（ステップＳＧ１１）。ｎの値が３以下である場合には、ステップＳＧ８に移行してループ処理を繰り返す。ｎの値が３を超えたときは、レジスタｋおよびレジスタｔｉｍｅのキーナンバおよび時刻を図４のイベントリングバッファ内の指定された書き込みポイントに格納する（ステップＳＧ１２）。そして、図５のメインルーチンに戻る。
【００２１】
図１２は、図１１のステップＳＧ３のモード０におけるｍ[０]演算処理のフローチャートである。まず、発音イベント数を示すポインタａおよびキーナンバを示すレジスタＫＮを共に０にセットする（ステップＳＨ１）。次に、イベントリングバッファから最新のデータのキーナンバを読み出し（ステップＳＨ２）、ステップＳＨ３からステップＳＨ７までのループ処理を実行する。ループ処理においては、キーナンバの値とＫＮの値とを加算して所定のデータ数Ｘで除算した平均値を新たなＫＮの値として更新する（ステップＳＨ３）。次に、ａの値をインクリメントして（ステップＳＨ４）、ａの値がＸの値を超えたか否かを判別する（ステップＳＨ５）。ａの値がＸの値以下の場合には、次に新しいデータをイベントリングバッファから読み出し（ステップＳＨ６）、そのキーナンバを読み出し（ステップＳＨ７）、ステップＳＨ３に移行してループ処理を繰り返す。ステップＳＨ５において、ａの値がＸの値を超えたときは、最新のキーナンバであるＫＮの値から基準のキーナンバであるＫの値を減算して、ｍ[０]に代入する（ステップＳＨ８）。
【００２２】
図１２のフローチャートは、下記の演算式ｍ[０]によって表される。
0004548327.tif 000002
この演算式において、Ｘは観測すべき過去の演奏の発音イベント数、Ｋは基準のキーナンバ、ＫｅｙＮｕｍｂｅｒ[ｎ]は過去の一定時間Ｔ内に発生したノートオンイベントのうちｎ番目のキーナンバである。
【００２３】
図１２のフローチャートおよび上記の演算式ｍ[０]によって表されるように、発音イベントの発生時に、過去に演奏された所定数Ｘの押鍵のキーナンバの平均値を求め、その平均値と基準のキーナンバとの差分をモジュレーション値として、音量、音色、音高、エフェクトなどのパラメータを変調する。
【００２４】
図１３は、図１１のステップＳＧ４のモード１におけるｍ[１]演算処理のフローチャートである。まず、発音イベント数を示すポインタａおよびキーナンバを示すレジスタＫＮを共に０にセットする（ステップＳＪ１）。次に、イベントリングバッファから最新のデータのキーナンバを読み出し（ステップＳＪ２）、ステップＳＪ３からステップＳＪ７までのループ処理を実行する。ループ処理においては、キーナンバの値とＫＮの値とを加算して所定のデータ数Ｘで除算した平均値を新たなＫＮの値として更新する（ステップＳＪ３）。次に、ａの値をインクリメントして（ステップＳＪ４）、ａの値がＸの値を超えたか否かを判別する（ステップＳＪ５）。ａの値がＸの値以下の場合には、次に新しいデータをイベントリングバッファから読み出し（ステップＳＪ６）、そのキーナンバを読み出し（ステップＳＪ７）、ステップＳＪ３に移行してループ処理を繰り返す。ステップＳＪ５において、ａの値がＸの値を超えたときは、最新のキーナンバであるＫＮの値から今回演奏されたキーナンバであるｋの値を減算して、ｍ[１]に代入する（ステップＳJ８）。
【００２５】
図１３のフローチャートは、下記の演算式ｍ[１]によって表される。
0004548327.tif 000003
この演算式において、Ｘは観測すべき過去の演奏の発音イベント数、ｋは今回演奏されたキーナンバ、ＫｅｙＮｕｍｂｅｒ[ｎ]は過去の一定時間Ｔ内に発生したノートオンイベントのうちｎ番目のキーナンバである。
【００２６】
図１３のフローチャートおよび上記の演算式ｍ[１]によって表されるように、発音イベントの発生時に、過去に演奏された所定数Ｘの押鍵のキーナンバの平均値を求め、その平均値と今回演奏されたキーナンバとの差分をモジュレーション値として、音量、音色、音高、エフェクトなどのパラメータを変調する。
【００２７】
図１４は、図１１のステップＳＧ５のモード２におけるｍ[２]演算処理のフローチャートである。まず、発音イベント数を示すポインタａおよびキーナンバを示すレジスタＫＮを共に０にセットする（ステップＳＫ１）。次に、イベントリングバッファから最新のデータのキーナンバを読み出し（ステップＳＫ２）、ステップＳＫ３からステップＳＫ７までのループ処理を実行する。ループ処理においては、キーナンバの値とＫＮの値とを加算して過去の一定時間Ｔ内に発生したノートオンイベントの数ｘで除算した平均値を新たなＫＮの値として更新する（ステップＳＫ３）。次に、ａの値をインクリメントして（ステップＳＫ４）、ａの値がｘの値を超えたか否かを判別する（ステップＳＫ５）。ａの値がｘの値以下の場合には、次に新しいデータをイベントリングバッファから読み出し（ステップＳＫ６）、そのキーナンバを読み出し（ステップＳＫ７）、ステップＳＫ３に移行してループ処理を繰り返す。ステップＳＫ５において、ａの値がｘの値を超えたときは、最新のキーナンバであるＫＮの値から基準のキーナンバであるＫの値を減算して、ｍ[２]に代入する（ステップＳＫ８）。
【００２８】
図１４のフローチャートは、下記の演算式ｍ[２]によって表される。
0004548327.tif 000004
この演算式において、ｘは過去の一定時間Ｔ内に発生した発音イベント数、Ｋは基準のキーナンバ、ＫｅｙＮｕｍｂｅｒ[ｎ]は過去の一定時間Ｔ内に発生したノートオンイベントのうちｎ番目のキーナンバである。
【００２９】
図１４のフローチャートおよび上記の演算式ｍ[２]によって表されるように、発音イベントの発生時に、過去の一定時間Ｔ内に発生したノートオンイベントのキーナンバの平均値を求め、その平均値と基準のキーナンバとの差分をモジュレーション値として、音量、音色、音高、エフェクトなどのパラメータを変調する。
【００３０】
図１５は、図１１のステップＳＧ６のモード３におけるｍ[３]演算処理のフローチャートである。まず、発音イベント数を示すポインタａおよびキーナンバを示すレジスタＫＮを共に０にセットする（ステップＳＬ１）。次に、イベントリングバッファから最新のデータのキーナンバを読み出し（ステップＳＬ２）、ステップＳＬ３からステップＳＬ７までのループ処理を実行する。ループ処理においては、キーナンバの値とＫＮの値とを加算して過去の一定時間Ｔ内に発生したデータ数ｘで除算した平均値を新たなＫＮの値として更新する（ステップＳＬ３）。次に、ａの値をインクリメントして（ステップＳＬ４）、ａの値がｘの値を超えたか否かを判別する（ステップＳＬ５）。ａの値がｘの値以下の場合には、次に新しいデータをイベントリングバッファから読み出し（ステップＳＬ６）、そのキーナンバを読み出し（ステップＳＬ７）、ステップＳＬ３に移行してループ処理を繰り返す。ステップＳＬ５において、ａの値がｘの値を超えたときは、最新のキーナンバであるＫＮの値から今回演奏されたキーナンバであるｋの値を減算して、ｍ[３]に代入する（ステップＳＬ８）。
【００３１】
図１５のフローチャートは、下記の演算式ｍ[３]によって表される。
0004548327.tif 000005
この演算式において、ｘは過去の一定時間Ｔ内に発生したデータ数、ｋは今回演奏されたキーナンバ、ＫｅｙＮｕｍｂｅｒ[ｎ]は過去の一定時間Ｔ内に発生したノートオンイベントのうちｎ番目のキーナンバである。
【００３２】
図１５のフローチャートおよび上記の演算式ｍ[３]によって表されるように、発音イベントの発生時に、過去に演奏された所定数Ｘの押鍵のキーナンバの平均値を求め、その平均値と基準のキーナンバとの差分をモジュレーション値として、音量、音色、音高、エフェクトなどのパラメータを変調する。
【００３３】
この実施形態におけるモジュレーション動作は、各パラメータごとにモジュレーションを選択し、モード[０]ないしモード[３]で求められたモジュレーション値であるｍ[Ｍｏｄｅ[ｎ]]によって、図３の各パラメータの設定値をモディファイすることで実行される。例えば、ｎ番目のパラメータＣＶａｌ[ｎ]の設定値が、モジュレーション値ｍ[Ｍｏｄｅ[ｎ]]によって、最終的な値であるＭＶａｌ[ｎ]に変更される状態は、下記の演算式によって表される。
0004548327.tif 000006
【００３４】
以上のように、この実施形態によれば、ＣＰＵ１は、キースキャナ６を介して鍵盤９の演奏によって入力されたキーナンバをＲＡＭ４のイベントリングバッファに記憶して、その入力されたキーナンバに対する発音のパラメータを設定し、イベントリングバッファに記憶されている過去の複数のキーナンバを選択し、入力された今回の演奏によるキーナンバに対して、設定した発音のパラメータを選択した過去の複数の演奏されたキーナンバの履歴情報に基づいて変更するようなキースケーリングの演算処理を行う。
したがって、音楽の流れや統一性が失われることなくキースケーリングの制御を行うことができる。
【００３５】
この場合において、ＣＰＵ１は、モード[０]およびモード[２]のように、選択した過去の複数の演奏されたキーナンバの平均値と基準のキーナンバＫとの差分に基づいて今回の演奏データに対する発音のパラメータを変更する。
あるいは、ＣＰＵ１は、モード[１]およびモード[３]のように、選択した過去の複数の演奏されたキーナンバの平均値と今回の演奏されたキーナンバｋとの差分に基づいて今回のキーナンバに対する発音のパラメータを変更する。
【００３６】
さらに、ＣＰＵ１は、モード[０]およびモード[１]の場合には、ＲＡＭ４のイベントリングバッファに記憶されている過去の演奏されたキーナンバのうち、前回の演奏されたキーナンバ以前の所定数Ｘの演奏されたキーナンバを選択する。
あるいは、ＣＰＵ１は、モード[２]およびモード[３]の場合には、ＲＡＭ４のイベントリングバッファに記憶されている過去の演奏されたキーナンバのうち、前回の演奏データ以前の一定時間Ｔ内のキーナンバを選択する。
【００３７】
ＣＰＵ１は、図３のインデックス[０],[１],[２],[３]によって指定されたパラメータを下記のように変更する。
インデックス[０]の場合には、ＣＰＵ１は、カットオフ周波数のパラメータを変更する。
インデックス[１]の場合には、ＣＰＵ１は、フィルタレゾナンス特性のパラメータを変更する。
インデックス[２]の場合には、ＣＰＵ１は、音高、音量、又は音色のエンベロープ特性のパラメータを変更する。
インデックス[３]の場合には、ＣＰＵ１は、効果音付加処理のパラメータを変更する。例えば、ＤＣＯ（デジタル制御発振回路）、ＤＣＡ（デジタル制御増幅回路）、又はＤＣＦ（デジタル制御フィルタ回路）に入力する０．１〜３０Ｈｚの三角波、矩形波、鋸歯状波などの低周波発振特性のパラメータであるＬＦＯを変更する。ＬＦＯの出力を制御信号としてＤＣＯに入力した場合にはビブラートの効果音が付加される。ＬＦＯの出力を制御信号としてＤＣＡに入力した場合にはトレモロの効果音が付加される。ＬＦＯの出力を制御信号としてDＣＦに入力した場合にはワウの効果音が付加される。
【００３８】
上記実施形態において、鍵盤９の演奏における押鍵の強さであるベロシティ値に応じて、キースケーリングの演算処理の際に重み付けを行う構成にしてもよい。図４のイベントリングバッファにベロシティ値をストアして、例えば、ベロシティ値を強、中、および弱の３段階に分類する。そして、押鍵のキーナンバの平均値を求める際に、ベロシティ値が強の場合にはそのキーナンバを３回カウントし、ベロシティ値が中の場合にはそのキーナンバを２回カウントし、ベロシティ値が弱の場合にはそのキーナンバを１回カウントするような構成にしてもよい。
したがってこの場合には、演奏者が強く押鍵するほどその演奏のパラメータの履歴情報が後の演奏のパラメータにより強く反映されるので、音楽の流れや統一性が失われることなくキースケーリングの制御を行うとともに、演奏者の意志もキースケーリングの制御に反映することができる。
【００３９】
なお、上記実施形態においては、ＲＯＭ３にあらかじめ記憶されている楽音制御処理のプログラムをＣＰＵ１が実行する装置の発明について説明したが、フレキシブルディスク（ＦＤ）、ＣＤ、メモリカードなどの外部記憶媒体に記憶された楽音制御処理のプログラム、又は、インターネットなどのネットワークからダウンロードした楽音制御処理のプログラムをＲＡＭ４あるいは別途設けたフラッシュＲＯＭなどの不揮発性メモリにインストールして、ＣＰＵ１がそのプログラムを実行する構成も可能である。この場合には、プログラムの発明および記憶媒体の発明を実現できる。
【００４０】
すなわち、本発明の楽音制御処理のプログラムは、
入力された音高を含む演奏データを記憶手段に記憶するステップＡと、入力された演奏データに対する発音のパラメータを設定するステップＢと、前記記憶手段に記憶されている過去の複数の演奏データを選択するステップＣと、入力された今回の演奏データに対して前記ステップＢによって設定されている発音のパラメータを前記ステップＣによって選択された複数の演奏データの音高の履歴情報に基づいて変更するための演算処理を行うステップＤと、をコンピュータに実行させる。
【００４１】
前記ステップＤは、前記ステップＣによって選択された複数の演奏データの音高の平均値と基準値との差分に基づいて今回の演奏データに対する発音のパラメータを変更する。
前記ステップＤは、前記ステップＣによって選択された複数の演奏データの音高の平均値と今回の演奏データの音高との差分に基づいて今回の演奏データに対する発音のパラメータを変更する。
前記ステップＣは、前記記憶手段に記憶されている過去の演奏データのうち前回の演奏データ以前の所定数の演奏データを選択する。
前記ステップＣは、前記記憶手段に記憶されている過去の演奏音高データのうち前回の演奏データ以前の一定時間内の演奏データを選択する。
前記ステップＤは、カットオフ周波数のパラメータを変更することを特徴とする。
前記ステップＤは、フィルタレゾナンス特性のパラメータを変更する。
前記ステップＤは、音高、音量、又は音色のエンベロープ特性のパラメータを変更する。
前記ステップＤは、効果音付加処理のパラメータを変更することを特徴とする。
前記ステップＤは、発振手段、増幅手段、又はフィルタ手段に入力する低周波発振特性のパラメータを変更する。
【図面の簡単な説明】
【００４２】
【図１】本発明の楽音制御装置を適用した実施形態における電子鍵盤楽器のシステム構成を示すブロック図。
【図２】図１のＲＡＭにストアされるキースケーリングのパラメータの変数を示す図。
【図３】図１のＲＡＭにストアされる各パラメータのパラメータ種ごとの値をストアするエリアを示す図。
【図４】図１のＲＡＭにおけるイベントリングバッファの構成を示す図。
【図５】ＣＰＵのメインルーチンのフローチャート。
【図６】図４のメインルーチンにおけるスイッチ処理のフローチャート。
【図７】図５のスイッチ処理におけるパラメータ名選択スイッチ処理のフローチャート。
【図８】図５のスイッチ処理におけるパラメータ種選択スイッチ処理のフローチャート。
【図９】図５のスイッチ処理におけるデータ入力スイッチ処理のフローチャート。
【図１０】図４のメインルーチンにおける鍵盤処理のフローチャート。
【図１１】図４のメインルーチンにおけるパラメータの変調処理のフローチャート。
【図１２】図１１のパラメータの変調処理におけるｍ[０]演算処理のフローチャート。
【図１３】図１１のパラメータの変調処理におけるｍ[１]演算処理のフローチャート。
【図１４】図１１のパラメータの変調処理におけるｍ[２]演算処理のフローチャート。
【図１５】図１１のパラメータの変調処理におけるｍ[３]演算処理のフローチャート。
【符号の説明】
【００４３】
１    ＣＰＵ
３    ＲＯＭ
４    ＲＡＭ
５    スイッチ部
６    キースキャナ
７    音源ＬＳＩ
８    エフェクトＬＳＩ
９    鍵盤
１０    波形ＲＯＭ
１１    Ｄ／Ａ変換回路
１２    出力回路
【図１】
0004548327.tif 000007
【図２】
0004548327.tif 000008
【図３】
0004548327.tif 000009
【図４】
0004548327.tif 000010
【図５】
0004548327.tif 000011
【図６】
0004548327.tif 000012
【図７】
0004548327.tif 000013
【図８】
0004548327.tif 000014
【図９】
0004548327.tif 000015
【図１０】
0004548327.tif 000016
【図１１】
0004548327.tif 000017
【図１２】
0004548327.tif 000018
【図１３】
0004548327.tif 000019
【図１４】
0004548327.tif 000020
【図１５】
0004548327.tif 000021