図1は、この発明の一実施形態に係る電子楽器の回路構成を示すもので、この電子楽器では、鍵盤操作に基づく楽音発生がマイクロコンピュータによって制御されるようになっている。
バス10には、インターフェース14,24、CPU(中央処理装置)16、プログラムメモリ18、ワーキングメモリ20、タイマ22等が接続されている。
インターフェース14には、鍵盤12が接続され、図10の例では、フットスイッチ31も接続される。鍵盤12からは、各鍵毎に鍵操作情報が検出される。鍵操作情報検出の一例は、図2に関して後述する。フットスイッチ31からは、スイッチ操作情報が検出される。
CPU16は、メモリ18にストアされたプログラムに従って楽音発生のための各種処理を実行するもので、これらの処理については、図5〜11を参照して後述する。
ワーキングメモリ20は、RAM(ランダム・アクセス・メモリ)からなるもので、CPU16による各種処理に際してレジスタ等として使用される記憶領域を含んでいる。
タイマ22は、一例として10[ms]毎に割込み信号TIをCPU16に供給するもので、CPU16は、割込み信号TIを受取るたびに図5,7又は10の割込みルーチンを開始する。
インターフェース24には、音源ユニット26が接続されている。音源ユニット26は、ピッチ(音高)、音量、音色等の楽音特性が制御可能な音源を含むもので、図12の例では、いわゆる物理モデル音源により構成される。
音源ユニット26から発生される楽音信号TSOは、アンプ28を介してスピーカ30に供給され、音響に変換される。
図2は、鍵盤12の1鍵分の構成を例示するものである。支持体32の上には、可撓性部材34が設けられている。可撓性部材34は、鍵支持部34a、たわみ部34b、上下連結部34c及び固定部34dを断面的に見て「つ」の字状に連結した構成になっており、固定部34dの底面にて支持体32に固定されている。
鍵支持部34aの上面には、鍵部材36が固定されている。鍵支持部34aとたわみ部34bとの間の第1の肉薄部の上下の面には、歪センサ38Aが設けられている。たわみ部34bと上下連結部34cとの間の第2の肉薄部の上下の面には、歪センサ38Bが設けられると共に、第2の肉薄部の側面には、歪センサ38Dが設けられている。上下連結部34cと固定部34dとの間の第3の肉薄部の上下の面には、歪センサ38Cが設けられている。
歪センサ38A,38B,38C,38Dの出力をそれぞれA,B,C,Dとし、K
1,K
2,K
3,K
4,K
5をいずれも定数とすると、鍵の上下方向の押鍵力F
z、鍵の左右方向押鍵力F
x、鍵の前後方向押鍵力F
yは、それぞれ次の数1、数2、数3の式により求められる。
また、鍵における押鍵位置Lは、歪センサ38A、38Bの出力をそれぞれA,Bとし、歪センサ38A及び38Bの間の距離をSとし、K
6を定数とすると、次の数4の式により求められる。
なお、図2において、L
kは、鍵の長さを表わし、L
0は、鍵と歪センサ38Bとの間の距離を表わす。
次に、図3〜6を参照して楽音制御の第1の例を説明する。この例では、上下方向の押鍵力Fzに応じて音量を制御すると共に、左右方向の押鍵力Fxに応じてピッチを制御する。
図3(A),(B)には、それぞれ押鍵開始時t1からのFz,Fxの変化波形を例示してある。図3(B)から明らかなように、Fxは、押鍵開始時t1の直後に大きく変化した後、ある時点t2で安定するが、ゼロにはならない。このため、Fxに応じてピッチを制御すると、発音開始時のピッチが基準ピッチからずれることになる。
このような問題点を解決するため、t1からt2までの一定期間T0のあいだFxをピッチに反映させず、期間T0の終了時点t2のFxの値をオフセット値として記憶しておき、ピッチは、Fxの値からオフセット値を差引いた値に応じて制御する。また、Fxの変化する方向が図3(B)の「CO」で示すようにゼロに近づく方向であるときは、オフセット値OFもゼロに近づける方向に更新する。この例では、鍵操作量についてオフセット値を求め、このオフセット値を基準として楽音特性を制御するので、鍵を斜めに押下するようなことがあっても、楽音の初期ピッチのずれ等を防止することができる。
図4は、オフセット値OFの変更状況を示すものである。オフセット値OFは、F
xが0に近づく方向に変化する期間COにおいて変更制御される。新たなオフセット値OF
(n)は、F
xの順次の極大値及び極小値をそれぞれF
x(n−1)及びF
x(n)とし、変更前のオフセット値をOF
(n−1)とし、K
7を定数とすると、次の数5の式により求められる。
一方、押鍵中に無意識に起こる揺らぎによるピッチ変動を抑制するため、図3(B)に示すように不感帯Wを設定する。すなわち、オフセット値OFの上下W/2の範囲内のF
x値は、ピッチに反映させないようにする。
要するに、この例では、期間T0中のFx値をピッチに反映させず、期間T0の終了時点t2のFx値をオフセット値とした後オフセット値を経時的に更新すると共にオフセット値の上下W/2の範囲を不感帯とし、Fx値からオフセット値を差引いた値に応じて楽音のピッチを制御する。図3(C)は、このようなピッチ制御を行なった場合のピッチ変化量Pの時間的変化を示すもので、これによると、Fxの値が安定してからオフセット値OFを基準にしてピッチが変動制御されている様子がわかる。
図5,6は、上記のような楽音制御を可能にする割込みルーチンを示すものである。ステップ40では、鍵盤12の各鍵からセンサ出力を取込む。そして、ステップ42に移る。
ステップ42では、取込んだセンサ出力に基づいていずれかの鍵にキーオンイベントありか判定する。この判定結果が肯定的(Y)であれば、ステップ44に移り、発音処理を行なう。すなわち、音源ユニット26からキーオンイベントのあった鍵に対応する楽音信号を基準ピッチで且つFz値対応の音量で発生させる。この結果、スピーカ30からは、音源ユニット26からの楽音信号に対応する楽音が発生される。この後、ステップ46に移る。
ステップ46では、時間値レジスタTに、図3の期間T0に対応する時間値をセットする。一例として、T0=500[ms]に相当する時間値50をセットする。時間値としては、0〜数100[ms]のT0に相当するものをセットすることができる。
ステップ46の処理が終ったとき又はステップ42の判定結果が否定的(N)であったときは、ステップ48に移り、ステップ40で取込んだセンサ出力に基づいてキーオフイベントありか判定する。この判定結果が肯定的(Y)であれば、ステップ50に移り、消音処理を行なう。すなわち、キーオフイベントのあった鍵に対応する楽音信号の減衰を開始させる。
ステップ50の処理が終ったとき又はステップ48の判定結果が否定的(N)であったときは、ステップ52に移り、レジスタTの値が0か判定する。この判定結果が否定的(N)であれば、ステップ54に移り、レジスタTの値を1だけ減らす。そして、ステップ56でレジスタTの値が0か判定し、0でない(N)ならばメインルーチン(図示せず)にリターンする。
この後、ステップ40〜56を何回か経由することで期間T0の終りに相当する時間になると、ステップ56の判定結果が肯定的(Y)となり、ステップ58に移る。ステップ58では、現Fx値をオフセット値とする。現Fx値とは、現在取込まれているセンサ出力に基づいて数2の演算で求められるFx値のことである。ステップ58の後は、メインルーチンにリターンする。ステップ50〜56を経由することで期間T0中のFx値がピッチに反映されないようになる。
この後、ステップ40〜50を経由してステップ52にくると、判定結果が肯定的(Y)となり、ステップ60に移る。ステップ60では、現Fx値から前回のFx値を差引いた値が所定値以上か判定する。これは、Fx値の変化がわずかなときにFx値をピッチに反映させないようにするためである。
ステップ60の判定結果が否定的(N)であったときは、ステップ62に移り、Fx値がオフセット値の近傍(例えばオフセット値の上下W/2の範囲内)か判定する。この判定結果が肯定的(Y)であれば、メインルーチンにリターンする。ステップ52,60,62を経由することで図3(B)の不感帯Wの実現が可能となる。
ステップ60の判定結果が肯定的(Y)であったとき又はステップ62の判定結果が否定的(N)であったときは、ステップ64に移る。ステップ64では、現Fx値からオフセット値を差引いた値をピッチ制御データとして音源ユニット26に出力し、発生中の楽音のピッチを変更制御する。そして、ステップ66に移る。
ステップ66では、Fx値の変化が0に近づく方向か判定する。この判定結果が肯定的(Y)であれば、ステップ68に移り、図4で述べたようにしてオフセット値を修正(更新)する。ステップ68の処理が終ったとき又はステップ66の判定結果が否定的(N)であったときは、メインルーチンにリターンする。
図7,8は、楽音制御の第2の例として割込みルーチンを示すものである。この例では、同時に複数の鍵を押してもそのうちの予め定められた発音鍵に対応する1音のみが発生される単音電子楽器を対象としており、音源ユニット26内には、楽音信号TSOを通すフィルタ(例えばローパスフィルタ)が設けられている。
ステップ70では、鍵盤12の各鍵からセンサ出力を取込む。そして、ステップ72に移り、取込んだセンサ出力に基づいて発音鍵にキーオンイベントありか判定する。発音鍵としては、Fz値が最大の鍵が予め定められており、1鍵のみ押したときはその鍵がキーオンイベントありと判定され、複数鍵を同時に押したときはそのうちでFx値最大の鍵がキーオンイベントありと判定される。また、第1の鍵を押していてそれより強く第2の鍵を押すと、第2の鍵がキーオンイベントありと判定される。
ステップ72の判定結果が肯定的(Y)であったときは、ステップ74に移り、発音処理を行なう。すなわち、音源ユニット26からキーオンイベントのあった鍵に対応する楽音信号を発生させる。
ステップ74の処理が終ったとき又はステップ72の判定結果が否定的(N)であったときは、ステップ76に移り、ステップ70で取込んだセンサ出力に基づいてキーオフイベントありか判定する。ある鍵を放したときにキーオフイベントありと判定されるのが普通であるが、第1の鍵を押していてそれより強く第2の鍵を押したときは第1の鍵についてキーオフイベントありと判定される。
ステップ76の判定結果が肯定的(Y)であったときは、ステップ78で消音処理を行なう。すなわち、キーオフイベントのあった鍵に対応する楽音信号の減衰を開始させる。
ステップ78の処理が終ったとき又はステップ76の判定結果が否定的(N)であったときは、ステップ80に移り、楽音制御用の制御鍵としてFz値が2番目に大きい鍵を探す。そして、ステップ82で制御鍵ありか(すなわち第1の鍵以外にも押鍵があるか)判定する。この判定結果が否定的(N)であれば、制御鍵がなかったことになり、ステップ84に移る。
ステップ84では、フィルタのカットオフ周波数fCを制御するための所定のfC制御データを生成する。そして、ステップ86に移り、フィルタの選択度Qを制御するための所定のQ制御データを生成する。さらに、ステップ88に移り、フィルタのゲインGを制御するための所定のG制御データを生成する。この後、ステップ90に移る。
ステップ90では、ステップ84〜88で生成した各制御データを音源ユニット26内のフィルタに出力する。この結果、キーオンイベントありとして発生中の楽音の音色が制御される。この後、メインルーチンにリターンする。
ステップ82の判定結果が肯定的(Y)であったときは、制御鍵があったことになり、ステップ92に移る。ステップ92では、数2の演算により求めたF
x値に基づいてf
C制御データを生成する。この場合、f
C制御データが制御目標とするカットオフ周波数f
Cは、次の数6の式で表わされる。
ここで、f
C0は、ステップ72でキーオンイベントありと判定された鍵の音高に応じて定まるカットオフ周波数であり、F
xmは、F
xの最大絶対値である。ステップ92の後、ステップ94に移る。
ステップ94では、数3の演算により求めたF
y値に基づいてQ制御データを生成する。この場合、Q制御データが制御目標とするQは、次の数7の式で表わされる。
ここで、Q
0は、ステップ72でキーオンイベントありと判定された鍵の音高に応じて定まる選択度の値であり、F
ymは、F
yの最大絶対値である。ステップ94の後、ステップ96に移る。
ステップ96では、数4の演算により求めたL値に基づいてG制御データを生成する。この場合、G制御データが制御目標とするGは、次の数8の式で表わされる。
ここで、G
0は、ステップ72でキーオンイベントありと判定された鍵の音高に応じて定まるゲインの値であり、L
0,L
kは、それぞれ図2に示した距離及び鍵の長さである。ステップ96の後、ステップ90に移る。
ステップ90では、ステップ92,94,96で生成した各制御データを音源ユニット26内のフィルタに出力する。この結果、Fz値が2番目の鍵の鍵操作量(Fx、Fy、L)に応じて楽音の音色が制御される。この後は、メインルーチンにリターンする。
図7,8の処理によると、Fz値が2番目に大きい鍵が自動的に楽音制御鍵となるので、特定の操作子又は鍵を操作するのに比べて楽音制御操作が容易となり、演奏操作も容易となる。
図9は、楽音制御の第3の例として図7のルーチンに続くルーチンを示すものである。換言すれば、この例では、ステップ100より前の処理は、図7に関して前述したものと同様である。
図7でステップ78の処理が終わったとき又はステップ76の判定結果が否定的(N)であったときは、図9のステップ100に移り、楽音制御用の制御鍵としてFz値が2番目に大きい鍵を探す。そして、ステップ102で制御鍵ありか判定する。この判定結果が否定的(N)であれば、制御鍵がなかったことになり、ステップ104に移る。
ステップ104では、フィルタの減衰傾度ASを制御するための所定のAS制御データとフィルタのカットオフ周波数fcを制御するための所定のfc制御データとを音源ユニット26内のフィルタに出力する。この結果、キーオンイベントありとして発生中の楽音の音色が制御される。この後は、メインルーチンにリターンする。
ステップ102の判定結果が肯定的(Y)であったときは、制御鍵があったことになり、ステップ106に移る。ステップ106では、数1の演算により求めたFz値に基づいてAS制御データを作成し、音源ユニット26内のフィルタに出力する。そして、ステップ108に移る。
ステップ108では、発音鍵(楽音発生中の鍵)と制御鍵との音高差を求め、この音高差に基づいてfc制御データを作成し、音源ユニット26内のフィルタに出力する。一例として、音高差大ならばfcを低く、音高差小ならばfcを高くする。
図9の処理によれば、Fz値が2番目の鍵が自動的に楽音制御鍵となり、この鍵の操作に基づいて楽音の音色が制御される。従って、楽音制御操作及び演奏操作が容易となる。なお、ステップ108では、発音鍵と制御鍵との音高差に応じて楽音の音像(定位、広がり感)を制御するようにしてもよい。
図10,11は、楽音制御の第4の例として割込みルーチンを示すものである。この例では、複数の楽音を同時に発生可能な複音電子楽器を対象としている。また、音色制御用の特定鍵が予め定められており、図1のフットスイッチ31がオンされた状態で特定鍵が押されると特定鍵を制御鍵とし、フットスイッチ31がオフされた状態で特定鍵が押されると特定鍵を発音鍵とするようになっている。なお、特定鍵は、演奏者が任意に指定できるようにしてもよい。
ステップ110では、鍵盤12の各鍵からセンサ出力を取込む。そして、ステップ112に移り、取込んだセンサ出力に基づいていずれかの鍵にキーオンイベントありか判定する。この判定結果が肯定的(Y)であれば、ステップ114に移り、キーオンイベントありの鍵が特定鍵か判定する。この判定結果が否定的(N)であれば、ステップ116に移り、発音処理を行なう。すなわち、音源ユニット26からキーオンイベントのあった鍵に対応する楽音信号を発生させる。
一方、ステップ114の判定結果が肯定的(Y)であったときは、特定鍵にキーオンイベントがあったことになり、ステップ118に移る。ステップ118では、フットスイッチ31がオン中か判定する。この判定結果が否定的(N)であれば、ステップ116に移り、特定鍵に対応する楽音信号を発生させる。また、ステップ118の判定結果が肯定的(Y)であったときは、ステップ120に移り、特定鍵を楽音制御用の制御鍵とする。
ステップ116又は120の処理が終ったとき、あるいはステップ112の判定結果が否定的(N)であったときは、ステップ122に移る。ステップ122では、ステップ110で取込んだセンサ出力データで基づいてキーオフイベントありか判定する。この判定結果が肯定的(Y)であれば、ステップ124で消音処理を行なう。すなわち、キーオフイベントのあった鍵に対応する楽音信号の減衰を開始させる。
ステップ124の処理が終ったとき又はステップ122の判定結果が否定的(N)であったときは、ステップ130に移る。ステップ130では、制御鍵の操作ありか判定する。この判定結果が否定的(N)であれば、ステップ132に移る。
ステップ132では、所定のfc制御データを生成する。そして、ステップ134で所定のQ制御データを生成してからステップ136で所定のG制御データを生成する。ステップ132,134,136の処理は、図8のステップ84,86,88のものとそれぞれ同様であるので、詳細な説明を省略する。ステップ136の後は、ステップ138に移る。
ステップ138では、ステップ132,134,136で生成した各制御データを音源ユニット26内のフィルタに出力する。この結果、キーオンイベントありとして発生中の楽音の音色が制御される。この後は、メインルーチンにリターンする。
ステップ130の判定結果が肯定的(Y)であったときは、制御鍵が操作されていることになり、ステップ140に移る。ステップ140では、Fx値に基づいてfc制御データを生成する。そして、ステップ142でFy値に基づいてQ制御データを生成してからステップ144でL値に基づいてG制御データを生成する。ステップ140,142,144の処理は、図8のステップ92,94,96のものとそれぞれ同様であるので、詳細な説明を省略する。ステップ144の後は、ステップ138に移る。
ステップ138では、ステップ140,142,144で生成した各制御データを音源ユニット26内のフィルタに出力する。この結果、制御鍵の鍵操作量(Fx,Fy,L)に応じて楽音の音色が制御される。この後は、メインルーチンにリターンする。
図10,11の処理によると、フットスイッチオン時に特定鍵を操作することで音色制御が可能となり、制御操作及び演奏操作が容易となる。
図12は、楽音制御の第5の例として音源ユニット26の回路構成を示すもので、この例は、請求項1の発明に対応する。図12の音源ユニット26は、サックス音色等の音源信号を発生可能な物理モデル音源からなるもので、図13のアンブシュアエンベロープ制御部及び図16の音色制御部と組合せて使用される。
図12の回路において、可変遅延回路150、LPF(ローパスフィルタ)152、減衰器154、乗算器156、加算器158、可変遅延回路160、LPF(ローパスフィルタ)162、減衰器164、乗算器166及び加算器168は、閉ループ状に接続されてデータ循環路を構成しており、このデータ循環路の総遅延時間が発生音の基本波周期に対応する。
データ循環路には、加算器158,168から励振波形データが導入される。すなわち、ゲート回路170がキーオン信号KONに応じて導通すると、息圧データPRSがゲート回路170、加算器172、174を介して非線形変換部176に供給される。また、ゲート回路178がキーオン信号KONに応じてゲート回路170と同時に導通すると、アンブシュアエンベロープデータENVがゲート回路178を介して非線形変換部176に供給される。非線形変換部176において、除算器180は、加算器174からの息圧データをゲート回路178からのエンベロープデータで除算し、その除算出力を非線形変換メモリ182に供給する。メモリ182の出力データは、乗算器184でゲート回路178からのエンベロープデータと乗算され、その乗算出力が励振波形データとして加算器158,168に供給される。乗算器184の出力データは、LPF186を介して乗算器188に供給され、音量制御データGCと乗算される。乗算器188の出力データは、加算器174を介して非線形変換部176に供給される。
データ循環路に導入された励振波形データは、データ循環路を循環する。乗算器156,166は、循環波形データに「−1」を乗算することで、管の一端及び他端における無損失の振動波反射を模擬するものである。循環波形データの音高は、遅延回路150,160の遅延量をピッチ制御データPCに応じて制御することにより制御される。また、循環波形データの音色は、LPF152,162のカットオフ周波数等を音色エンベロープデータTEVに応じて制御することにより制御される。
循環波形データは、データ循環路の適宜の複数個所から導出され、導出波形データは、加算器190で加算される。加算器190の出力データは、加算器172,174を介して非線形変換部176に供給される。また、循環波形データは、データ循環路の適宜の個所から導出され、ディジタル/アナログ(D/A)変換回路192でアナログ形式の楽音信号TSOに変換される。
キーオフ信号KOFが供給されると、ゲート回路170,178が非導通になると共に、減衰器154,164の減衰量が増大し、楽音信号TSOが減衰する。
なお、キーオン信号KON及びキーオフ信号KOFは、例えば図7のルーチンの発音処理74及び消音処理78でそれぞれ形成されるものである。図12の回路については、特開平5−165470号公報に詳述されているので、これ以上の説明は省略する。
図13は、アンブシュアエンベロープ制御部の一構成例を示すもので、この制御部からは、Fz値を表わす押鍵データからなる息圧データPRSと、Fx値を表わす押鍵データからなるピッチ制御データPCと、アンブシュアエンベロープデータENVとが発生され、図12の回路に供給される。
このような楽音制御を行なう場合のアンブシュアエンベロープの作成方法を図14に関して説明する。図14において、横軸は、キーオンからの経過時間KTを表わし、縦軸は、息圧データPRSの値(Fz値)又はアンブシュアエンベロープデータENVの値を表わす。
Fx値に応じてピッチを制御する場合、サックス音の自然な変化を得るためには、右方向の押鍵力の増大に対応してピッチが上昇するときはデータENVの値を破線ERで示すように中心値Eより上昇させ、左方向の押鍵力の増大に対応してピッチが下降するときはデータENVの値を破線ELで示すように中心値Eより下降させるのが好ましい。破線ERは、アンブシュア(マウスピースに加える力)の増大に対応し、破線ELは、アンブシュアの減少に対応する。
一方、Fz値を息圧データPRSとして用いる場合、実線Fz1,Fz2のように立上り(アタック)が速く、するどい音については、Fz値を息圧データPRSとするだけでは十分なアタック感が得られず、キーオン開始からわずかに後の所定時点taの前後で破線El,E2のようにデータENVの値を制御する必要がある。
すなわち、所定時点t
aより前では、データENVは、V
zを鍵の上下方向の押鍵速度とし、kを係数とすると、次の数9の式で表わされる。押鍵速度V
zは、(今回のF
z値−前回のF
z値)から求められ、0≦V
z≦1.0の範囲で正規化された速度値である。
一方、所定時点t
aより後では、データENVは、次の数10の式で表わされる。
図13のアンブシュアエンベロープ制御部は、数9,数10の式に従ってデータENVを発生するように構成されたものである。
乗算器200は、Fz値を表わす押鍵データと速度値Vzを表わす速度データとを乗算するもので、その乗算出力(Fz値をVzで重み付けした出力)は、乗算器202に供給される。
係数メモリ204は、図15に示すようにキーオンからの経過時間KTに従って変化する係数kを記憶したものである。係数kは、所定時点taより前では1.0に近い値をとり、taから減少して0に近い値をとる。メモリ204からは、時間KTを表わす時間データに従って係数データが読出される。係数kを表わす係数データは、乗算器202に供給され、乗算器200からの乗算出力と乗算される。そして、乗算器202からの乗算出力(Fz値をkで重み付けした出力)は、加算器206に供給される。
乗算器208は、Fx値を表わす押鍵データと加算器210からの加算出力とを乗算するものである。加算器210からの加算出力としては、1.0から速度値Vzを差引いた値を表わすデータが送出され、Fx値は、加算器210からの加算出力に応じて重み付けされる。従って、速度値Vzが大きいときは、Fz値がより多くデータENVに反映され、Vzが小さいときは、Fx値がより多くデータENVに反映される。これは、Vzが大きいときは、左右方向の押鍵力Fxの調整が困難であり、Vzが小さいときは、Fxの調整が容易であることを考慮したものである。
乗算器212は、乗算器208からの乗算出力と加算器214からの加算出力とを乗算するものである。加算器214からの加算出力としては、1.0から係数kを差引いた値を表わすデータが送出され、Fx値は、加算器214からの加算出力に応じて重み付けされる。従って、図15に示すように、所定時点taより前で係数kの値が大きいときは、Fz値がより多くデータENVに反映され、taより後でkが小さいときは、Fx値がより多くデータENVに反映される。これは、taより前では数9の式に従い、taより後では数10の式に従うようにしたものである。
乗算器212からの乗算出力は、加算器206に供給され、乗算器202からの乗算出力と加算される。加算器206からの加算出力及びメモリ204からの係数データは、LPF216に供給される。
LPF216では、乗算器218が、加算器206からの加算出力とメモリ204からの係数データとを乗算する。メモリ204からの係数データは、加算器220に供給される。加算器220からは、1.0から係数データの示すkを差引いた値を表わす加算出力が送出され、乗算器224に供給される。
加算器222は、乗算器218からの乗算出力と乗算器224からの乗算出力とを加算するもので、その加算出力は、加算器228でオフセットデータOFSと加算される一方、遅延回路226を介して乗算器224に供給される。加算器228からの加算出力が、データENVとして図12の回路に供給される。
加算器206からの加算出力は、乗算器218において、メモリ204からの係数kに応じて重み付けされる。また、遅延回路226の出力は、乗算器224において、加算器220からの加算出力(1.0−k)に応じて重み付けされる。この結果、図14に示すように、所定時点taより前ではE1,E2のような変化を示すデータENVが得られ、taより後ではE0のような変化を示すデータENVが得られる。
図16は、音色制御部の一構成例を示すものである。乗算器230は、Fz値を表わす押鍵データとVz値を表わす速度データとを乗算するもので、その乗算出力は、加算器232に供給される。乗算器234は、Fy値を表わす押鍵データと加算器236からの加算出力とを乗算するもので、その乗算出力は、加算器232に供給される。加算器232からの加算出力は、音色エンベロープデータTEVとして図12の回路に供給され、LPF152,162のカットオフ周波数を制御するために使用される。
加算器236は、1.0から速度データの示すVz値を減算し、その差に相当する加算出力を乗算器234に供給する。Fz値を表わす押鍵データは、乗算器230において、Vz値に応じて、重み付けされる。また、Fy値を表わす押鍵データは、乗算器234において、加算器236からの加算出力(1.0−Vz)に応じて重み付けされる。従って、Vz値が大きいときは、Fz値がより多くデータTEVに反映され、Vz値が小さいときは、Fy値がより多くデータTEVに反映される。これは、Vz値が大きいときは、前後方向の押鍵力Fyの調整が困難であり、Vz値が小さいときはFyの調整が容易であることを考慮したものである。
サックス音は、音量が小さいときは丸い音色であり、音量が大きくなるに従って明るく、きつい音色に変化する。また、同じ音色でも、アタックが速いほど明るい(派手な)感じになる。これらの点を模擬して自然なサックス音が得られるようにするため、図16の回路では、Fz値及びVz値の積を音色制御情報とし、この音色制御情報に応じて例えばLPFのカットオフ周波数を高くすべく制御する。また、図16の回路では、前後方向の押鍵力Fyによっても音色変化が得られるようにしており、この結果、一層多様な演奏表現が可能となる。
この発明は、上記した実施形態に限定されるものではなく、種々の改変形態で実施可能なものである。例えば、次のような変更が可能である。
(1)鍵盤の構造は、通常の鍵回動式のものであってもよく、回動する鍵に関して上下方向、左右方向、前後方向等の押鍵力を検出する構成にすればよい。
(2)制御する楽音特性は、音量、ピッチ、音色等何でもよい。また、これらの楽音特性は、鍵の上下方向、左右方向、前後方向等のいずれの方向の操作量に応じて制御してもよい。
10:バス、12:鍵盤、14,24:インターフェース、16:CPU(中央処理装置)、18:プログラムメモリ、20:ワーキングメモリ、22:タイマ、26:音源ユニット、28:アンプ、30:スピーカ、31:フットスイッチ、32:支持体、34:可撓性部材、36:鍵部材、38A〜38D:歪センサ。