JPH05241577A - 電子楽器 - Google Patents
電子楽器Info
- Publication number
- JPH05241577A JPH05241577A JP4041760A JP4176092A JPH05241577A JP H05241577 A JPH05241577 A JP H05241577A JP 4041760 A JP4041760 A JP 4041760A JP 4176092 A JP4176092 A JP 4176092A JP H05241577 A JPH05241577 A JP H05241577A
- Authority
- JP
- Japan
- Prior art keywords
- signal
- envelope
- value
- state
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H1/00—Details of electrophonic musical instruments
- G10H1/02—Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos
- G10H1/04—Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos by additional modulation
- G10H1/053—Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos by additional modulation during execution only
- G10H1/057—Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos by additional modulation during execution only by envelope-forming circuits
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Electrophonic Musical Instruments (AREA)
Abstract
の楽音波形を自然楽器と同様に制御することができ、幅
広い残響効果を得ることができる電子楽器を提供するこ
とを目的とする。 【構成】 信号SUSFLGが「1」の場合には、ディ
ケイ状態で離鍵処理が検出された場合に、信号SUSL
VLの値を制御することにより、キーオフ信号KOFF
が「1」になるタイミングが遅延するとともに、第2の
エンベロープが発生する。また、信号SUSFLGが
「1」かつ信号MASKが「1」であれば、アタック状
態で離鍵処理が検出された場合に、キーオフ信号KOF
Fが「1」になるタイミングが遅延する。これらの処理
の振り分けは制御手段により遂行される。
Description
減衰波形を自然楽器と同様に制御することができる電子
楽器に関する。
は、発生楽音をアタック、ディケイ、サスティンおよび
リリースの4つの区間に分け、各区間毎に異なる特性の
エンベロープ制御を行っている。したがって、従来の電
子楽器においては離鍵処理が検出されてキーオフ処理に
移行すると、キーオフ処理が検出された時点のエンベロ
ープレベルからそのままリリース区間について設定され
ている消音用のエンベロープ特性に基づいて、楽音合成
装置により楽音の減衰処理が制御されていた。なお、楽
音合成装置におけるエンベロープ波形生成に係る詳細な
処理は、中央制御処理装置の処理とは独立したものであ
った。
あるアコースティックピアノには、ダンパペダルやサス
ティンペダルが設けられており、これらのペダルを踏む
と弦を押さえるダンパが開放されて楽音が長く響くとい
う効果が得られる。また、離鍵後においてこれらのペダ
ルが踏まれても、ダンパ開放による残響効果が得られる
ため、このような演奏技術が多く用いられている。一
方、従来の電子楽器においては、離鍵処理が検出される
と、予め定められた比較的大きなレートでエンベロープ
を減衰制御し、その後にダンパペダル等が操作されて
も、これに係わりなくエンベロープの減衰を行ってい
た。このため、上述したような自然楽器の残響効果が得
られず、音楽的表現力に乏しいという欠点があった。こ
の発明は、上述した事情に鑑みてなされたもので、発生
楽音を減衰させる際の楽音波形を自然楽器と同様に制御
することができ、幅広い残響効果を得ることができる電
子楽器を提供することを目的とする。
解決するために、楽音の発音指示および消音指示に基づ
き楽音波形信号にエンベロープを付与して楽音信号を形
成する電子楽器において、第1のエンベロープおよび減
衰特性を有する第2のエンベロープを発生するエンベロ
ープ発生手段と、発生楽音の継続を指示する継続指示手
段と、楽音の発生指示に応じて前記エンベロープ発生手
段から第1のエンベロープを発生させ楽音の消音指示に
応じて前記エンベロープ発生手段から第2のエンベロー
プを発生させるとともに、消音指示後に前記継続指示手
段で発生楽音の継続が指示された場合に前記エンベロー
プ発生手段から第1のエンベロープを発生させる制御手
段とを具備することを特徴とする。
が第2のエンベロープを発生する動作を行っている場合
に、前記継続指示手段によって発生楽音の継続が指示さ
れると、前記制御手段は前記エンベロープ発生手段から
第1のエンベロープを発生させる。すなわち、減衰用の
エンベロープ供給が遅延され、発生楽音を長く響かせる
ようにエンベロープ制御がなされる。
いて説明する。 A:実施例の構成 §1.本実施例における電子楽器の全体構成 図1は本発明の実施例による電子楽器の構成を示す図で
ある。この図において、1は鍵盤である。この鍵盤1
は、各キー毎に押離鍵および押離鍵の速度を検出する機
構を有している。1aは鍵盤インタフェースであり、鍵
盤1の各キーをスキャンして各種楽音情報を発生し、C
PU2に出力する。各種楽音情報とは、音名(すなわち
音高)を表すキーコードKC、押鍵タイミングを表すキ
ーオンパルスKONPおよび押鍵状態を表すキーオン信
号KON、キーベロシティKV等のデータである。ここ
で、キーオンパルスKONPは、鍵盤1において押離鍵
処理があった瞬間に1クロックの間「1」となった後、
以降「0」となる信号であり、キーコードKCは押鍵処
理に対応した音高を表す情報である。また、キーオン信
号KONは押鍵状態の場合「1」となり、離鍵状態の場
合「0」になる信号である。キーベロシティKVは、押
離鍵の速度に対応しており、この信号値が大きな値であ
れば強い音、一方、小さな値であれば弱い音を示す。
る各種制御プログラムや、これらプログラムで用いられ
る各種データ等を記憶している。4はRAMであり、C
PU2の演算に用いられる各種データや、演算結果を一
時記憶する。5はこの電子楽器に配設されるペダルであ
り、実際のピアノにおけるダンパペダル(サスティンペ
ダルおよびソステヌートペダル)と同様に作用するもの
である。これにより、操作量を表す信号や操作速度を表
す信号が発生される。5aはペダルインタフェースであ
り、ペダル5から供給される各種信号をもとに、ペダル
操作信号およびペダル操作速度信号等の楽音情報を発生
しCPU2に出力する。
されるスイッチ群であり、音色や効果音等の設定を行う
ためのものである。例えば、後述するエンベロープの信
号LEVELや信号RATEは、スイッチ群SWの音色
設定や効果音設定によって種々の値をとる。SWaはス
イッチインタフェースであり、スイッチ群SWから供給
される各種信号をCPU2に出力する。6は楽音合成回
路である。この楽音合成回路6には、CPU2からキー
オンパルスKONP、キーベロシティKV、キーオン信
号KONおよびキーコードKC等の各種楽音情報が供給
される。そして、楽音合成回路6は、これらの楽音情報
に応じて楽音合成を行い、これにより形成される楽音信
号Wを出力する。また、後述する信号STATEをCP
U2に常に供給している。この楽音合成回路6の構成に
ついては後述する。7はサウンドシステムであり、楽音
信号Wに対してフィルタリング処理およびデジタル/ア
ナログ変換等を施し、これにより得られるアナログ信号
を増幅してスピーカSPに与える。スピーカSPは、サ
ウンドシステム7の出力信号を楽音として発音する。
明する。楽音制御回路6は、インタフェースIFを有し
ており、CPU2から供給される各種楽音情報)は、こ
のインタフェースIFを介した後に同図に示す回路各部
に供給される。また、同図に示す回路各部から出力され
る所定の情報がインタフェースIFを介してCPU2に
供給される。そして、これらの各種楽音情報に基づい
て、楽音信号Wおよびエンベロープ信号ENV等を発生
する。以下、回路各部について説明する。
るための波形データが記憶されている。その波形データ
の記憶内容を、図3(a)〜同図(d)に示す。同図
(a)は、波形記憶回路10の全体の構成を示すメモリ
マップである。同図(a)に示すように、ATTACK
部テーブル、LOOP部テーブルおよび波形記憶部から
波形記憶回路10は構成されている。同図(d)に示す
波形記憶部に記憶されている波形データは、アタック部
波形(楽音の立ち上がり部分に対応する波形)とループ
部波形(楽音が立ち上がった後の定常的な部分に対応す
る波形)に分かれている。
ず、アタック部波形が一回読み出され、次いで、ループ
部波形が繰り返し読み出されるようになっている。これ
らアタック部波形とループ部波形は、楽音の音高および
押鍵速度に対応して複数記憶されている。すなわち、同
図(d)に示すように、アタック部波形がWA(0,
0)からWA(M,N)まで記憶され、また、これらの
アタック部波形に対応するループ部波形がWL(0,
0)からWL(M,L)まで記憶されている。なお、以
下においては、アタック部波形を記憶する記憶領域をア
タック部、ループ部波形を記憶する記憶領域をループ部
という。
対応関係は、図4に示す通りである。すなわち、音高が
高くなるに従ってWA(0,0)、WA(1,0)……
WA(M,0)というようにX座標が増大し、また、押
鍵速度が速くなるに従ってWA(0,0)、WA(0,
1)……WA(0,L)というようにY座標が増大す
る。ループ波形WL(X,Y)と音高、押鍵速度との関
係も上記と全く同様に設定されている。次に、図3
(a)に示すATTACK部テーブルには、上述したア
タック部波形W(X,Y)のアドレス情報が記憶されて
おり、その詳細は同図(b)に示す通りである。すなわ
ち、第1アドレスにKVレンジ、第2アドレスにKCレ
ンジの各データが記憶され、第3アドレス以降は2つの
アドレスがペアになってアタック部波形のスタートアド
レスとエンドアドレスが各々記憶されている。ここで、
KVレンジとは、キーベロシティKVの取り得る値のダ
イナミックレンジであり、KCレンジとは、キーコード
KCの取り得る値のダイナミックレンジである。また、
LOOP部テーブルも同図(c)に示すように、上記A
TTACK部テーブルと同様の記憶内容になっている。
0から読み出す波形データのスタートアドレスおよびエ
ンドアドレスを設定する回路である。すなわち、アドレ
ス設定回路8は、キーオンパルスKONPが供給される
と、キーコードKCおよびキーベロシティKVに対応す
るアタック部波形のスタートアドレスおよびエンドアド
レスを波形記憶回路10から読み出し、これらを信号S
TART.ADおよびEND.ADとしてアドレス生成
回路9に供給する。また、アタック部波形の読み出し処
理の際は、読出モード信号MODEの値を「0」にして
アドレス生成回路9に供給する。読出モード信号MOD
Eは、アタック部またはループ部のいずれを読み出すか
を示す信号であり、値「0」がアタック部の読み出し、
値「1」がループ部の読み出しを指示する。
と、アドレス生成回路9からループ波形要求信号LOO
P.REQがアドレス設定回路8へ供給される。ループ
波形要求信号LOOP.REQが供給されると、アドレ
ス設定回路8は、キーコードKCおよびキーベロシティ
KVに対応するループ波形のスタートアドレスおよびエ
ンドアドレスを波形記憶回路10から読み出し、これら
を信号START.ADおよびEND.ADとしてアド
レス生成回路9に供給する。また、読出モード信号MO
DEの値を「1」にする。
与えられると、キーコードKCに応じた位相情報を発生
する。この位相情報は、楽音のピッチすなわち、波形記
憶回路10に記憶されている波形データの相対的な読み
出しアドレスを与えるものであり、キーコードKCに応
じた位相情報を順次加算(累算)する。そして、この累
算値の整数部を相対読出アドレス整数部Iとして出力
し、この累算値の小数部を相対読出アドレス小数部Fと
して出力する。なお、この累算値は、後述するアドレス
生成回路9から出力される。リセット要求信号RESE
T.REQによりリセットされる。また、補正値FIN
E.Pは、相対的な読み出しアドレスを補正するための
補正値である。
レスを生成する回路である。この波形記憶回路10の読
み出しアドレスは、アドレス設定回路8から供給される
信号START.ADと位相発生回路11から供給され
る相対読出アドレス整数部Iとを加算して生成される。
アタック部波形を読み出す場合には、信号START.
AD(アタック部開始アドレスが設定されている)に相
対読出アドレス整数部Iを加算し、これにより得られる
読出アドレスADを波形記憶回路10に供給する。そし
て、読出アドレスADが信号END.AD(アタック部
終了アドレスが設定されている)と等しくなると、リセ
ット要求信号RESET.REQを出力するとともに、
ループ波形要求信号LOOP.REQを出力する。
び信号LOOP.REQが出力されると、アタック部開
始/終了アドレスが設定されている各々の信号STAR
T.ADおよびEND.ADには、それぞれ、新たにル
ープ部開始/終了アドレスが設定される。したがって、
ループ部波形を読み出す場合には、信号START.A
D(ループ部開始アドレスが設定されている)に相対読
出アドレス整数部Iを順次加算し、これにより得られる
読出アドレスADを波形記憶回路10に供給する。そし
て、読出アドレスADが信号END.AD(ループ部終
了アドレスが設定されている)と等しくなると、リセッ
ト要求信号RESET.REQを出力するとともに、再
び、ループ部スタートアドレスに戻ってアドレスADの
生成を開始する。
て、キーオフ信号KOFFが「1」になるまで(図6参
照)、ループ部のアドレス生成を継続する。波形信号W
1(波形記憶回路10の出力信号)は、上述のように求
められた波形記憶回路10の読出アドレスAD(アドレ
ス生成回路9によって生成される)から読み出され出力
される。
相対読出アドレス小数部Fに基づき、波形信号W1に対
して補間演算を行い、この結果得られる波形信号W2を
出力する。ここで行われる補間演算は隣接するサンプル
間、すなわち、2つの波形情報を小数部Fによって一次
直線補間してもよいし、2以上の波形情報を記憶して高
次の補間を行ってもよい。
算回路14、エンベロープ検出回路ENVD 次に、13はエンベロープ生成回路であり、インタフェ
ースIFから供給されるキーオンパルスKONP、キー
オン信号KON、キーコードKCおよびキーベロシティ
KVに応じてエンベロープ信号ENVを生成する。ま
た、信号STATE(後述する)を出力する。14は乗
算回路であり、補間回路12から出力される波形信号W
2と、エンベロープ生成回路13から出力されるエンベ
ロープ信号ENVとを乗算し、この乗算結果を楽音信号
Wとして出力する。この楽音信号Wは、エンベロープ検
出回路ENVDに与えられる。
号Wに対してフィルタリング処理を施すことによって、
各楽音発音時点での最大振幅レベルを表すエンベロープ
信号を抽出する。このように抽出された信号は、インタ
フェースIFを介してエンベロープ信号ENV1として
CPU2に出力される。このエンベロープ信号ENV1
はトランケート処理等の発音チャンネル割当制御に用い
られる。なお、トランケート処理とは、すべての発音チ
ャンネルが使用状態にある場合において新たな押鍵操作
を検出すると、それぞれの発音チャンネルのエンベロー
プ信号ENV1が最も小さい発音チャンネル、すなわ
ち、もっとも減衰が進んでいるチャンネルを選択してそ
のチャンネルを強制的に消音し、そのチャンネルに上述
した新たな押鍵操作による新たな押鍵音を割り当てる処
理のことを言う。
る。始めに、図7および図8を参照してエンベロープ生
成回路13が生成するエンベロープ波形について説明す
る。エンベロープ信号は図7に示すように時間軸上のパ
ラメータであり、その軌跡は、信号LEVEL、信号R
ATE、キーオン信号KONおよびキーオフ信号KOF
F等の各種信号によって制御される。
を表し、図6に示すように、T0(最下位ビット)、T
1(中位ビット)およびT2(最上位ビット)の3ビッ
トで構成されるパラレルデータである。そして、押鍵操
作が検出されて、キーオンパルスKONPが「1」にな
ると、信号STATEは「0」になり、エンベロープ状
態がアタック状態になったことを表す。その後、信号S
TATEは、CPU2からバスを介して供給される各種
楽音情報に応じて時間軸上で「1」〜「5」のいずれか
の信号値をとる。信号STATEの値が表す状態は、
「1」はディケイ1状態、「2」はディケイ2状態、
「3」はサスティン状態、「4」はリリース1状態およ
び「5」はリリース2状態である。また、リリース1状
態およびリリース2状態とは、リリース状態をさらに2
つに細分した状態であり、ディケイ1状態およびディケ
イ2状態についても同様である。なお、以下の説明にお
いては、リリース1状態およびリリース2状態を総括し
て「リリース状態」という。
TEが示す各エンベロープ状態に対応したエンベロープ
目標値および押鍵処理検出時におけるエンベロープ波形
開始信号値を表す。具体的には、エンベロープ目標値と
しては、信号STATEが「1」に対し、信号LEVE
Lは「L1」、信号STATEが「2」に対し、信号L
EVELは「L2」、信号STATEが「4」に対し、
信号LEVELは「L4」になっている。また、押鍵処
理検出時において、キーオンパルスKONPが「0」か
ら「1」に変化したときにエンベロープ開始信号値とし
て設定される信号LEVELは「L0」である(図7参
照)。
たは「5」の値になる場合には、エンベロープ目標値は
信号LEVELにより与えられるのではなく内部的な論
理形成によって設定される。すなわち、信号STATE
が「0」に対しては、エンベロープ目標値は「0000
(h)」、信号STATEが「3」および信号STAT
Eが「5」に対してはエンベロープ目標値は「1FFF
(h)」が与えられる。
Eが示すエンベロープ状態におけるエンベロープ信号値
の単位時間当たりのエンベロープ信号値変化量(傾き)
を表す。例えば、「押鍵処理をした後、エンベロープ状
態がサスティン状態に至り、離鍵処理を行った場合」に
は、アタック状態においては信号RATEは「R0」に
なり、ディケイ1状態においては信号RATEは「R
1」になり、ディケイ2状態においては信号RATEは
「R2」になり、サスティン状態においては信号RAT
Eは「R3」になり、リリース1状態においては信号R
ATEは「R4」になり、そしてリリース2状態におい
ては信号RATEは「R5」になる(図7参照)。ここ
で、「R0」はアタックレート、「R1」はディケイ1
レート、「R2」はディケイ2レート、「R3」はサス
ティンレート、「R4」はリリース1レートおよび「R
5」はリリース2レートという。また、リリース1レー
トおよびリリース2レートとは、リリースレートをさら
に2つに細分した減衰レートであり、ディケイ1レート
およびディケイ2レートについても同様である。なお、
以下の説明においては、リリース1レートおよびリリー
ス2状態を総括して「リリースレート」という。
は一意的に対応するものであるが、信号STATEと、
信号RATEは一意的に対応するものではない。図7に
示したエンベロープ波形は、「押鍵処理をした後、エン
ベロープ状態(信号STATE)がサスティン状態に至
り、離鍵処理を行った場合」である。したがって、「ア
タック状態もしくはディケイ状態において離鍵処理を行
った場合」には、信号STATEに関わらず、その時点
に応じた信号RATEの値が設定される。そのため、以
下の説明において、リリース状態とは、リリースレート
で減衰する状態のことをいい、信号STATEとは直接
関係ないことに留意されたい。また、図8の「EQ及び
GT」の欄が空欄になっているが、信号STATEと信
号LEVELの値の変化について、「EQ及びGT」の
信号値の変化を参照することが回路検証に有効であるこ
とを示すものにほかならない。このことは勿論、「EQ
及びGT」の信号値を参照すればよいということのみを
示唆するものでもない。
エンベロープ信号生成回路ESGおよび図6に示すエン
ベロープ制御信号生成回路ECSG等から成る。このエ
ンベロープ生成回路13においては、キーベロシティK
Vに応じてエンベロープ信号ENVのダイナミックレン
ジが設定され、また、キーコードKCに応じて信号LE
VELおよび信号RATEが取り得る各値が設定され
る。また、キーオンパルスKONP、キーオン信号KO
Nおよびキーオフ信号KOFFはエンベロープ波形の立
ち上がり/立ち下がりのタイミング制御に用いられる
(図7中記載、KONおよびKOFF参照)。ただし、
キーオフ信号KOFFの信号値は、キーオン信号KON
等に基づいて図6に示すエンベロープ制御信号生成回路
ECSG内部の論理形成により定められる。
回路ECSG(図6参照)の構成概略 エンベロープ制御信号生成回路ECSGは、インタフェ
ースIF(図2参照)から供給されるキーコードKC等
の信号に応じて、エンベロープ信号生成回路ESGを制
御するためのエンベロープ制御信号を生成する。ここで
生成されるエンベロープ制御信号には制御信号CSA,
CSBおよびCSCならびに制御信号LSAおよびLS
C等がある。なお、制御信号CSA、CSBおよびCS
Cはセレクタ15(図5参照)においてエンベロープ目
標値S3を選択するための制御信号である。制御信号L
SCは図示されていないインタフェースから供給される
制御信号LSAとともに、シフトレジスタ19に出力す
るエンベロープ信号ENV3の値を設定する信号であ
る。なお、詳細な構成については後述する。
ESG(図5参照)の構成 まず、15はセレクタである。セレクタ15は、信号S
TATEにより表される各エンベロープ状態におけるエ
ンベロープ目標値S3の値を設定する(図7および図8
の信号LEVEL参照)。その場合に、SA制御端に供
給される制御信号CSAが「1」の時、A入力端の入力
値「1FFF(h)」をエンベロープ目標値S3に設定
する(回路動作により信号STATEはサスティン状態
または押鍵待機状態を表す値となる)。また、SB制御
端に供給される制御信号CSBが「1」の時、B入力端
の入力値「0000(h)」をエンベロープ目標値S3
に設定する(回路動作により信号STATEはアタック
状態である)。また、SC制御端に供給される制御信号
CSCが「1」の時、C入力端の入力値である信号LE
VELに設定されている値(L0〜L2もしくはL4)
をエンベロープ目標値S3に設定する(回路動作により
信号STATEはディケイ状態もしくはリリース1状態
を表す値となる)。
GTを出力し、エンベロープ制御信号生成回路ECSG
(図6参照)に対して制御信号EQおよび制御信号GT
を出力するコンパレータである。このコンパレータ16
は、E入力端に供給されるエンベロープ現在値ENV2
とT入力端に供給されるエンベロープ目標値S3とを比
較する。この比較結果によって、以下に示すように信号
GTおよび信号EQに値が設定されて出力される。 ア.S3<ENV2の場合 GT=1,EQ=0 イ.S3=ENV2の場合 GT=0,EQ=1 ウ.S3>ENV2の場合 GT=0,EQ=0
信号ENVの値を決定するための元になる値を計算し、
エンベロープ原信号S4としてセレクタ18に出力す
る。この場合、OP制御端に供給される信号GTの値に
応じて、以下のようにエンベロープ原信号S4が設定さ
れる。 エ.GT=1の場合 S4=ENV2−RATE オ.GT=0の場合 S4=ENV2+RATE なお、エ.の場合はアタック状態、オ.の場合はそれ以
外のエンベロープ状態に相当するようになっている。し
たがって、ア.の場合は、アタック状態に相当し、イ.
およびウ.の場合はそれ以外のエンベロープ状態に相当
することが導かれる。
び発音状態でのエンベロープ信号ENVの値を決定する
信号を選択して、エンベロープ信号ENV3としてシフ
トレジスタ19に出力する。この場合、SA,SBおよ
びSC制御端に供給される値に従って、以下のようにエ
ンベロープ信号ENV3が設定される。 カ.SA=1,SB=0,SC=0の場合(発音待機状
態) ENV3=1FFF(h)(A入力端に供給される値) キ.SA=0,SB=1,SC=0の場合(発音状態) ENV3=S4 ク.SA=0,SB=0,SC=1の場合(押鍵処理検
出時) ENV3=LEVEL(=L0)
号ENV3の値はシフトレジスタ19に格納された後、
コンパレータ16および加算器17に帰還される。な
お、上述の、カ.の場合は、制御信号LSAが「1」の
場合であり、キ.の場合は、制御信号LSAおよびLS
Cがいずれも「0」の場合であり、ク.の場合は、制御
信号LSCが「1」の場合である。なお、ノアゲート5
01は2入力ノアゲートであり、その入力信号は、制御
信号LSAおよびキーオンパルスKONPによって形成
される制御信号LSCとである。
プ信号ENV3が供給されるとこの値を1クロック保持
した後、エンベロープ現在値ENV2として、コンパレ
ータ16に帰還させる。また、乗算器502は、エンベ
ロープ現在値ENV2とエンベロープ信号出力レベル制
御値S5(キーベロシティKVに応じてテーブル20か
ら出力される)を乗算し、エンベロープ信号ENVとし
て出力する。そして、このエンベロープ信号ENVは、
エンベロープ生成回路13の出力値になり、乗算回路1
4(図2参照)に供給される。
ける各種制御信号について(図5、図6参照) §3−3−1.信号MASK(図6,図9および図10
参照) 信号MASKは、「アタック状態」に有効な信号であ
る。この信号は、離鍵処理が検出された場合にキーオフ
信号KOFFをアタック状態終了経過時点から「1」に
するか否かを決定するものである。具体的には、信号M
ASKを「1」に設定しておくと、アタック状態におい
て離鍵処理が検出されても、キーオフ信号KOFFを
「0」に保ち、「アタック状態終了経過時点」からキー
オフ信号KOFFを「1」にする。すなわち、信号MA
SKの値により、実際の離鍵処理とキーオフ信号KOF
Fの立ち上がりとのタイミングがずらされている。
図9および図10参照) 信号SUSFLGは、エンベロープ状態が「アタック状
態」および「ディケイ状態」、すなわち信号STATE
が「0」、「1」または「2」の場合に有効な信号であ
る。この信号の機能は次の通りである。アタック状態に
おいては、信号MASKが「0」に設定されている場合
に、離鍵処理検出後リリースレートでの減衰を、離鍵処
理検出時点から有効なものにするか否かを決定する。具
体的には、信号SUSFLGを「0」に設定しておく
と、アタック状態おいて、離鍵処理が検出されると、エ
ンベロープ波形は、「その時点のエンベロープレベルか
ら直ちにリリースレートで減衰」する(図9(a)参
照)。なお、信号MASKが「1」であれば、図9
(a)に示すエンベロープ波形になる。
または離鍵状態の検出後のリリースレートでの減衰を、
離鍵処理または離鍵状態の検出時点から有効なものにす
るか否かを決定する。具体的には、信号SUSFLGを
「0」に設定しておくと、ディケイ状態において、離鍵
処理または離鍵状態が検出されると、エンベロープ波形
は、「その時点のエンベロープレベルから直ちにリリー
スレートで減衰」する(図9(b)および図9(c)
参照)。
状態」、すなわち信号STATEが「2」の場合に有効
な信号である。この信号の機能は、オアゲート626の
出力信号をディケイ2状態で「1」にするか否かを決定
するものである。具体的には、信号SUSLVLが
「0」の場合にはディケイ2状態においてオアゲート6
26の出力信号が「1」になり、信号SUSLVLが
「1」の場合にはオアゲート626の出力信号が「0」
になる。信号SUSLVLは、信号SUSFLGが
「1」の場合にディケイ2状態において離鍵処理の検出
がなされると有効になる。この場合、「その時点のエン
ベロープレベルから直ちにリリースレートで減衰せず、
ディケイ2状態終了経過時点からリリースレートで減衰
する(図9(c)参照)。
されており、この信号値が「1」になった場合には、セ
レクタ631において強制的にリリースレートが選択さ
れる。このリリースレートの選択については、その時点
のエンベロープ信号ENVが参照され、そのエンベロー
プ信号ENVが「L4」よりも小さければ、リリース1
レートが選択され、「L4」以上であれば、リリース2
レートが選択される(図7参照)。なお、キーコードK
C、キーオンパルスKONP、信号EQ、キーオン信号
KON、信号GT、信号LEVEL、信号RATE等に
ついては、既に述べた通りである。
ECSG構成(図6参照) 次に、図6に示すエンベロープ制御信号生成回路ECS
G各部の回路構成の詳細について説明する。まず、60
1は半加算器であり、制御端子CIが「1」になると、
A0入力端,A1入力端およびA2入力端の3ビットで
構成されるデータの最下位ビットA0入力端に「001
(b)」を加算し、3ビットで構成されるS0出力端
(最下位ビット),S1出力端(中位ビット)およびS
2出力端(最上位ビット)からその加算結果を出力す
る。なお、これらの3ビットで構成される信号の総称を
信号STとする。また、加算処理によって生じる最上位
ビットS2の桁あふれは捨てられる。インバータ602
はアンドゲート628の出力信号の反転値をアンドゲー
ト603およびアンドゲート604に出力する。
およびオアゲート605はシフトレジスタ606に供給
される値を制御するための論理素子群である。アンドゲ
ート603およびアンドゲート604は、それぞれ、半
加算器601のS0出力端の値およびS1出力端の値
と、アンドゲート628の出力信号をインバータ602
を介した値との論理積を、それぞれ、シフトレジスタ6
06のD0入力端およびD1入力端に出力する。オアゲ
ート605は、アンドゲート628の出力値とS2出力
端の値との論理和をシフトレジスタ606のD2入力端
に出力する。
下位ビット),D1入力端(中位ビット)およびD2入
力端(最上位ビット)に信号STを1クロック保持した
後、3ビットで構成されるQ0出力端(最下位ビッ
ト),Q1出力端(中位ビット)およびQ2出力端(最
上位ビット)からその値を出力する。また、テーブル6
30は、インタフェースIF(図2参照)から供給され
るキーコードKCに応じて参照されることによりセレク
タ631に出力する各信号値を決定する。そして、セレ
クタ631は、信号RR_SELならびに信号STの値
に基づいて、信号LEVELおよび信号RATEに設定
する値(テーブル630により供給されている)を選択
する。この場合において信号RATEには、信号RR_
SELが「1」の場合は、信号STの値に係わりなく、
信号RATEに設定される値はリリースレート(R4ま
たはR5)が選択される。
NPの反転値をアンドゲート608、アンドゲート60
9およびアンドゲート610に出力する。アンドゲート
608、アンドゲート609およびアンドゲート610
はそれぞれ、シフトレジスタ606のQ0出力端、Q1
出力端およびQ2出力端の出力値とインバータ607の
出力値との論理積をとって、それぞれ信号T0(最下位
ビット)、T1(中位ビット)およびT2(最上位ビッ
ト)として出力する。これら3ビットで構成される信号
によりエンベロープ状態を表す信号STATEが構成さ
れる。
8、アンドゲート609およびアンドゲート610の負
論理和を制御信号CSBとして出力する。アンドゲート
612は、ノアゲート611の出力値と、信号MASK
との論理積を出力する。ノアゲート613はアンドゲー
ト612の出力値とキーオン信号KONとの負論理和を
キーオフ信号KOFFとして出力する。これは、アタッ
ク状態において離鍵処理が検出されても、信号MASK
が「1」に設定されている場合にはキーオフ信号KOF
Fを「0」にするためである。アンドゲート614は、
キーオフ信号KOFFと信号GTとの論理積を出力す
る。
6、オアゲート617およびアンドゲート618から構
成される論理回路群は、信号STATEが「3」または
「5」になった場合に、半加算器601に供給する制御
信号CIを「0」にするための論理回路である。これ
は、サスティン状態において、押鍵状態が長い時間にわ
たる場合に、信号EQが「1」になっても、アンドゲー
ト618の出力値を「0」にするためである。また、信
号STATEが「5」、すなわち、発音待機状態あるい
はリリース2状態にある場合においては、次の発音処理
が検出されるまでエンベロープ状態が遷移しないように
するためである。なお、この動作の詳細については後述
する。
およびオアゲート621から構成される論理回路は信号
STATEが「3」または「5」になった時に制御信号
CSAを「1」にする。これにより、サスティン状態お
よびリリース2状態においては、エンベロープ目標値S
3(図5参照)が「1FFF(h)」に設定される。ノ
アゲート630は制御信号CSAと制御信号CSBとの
負論理和を制御信号CSCに設定して出力する。
転値をアンドゲート624に出力する。インバータ62
3は信号SUSFLGの反転値をアンドゲート629に
出力する。アンドゲート624は、信号STATEが
「2」または「3」であって信号SUSLVLが「0」
の場合にその出力値が「1」となる。アンドゲート62
5は、信号STATEが「3」であって信号SUSLV
Lが「1」の場合にその出力値が「1」となる。オアゲ
ート626は、アンドゲート624とアンドゲート62
5の論理和をとって出力する。
の出力値、オアゲート626の出力値およびキーオフ信
号KOFFの論理積をとって出力する。アンドゲート6
28が「1」となる場合には、シフトレジスタ606に
「100(b)」が供給されるため、アンドゲート62
8の機能はエンベロープ状態を強制的にリリース状態に
設定することである。アンドゲート629は、インバー
タ627の出力値、キーオフ信号KOFFおよびインバ
ータ623の出力値の論理積を、信号RR_SELとし
て出力する。
〜図18に示すフローチャートに基づいて説明する。
ず、図11のメインルーチンのステップSa1の処理へ
進み、装置各部のイニシャライズ(各種レジスタのゼロ
リセットおよび周辺回路の初期設定等)を行う。エンベ
ロープ信号生成回路13のエンベロープ信号生成回路E
SG(図5参照)においては、制御信号LSA(図5参
照)を「1」にし、エンベロープ生成回路各部に「1F
FF(h)」を書き込む。そして、CPU2はステップ
Sa2へ進む。
1aにより検出される鍵盤1の各キー毎の押離鍵状態変
化を検出し、その状態変化に応じて、キーオン処理ある
いはキーオフ処理を行った後、ステップSa3へ進む。
ステップSa3では、ペダル5の操作状態変化を検出
し、その状態変化に応じて、ペダルオン処理あるいはペ
ダルオフ処理を行った後、ステップSa4へ進む。ステ
ップSa4では、全チャンネル状態の検出処理を行い、
使用状態から空き状態に変化したチャンネルに対しては
空き状態設定処理を行う。
ップSa2に戻り、電源が遮断されるまでステップSa
2〜ステップSa4までの一連の処理を繰り返し実行す
る。このように、メインルーチンにおいてはCPU2が
押離鍵処理およびペダル処理等の各種イベントに応じ
て、装置各部に対して楽音合成命令を送出する。この楽
音合成は後述する各種楽音合成処理によって実現され
る。
状態の変化を鍵盤インタフェース1aによりスキャンす
る。その後、ステップSb2へ進む。ステップSb2で
は、鍵盤1の押離鍵状態の変化の有無の判断処理を行
う。押離鍵状態の変化が検出されないで、判断結果が
「NO」になった場合には、そのままメインルーチン
(図11)に戻る。一方、ステップSb2において、押
離鍵状態の変化が検出されて、判断結果が「YES」に
なった場合には、ステップSb3に進む。なお、この場
合の鍵イベントの検出においては、押鍵から離鍵に変化
する場合は、図6に示すキーオフ信号KOFFが「1」
になる場合にはじめて、「鍵イベント」があったものと
判断される。
応じた各種楽音情報を各種レジスタに設定する。すなわ
ち、レジスタKEVにはキーオン状態かキーオフ状態か
の押離鍵状態を設定し、レジスタKVには押離鍵速度を
設定し、レジスタKCにはキーコードを設定する。その
後、ステップSb4に進む。ステップSb4では、レジ
スタKEVに設定した値がキーオン状態であるか否かの
判断処理を行う。この判断結果が「YES」の場合に
は、ステップSb5のキーオン処理を行い、メインルー
チンに戻る。一方、この判断結果が「NO」の場合に
は、ステップSb6のキーオフ処理を行った後、メイン
ルーチンに戻る。
ルを検出するための、空きチャンネルを検出する。ステ
ップSc2では、発音割当可能である空きチャンネルが
あったか否かの判断処理を行う。空きチャンネルがない
場合には、ステップSc3におけるトランケート処理に
よってレジスタCHに空きチャンネルを設定する。一
方、空きチャンネルがある場合にはそのステップSc4
によって検出された空きチャンネル番号を、レジスタC
Hに設定する。その後、ステップSc5に進む。
音チャンネルのエンベロープ状態を表すレジスタST
[CH](CHはレジスタCH)に、アタック状態を表
すための「0」を設定する(なお、この時点では図6に
示すキーオンパルスKONPは「0」のため、信号ST
ATEは「5」になっている)。ステップSc6では、
発音すべきキーコードを記憶するレジスタSTKC[C
H]にキーオン処理がなされた鍵盤のキーコードKCを
設定する。
音チャンネル番号CHの発音チャンネルに対して、検出
されたキーコードKCおよびキーベロシティKVを出力
する。また、当該発音チャンネルに対応するキーオンパ
ルスKONPを「1」にし、キーオン信号KONを
「1」にする。これにより、制御信号LSCが「1」に
され(図6参照)、エンベロープ信号開始値「L0」が
ロードされる(図5参照)。また、インバータ607の
出力信号が「0」になりアンドゲート608,609お
よび610が閉状態になり、信号STATEが「0」、
すなわち、アタック状態に設定される(図6参照)。ま
た、キーオフ信号が「0」になる(図6参照)。
信号生成が開始される。このエンベロープ信号は、その
後の押鍵状態等によって、図9(a)〜図9(d)に示
すような形状になる。なお、この動作については後述す
る。また、生成されたエンベロープ信号に応じて当該発
音チャンネルから楽音信号Wが出力される(図2に示す
エンベロープ回路13参照)。
KCに対応した楽音が発音中であるか否かの判断処理を
行う。この判断結果が、「NO」、すなわち、発音中で
はないという結果の場合には、そのまま、キーオフ処理
を終了し、鍵処理(図2)を介して、メインルーチン
(図11)に戻る。一方、判断結果が、「YES」、す
なわち、発音中であるという結果になった場合には、ス
テップSd2に進み、キーオフ状態になったキーコード
KCの発音チャンネル番号をレジスタCHに設定する。
次にステップSd4に進む。ステップSd4では、エン
ベロープ状態を表す信号STATEの値をレジスタST
[CH]に格納する。次にステップSd3に進む。
るか否かの判断処理を行う。この判断結果が「YE
S」、すなわち、ペダルオン状態であればステップSd
6に進み、楽音合成回路6の当該発音チャンネルのチャ
ンネルCHに、離鍵状態になったことを示す値「0」を
キーオン信号KONに出力する(図6参照)。なお、エ
ンベロープ信号生成回路ESGの内部では、エンベロー
プ状態が、アタック状態以外の時には、信号SUSFL
Gおよび信号SUSLVL等に応じて減衰動作となる。
また、アタック状態の場合には、信号MASKの値が
「0」であれば、キーオフ信号KOFFを「1」にし、
信号SUSFLGおよび信号SUSLVLに応じて減衰
動作となる(図6参照)。ステップSd6を行った後
は、鍵処理(図2)を介してメインルーチン(図1)に
戻る。
て説明する。まず、ステップSe1では、ペダルインタ
フェース5aによりペダル操作状態の変化を検出する。
その後、ステップSe2に進む。ステップSe2では、
ペダル操作状態の変化があったか否かを判断する。ペダ
ル操作状態に変化が検出されない場合には、直ちにペダ
ル処理を終了し、メインルーチン(図1)に戻る。一
方、上述の判断結果が、「YES」の場合には、ステッ
プSe3に進み、レジスタPEVに、ペダルを踏んだか
離したかを識別する値を格納する。その後、ステップS
e4に進む。
れているレジスタPEVの値に応じて、処理を分岐させ
る処理を行う。すなわち、レジスタPEVがペダルオン
状態を表している場合には、ステップSe5のPONオ
ン処理に進む。一方、レジスタPEVがペダルオフ状態
を表している場合には、ステップSe6のPOFF処理
に進む。このように、レジスタPEVの値に応じて、ス
テップSe5もしくは、ステップSe6の処理を行った
後、直ちにペダル処理を終了し、メインルーチン(図
1)に戻る。
「0」を設定し、ステップSf2に進む。ステップSf
2では、チャンネル番号CHのエンベロープ状態が発音
待機状態であるか否かを判断する処理を行う。この判断
結果が、「NO」、すなわち、発音状態(アタック状態
〜リリース1状態)にである場合には、ステップSf4
に進み、楽音合成回路6のチャンネル番号CHのキーオ
ン信号KONを「1」に設定する。したがって、図6に
示すキーオン信号KONが「1」に設定され、回路内部
においては、信号MASK、信号SUSFLGおよび信
号SUSLVL等に応じてエンベロープ減衰動作が行わ
れる。
はステップSf2で「YES」と判断されると、ステッ
プSf5に進み、チャンネル番号CHに「1」を加算す
る。次に、ステップSf6に進み、チャンネル番号値が
全チャンネル数を表す値MAXと等しいか否かの判断処
理を行う。この判断結果が「NO」の場合にはステップ
Sf2に戻り、上述した処理を繰り返す。以降、ステッ
プSf6の判定が「YES」になるまで、ステップSf
2〜ステップSf5の処理を繰り返す。すなわち、全チ
ャンネルについてステップSf2〜ステップSf5の処
理を行う。そして、ステップSf6の判断結果が「YE
S」になると、ステップSf7に進み、レジスタPON
Fにペダルオン状態を表す「1」を設定する。その後、
PON処理を終了し、ペダル処理(図15)を介してメ
インルーチンに戻る。
レジスタCHに「0」を設定する。その後、Sg2へ進
む。ステップSg2では、当該発音チャンネルに対応す
る鍵盤が押鍵状態であるか否かを判断する処理を行う。
この判断結果が「NO」、すなわち、離鍵状態にある場
合には、ステップSg4に進み、楽音合成回路6のチャ
ンネル番号CHに、ペダルが踏まれてなく、かつ、離鍵
状態であることを表す値「0」をキーオン信号KONに
設定する。したがって、図6に示すキーオン信号KON
が「0」に設定され、回路内部においては、信号MAS
K、信号SUSFLGおよび信号SUSLVL等に応じ
てエンベロープ減衰動作が行われる。
はステップSg2で「YES」と判断されると、ステッ
プSg5に進み、チャンネル番号CHに「1」を加算す
る。次に、ステップSg6に進み、チャンネル番号値が
全チャンネル数を表す値MAXと等しいか否かの判断処
理を行う。この判断結果が「NO」の場合にはステップ
Sg2に戻り、上述した処理を繰り返す。以降、ステッ
プSg6の判定が「YES」になるまで、ステップSg
2〜ステップSg5の処理を繰り返す。すなわち、全チ
ャンネルについてステップSg2〜ステップSg5の処
理を行う。そして、ステップSg6の判断結果が「YE
S」になると、ステップSf7に進み、レジスタPON
Fにペダルオフ状態を表す「0」を設定する。その後、
POFF処理を終了し、ペダル処理(図15)を介して
メインルーチンに戻る。
8) まず、ステップSh1では、チャンネル番号CHに
「0」を設定する。その後、Sh2へ進み、レジスタS
T[CH]に格納されているエンベロープ状態が「5」
(リリース2状態)であるか否かの判断処理を行う。こ
の判断結果が「NO」すなわち発音状態(アタック状態
〜リリース1状態)の場合には、ステップSh3に進
む。
で表されるチャンネルのエンベロープ信号を格納するレ
ジスタENV[CH]にエンベロープ信号ENV1(図
2参照)の値を設定する。次に、ステップSh4では、
ENV[CH]がスレッショルドレベルTH(発音限界
エンベロープ信号値)より大きいか否かの判断処理を行
う。この判断結果が「YES」の場合にはステップSh
5に進み、エンベロープ状態格納レジスタST[CH]
に「5」、すなわち発音待機状態を設定する。
h2あるいはステップSh4で「NO」と判断される
と、ステップSh6に進み、チャンネル番号CHに
「1」を加算する。その後、ステップSh7に進む。ス
テップSh7では、チャンネル番号値が全チャンネル数
を表す値MAXと等しいか否かの判断処理を行う。この
判断結果が「NO」の場合にはステップSh2に戻り、
上述した処理を全チャンネル分繰り返す。一方、この判
断結果が「YES」の場合には空きCH検出処理を終了
する。
作と上記フローチャートとの関係 エンベロープ生成回路13の内部動作の概略について、
図5および図6を参照して説明する。
ニシャライズ動作がされた際の回路動作 ステップSa1のイニシャライズ動作がされ、発音待機
状態に遷移すると、図6に示すエンベロープ制御信号生
成回路ECSGにおいて、信号STATEおよび信号S
Tの信号値は「5」になる。したがって、制御信号CS
Aは「1」、制御信号CSBは「0」、制御信号CSC
は「0」になる。これは、信号STATEが「5」に設
定されるために、アンドゲート619の出力値が「1」
になり、アンドゲート620の出力値が「0」になるた
め、これら2信号を入力信号とするオアゲート621の
出力値が「1」になるからである。また、制御信号LS
Cは「0」である。
>THを満たす場合)においては、図示されていない制
御信号LSAは「1」に設定される。そのため、エンベ
ロープ信号生成回路ESG(図5参照)の装置各部に
は、「1FFF(h)」が書き込まれる。この場合、セ
レクタ15は制御信号CSAが「1」であるため、A入
力端に供給される「1FFF(h)」をその出力値とし
て選択してエンベロープ目標値S3に設定する。
あるため、A入力端に供給される「1FFF(h)」を
その出力値として選択してエンベロープ現信号S5に設
定し、シフトレジスタ19に出力する。シフトレジスタ
19は、その「1FFF(h)」を1クロック保持した
後、エンベロープ信号ENV2として、コンパレータ1
6のE入力端および加算器17のE入力端に帰還させ
る。
ようにシフトレジスタ19によって循環されるため、発
音待機状態(ENV1>THを満たす場合)において
は、図6に示す各制御信号が設定されると、上述のよう
に、図5に示す回路各部に「1FFF(h)」が格納さ
れる。なお、加算器17の出力値のエンベロープ原信号
S4およびコンパレータ16の出力値である信号EQは
無効になる。これは、エンベロープ原信号S4について
はセレクタ18がA入力端に供給される値を選択するた
めである。そして、信号EQについては、ノアゲート6
16(図6)により禁止されるからである。
キーオン処理の検出に基づく回路動作 キーオン処理の検出に基づく回路動作について、始め
に、長時間に亘って鍵盤が押され続けている場合につい
ての回路動作を説明する。
ンパルスKONPが「1」になった時の回路動作 さて、押鍵処理待機状態において、鍵盤インタフェース
1aによって押鍵操作が検出されると図6に示すキーオ
ンパルスKONPが1クロックの間だけ「1」になる。
これにより、制御信号LSCが「1」になる。また、イ
ンバータ607はキーオンパルスKONPの信号値
「1」を反転して「0」を出力するため、アンドゲート
608、609および610のそれぞれの出力信号T
0、T1およびT2は、すべて強制的に「0」に設定さ
れる。したがって、信号STATEの値は「0」になる
とともに、半加算器601を介した信号STの値も
「0」になる。そのため、セレクタ631から出力され
る信号LEVELは「L0」であり、信号RATEは
「R0」である。
SG(図5)の信号LEVELに「L0」がロードさ
れ、エンベロープ現信号S4にその値が設定される。ま
た、信号STATEを入力値をするノアゲート611の
出力値、すなわち、制御信号CSBは、「1」になる。
したがって、セレクタ15(図5)は、B入力端に供給
される「0000(h)」を、エンベロープ目標値S3
に設定する。なお、この「0000(h)」はアタック
状態におけるエンベロープ目標値である。次に、コンパ
レータ16は、T入力端に供給される「0000
(h)」が、E入力端に供給されるエンベロープ現在値
ENV2の信号値「1FFF(h)」よりも小さいた
め、信号GTに「1」および信号EQに「0」を設定し
て出力する。
であるため、C入力端に供給される信号LEVELの信
号値「L0」を選択してエンベロープ信号ENV3に設
定し、シフトレジスタ19に出力する。シフトレジスタ
19は、「L0」を1クロック保持した後、エンベロー
プ信号ENV2として、コンパレータ16のE入力端お
よび加算器17のE入力端に帰還させる。なお、加算器
17の出力値エンベロープ原信号S4およびコンパレー
タ16の出力値GTは無効になる。これは、エンベロー
プ原信号S4についてはセレクタ18がC入力端に供給
される値を選択するためである。そして、信号GTにつ
いては、「0」の信号値をとるキーオフ信号KOFF
(図6参照)により無効にされるからである。
る。したがって、キーオフ信号KOFFは「0」になる
ため制御信号RR_SELは「0」の値を保持する。な
お、制御信号CSA、CSCおよび図示されていない制
御信号LSAもすべて「0」に設定される。
ルスKONPが「0」になった時以降の回路動作) 次に、図6に示すキーオンパルスKONPが1クロック
だけ「1」になった後「0」になると次のように各信号
値が設定される。まず、シフトレジスタ19(図5参
照)によって保持されていた信号LEVELの値「L
0」がロードされるとともに、「101(b)」であっ
たシフトレジスタ606(図6)の出力端Q0(最下位
ビット)、Q1(中位ビット)およびQ2(最上位ビッ
ト)の信号値が「000(b)」になり、エンベロープ
状態が「アタック状態」になる。このように、キーオン
時の信号STATEの値と、実際のエンベロープ状態に
は、1クロックずれが生じるが、その後のエンベロープ
状態の変化と信号STATEの変化は、完全に同期す
る。
る。他の各制御信号CSA、CSBおよびCSCならび
に制御信号LSAおよびLSCならびに制御信号RR_
SELは、引き続き制御信号CSBが「1」となるほか
はすべて「0」の信号値である。したがって、制御信号
LSB(図5参照)は、「1」になる。なお、制御信号
CSBが「1」であるのは、信号STATEが「0」、
すなわち、エンベロープ状態はアタック状態なので、ノ
アゲート611の出力値が「1」になり、それに応じて
制御信号CSBが、引き続き「1」の信号値になるから
である。制御信号RR_SELが「0」であるのは、キ
ーオン信号KONが引き続き「1」の信号値をとるこ
と、および、キーオフ信号KOFFが「0」の信号値で
あることによる。
は、以降「0」の信号値となる。これにより、制御信号
LSCも以降「0」の信号値となる。図示されていない
制御信号LSAについても再び押鍵処理待機状態になる
まで以降「0」の信号値になる。したがって、以降、発
音待機状態になるまで、セレクタ18においてはB入力
端に供給されるエンベロープ原信号S4が選択され、エ
ンベロープ信号ENV3として出力される。
CSBが「1」であるため、B入力端に供給される「0
000(h)」をその出力値として選択してエンベロー
プ目標値S3に設定する。この「0000(h)」はア
タック状態におけるエンベロープ目標値である。次に、
コンパレータ16は、信号GTに「1」および信号EQ
に「0」を設定して出力する。加算器17は、信号GT
の信号値が「1」であるため、E入力端に供給されるエ
ンベロープ現在値「L0」からR入力端に供給されるR
ATEの値「R0」を減算し、その演算結果「L0−R
0」をエンベロープ原信号S4に設定してセレクタ18
のB入力端に出力する。
であるため、B入力端に供給されるエンベロープ原信号
S4の信号値「L0−R0」を選択してエンベロープ信
号ENV3に設定し、シフトレジスタ19に出力する。
シフトレジスタ19は、その「L0−R0」を1クロッ
ク保持した後、エンベロープ信号ENV2として、コン
パレータ16のE入力端および加算器17のE入力端に
帰還させる。キーオンパルスKONPが「1」から
「0」に変化すると、上述のように各信号値が設定され
る。
は、シフトレジスタ19によって循環される。アタック
状態においてはコンパレータ16の出力値である信号E
Qが「0」である間、信号GTの信号値が「1」をとり
続ける。したがって、加算器17は信号GT信号値が
「1」である間、この循環される値、すなわち、エンベ
ロープ信号ENV2の信号値から順次「R0」の信号値
を減算し、新たなエンベロープ原信号S4を生成しつづ
ける。このエンベロープ原信号S4は、セレクタ18、
シフトレジスタ19を介して、新たなエンベロープ現在
値ENV2として、再び加算器17に戻り減算処理が施
される。さて、上述した加算器17による減算処理が継
続すると、コンパレータ16の比較結果が、「S3<E
NV2」から「S3=ENV2」に変化する。
「1」の時) 上述のように、図5において、「S3=ENV2」にな
ると、コンパレータ16の出力値EQは「0」から
「1」に変化し、信号GTは「1」から「0」に変化す
る。なお、信号GTの信号値は、以降「0」をとる。す
ると、図6において、信号STATEは依然として
「0」、すなわち、アタック状態であるため、ナンドゲ
ート615およびナンドゲート616の出力値はいずれ
も「1」である。しかし信号EQは「1」に変化したた
め、オアゲート617が「1」となる。したがって、ア
ンドゲート618の出力値は「1」となり、これに応じ
て、半加算器601のCI制御端が「0」から「1」に
変化する。半加算器601は信号STATEの値「0」
に「1」を加算して、その加算結果「1」をS0、S1
およびS2出力端から出力し、信号STを「001
(b)」にする。
なることに応じて、セレクタ631は、信号LEVEL
に「L1」、信号RATEに「R1」を設定してそれぞ
れ、セレクタ15およびセレクタ18、ならびに加算器
17に出力する(図5および図6参照)。また、アタッ
ク状態であるため信号STATEの信号値は依然「0」
であり、制御信号CSBは引き続き「1」である。他の
制御信号CSAおよびCSCは「0」である。
号GTの信号値が「0」であるため、E入力端に供給さ
れるエンベロープ現在値ENV2の信号値「0000
(h)」と新たにR入力端に供給される信号RATEの
値「R1」を加算し、その演算結果「R1」をエンベロ
ープ原信号S4に設定してセレクタ18のB入力端に出
力する。セレクタ18は、制御信号LSBが「1」であ
るため、B入力端に供給されるエンベロープ原信号S4
の信号値「R1」を選択してエンベロープ信号ENV3
に設定し、シフトレジスタ19に出力する。シフトレジ
スタ19は、その「R1」を1クロック保持した後、エ
ンベロープ信号ENV2として、コンパレータ16のE
入力端および加算器17のE入力端に帰還させる。
路動作 さて、次に、図6に示すシフトレジスタ606に格納さ
れていた信号STの信号値「001(b)」が、Q0、
Q1およびQ2出力端から出力されると、信号STAT
Eの信号値が「0」から「1」に変化し、アタック状態
からディケイ1状態に遷移する。この結果、ノアゲート
611の出力値は「1」から「0」に変化するため、制
御信号CSBは「1」から「0」になり、無効となる。
また、オアゲート621の出力値、すなわち、制御信号
CSAも依然として「0」のままであるため、制御信号
CSBに代わって、制御信号CSCが「0」から「1」
になり、有効信号となる。
C入力端に供給される信号LEVELの信号値「L1」
を選択してエンベロープ目標値S3として出力する。こ
の「L1」はディケイ1状態におけるエンベロープ目標
値である。次に、コンパレータ16は、信号GTに
「0」および信号EQを「0」にして出力する。そのた
め、半加算器601のCIは「1」から「0」になる。
の信号値が「L1」であるのは、アタック状態からディ
ケイ1状態に遷移するシフトレジスタ19の出力値、す
なわち、エンベロープ信号ENVの出力タイミングと、
シフトレジスタ606(図6参照)が出力する信号ST
ATEの信号値が「0」から「1」に状態遷移するタイ
ミングが同時に行われる様に制御されている(上述にお
いては同期すると記載した)からである。以降、状態遷
移する場合には自動的にこのタイミング制御が行われ
る。
「0」であるため、E入力端に供給されるエンベロープ
現在値「R1」とR入力端に供給される信号RATEの
値「R1」を加算し、その演算結果「R1+R1」をエ
ンベロープ原信号S4に設定し、セレクタ18を介した
後、エンベロープ信号ENV3として、シフトレジスタ
19に出力する。シフトレジスタ19は、その「R1+
R1」を1クロック保持した後、エンベロープ信号EN
V2として、コンパレータ16のE入力端および加算器
17のE入力端に帰還させる。
わち、アタック状態からディケイ1状態に変化すると、
各信号値は上述のように設定され、その後、エンベロー
プ信号ENV2は、シフトレジスタ19によって循環さ
れる。ディケイ1状態においてはコンパレータ16の出
力値である信号EQが「0」である間、信号GTの信号
値が「0」をとり続ける。したがって、加算器17は信
号GTの信号値が「0」である間、この循環される値、
すなわち、エンベロープ信号ENV2と信号RATEの
値「R1」とを順次加算し、新たなエンベロープ原信号
S4を生成しつづける。このエンベロープ原信号S4
は、セレクタ18、シフトレジスタ19を介して、新た
なエンベロープ現在値ENV2として、再び加算器17
に戻り加算処理が施される。さて、上述した加算器17
による加算処理が継続すると、コンパレータ16の比較
結果が、「S3(=L1)>ENV2」から「S3(=
L1)=ENV2」に変化する。
が「1」) 上述のように、図5において、「S3(=L1)=EN
V2」になると、コンパレータ16の出力値EQは
「0」から「1」に変化する。これにより、オアゲート
617が「1」となる。したがって、AND618の出
力値は「1」となり、これに応じて、半加算器601の
CI制御端が「0」から「1」に変化する。半加算器6
01は信号STATEの値「1」に「1」を加算して、
その加算結果「2」をS0、S1およびS2出力端から
出力し、信号STを「010(b)」にする。
応じて、セレクタ631は、信号LEVELに「L
2」、信号RATEに「R2」を設定してそれぞれ、セ
レクタ15およびセレクタ18、ならびに加算器17に
出力する(図5参照)。また、ディケイ1状態であるた
め信号STATEの信号値は依然「1」である。制御信
号CSCが引き続き「1」である。他の制御信号CSA
およびCSBは「0」である。
号GTの信号値が「0」であるため、E入力端に供給さ
れるエンベロープ現在値ENV2の信号値「L1」と新
たにR入力端に供給されるRATEの値「R2」を加算
し、その演算結果「L1+R2」をエンベロープ原信号
S4に設定してセレクタ18のB入力端に出力する。セ
レクタ18は、制御信号LSBが「1」であるため、B
入力端に供給されるエンベロープ原信号S4の信号値
「L1+R2」を選択してエンベロープ信号ENV3に
設定し、シフトレジスタ19に出力する。シフトレジス
タ19は、その「L1+R2」を1クロック保持した
後、エンベロープ信号ENV2として、コンパレータ1
6のE入力端および加算器17のE入力端に帰還させ
る。
ATEが「2」) さて、次に、図6に示すシフトレジスタ606に格納さ
れていた信号STの信号値「010(b)」が、Q0、
Q1およびQ2出力端から出力されると、信号STAT
Eの信号値が「1」から「2」に変化し、ディケイ1状
態からディケイ2状態に遷移する。すると、ノアゲート
611の出力値は「0」のまま不変であり、制御信号C
SBは「0」である。また、オアゲート621の出力
値、すなわち、制御信号CSAも依然として「0」のま
まであるため、引き続き制御信号CSCが「1」であ
り、有効信号となる。
号CSCが「1」であるためC入力端に供給される信号
LEVELの信号値「L2」をエンベロープ目標値S3
として出力する。この「L2」はディケイ2状態におけ
るエンベロープ目標値である。次に、コンパレータ16
は、T入力端に供給されるエンベロープ目標値S3の信
号値「L2」が、E入力端に供給されるエンベロープ現
在値ENV2の信号値「L1+R2」以上の値であるた
め(図7参照)、信号GTに「0」および信号EQに
「0」を設定して出力する。したがって、半加算器60
1のCIは「1」から「0」になる。
「0」であるため、E入力端に供給されるエンベロープ
現在値「L1+R2」とR入力端に供給されるRATE
の値「R2」を加算し、その演算結果「L1+R2+R
2」をエンベロープ原信号S4に設定し、セレクタ18
を介した後、エンベロープ信号ENV3として、シフト
レジスタ19に出力する。シフトレジスタ19は、その
「L1+R2+R2」を1クロック保持した後、エンベ
ロープ信号ENV2として、コンパレータ16のE入力
端および加算器17のE入力端に帰還させる。
わち、アタック状態からディケイ1状態に変化すると、
各信号値は上述のように設定され、その後、エンベロー
プ信号ENV2は、シフトレジスタ19によって循環さ
れる。ディケイ1状態においてはコンパレータ16の出
力値である信号EQが「0」である間、信号GTの信号
値が「0」をとり続ける。したがって、加算器17は信
号GTの信号値が「0」である間、この循環される値、
すなわち、エンベロープ信号ENV2とRATEの値
「R2」とを順次加算し、新たなエンベロープ原信号S
4を生成しつづける。このエンベロープ原信号S4は、
セレクタ18、シフトレジスタ19を介して、新たなエ
ンベロープ現在値ENV2として、再び加算器17に戻
り加算処理が施される。さて、上述した加算器17によ
る加算処理が継続すると、コンパレータ16の比較結果
が、「S3(=L2)>ENV2」から「S3(=L
2)=ENV2」に変化する。
が「1」の時) 上述のように、図5において、「S3(=L2)=EN
V2」になると、コンパレータ16の出力値EQは
「0」から「1」に変化する。この結果、図6におい
て、アンドゲート618の出力値は「1」となり、これ
に応じて、半加算器601のCI制御端が「0」から
「1」に変化する。半加算器601は信号STATEの
値「2」に「1」を加算して、その加算結果「011
(b)」をS0、S1およびS2出力端から出力し、信
号STを「3」にする。
応じて、セレクタ631は、信号LEVELに「L
4」、信号RATEに「R3」を設定してそれぞれ、セ
レクタ15およびセレクタ18、ならびに加算器17に
出力する(図5参照)。また、ディケイ2状態であるた
め信号STATEの信号値は依然「2」であり、制御信
号CSCは引き続き「1」である。他の制御信号CSA
およびCSCは「0」である。
号GTの信号値が「0」であるため、E入力端に供給さ
れるエンベロープ現在値ENV2の信号値「L2」と新
たにR入力端に供給されるRATEの値「R3」を加算
し、その演算結果「L2+R3」をエンベロープ原信号
S4に設定し、セレクタ18を介してエンベロープ信号
ENV3に設定し、シフトレジスタ19に出力する。シ
フトレジスタ19は、その「L2+R3」を1クロック
保持した後、エンベロープ信号ENV2として、コンパ
レータ16のE入力端および加算器17のE入力端に帰
還させる。
れていた信号STの信号値「3」が、Q0、Q1および
Q2出力端から出力されると、信号STATEの信号値
が「2」から「3」に変化し、ディケイ2状態からサス
ティン状態に遷移する。すると、アンドゲート620の
出力値が「1」になり、オアゲート621の出力信号値
である制御信号CSAが「0」から「1」に変化する。
これにより、図5に示すセレクタ15は、A入力端に供
給される「1FFF(h)」をエンベロープ目標値S3
として出力する。この「1FFF(h)」はサスティン
状態におけるエンベロープ目標値である。次に、コンパ
レータ16は、T入力端に供給されるエンベロープ目標
値S3の信号値「1FFF(h)」が、E入力端に供給
されるエンベロープ現在値ENV2の信号値「L2+R
3」以上の値であるため(図7参照)、信号GTを
「0」および信号EQを「0」にして出力する。したが
って、半加算器601のCIは「1」から「0」にな
る。
「0」であるため、E入力端に供給されるエンベロープ
現在値「L2+R3」とR入力端に供給されるRATE
の値「R3」を加算し、その演算結果「L2+R3+R
3」をエンベロープ原信号S4に設定し、セレクタ18
を介した後、エンベロープ信号ENV3として、シフト
レジスタ19に出力する。シフトレジスタ19は、その
「L2+R3+R3」を1クロック保持した後、エンベ
ロープ信号ENV2として、コンパレータ16のE入力
端および加算器17のE入力端に帰還させる。
わち、ディケイ2状態からサスティン状態に変化する
と、各信号値は上述のように設定され、その後、エンベ
ロープ信号ENV2は、シフトレジスタ19によって循
環される。サスティン状態においてはコンパレータ16
の出力値である信号EQが「0」である間、信号GTの
信号値が「0」をとり続ける。したがって、加算器17
は信号GTの信号値が「0」である間、この循環される
値、すなわち、エンベロープ信号ENV2とRATEの
値「R3」とを順次加算し、新たなエンベロープ原信号
S4を生成しつづける。このエンベロープ原信号S4
は、セレクタ18、シフトレジスタ19を介して、新た
なエンベロープ現在値ENV2として、再び加算器17
に戻り加算処理が施される。
ョルドレベルTH=エンベロープ現在値ENV1(図
2)になった場合 さて、上述した加算器17による加算処理が継続する
と、エンベロープ現在値ENV2の値が「S3(=1F
FF(h))>TH=ENV1」に変化する。すると、
ステップSh4(図18)の判断処理によって「YE
S」と判断されるため、レジスタST[CH]には、
「5」、すなわち、リリース2状態が設定される。それ
とともに、図示せぬインタフェースから供給される制御
信号LSAが「1」になり、また、図示せぬ制御信号に
よって、信号STATEを生成するループ回路が「10
1(b)」にイニシャライズされる。そして、発音して
いた楽音が消音する。
鍵継続時間が長時間になった場合には、エンベロープ現
在値ENV1がスレッショルドレベルTHに等しくなる
まで、サスティン状態を維持する。すなわち、押鍵中も
しくはペダル処理中にトランケート処理の対象チャンネ
ルとなるかまたはペダル操作若しくは離鍵操作が検出さ
れない限りサスティン状態が継続する。
キーオフ処理の検出に基づく回路動作 さて、上述においては、極めて長時間鍵盤を押し続けた
場合についての回路動作について説明した。次に、各エ
ンベロープ状態において離鍵処理が検出される場合につ
いての回路動作を図9および図10を参照して説明す
る。また、実際の離鍵処理とキーオフ信号KOFFの立
ち上がりのタイミング差を利用したペダル操作との関連
についても説明する。図9(a)〜図9(d)は、離鍵
処理が検出された場合に、取り得るエンベロープ波形の
代表例を表したものであり、それぞれ、アタック部で離
鍵処理があった場合、ディケイ1部で離鍵処理があった
場合、ディケイ2部で離鍵処理があった場合、サスティ
ン部で離鍵処理があった場合に対応している。
エンベロープ制御信号の値と、図9(a)〜図9(d)
に示す波形との対応関係を示す表である。例えば、図9
(a)のエンベロープ波形は、エンベロープ制御信号
が図10(a)に示す場合を表すものである。なお、
回路動作の説明にあたっては、アタック部、ディケイ1
部およびディケイ2部において離鍵処理が検出された場
合には動作の概略について説明し、サスティン部におい
て離鍵処理が検出された場合については回路動作の詳細
について説明した。
処理が検出された場合 アタック状態で離鍵処理が検出される(図9(a)参
照)と、エンベロープ信号は、信号MASKおよび信号
SUSFLGの値によって、「その時点から直ちにリリ
ースレートで減衰」する同図(a)と、「アタック状
態終了経過時点から信号SUSFLGおよび信号SUS
LVLの値に応じて減衰」する同図(a)、および
に分けられる。同図(a)の場合は、図6におい
て、信号MASKが「0」に設定されていることによ
り、離鍵処理によってキーオン信号KONが「0」にな
るため、キーオフ信号KOFFが「1」になる。かつ、
信号SUSFLGが「0」に設定されている場合であ
る。
6において、信号MASKが「1」に設定されているこ
とにより、ディケイ1状態以降、キーオフ信号KOFF
が「1」になる。このうち、図9(a)の場合は、信
号SUSFLGが「1」に設定され、信号SUSLVL
が「0」に設定されている。同図(a)の場合は、信
号SUSFLGが「1」に設定され、信号SUSLVL
が「1」に設定されている場合である。このように、実
際の離鍵処理と、キーオフ信号KOFFの立ち上がりに
タイミング差がある場合には、その間に、ステップSe
2(図15)によってペダル処理が検出されると、再
び、キーオン信号KONが「1」になるため、リリース
状態に移行することなく押離鍵と同様のエンベロープ制
御がなされる。なお、図9(a)の場合と同様に、図
6において、信号MASKが「0」に設定されている場
合に、信号SUSFLGが「1」に設定されている場合
には、図9(a)、またはのいずれかのエンベロ
ープ信号になる。
鍵処理が検出された場合 ディケイ1状態で離鍵処理が検出される(図9(b)参
照)と、エンベロープ信号は、信号SUSFLGの値に
よって、離鍵処理が検出された時点から直ちにリリース
レートで減衰する同図(b)と、離鍵処理が検出され
た後ディケイ1状態終了経過時点から信号SUSLVL
の値に応じて減衰する同図(b)およびに分けられ
る。同図(b)の場合は、図6において、離鍵処理の
検出によってキーオン信号KONが「0」になるため、
キーオフ信号KOFFが「1」になる。また、信号SU
SFLGは「0」であるため、制御信号RR_SELが
離鍵処理と同時に直ちに「1」になり、リリース1レー
トで減衰する。
いて、信号SUSFLGが「1」に設定されているた
め、離鍵処理によって制御信号RR_SELが「1」に
はならない。そのため、リリースレートでの減衰動作
は、信号SUSLVLによるものとなる。その場合、同
図(b)においては、ディケイ1状態終了経過時点か
らリリースレートで減衰し、同図(b)においては、
ディケイ2状態終了経過時点からリリースレートで減衰
する。このように、上述と同様に、実際の離鍵処理と、
キーオフ信号KOFFの立ち上がりにタイミング差があ
る場合には、その間に、ステップSe2(図15)によ
ってペダルの押圧が検出されると、再び、キーオン信号
KONが「1」になるため、リリース状態に移行するこ
となく押離鍵と同様のエンベロープ制御がなされる。
鍵処理が検出された場合 ディケイ2状態で離鍵処理が検出される(図9(c)参
照)と、エンベロープ信号は、信号SUSFLGの値に
よって、離鍵処理が検出された時点から直ちにリリース
レートで減衰する同図(c)と、離鍵処理が検出され
た後、ディケイ2状態終了経過時点から信号SUSLV
Lの値に応じて減衰する同図(c)に分けられる。同
図(c)の場合は、図6において、離鍵処理の検出に
よってキーオン信号KONが「0」になるため、キーオ
フ信号KOFFが「1」になる。また、信号SUSFL
Gは、「0」であるため、制御信号RR_SELが離鍵
処理と同時に直ちに「1」になり、リリース1レートで
減衰する。
れていても、信号SUSLVLが「0」に設定されてい
れば、図9(c)と同様に減衰する。同図(b)の
場合は、図6において、信号SUSFLGが「1」に設
定されており、かつ、信号SUSLVLが「1」の場合
である。この場合、ディケイ2状態終了経過時点から、
リリースレートで減衰する。このように、上述と同様
に、実際の離鍵処理と、キーオフ信号KOFFの立ち上
がりにタイミング差がある場合には、その間に、ステッ
プSe2(図15)によってペダルの押圧が検出される
と、再び、キーオン信号KONが「1」になるため、リ
リース状態に移行することなく押離鍵と同様のエンベロ
ープ制御がなされる。
鍵処理が検出された場合 §5−3−4−1.サスティン状態 サスティン状態において、離鍵処理が検出された時のエ
ンベロープ生成回路13の動作について、図5および図
6を参照して詳細に説明する。図5に示すエンベロープ
現在値ENV2が、「L2」の信号値に到達したのち
(信号EQが「1」になった後)、シフトレジスタ19
によってこのエンベロープ現在値ENV2を(n−1)
回、コンパレータ16および加算器17に対して帰還し
たと仮定すると、エンベロープ現在値ENV2は「L2
+(n−1)R3」、エンベロープ目標値S3は「1F
FF(h)」、信号GTは「0」、信号EQは「0」、
エンベロープ原信号S4およびエンベロープ信号ENV
3は「L2+nR3」の信号値となる。
に示すキーオン信号KONが「1」から「0」に変化す
る。すると、キーオン信号KONが「0」およびノアゲ
ート611の出力値が「0」であることによって、キー
オフ信号KOFFが「0」から「1」に変化する。ま
た、信号STATEが「3」であるため、Q2が「0」
の信号値をとることにより、インバータ627の出力値
が「1」である。継続されるエンベロープ制御は、信号
SUSFLGおよび信号SUSLVLの値によって異な
るので以下場合分けして説明する。
「0」の場合(信号SUSLVLの値に関係なく動作) さて、ここで信号SUSFLGを「0」と仮定する。す
ると、アンドゲート629はインバータ627の出力値
「1」、キーオフ信号KOFFの信号値「1」および信
号SUSFLGの反転値「1」の論理積、すなわち
「1」を制御信号RR_SELとして出力する。する
と、セレクタ631によって信号RATEの信号値が
「R4」になる。したがって、図5に示す加算器17の
R入力端に信号RATEの信号値「R4」が供給され、
次のエンベロープ現在値ENV2が帰還され、処理が1
クロック進行する。
の次のようになる。すなわち、エンベロープ現在値EN
V2は「L2+nR3」に変化する。エンベロープ目標
値S3については、信号STATEの値が「3」である
ためエンベロープ状態がサスティン状態であり、「1F
FF(h)」である。また、信号GTは「0」、信号E
Qは「0」、エンベロープ原信号S4およびエンベロー
プ信号ENV3は「L2+nR3+R4」の信号値とな
る。
オアゲート626の値は信号SUSLVLの信号値に無
関係に「1」となるため、インバータ627の出力値
「1」、オアゲート626の出力値「1」およびキーオ
フ信号KOFFの出力値「1」の論理積を出力するアン
ドゲート628の出力値は「1」になる。したがって、
アンドゲート603およびアンドゲート604はインバ
ータ602の出力値が「0」を出力し、オアゲート60
5は「1」を出力する。したがって、シフトレジスタ6
06に対して、次の信号STATEの信号値となる
「4」を格納させる。したがって、離鍵処理が検出され
た時点からリリースレートで減衰することになる。ま
た、その後、ペダル処理がステップSe2によって検出
された場合には、リリースレートに移行した減衰モード
で楽音効果が付与される。
「1」の場合 さて、ここで信号SUSFLGを「1」と仮定する。す
ると、アンドゲート629の出力値は「0」になるた
め、制御信号RR_SELは「0」になる。しかし、ア
ンドゲート628の出力値が「1」になるため、信号S
Tの値が「100(b)」に設定されるためセレクタ6
31では、信号LEVELに「L4」が設定され信号R
ATEには、「R4」が設定される。この場合、図5に
示す各信号値は以下の次のように設定される。すなわ
ち、エンベロープ現在値ENV2は「L2+nR3」エ
ンベロープ目標値は、「1FFF(h)」である。ま
た、信号GTは「0」、信号EQは「0」、エンベロー
プ原信号S4およびエンベロープ信号ENV3は「L2
+nR3+R4」の信号値になる。したがって、離鍵処
理が検出された時点からリリースレートで減衰すること
になる。また、その後、ペダルの押圧がステップSe4
によって検出された場合には、リリースレートに移行し
た減衰モードで楽音効果が付与される。
理に応じて、直ちにリリースレートで減衰する。したが
って、サスティン状態において離鍵処理が検出された後
は、その後、ペダル処理が検出されて、キーオン信号が
「1」になったとしても、リリースレートで減衰する。
したがって、リリース状態に移行したエンベロープ制御
がなされる。
説明する。シフトレジスタ606から信号STATEの
信号値「4」が出力されると、リリース1状態になり、
エンベロープ現在値ENV2は「L2+nR3+R4」
になる。さて、リリース1状態に変化すると、アンドゲ
ート628の信号値が「1」から「0」に戻り、アンド
ゲート603、アンドゲート604およびオアゲート6
05がゲートされなくなる。また、ノアゲート611の
出力値は「0」になる。そして、アンドゲート619お
よびアンドゲート620の出力値はいずれも「0」に設
定されるため、オアゲート621の出力値は「0」にな
る。したがって、ノアゲート630の出力値、すなわ
ち、制御信号CSCの信号値が「1」に変化する。制御
信号CSBについては「1」から「0」に変化する。
ベロープ状態がリリース1状態に変化したため「L4」
である。また、信号GTは「0」、信号EQは「0」、
エンベロープ原信号S4およびエンベロープ信号ENV
3は「L2+nR3+2R4」の信号値となる。このよ
うに信号STATEが「4」、リリース1状態に変化す
ると、各信号値は上述のように設定され、その後、エン
ベロープ信号ENV2は、シフトレジスタ19によって
循環される。リリース1状態においてはコンパレータ1
6の出力値である信号EQが「0」である間、信号GT
の信号値が「0」をとり続ける。
値が「0」である間、この循環される値、すなわち、エ
ンベロープ信号ENV2とRATEの値「R4」とを順
次加算し、エンベロープ原信号S4を更新しつづける。
このエンベロープ原信号S4は、セレクタ18、シフト
レジスタ19を介して、新たなエンベロープ現在値EN
V2として、再び加算器17に戻り加算処理が施され
る。
が継続すると、コンパレータ16の比較結果が、「S3
(=L4)>ENV2」から「S3(=L4)=ENV
2」に変化する。すると、図6において、信号STAT
Eは依然として「4」、すなわち、リリース1状態であ
るため、ナンドゲート615およびナンドゲート616
の出力値はいずれも「1」である。さらに信号EQは
「1」に変化したため、オアゲート617が「1」とな
る。したがって、アンドゲート618の出力値は「1」
となり、半加算器601のCI制御端が「0」から
「1」に変化する。半加算器601は信号STATEの
値「4」に「1」を加算して、その加算結果「5」をS
0、S1およびS2出力端から出力し、信号STを「1
01(b)」にする。
レクタ631は、信号LEVELに「L0」(この場合
エンベロープ目標値は別の信号によって与えられるの
で)、信号RATEに「R5」を設定してそれぞれ、セ
レクタ15およびセレクタ18、ならびに加算器17に
出力する(図5参照)。なお、信号STATEの信号値
は依然「4」であり、制御信号CSCはそのまま「1」
になる。他の制御信号CSAおよびCSCは「0」であ
る。
号GTの信号値が「0」であるため、E入力端に供給さ
れるエンベロープ現在値ENV2の信号値「L4」とR
入力端に供給される信号RATEの値「R5」を加算
し、その演算結果「L4+R5」をエンベロープ原信号
S4に設定し、セレクタ18を介してエンベロープ信号
ENV3に設定し、シフトレジスタ19に出力する。シ
フトレジスタ19は、その「L4+R5」を1クロック
保持した後、エンベロープ信号ENV2として、コンパ
レータ16のE入力端および加算器17のE入力端に帰
還させる。
06に格納されていた信号STの信号値「101
(b)」が、Q0、Q1およびQ2出力端から出力され
ると、信号STATEの信号値が「4」から「5」に変
化し、リリース2状態になる。すると、ノアゲート61
1の出力値は「0」のまま不変であり、制御信号CSB
は「0」である。しかし、オアゲート621の出力値、
すなわち、制御信号CSAは「0」から「1」に変化す
る。これは、信号STATEが「5」になることにより
アンドゲート619の出力値が「1」になるからであ
る。
号CSAが「1」であるためA入力端に供給される「1
FFF(h)」をエンベロープ目標値S3として出力す
る。この「1FFF(h)」はリリース2状態における
エンベロープ目標値である。リリース2状態において
「1FFF(h)」がエンベープ目標値となるのは、こ
の状態においてはすでに、離鍵処理が検出されているた
め、リリースレートで楽音が減衰し、消音させ、押鍵待
機状態にするためである。次に、コンパレータ16は、
T入力端に供給されるエンベロープ目標値S3の信号値
「1FFF(h)」が、E入力端に供給されるエンベロ
ープ現在値ENV2の信号値「L4+R5」以上の値で
あるため(図7参照)、信号GTに「0」および信号E
Qに「0」を設定して出力する。したがって、半加算器
601のCIは「1」から「0」になる。
「0」であるため、E入力端に供給されるエンベロープ
現在値「L4+R5」とR入力端に供給される信号RA
TEの値「R5」を加算し、その演算結果「L4+2R
5」をエンベロープ原信号S4に設定し、セレクタ18
を介した後、エンベロープ信号ENV3として、シフト
レジスタ19に出力する。シフトレジスタ19は、その
「L4+2R5」を1クロック保持した後、エンベロー
プ信号ENV2として、コンパレータ16のE入力端お
よび加算器17のE入力端に帰還させる。
ると、各信号値は上述のように設定され、その後、エン
ベロープ信号ENV2は、シフトレジスタ19によって
循環される。サスティン状態においてはコンパレータ1
6の出力値である信号EQが「0」である間、信号GT
の信号値が「0」をとり続ける。したがって、加算器1
7は信号GTの信号値が「0」である間、この循環され
る値、すなわち、エンベロープ信号ENV2と信号RA
TEの値「R5」とを順次加算し、新たなエンベロープ
原信号S4を生成しつづける。このエンベロープ原信号
S4は、セレクタ18、シフトレジスタ19を介して、
エンベロープ現在値ENV2として、再び加算器17に
帰還され加算処理が施される。
が継続すると、エンベロープ原信号S4の信号値は徐々
に「1FFF(h)」に近づいていくとともに、エンベ
ロープ信号ENV1の信号値が図18のステップSh4
のスレッショルドレベルTHに近づいて行く。そして、
CPU2がエンベロープ信号ENV1の信号値が、図1
8のステップSh4のTHを越えたことを検出すると、
その発音チャンネルを強制的にイニシャライズし、制御
信号LSAを「1」にし、押鍵待機状態にするための処
理を行う。
オン信号KONを用い、また、消音を指示する信号とし
てキーオフ信号KOFFを用いている。この場合、発音
を指示する信号は押鍵があると直ちに「1」(有効)に
なるが、消音を指示する信号は次の場合に「1」となっ
て有効となる。すなわち、信号SUSFLGが「1」と
いう条件においては、ディケイ状態で離鍵処理が検出さ
れた場合に、信号SUSLVLの値を制御することによ
って、キーオフ信号KOFFが「1」になるタイミング
を遅延させるとともにその形状を変化させることが可能
である。さらに、この条件において、信号MASKが
「1」であれば、アタック状態で離鍵処理が検出された
場合に、キーオフ信号KOFFが「1」になるタイミン
グを遅延させることが可能である。したがって、発音、
消音を指示するのであればこれ以外の信号を使用しても
良い。例えば、ウインドコントローラ等を接続すればよ
い。さらに、発音の継続を指示する手段として、ペダル
を用いたが、これはほかの操作子としてもよい。例え
ば、ポルタメントスイッチ等が使用可能である。なお、
上記実施例においては、楽音合成回路6からCPU2に
常に信号STATEを供給するようにして、CPU2が
各発音チャンネルのエンベロープの信号STATEを管
理するようにしている。すなわち、CPU2が楽音合成
回路6におけるエンベロープ波形生成に係る詳細な処理
を管理しているのである。
ロープを発生している場合に継続指示手段により楽音の
継続が指示されると、第1のエンベロープを発生するた
め、制御手段の動作によって処理の切換が可能である。
ング図である。
応関係図である。
ロープ信号生成回路ESGである。
ロープ制御信号生成回路ECSGである。
された場合のエンベロープ波形図である。
の相関関係図である。
る。
る。
る。
ある。
ENV1……エンベロープ信号、ESG…エンベロープ
信号生成回路、ECSG……エンベロープ制御信号生成
回路、15……セレクタ、16……コンパレータ、17
……加算器、18……セレクタ、19……シフトレジス
タ、20……テーブル、S3……エンベロープ目標値、
S4……エンベロープ原信号、S5……エンベロープ信
号出力レベル制御値、ENV……エンベロープ信号、E
NV2……エンベロープ現在値、ENV3……エンベロ
ープ信号、STATE……エンベロープ状態を表す信
号、KONP……キーオンパルス、KON……キーオン
信号、KOFF……キーオフ信号、MASK……アタッ
ク状態に有効な制御信号、SUSFLG……アタック状
態およびディケイ状態に有効な制御信号、SUSLVL
……ディケイ状態に有効な制御信号。
Claims (1)
- 【請求項1】 楽音の発音指示および消音指示に基づき
楽音波形信号にエンベロープを付与して楽音信号を形成
する電子楽器において、 第1のエンベロープおよび減衰特性を有する第2のエン
ベロープを発生するエンベロープ発生手段と、 発生楽音の継続を指示する継続指示手段と、 楽音の発生指示に応じて前記エンベロープ発生手段から
第1のエンベロープを発生させ楽音の消音指示に応じて
前記エンベロープ発生手段から第2のエンベロープを発
生させるとともに、消音指示後に前記継続指示手段で発
生楽音の継続が指示された場合に前記エンベロープ発生
手段から第1のエンベロープを発生させる制御手段とを
具備することを特徴とする電子楽器。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP04176092A JP3243821B2 (ja) | 1992-02-27 | 1992-02-27 | 電子楽器 |
US08/022,331 US5422431A (en) | 1992-02-27 | 1993-02-24 | Electronic musical tone synthesizing apparatus generating tones with variable decay rates |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP04176092A JP3243821B2 (ja) | 1992-02-27 | 1992-02-27 | 電子楽器 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH05241577A true JPH05241577A (ja) | 1993-09-21 |
JP3243821B2 JP3243821B2 (ja) | 2002-01-07 |
Family
ID=12617363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP04176092A Expired - Fee Related JP3243821B2 (ja) | 1992-02-27 | 1992-02-27 | 電子楽器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5422431A (ja) |
JP (1) | JP3243821B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220098265A (ko) * | 2014-09-09 | 2022-07-11 | 울트라햅틱스 아이피 엘티디 | 햅틱 피드백을 변조하는 방법 및 장치 |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IT1281788B1 (it) * | 1995-04-28 | 1998-03-03 | Generalmusic Spa | Dispositivo di simulazione dell'effetto pedale di risonanza per pianoforti digitali |
JPH09127941A (ja) * | 1995-10-27 | 1997-05-16 | Yamaha Corp | 電子楽器 |
US5744739A (en) * | 1996-09-13 | 1998-04-28 | Crystal Semiconductor | Wavetable synthesizer and operating method using a variable sampling rate approximation |
US6096960A (en) * | 1996-09-13 | 2000-08-01 | Crystal Semiconductor Corporation | Period forcing filter for preprocessing sound samples for usage in a wavetable synthesizer |
US7439439B2 (en) * | 2004-03-09 | 2008-10-21 | Electrolux Home Products, Inc. | Appliance audio notification device |
ATE373854T1 (de) * | 2005-06-17 | 2007-10-15 | Yamaha Corp | Musiktonwellenformsynthesizer |
JP4978993B2 (ja) * | 2006-10-19 | 2012-07-18 | 株式会社河合楽器製作所 | 楽音発生装置 |
GB2513884B (en) | 2013-05-08 | 2015-06-17 | Univ Bristol | Method and apparatus for producing an acoustic field |
US9841819B2 (en) | 2015-02-20 | 2017-12-12 | Ultrahaptics Ip Ltd | Perceptions in a haptic system |
KR102524966B1 (ko) | 2015-02-20 | 2023-04-21 | 울트라햅틱스 아이피 엘티디 | 햅틱 시스템에서의 알고리즘 개선 |
US10818162B2 (en) | 2015-07-16 | 2020-10-27 | Ultrahaptics Ip Ltd | Calibration techniques in haptic systems |
US10268275B2 (en) | 2016-08-03 | 2019-04-23 | Ultrahaptics Ip Ltd | Three-dimensional perceptions in haptic systems |
US10943578B2 (en) | 2016-12-13 | 2021-03-09 | Ultrahaptics Ip Ltd | Driving techniques for phased-array systems |
CN111095395B (zh) * | 2017-09-20 | 2023-07-04 | 雅马哈株式会社 | 声音信号生成装置、键盘乐器以及记录介质 |
US11531395B2 (en) | 2017-11-26 | 2022-12-20 | Ultrahaptics Ip Ltd | Haptic effects from focused acoustic fields |
WO2019122912A1 (en) | 2017-12-22 | 2019-06-27 | Ultrahaptics Limited | Tracking in haptic systems |
JP7483610B2 (ja) | 2017-12-22 | 2024-05-15 | ウルトラハプティクス アイピー リミテッド | 触覚システムにおける不要な応答の最小化 |
SG11202010752VA (en) | 2018-05-02 | 2020-11-27 | Ultrahaptics Ip Ltd | Blocking plate structure for improved acoustic transmission efficiency |
US11098951B2 (en) | 2018-09-09 | 2021-08-24 | Ultrahaptics Ip Ltd | Ultrasonic-assisted liquid manipulation |
US11378997B2 (en) | 2018-10-12 | 2022-07-05 | Ultrahaptics Ip Ltd | Variable phase and frequency pulse-width modulation technique |
US11550395B2 (en) | 2019-01-04 | 2023-01-10 | Ultrahaptics Ip Ltd | Mid-air haptic textures |
US11842517B2 (en) | 2019-04-12 | 2023-12-12 | Ultrahaptics Ip Ltd | Using iterative 3D-model fitting for domain adaptation of a hand-pose-estimation neural network |
US11374586B2 (en) | 2019-10-13 | 2022-06-28 | Ultraleap Limited | Reducing harmonic distortion by dithering |
US11553295B2 (en) | 2019-10-13 | 2023-01-10 | Ultraleap Limited | Dynamic capping with virtual microphones |
US11715453B2 (en) | 2019-12-25 | 2023-08-01 | Ultraleap Limited | Acoustic transducer structures |
US11816267B2 (en) | 2020-06-23 | 2023-11-14 | Ultraleap Limited | Features of airborne ultrasonic fields |
WO2022058738A1 (en) | 2020-09-17 | 2022-03-24 | Ultraleap Limited | Ultrahapticons |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3465088A (en) * | 1966-05-31 | 1969-09-02 | Hammond Corp | Musical instrument percussive keyer with variable signal decay |
US3516321A (en) * | 1967-01-19 | 1970-06-23 | Baldwin Co D H | Electronic piano |
US3562400A (en) * | 1968-02-20 | 1971-02-09 | G C Electronics Inc | Percussion keyer with pedal sustain for electronic musical instrument |
US3848142A (en) * | 1972-03-22 | 1974-11-12 | Nippon Musical Instruments Mfg | Envelope signal forming circuit |
US4200022A (en) * | 1978-06-20 | 1980-04-29 | The Wurlitzer Company | Envelope control causing damper effect on percussive voices of electronic musical instrument |
KR940001090B1 (ko) * | 1987-10-02 | 1994-02-12 | 야마하 가부시끼가이샤 | 악음신호 발생장치 |
-
1992
- 1992-02-27 JP JP04176092A patent/JP3243821B2/ja not_active Expired - Fee Related
-
1993
- 1993-02-24 US US08/022,331 patent/US5422431A/en not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220098265A (ko) * | 2014-09-09 | 2022-07-11 | 울트라햅틱스 아이피 엘티디 | 햅틱 피드백을 변조하는 방법 및 장치 |
KR20230020026A (ko) * | 2014-09-09 | 2023-02-09 | 울트라햅틱스 아이피 엘티디 | 햅틱 피드백을 변조하는 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
JP3243821B2 (ja) | 2002-01-07 |
US5422431A (en) | 1995-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3243821B2 (ja) | 電子楽器 | |
JPH0347519B2 (ja) | ||
JP2792368B2 (ja) | 電子楽器 | |
US5286916A (en) | Musical tone signal synthesizing apparatus employing selective excitation of closed loop | |
JP5142363B2 (ja) | 成分音合成装置及び成分音合成方法。 | |
JPH04234094A (ja) | 電子楽器 | |
US5221803A (en) | Tone signal generation from fewer circuits | |
JP2701177B2 (ja) | 楽音発生装置 | |
JPS6211357B2 (ja) | ||
JP2725479B2 (ja) | 電子楽器 | |
US5403969A (en) | Electronic musical instrument of delayed feedback type | |
JP3039311B2 (ja) | 電子楽器 | |
JP2537340B2 (ja) | 楽音発生装置 | |
JPH096351A (ja) | 電子弦楽器 | |
JPH08137470A (ja) | 楽音信号の周波数特性制御装置 | |
JP3018620B2 (ja) | 電子楽器 | |
JPH0155469B2 (ja) | ||
JPH0659669A (ja) | 楽音発生装置 | |
JP2705422B2 (ja) | 電子楽器 | |
JP3649906B2 (ja) | 電子楽器のキーオンディレイ効果付加装置 | |
JPH05134671A (ja) | 電子楽器 | |
JPS6137639B2 (ja) | ||
JP2606459B2 (ja) | 電子楽器のタッチレスポンス装置 | |
JPH05181479A (ja) | 電子楽器の発音チャンネル割当装置 | |
JPH0748160B2 (ja) | 電子楽器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20010925 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071026 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081026 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091026 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101026 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101026 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111026 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |