(57)【特許請求の範囲】
【請求項１】
キーオフ音を発音する必要があるとき、音源に空きチャンネルに余裕がない場合には、該キーオフ音を付加すべき通常押鍵音のリリースを長めにして、キーオフ音の代わりとすることを特徴とする楽音制御装置。
【請求項２】
キーオフ音の発音後にペダルオンとなったときには、該キーオフ音を付加している通常押鍵音と、該キーオフ音の楽音との双方のディケイを延ばして、ダンパーオン付加音の代わりとすることを特徴とする楽音制御装置。
【請求項３】
キーオフ音の発音後にペダルオンとなったときに、音源の空きチャンネルに余裕のない場合には、該キーオフ音を付加している通常押鍵音または該キーオフ音の何れか一方のディケイをキーオフからの時間に応じて延ばしてダンパーオン付加音の代わりとすることを特徴とする楽音制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、アコースティックピアノなどの楽器の楽音をシミュレートできるようにした楽音制御装置に関する。
【０００２】
【従来の技術】
従来、電子楽器において、自然楽器の楽音波形をサンプリングして波形メモリに記憶しておき、楽音発生時に波形メモリからサンプリング波形を読み出して波形信号を発生するとともに、該波形信号のエンベロープ形状を制御することにより、ピアノ等の楽音をシミュレートすることが行われている。例えば、楽音のエンベロープ全体をいくつかのステップに分割し、そのそれぞれの目標値とレートから全体のエンベロープ形状を生成するものなどがある。
【０００３】
ところで、ピアノにおいては各弦毎にダンパーが備えられており、ダンパーペダルと鍵の操作に応じてダンパーの弦に対する作用が変化する。例えば、ペダルを踏まない状態で押鍵すると、この押鍵によりダンパーが弦から離されてハンマーが打弦し、そのままペダルを踏まない状態で離鍵すると、ダンパーが弦に当てられて弦の振動が強制的に減衰されて楽音が消音される。
【０００４】
一方、ペダルを踏んでいるとダンパーが弦から離された状態が維持されるので、ペダルを踏んで押鍵するか押鍵後にペダルを踏むと、離鍵しても弦は自由振動をし、楽音はそのまま継続されて自然減衰する。また、このときペダルを踏むのをやめると、ダンパーにより減衰されて消音する。
【０００５】
このように、ペダルを踏まない状態での離鍵時、ペダルを踏んだ状態での離鍵後にペダルを踏むのをやめたときなどは、振動体である弦そのものにダンパーが当たって振動を減衰するので、音量が減衰するだけでなく楽音の波形自体が変形して微妙な音色変化が生じる。
【０００６】
また、ペダルを踏んで押鍵したり押鍵後にペダルを踏むと、そのときの楽音は、打弦された弦と調和関係にあるような弦（例えばＣの弦に対してオクターブの異なるＣの弦やＧあるいはＥの弦など）が励振されて共鳴音等が付加されたものとなる。すなわち、ペダルを踏まないで押鍵したときとは音色が微妙に異なっている。
【０００７】
そこで、電子楽器においても、通常の打弦音に上記のような各種の楽音成分を付加することで、アコースティックピアノの楽音をより忠実にシミュレートすることが考えられている。なお、この明細書において、通常の打弦音を「通常押鍵音」、離鍵によりダンパーが弦の振動を減衰させるときの音を「キーオフ音」、弦が自由振動しているときにペダルを踏むのをやめてダンパーが弦の振動を減衰させるときの音を「ダンパーオフ音」、ペダルを踏んでダンパーが弦から離されたときの共鳴音等の付加音を「ダンパーオン付加音」という。
【０００８】
ところで、電子楽器は、音源の時分割多重処理により複数チャンネルでの楽音の発生を可能としているが、この音源のチャンネル数も近年多くなっている。これにより、１つの押鍵イベントに対して１チャンネルを割り当てるだけでなく、別のチャンネルを用いて前記のような各種の楽音を付加することが、ある程度可能となってきている。
【０００９】
【発明が解決しようとする課題】
このような楽音制御を行う場合、アコースティックピアノの発音態様や発音機構を考慮すると、鍵操作とペダル操作に応じて、通常押鍵音、キーオフ音、ダンパーオフ音およびダンパーオン付加音の４種類の楽音を各鍵毎にそれぞれ発音制御することが理想的である。しかし、このような楽音を単に付加していくだけでは発音数が膨大になって音源のチャンネル数が足りなくなることがある。
本発明は、キーオフ音、ダンパーオフ音、ダンパーオン付加音をシミュレートしながら、音源の発音制御を容易にすることを課題とする。
【００１０】
【課題を解決するための手段】
本発明の請求項１の楽音制御装置は、キーオフ音を発音する必要があるとき、音源に空きチャンネルに余裕がない場合には、該キーオフ音を付加すべき通常押鍵音のリリースを長めにして、キーオフ音の代わりとすることを特徴とする。
【００１１】
本発明の請求項２の楽音制御装置は、キーオフ音の発音後にペダルオンとなったときには、該キーオフ音を付加している通常押鍵音と、該キーオフ音の楽音との双方のディケイを延ばして、ダンパーオン付加音の代わりとすることを特徴とする。
【００１２】
本発明の請求項３の楽音制御装置は、キーオフ音の発音後にペダルオンとなったときに、音源の空きチャンネルに余裕のない場合には、該キーオフ音を付加している通常押鍵音または該キーオフ音の何れか一方のディケイをキーオフからの時間に応じて延ばしてダンパーオン付加音の代わりとすることを特徴とする。
【００１３】
なお、「空きチャンネルに余裕がない」とは、空きチャンネルの数が少なくなっている状態、および空きチャンネルが全くない状態を含む。
【００１４】
本発明の請求項１の楽音制御装置によれば、キーオフ音を付加すべき通常押鍵音のリリース部分でキーオフ音を代替えできるので、音源に空きチャンネルに余裕がなくてもキーオフ音をシミュレートすることができる。したがって、キーオフ音用にチャンネルを確保する必要がない。
【００１５】
本発明の請求項２の楽音制御装置によれば、キーオフ音を付加している通常の楽音とキーオフ音との双方のディケイ部分でダンパーオン付加音を代替えできるので、リアリティが向上するとともに、ダンパーオン付加音を発音するためのチャンネルを使うことがないので、音源の空きチャンネルを確保できる。
【００１６】
本発明の請求項３の楽音制御装置によれば、キーオフ音を付加している通常の楽音またはキーオフ音の何れかのディケイ部分でダンパーオン付加音を代替えできるので、別途のダンパーオン付加音を発音するためのチャンネルを使うことがなく、通常の楽音またはキーオフ音の何れかの発音チャンネルが空きチャンネルとなるので、さらに音源の空きチャンネルを確保できる。
【００１７】
なお、押鍵により打弦された特定の弦から見れば、ダンパーオフ音とキーオフ音は、弦とダンパーの接触によって起こるという点で機構が同じであるので、ダンパーオフ音をキーオフ音で代用することができる。逆に、キーオフ音をダンパーオフ音で代用することもできる。この場合、ダンパーオフ音またはキーオフ音の波形を記憶しなくてよいので、メモリ容量を削減でき、また、楽音波形のサンプリング作業を軽減することができる。
【００１８】
【発明の実施の形態】
以下、図面を参照して本発明の一実施の形態について説明する。図３は本発明の実施形態の楽音制御装置を適用した電子楽器のブロック図であり、ＣＰＵ１はＲＯＭ２に格納されている制御プログラムに基づいてＲＡＭ３のワーキングエリアを使用して電子楽器全体の制御を行う。なお、ＣＰＵ１は内部にタイマを備えている。
【００１９】
演奏操作部４は、例えば８８鍵の鍵盤やダンパーペダル等であり、鍵盤における押鍵（キーオン）と離鍵（キーオフ）の各イベントにより鍵のキーコード、キーオン信号／キーオフ信号、押鍵速度等のタッチ情報が得られる。また、ダンパーペダルにおけるペダルの踏込み動作（ペダルオン）と解放動作（ペダルオフ）の各イベントにより、ペダルオン信号／ペダルオフ信号、ペダルの踏込み量に応じたペダル情報が得られる。操作パネル部５はディスプレイや各種設定操作子であり、各種モードの表示や音色選択等を行う。
【００２０】
音源部６は波形読出し方式の音源であり、ＣＰＵ１によりバスライン７を介して転送される各種データに基づいて、楽音データメモリ８に格納された後述説明する各種楽音の波形データを読み出してデジタル楽音信号を発生する。また、音源部６は、時分割多重処理により複数のチャンネル（例えば６４チャンネルを２セット）で複数音を実質的に同時発音可能としたものであり、各発音チャンネルで発生された楽音信号は合成（加算）されてＤ／Ａ変換部（ＤＡＣ）９に出力される。そして、デジタル楽音信号はＤ／Ａ変換部９でアナログ信号に変換され、サウンドシステム１０で増幅されて楽音が発生される。
【００２１】
メモリーデバイス１１は、フロッピィディスク装置（ＦＤＤ）、ハードディスク装置（ＨＤＤ）、ＣＤ−ＲＯＭ装置、光磁気ディスク（ＭＯ）装置、デジタル多目的ディスク（ＤＶＤ）装置等であり、例えばこのメモリーデバイス１１から波形データや各種制御プログラムを供給したり、各種データを保存するために用いられる。また、ネットワークインターフェース１２は、モデムやその他のインターフェースであり、ＭＩＤＩあるいはＲＳ−２３２Ｃ等により各種ネットワークとの情報の交換を行う。これにより、他のＭＩＤＩ機器やサーバコンピュータ等から楽音データ（波形データ等）の配信を受けることもできる。
【００２２】
図４は実施形態における楽曲生成の流れを説明する概念図である。楽音データメモリ８には、「通常押鍵音」の波形データ、「ダンパーオン付加音」の波形データ、「ダンパーオフ音」の波形データ、「キーオフ音」の波形データがそれぞれ記憶されている。また、各波形データは鍵盤の全鍵の各々についてステレオ２チャンネル分記憶されている。さらに、各波形データは、例えばアコースティックピアノ、エレクトリックピアノなどのように複数の音色のそれぞれに対応して記憶されている。
【００２３】
制御部は、演奏操作部４の鍵盤とダンパーペダルおよびＣＰＵ１に対応しており、主に演奏情報の発生と音源部６のチャンネル割当てを行う。演奏情報はキーオン（ｋｅｙｏｎ）  、キーオフ（ｋｅｙｏｆｆ）、キーコード（ｋｃ）、タッチ情報（ｔｏｕｃｈ）  、音量情報（ｖｏｌｕｍｅ）、ペダルオン（ｐｅｄａｌｏｎ）  、ペダルオフ（ｐｅｄａｌｏｆｆ）および音色情報（ｔｏｎｅｃｏｌｏｒ）  等であり、これらの演奏情報に基づいて楽音データメモリ８の波形データを選択し、各波形データに対して音源部６の複数のチャンネルＴＧＣＨｎ  の中から発音チャンネルを割り当てる。
【００２４】
通常押鍵音に対して発音チャンネルＴＧＣＨ（ｎｏｒｍａｌ）を、ダンパーオン付加音に対して発音チャンネル  ＴＧＣＨ（ｄｍｐｏｎ）を、ダンパーオフ音に対して発音チャンネルＴＧＣＨ（ｄｍｐｏｆｆ）を、キーオフ音に対して発音チャンネルＴＧＣＨ（ｋｏｆｆ）をそれぞれ割り当てる。そして、各発音チャンネルで生成された楽音信号はミキサによって合成される。
【００２５】
以上の処理は、音源部６のチャンネルに余裕がある場合に行う基本的な処理であり、後述説明するように、キーオフ音については、空きチャンネルがない場合には楽音のエンベロープのリリースを制御してキーオフ音の代替え処理を行う。また、ダンパーオン付加音については、キーオフ音と通常押鍵音のエンベロープのディケイを制御してダンパーオンに応じた音色変化を付ける。さらに、その際に、発音しているチャンネル（発音チャンネル）の数が多い場合は通常押鍵音のエンベロープのディケイだけを制御する。
【００２６】
図２は実施形態における鍵操作とペダル操作に対応する楽音信号のエンベロープの一例を示す図である。通常押鍵音は、ピアノの２段減衰の特徴を示すものであり、押鍵（キーオン）直後に立ち上がるアタック、最大振幅から速い速度で減衰するプリディケイ、このプリディケイに続いて遅い速度で減衰するディケイ、および、離鍵（キーオフ）によりディケイの途中から強制的に減衰されるリリースで構成されている。なお、離鍵されなければ、破線で示したようにディケイにより自然減衰する。
【００２７】
ダンパーオン付加音は、ダンパーペダルの踏込み動作（ペダルオン）で比較的緩く立ち上がるアタック、その最大振幅から遅い速度で減衰するディケイ、および、ダンパーペダルの解放動作（ペダルオフ）で強制的に減衰されるリリースで構成されている。なお、ペダルオフがなければ、破線で示したようにディケイにより自然減衰する。また、ダンパーオフ音は、ペダルオフで立ち上がるアタック、および、その最大振幅から比較的速い速度で減衰するディケイで構成されている。さらに、キーオフ音は、キーオフ直後に立ち上がるアタック、および、その最大振幅から比較的速い速度で減衰するディケイで構成されている。
【００２８】
図２の例では、押鍵（キーオン）と同時にダンパーペダルが踏込まれ（ペダルオン）、押鍵状態でダンパーペダルが解放され（ペダルオフ）、その後、離鍵（キーオフ）となった場合を示している。したがって、通常押鍵音とダンパーオン付加音が同時に発生され、ペダルオフでダンパーオン付加音がリリースされるとともにダンパーオフ音が立ち上がり、そして、キーオフにより通常押鍵音がリリースされるとともにキーオフ音が立ち上がっている。
【００２９】
ここで、キーオフのとき音源部６に空きチャンネルがない場合（あるいは空きチャンネルの数が少ない場合）には、図１（Ａ）  のように、キーオフでキーオフ音を発生しないで、すなわちキーオフ音用にチャンネルを割り当てないで、通常押鍵音のリリースを破線のような従来の場合よりも長めにし、このリリースの部分をキーオフ音の代替えとする。
【００３０】
また、図１（Ｂ）  に示したように、通常は、キーオフにより通常押鍵音がリリースするとともにキーオフ音が立ち上がるが、このキーオフ音の発生中にペダルオンとなると、通常押鍵音とキーオフ音のディケイを延ばし、ダンパーオン付加音の代替えとする。さらに、このとき音源部６に空きチャンネルの余裕がない場合には、通常押鍵音またはキーオフ音の何れか一方のディケイをキーオフからの時間に応じて延ばしてダンパーオン付加音の代わりとする。なお、キーオフで通常どおりにリリースしたり通常どおりにディケイする場合は、楽音のレベルが０レベルあるいは殆ど０レベルになるとその発音チャンネルは開放される。
【００３１】
次に、実施形態の動作を図５〜図１０のフローチャートに基づいて説明する。なお、以下の説明および各フローチャートにおいて各レジスタ等を下記のラベルで表記し、そのレジスタ等とその記憶内容は特に断らない限り同一のラベルで表す。
【００３２】
ＫＣｘ  ：キーイベント（キーオン／キーオフ）のあったキーコード
ＤＭＰＰＥＤＡＬ：ダンパーペダルの踏込み量
＃ＰＤＬＯＮ：ダンパーオンの判定基準となるダンパーペダルの踏込み量の設定値（しきい値）
ＶＣＨ  ：空きチャンネルのチャンネル番号
ＮＲＭＬＴ［ＫＣｘ，ＴＯＵＣＨｘ，．．］：キーコードＫＣｘ，タッチデータＴＯＵＣＨｘの通常押鍵音の波形データに対応するデータ群（音源部６に転送するデータ群）
ＤＭＰＴ［ＫＣｘ，ＴＯＵＣＨｘ，．．］  ：キーコードＫＣｘ，タッチデータＴＯＵＣＨｘのダンパーオン付加音の波形データに対応するデータ群（音源部６に転送するデータ群）
ＫＯＮＴＩＭＥＲ［ＫＣｘ］  ：キーコードＫＣｘ  のキーオンからの押鍵タイムを計時する押鍵タイマ
ＫＯＮＴＩＭ（ＫＣｘ）  ：キーコードＫＣｘ  の押鍵タイム（キーオンからの経過時間）
ＮＲＭＬＴＬＥＶＥＬ（ＫＣｘ）  ：キーコードＫＣｘ  の通常押鍵音の音量レベル
＃ＬＶＬ：実質的な発音終了の判定基準となる設定音量レベル
＃ＯＮＴＩＭＥ  ：押鍵タイムに基づく実質的な発音終了の判定基準となる設定時間
ＫＯＦＦＴ［ＫＣｘ，ＫＯＮＴＩＭ（ＫＣＸ），ＬＶＬ（ＫＣｘ）］  ：キーコードＫＣｘ  、押鍵タイムＫＯＮＴＩＭ（ＫＣＸ）  、音量レベルＬＶＬ（ＫＣｘ）のキーオフ音の波形データに対応するデータ群（音源部６に転送するデータ群）
【００３３】
＃ＣＨＬＭＴ  ：キーオフ音の発音制限の判定基準となる発音チャンネル数の上限設定値
ＲＬＳＲＡＴＥ［ＫＣｘ］：通常押鍵音のリリースの長さを決定するリリースレート
ＫＯＦＦＴＤＥＣＡＹ［ＫＣｘ］：キーコードＫＣｘ  のキーオフ音のディケイの長さを決定するディケイレート
ＮＲＭＬＴＤＥＣＡＹ［ＫＣｘ］：キーコードＫＣｘ  の通常押鍵音のディケイの長さを決定するディケイレート
＃ＲＲＣＯＥＦ：通常押鍵音のリリースレートを変更するためのリリースレート延長係数（ただし、＃ＲＲＣＯＥＦ＞１）
＃ＤＥＣＡＹＣＯＥＦ２：キーオフ音のディケイレートを変更するためのディケイレート延長係数
＃ＤＥＣＡＹＣＯＥＦ１：通常押鍵音のディケイレートを変更するためのディケイレート延長係数（ただし、＃ＤＥＣＡＹＣＯＥＦ２＞＃ＤＥＣＡＹＣＯＥＦ１  ）
＃ＴＩＭ：押鍵タイマのステップ更新量
【００３４】
なお、以下の説明およびフローチャートにおいて、サフィックス“ｘ  ”はキーイベントのあった全てのキーコードなど、現時点での全ての処理対象を示しており、各ステップの処理において、このサフィックス“ｘ  ”を付したものは、全ての処理対象について同様な処理を行うことを示している。
【００３５】
図５の発音処理は、通常の電子楽器の処理を行うメインルーチンから起動されるサブルーチンであり、ステップＳ１で演奏操作部４の鍵盤およびダンパーペダルにおける演奏イベントを検出する処理を行う。次に、ステップＳ２で押鍵イベントの有無を判定し、押鍵イベントがなければステップＳ３で離鍵イベントの有無を判定する。さらに、離鍵イベントながければステップＳ４でダンパーペダルのオンイベントがあるか否か、すなわち踏込み量ＤＭＰＰＥＤＡＬが設定値＃ＰＤＬＯＮ以上であるか否かを判定し、ダンパーペダルのオンイベントがなければステップＳ５でダンパーペダルのオフイベントがあるか否か、すなわち踏込み量ＤＭＰＰＥＤＡＬが設定値＃ＰＤＬＯＮ未満であるか否かを判定する。そして、ダンパーペダルのオフイベントでもなければ図６のステップＳ６に進む。
【００３６】
ステップＳ６では、通常押鍵音の実質発音終了状態の検出イベントであるか否か、すなわち、「通常押鍵音の音量レベルＮＲＭＬＴＬＥＶＥＬ（ＫＣｘ）  が設定音量レベル＃ＬＶＬ以下で、かつ、押鍵タイムＫＯＮＴＩＭ（ＫＣｘ）  が設定時間＃ＯＮＴＩＭＥ  を超えている」という条件を満足するか否かを判定し、実質発音終了状態でなければ（ＮＯであれば）メインルーチンに復帰する。実質発音終了状態であれば（ＹＥＳであれば）、ステップＳ７で、対応するキーコード（音高）ＫＣｘ  の通常押鍵音ＮＲＭＬＴ［ＫＣｘ］をキーオフして、その発音チャンネルを開放し、押鍵タイマＫＯＮＴＩＭＥＲ［ＫＣｘ］  をオフとしてメインルーチンに復帰する。
【００３７】
なお、以上のステップＳ６、Ｓ７では押鍵タイムにより通常押鍵音の実質発音終了を判定しているが、通常押鍵音およびキーオフ音のリリースあるいはディケイにより楽音信号のレベルが０（あるいはほぼ０）になると、メインルーチンの他のステップの処理により、音源部６の対応するチャンネルが自動的に開放される。
【００３８】
図５のステップＳ２で押鍵イベントがあれば押鍵イベントのあったキーコードがレジスタＫＣｘ  に格納され、ステップＳ８で、ダンパーペダルの踏込み量ＤＭＰＰＥＤＡＬが設定値＃ＰＤＬＯＮ以上であるか否かを判定し、判定結果が「ＮＯ」であればペダルオフ状態であるので、ステップＳ９で、ＮＲＭＬＴ［ＫＣｘ，ＴＯＵＣＨｘ，．．］を音源部６のチャンネルＶＣＨ  に転送して通常押鍵音の発音処理を行い、ステップＳ１２に進む。一方、ステップＳ８の判定結果が「ＹＥＳ」であればペダルオン状態であるので、ステップＳ１０で、ＮＲＭＬＴ［ＫＣｘ，ＴＯＵＣＨｘ，．．］を音源部６のチャンネルＶＣＨ  に転送して通常押鍵音発音処理を行い、さらにステップＳ１１でＤＭＰＴ［ＫＣｘ，ＴＯＵＣＨｘ，．．］  を音源部６のチャンネルＶＣＨ  に転送してダンパーオン付加音の発音処理を行い、ステップＳ１２に進む。ステップＳ１２では、押鍵タイマＫＯＮＴＩＭＥＲ［ＫＣｘ］  を“０”にリセットするとともに、押鍵タイマを起動してメインルーチンに復帰する。
【００３９】
また、ステップＳ３で離鍵イベントがあれば押鍵イベントのあったキーコードがレジスタＫＣｘ  に格納され、ステップＳ１３で、ダンパーペダルの踏込み量ＤＭＰＰＥＤＡＬが設定値＃ＰＤＬＯＮ未満であるか否かを判定し、判定結果が「ＮＯ」であればペダルオン状態であり、ペダルオン状態での離鍵は楽音に影響しないのでそのままメインルーチンに復帰する。判定結果が「ＹＥＳ」であればペダルオフ状態であるので、ステップＳ１４以降で、通常押鍵音、キーオフ音、ダンパーオン付加音についての離鍵に対応する処理を行う。すなわち、ステップＳ１４で通常押鍵音ＮＲＭＬＴ［ＫＣｘ］がキーオン継続中であるか否かを判定し、キーオン継続中でなければステップＳ１６に進み、キーオン継続中であれば、ステップＳ１５で図８の通常押鍵音・キーオフ音処理を行ってステップＳ１６に進む。ステップＳ１６では、ダンパーオン付加音ＤＭＰＴ［ＫＣｘ］  があれば、そのダンパーオン付加音ＤＭＰＴ［ＫＣｘ］  のキーオフ処理を行ってメインルーチンに復帰する。
【００４０】
また、ステップＳ４でダンパーペダルのオンイベントがあれば、ステップＳ１７で図９のダンパーオン処理を行ってメインルーチンに復帰する。また、ステップＳ５でダンパーペダルのオフイベントがあれば、ステップＳ１８で図１０のダンパーオフ処理を行ってメインルーチンに復帰する。
【００４１】
図７は押鍵タイムを計時するための押鍵タイマ割込み処理のフローチャートであり、所定の割込みクロックで起動される。まず、ステップＳ２１で起動中の押鍵タイマＫＯＮＴＩＭＥＲ［ＫＣｘ］  の有無を判定し、起動中のものがなければ元のルーチンに復帰し、起動中のものがあれば、ステップＳ２２でキーコードＫＣｘ  を初期化する。このキーコードの初期化とは、起動中の全ての押鍵タイマＫＯＮＴＩＭＥＲ［ＫＣｘ］  に対応する各キーコードＫＣｘ  をピックアップし、以下の処理でこのキーコードを順次指定できるように順序付け等をする処理である。
【００４２】
ステップＳ２３では、キーコードＫＣｘ  に対応する押鍵タイマの計時値ＫＯＮＴＩＭＥＲ［ＫＣｘ］  が設定時間＃ＯＮＴＩＭＥ  以下であるか否かを判定し、設定時間を超えていればステップＳ２５に進み、設定時間以下であればステップＳ２４で、ステップ更新量＃ＴＩＭだけ押鍵タイマを更新し、ステップＳ２５に進む。ステップＳ２５では起動中の全押鍵タイマについての処理が完了したか否かを判定し、完了していれば元のルーチンに復帰し、完了していなければステップＳ２６でキーコードを更新してステップＳ２３に戻る。以上の処理により、起動中の押鍵タイマで設定時間＃ＯＮＴＩＭＥ  を超えた押鍵タイマはその値を保持し、前記ステップＳ６および図８の通常押鍵音・キーオフ音処理で実質発音終了の判定に用いられる。
【００４３】
図８の通常押鍵音・キーオフ音処理は離鍵イベントが有った場合の処理であり、ステップＳ３１で、通常押鍵音の発音継続中であるか、すなわち、「通常押鍵音の音量レベルＮＲＭＬＴＬＥＶＥＬ（ＫＣｘ）  が設定音量レベル＃ＬＶＬより大きいか、または、押鍵タイムＫＯＮＴＩＭ（ＫＣｘ）  が設定時間＃ＯＮＴＩＭＥ  以下である」という条件を満足するか否かを判定する。判定結果が「ＮＯ」であれば発音継続中ではなく、離鍵されたキーコードＫＣｘ  に対応する通常押鍵音は実質発音終了状態であるのでそのまま元のルーチンに復帰し、「ＹＥＳ」であれば発音継続中であり、ステップＳ３２で音源部６の空きチャンネルを検索し、ステップＳ３３で空きチャンネルが有ったか否かを判定する。そして、空きチャンネルが有れば、ステップＳ３４で音源部６の空きチャンネルＶＣＨ  にＫＯＦＦＴ［ＫＣｘ，ＫＯＮＴＩＭ（ＫＣＸ），ＬＶＬ（ＫＣｘ）］  を転送してキーオフ音の割当発音処理を行い、ステップＳ３６で通常押鍵音ＮＲＭＬＴ［ＫＣｘ］のキーオフ処理を行い、元のルーチンに復帰する。
【００４４】
一方、空きチャンネルが無ければ、ステップＳ３５で、離鍵されたキーコードＫＣｘ  に対応する通常押鍵音ＮＲＭＬＴ［ＫＣｘ］のリリースレートＲＬＳＲＡＴＥ［ＫＣｘ］にリリースレート延長係数＃ＲＲＣＯＥＦ  を乗算し、その乗算結果をリリースレートＲＬＳＲＡＴＥ［ＫＣｘ］として更新する。そして、ステップＳ３６で通常押鍵音ＮＲＭＬＴ［ＫＣｘ］のキーオフ処理を行い、元のルーチンに復帰する。
【００４５】
以上の処理により、離鍵イベントにより、空きチャンネルが有る場合はキーオフ音が付加され、通常押鍵音は通常のリリースレートに基づいて消音（リリース）される。一方、空きチャンネルが無い場合には、キーオフ音は付加しないで、通常押鍵音が、更新されたリリースレートＲＬＳＲＡＴＥ［ＫＣｘ］に基づいて長めのリリースで消音され、この通常押鍵音のリリース部分でキーオフ音が代替えされる。なお、通常押鍵音およびキーオフ音が消音されると各チャンネルは開放される。
【００４６】
図９のダンパーオン処理はダンパーペダルのオンイベントが有った場合の処理であり、ステップＳ４１で、発音中の通常押鍵音各々のキーコードに対応した未発音のダンパーオン付加音の発音処理を行う。ここで、通常押鍵音の音量レベルＮＲＭＬＴＬＥＶＥＬや押鍵タイムＫＯＮＴＩＭにより、このダンパーオン付加音の音量やエンベロープなどが制御される。すなわち、通常押鍵音の音量が大きいときはダンパーオン付加音の音量も大きくし、小さいときは小さくするなどして、打弦のエネルギーが共鳴音に影響する状態をシミュレートする。また、押鍵からの時間を示す押鍵タイムでも同様な処理を行える。
【００４７】
次に、ステップＳ４２で、発音中のキーオフ音が有るか否かを判定し、無ければ元のルーチンに復帰し、有れば、ステップＳ４３で音源部６の発音チャンネル（発音中のチャンネル）の数が上限設定値＃ＣＨＬＭＴ以下であるか否かを判定する。上限設定値以下であれば、チャンネル数に余裕があるので、ステップＳ４４で、発音中のキーオフ音のディケイを延長する。すなわち、キーオフ音のディケイＫＯＦＦＴＤＥＣＡＹ［ＫＣｘ］  にキーオフ音のディケイ延長係数＃ＤＥＣＡＹＣＯＥＦ２  を乗算し、その乗算結果をディケイＫＯＦＦＴＤＥＣＡＹ［ＫＣｘ］  として、そのキーオフ音の対応する発音チャンネルへ転送する。さらに、ステップＳ４５で発音中のキーオフ音に対応する発音中の通常押鍵音のディケイを延長する。すなわち、通常押鍵音のディケイＮＯＭＬＴＤＥＣＡＹ［ＫＣｘ］  に通常押鍵音のディケイ延長係数＃ＤＥＣＡＹＣＯＥＦ１  を乗算し、その乗算結果をディケイＮＯＭＬＴＤＥＣＡＹ［ＫＣｘ］  として、その通常押鍵音の対応する発音チャンネルへ転送する。
【００４８】
一方、ステップＳ４３で音源部６の発音チャンネル数が上限設定値を超えていれば、ステップＳ４４の処理は行わないで、ステップＳ４５で発音中のキーオフ音に対応する発音中の通常押鍵音のディケイだけを延長する。そして、ステップＳ４６で、発音中の全キーオフ音について処理が終了したかを判定し、終了していなければステップＳ４３に戻り、終了していれば元のルーチンに復帰する。
【００４９】
以上の処理により、音源部６のチャンネルに余裕があれば、キーオフ音とこのキーオフ音に対応する通常押鍵音の双方のディケイが延長され、ダンパーオン付加音の代替えが行われる。このように、キーオフ音と通常押鍵音の双方でダンパーオン付加音を代替えするので、リアリティが向上する。一方、音源部６のチャンネルに余裕がなければ、キーオフ音に対応する通常押鍵音のみのディケイが延長されて、ダンパーオン付加音の代替えが行われる。これにより、キーオフ音は速く消音してその発音チャンネルは開放されるので、空きチャンネルを早めに確保することができる。
【００５０】
図１０のダンパーオフ処理はダンパーペダルのオフイベントが有った場合の処理であり、ステップＳ５１で、発音中の通常押鍵音、発音中のダンパーオン付加音で、離鍵されているキーコードに対応する音についてキーオフ処理をし、そのキーコードに対応するダンパーオフ音を発音する。そして、ステップＳ５２で、押鍵が継続している発音中の通常押鍵音、発音中のキーオフ音について、その発音チャンネルに各音の本来のディケイレートを転送し、元のルーチンに復帰する。これにより、ダンパーオフ音が付加される。
【００５１】
なお、ダンパーオフ音はキーオフ音の波形データで代用してもよく、キーオフ音をダンパーオフ音の波形データで代用してもよい。これにより、メモリの容量を削減できるとともに、波形のサンプリングの手間が省ける。
【００５２】
また、実質的な発音終了の判定基準となる設定時間＃ＯＮＴＩＭＥ  は、キーコードまたは鍵域毎に設定するようにしてもよい。例えば、ピアノの場合には高音ほど小さく（設定時間を短く）するとよい。
【００５３】
実施形態では、キーオフ音の発音後にペダルオンとなったとき、音源のチャンネルに余裕がない場合、キーオフ音のディケイはそのままで通常押鍵音のディケイを延ばすようにしているが、逆に、通常押鍵音のディケイはそのままでキーオフ音のディケイを延ばすようにしてもよい。
【００５４】
なお、実施形態では音源部６を備えているが、ＣＰＵ１が音源の機能すなわち楽音波形を発生する処理を兼ね、音源部６を省略するようにしてもよい。この場合、Ｄ／Ａ変換部（ＤＡＣ）９はバスライン７を介してデジタル楽音信号を受け取ることになる。
【００５５】
また、実施形態では本発明を電子楽器に適用した例を示したが、電子楽器の形態に限らず、パソコン＋アプリケーションソフトウェアの形態でもよく、カラオケ装置や、ゲーム装置、自動演奏ピアノに適用してもよい。また、音源装置やコントローラ等を１つの電子楽器本体に内蔵したものに限らず、それぞれが別体の装置であり、ＭＩＤＩや各種ネットワーク等の通信手段を用いて各装置を接続するものであってもよい。
【００５６】
【発明の効果】
本発明の請求項１の楽音制御装置によれば、キーオフ音を付加すべき通常押鍵音のリリース部分でキーオフ音を代替えできるので、音源に空きチャンネルに余裕がなくてもキーオフ音をシミュレートすることができる。したがって、キーオフ音用にチャンネルを確保する必要がない。したがって、キーオフ音、ダンパーオフ音、ダンパーオン付加音をシミュレートしながら、音源の発音制御を容易にすることができる。
【００５７】
本発明の請求項２の楽音制御装置によれば、キーオフ音を付加している通常の楽音とキーオフ音との双方のディケイ部分でダンパーオン付加音を代替えできるので、リアリティが向上するとともに、ダンパーオン付加音を発音するためのチャンネルを使うことがないので、音源の空きチャンネルを確保できる。したがって、キーオフ音、ダンパーオフ音、ダンパーオン付加音をシミュレートしながら、音源の発音制御を容易にすることができる。
【００５８】
本発明の請求項３の楽音制御装置によれば、キーオフ音を付加している通常の楽音またはキーオフ音の何れかのディケイ部分でダンパーオン付加音を代替えできるので、別途のダンパーオン付加音を発音するためのチャンネルを使うことがなく、通常の楽音またはキーオフ音の何れかの発音チャンネルが空きチャンネルとなるので、さらに音源の空きチャンネルを確保できる。したがって、キーオフ音、ダンパーオフ音、ダンパーオン付加音をシミュレートしながら、音源の発音制御を容易にすることができる。
【図面の簡単な説明】
【図１】本発明の実施形態におけるキーオフ音の代替え処理とダンパーオン付加音の代替え処理の一例を示す図である。
【図２】本発明の実施形態における鍵操作とペダル操作に対応する楽音信号のエンベロープの一例を示す図である。
【図３】本発明の実施形態の楽音制御装置を適用した電子楽器のブロック図である。
【図４】本発明の実施形態における楽曲生成の流れを説明する概念図である。
【図５】本発明の実施形態における発音処理のフローチャートの一部である。
【図６】同発音処理のフローチャートの他の一部である。
【図７】本発明の実施形態における押鍵タイマ割込み処理のフローチャートである。
【図８】本発明の実施形態における通常押鍵音・キーオフ音処理のフローチャートである。
【図９】本発明の実施形態におけるダンパーオン処理のフローチャートである。
【図１０】本発明の実施形態におけるダンパーオフ処理のフローチャートである。
【符号の説明】
１…ＣＰＵ、２…ＲＯＭ、３…ＲＡＭ、４…演奏操作部、６…音源部、８…楽音データメモリ
【図１】
0003624780.tif 000002
【図２】
0003624780.tif 000003
【図３】
0003624780.tif 000004
【図４】
0003624780.tif 000005
【図５】
0003624780.tif 000006
【図６】
0003624780.tif 000007
【図７】
0003624780.tif 000008
【図８】
0003624780.tif 000009
【図９】
0003624780.tif 000010
【図１０】
0003624780.tif 000011