【実施例1】
【0013】
図1に、楽音のエンベローブを示す。エンベローブは、アタックA1,ディケイD1,サステインS1,リリースR1で構成される。電子楽器(シンセサイザやエフェクタ)のエンベローブジェネレータでは、操作者の操作(操作パネル上のツマミやキーボードへの入力)に従ったアタックレベルに対応した電圧V
AL、アタック時間ATに対応した電圧V
AT、ディケイ時間DTに対応した電圧V
DT、サステインレベルに対応した電圧V
SL、リリース時間RTに対応した電圧V
RT、および、キーボードを押している時間に対応したサステインレベルを維持する時間などを入力とし、エンベローブを示す電圧V
EGを生成する。エンベローブジェネレータは、バッファ、バッファの入力に一端が接続されて他端が接地されたコンデンサ、コンデンサの電圧を制御する充放電回路で構成され、バッファの出力が生成されたエンベローブを示す電圧V
EGである。
【0014】
以下では、アタックを生成する充電回路と、ディケイ、サステイン、リリースを生成する放電回路とを説明し、その後で充電回路と放電回路を組み合わせたエンベローブジェネレータについて説明する。
【0015】
<充電回路>
図2に本発明の充電回路の機能構成例を示す。充電回路100は、入力された電圧を示す電圧を出力するバッファ160の入力に一端が接続され、他端が接地されたコンデンサ150に電荷を充電する。充電回路100は、指数変換部105と、充電後の電圧に対応した充電レベル電圧(V
Lボルト)を入力する充電レベル点131と、充電時間に対応した充電時間電圧(V
Tボルト)を入力する充電時間点133と、バッファ160の出力電圧(V
EGボルト)を入力する帰還点135と、コンデンサ150に充電する電流が通過する充電電流通過点134と、正の電源101と接続される正バイアス点132と、指数変換部105と帰還点135の間に接続された電流調整用抵抗125(R
EGオーム)を有する。なお、充電レベル点131、正バイアス点132、充電時間点133、充電電流通過点134、帰還点135は、「点」と表現しているが、端子のように識別できるものでもよいし、配線上の一部のように明確な「点」として識別できないものでもよい。また、充電回路100の説明では表現を一般化しているが、充電レベル電圧V
Lがアタックレベルを示す電圧V
ALに対応し、充電時間電圧V
Tがアタック時間ATを示す電圧V
ATに対応している。ただし、通常はV
L>V
ALに設定しており、制御手段によってアタック時間ATの間充電する(
図1参照)。また、電圧V
ATはアタック時間ATを決めるものではなく、電圧V
ATはアタック時間ATに対応したエンベローブを生成するための充電時の時定数を決めるものである。時定数については、後述する。
【0016】
指数変換部105は、いわゆるアンチログ回路であり、充電時間に対応した充電時間電圧(V
Tボルト)を指数変換する。具体的には、次のように構成すればよい。指数変換部105は、NPN型トランジスタ111、PNP型トランジスタ112、レベル用抵抗121、バイアス用抵抗122、時間用抵抗123、コレクタ用抵抗124を有する。そして、NPN型トランジスタ111のコレクタとPNP型トランジスタ112のエミッタを充電レベル点131に接続する。NPN型トランジスタ111のエミッタとPNP型トランジスタ112のベースを接続する。NPN型トランジスタ111のベースとコレクタの間に、レベル用抵抗121を接続する。NPN型トランジスタ111のベースと正バイアス点132の間に、バイアス用抵抗122を接続する。NPN型トランジスタ111のベースと充電時間点133の間に、時間用抵抗123を接続する。PNP型トランジスタ112のコレクタと充電電流通過点134との間に、コレクタ用抵抗124を接続する。PNP型トランジスタ112のベースと帰還点135との間に、電流調整用抵抗125が接続される。
【0017】
このように構成すると、充電電流通過点134には、
((V
L−V
EG)/R
EG)・e^(k・V
T)
の電流が流れる。なお、kはボルツマン定数や温度などから決まる値である。また、バッファの出力電圧(V
EGボルト)がエンベローブの形状を示す電圧であり、端子190からの出力電圧がエンベローブの形状を示している。ここで、コンデンサ150の静電容量をC(ファラッド)、充電開始時のコンデンサの電圧V
EGを0(ボルト)、充電開始時からの時間をt(秒)とすると、
【0018】
【数1】
【0019】
のように出力電圧は変化する。つまり、時定数はR
EGC/(e^(k・V
T))である。よって、充電時間電圧V
Tに対して、エンベローブの形状を指数的に変化させることができる。なお、「指数的に変化させることができる」とは、例えば充電時間電圧を1ボルトから2ボルトに変化させたときには、時定数が100ミリ秒から1秒に変化し、充電時間電圧を2ボルトから3ボルトに変化させたときには、時定数が1秒から10秒に変化させることができることを意味している。また、電流調整用抵抗125の抵抗値R
EGで、時定数をリニアに調整できる。そして、充電レベル電圧V
Lと抵抗値R
EGを調整すれば、アタックレベルを示す電圧V
ALとアタック時間ATとを維持しながら(同じに保ちながら)、エンベローブの形状(曲がり具合)を調整できる。例えば、
図1のアタックA1とアタックA2のように、アタックレベルとアタック時間とが同じで、形状が異なるエンベローブの中から、望ましい形状のエンベローブを選ぶことができる。言い換えると、充電レベル電圧V
Lと抵抗値R
EGを適宜設計することで、充電時(アタック時)のエンベローブをどのような曲線にするのかを調整できる。したがって、充電回路100であれば、時定数を指数的に大きく変化させることと、リニアに変化させること(調整すること)が容易にでき、指数変換部105を簡易なアンチログ回路で構成できるので、充電回路全体の素子数を少なくできる。
【0020】
図3に、バッファの構成例を示す。バッファ160は、
図3(A)に示すようにオペアンプ161で構成してもよいし、
図3(B)に示すように電界効果トランジスタ162とダイオード163と抵抗164で構成してもよい。
【0021】
<放電回路>
図4に本発明の放電回路の機能構成例を示す。放電回路200は、入力された電圧を示す電圧を出力するバッファ160の入力に一端が接続され、他端が接地されたコンデンサ150から電荷を放電する。放電回路200は、指数変換部205と、放電後の電圧に対応した放電レベル電圧(V
Lボルト)を入力する放電レベル点231と、放電時間に対応した放電時間電圧(V
Tボルト)を入力する放電時間点233と、バッファ160の出力電圧(V
EGボルト)を入力する帰還点235と、コンデンサから放電する電流が通過する放電電流通過点234と、負の電源201と接続される負バイアス点232と、指数変換部205と帰還点235の間に接続された電流調整用抵抗225(R
EGオーム)を有する。なお、放電レベル点231、負バイアス点232、放電時間点233、放電電流通過点234、帰還点235は、「点」と表現しているが、端子のように識別できるものでもよいし、配線上の一部のように明確な「点」として識別できないものでもよい。放電回路200の説明では表現を一般化しているが、
図1のディケイD1のときは放電レベル電圧V
Lがサステインレベルを示す電圧V
SL、リリースR1のときは放電レベル電圧V
Lが0ボルトに対応している。また、放電時間電圧V
Tがディケイ時間DTを示す電圧V
DTやリリース時間RTを示す電圧V
RTに対応している。ただし、必ずしもV
L=V
SLやV
L=0でなくてもよく、V
L<V
SLやV
L<0に設定してもよい。
図1には、V
SLよりも低い放電レベル電圧V
DLをサステインレベルに対応した電圧、負の放電レベル電圧V
RLをリリースレベル(0ボルト)に対応した電圧として設定した例も示している。このように放電レベル電圧を放電後の電圧(サステインレベルの電圧や0ボルト)よりも低く設定し、放電時間(DTまたはRT)のタイミングで放電後の電圧になるように設定してもよい。放電レベル電圧を放電後の電圧よりも低くした場合のディケイとリリースがD2,R2である。また、放電時間電圧V
Tは、ディケイ時間DTやリリース時間RTに対応した放電時の時定数を決めるものである。
【0022】
指数変換部205は、いわゆるアンチログ回路であり、放電時間に対応した放電時間電圧(V
Tボルト)を指数変換する。具体的には、次のように構成すればよい。指数変換部205は、PNP型トランジスタ211、NPN型トランジスタ212、レベル用抵抗221、バイアス用抵抗222、時間用抵抗223、コレクタ用抵抗224を有する。そして、PNP型トランジスタ211のコレクタとNPN型トランジスタ212のエミッタを放電レベル点231に接続する。PNP型トランジスタ211のエミッタとNPN型トランジスタ212のベースを接続する。PNP型トランジスタ211のベースとコレクタの間に、レベル用抵抗221を接続する。PNP型トランジスタ211のベースと負バイアス点232の間に、バイアス用抵抗222を接続する。PNP型トランジスタ211のベースと放電時間点233の間に、時間用抵抗223を接続する。NPN型トランジスタ212のコレクタと放電電流通過点234との間に、コレクタ用抵抗224を接続する。NPN型トランジスタ212のベースと帰還点235との間に、電流調整用抵抗225を接続する。
【0023】
このように構成すると、放電電流通過点234には、
((V
EG−V
L)/R
EG)・e^(k・V
T)
の電流が流れる。なお、kはボルツマン定数や温度などから決まる値である。また、バッファの出力電圧(V
EGボルト)がエンベローブの形状を示す電圧であり、端子190からの出力電圧がエンベローブの形状を示している。ここで、コンデンサ150の静電容量をC(ファラッド)、放電開始時のコンデンサの電圧V
EGをV
0(ボルト)、放電開始時からの時間をt(秒)とすると、
【0024】
【数2】
【0025】
のように出力電圧は変化する。つまり、時定数はR
EGC/(e^(k・V
T))である。よって、放電時間電圧V
Tに対して、エンベローブの形状を指数的に変化させることができる。また、電流調整用抵抗225の抵抗値R
EGで、時定数をリニアに調整できる。そして、放電レベル電圧V
Lと抵抗値R
EGを調整すれば、サステインレベルを示す電圧V
SLとディケイ時間DTとを維持しながら(同じに保ちながら)、エンベローブの形状(曲がり具合)を調整できる。例えば、
図1のディケイD1とディケイD2のように、サステインレベルとディケイ時間とが同じで、形状が異なるエンベローブの中から、望ましい形状のエンベローブを選ぶことができる。言い換えると、放電レベル電圧V
Lと抵抗値R
EGを適宜設計することで、放電時(ディケイやリリースの時)のエンベローブをどのような曲線にするのかを調整できる。したがって、放電回路200であれば、時定数を指数的に大きく変化させることと、リニアに変化させること(調整すること)が容易にでき、指数変換部205を簡易なアンチログ回路で構成できるので、放電回路全体の素子数を少なくできる。
【0026】
<充電回路と放電回路の共通点>
充電回路100と放電回路200では、電流調整用抵抗125,225は、指数変換部205(いわゆるアンチログ回路)の絶対値を調整する部分であり、放電電流通過点134,234に流れる電流は、電流調整用抵抗125,225の抵抗値R
EGに反比例して変化する。そして、出力(コンデンサ150の電圧と同じ)につながっているので、電圧の変化は指数カーブとなる。言い換えると、電流調整用抵抗125,225の抵抗値R
EGを大きくしたときの回路の振る舞いと、コンデンサ150の容量を大きくしたときの回路の振る舞いは同じである。したがって、電流調整用抵抗125,225の抵抗値R
EGを大きくすることで、コンデンサ150を小さくすることも可能である。また、充電回路100と放電回路200では、充電レベル電圧または放電レベル電圧と電流調整用抵抗125,225の抵抗値R
EGを調整することで、上述のようにエンベローブの形状を変えることができる。
【0027】
<エンベローブジェネレータ>
図5に本発明のエンベローブジェネレータの機能構成例を示す。エンベローブジェネレータ10は、バッファ160、バッファ160の入力に一端が接続されて他端が接地されたコンデンサ150、1つの充電回路100と2つの放電回路200−1,200−2と選択部300とを備える。選択部300は、制御部310を備えている。コンデンサ150は、充電回路100が電荷を充電し、放電回路200−1が電荷を放電し、放電回路200−2が電荷を放電する共通のコンデンサである。バッファ160は、充電回路100の帰還点135と、放電回路200−1の帰還点235−1と、第2放電回路200−2の帰還点235−2に出力電圧を入力する共通のバッファである。エンベローブジェネレータ10では、充電回路100の充電レベル電圧がアタックレベルに対応した電圧、充電回路100の充電時間電圧がアタック時間に対応した電圧、放電回路200−1の放電レベル電圧がサステインレベルに対応した電圧、放電回路200−1の放電時間電圧がディケイ時間に対応した電圧、放電回路200−2の放電レベル電圧がリリースレベル(0ボルト)に対応した電圧、放電回路200−2の放電時間電圧がリリース時間に対応した電圧である。
【0028】
選択部300は、充電回路100の充電電流通過点134と、放電回路200−1の放電電流通過点234−1と、放電回路200−2の放電電流通過点234−2と、コンデンサ150の一端と接続される。選択部300は、充電回路100がコンデンサ150に電荷を充電する状態、放電回路200−1がコンデンサ150から電荷を放電する状態、放電回路200−2がコンデンサ150から電荷を放電する状態、充電も放電もしない状態を選択する。制御部310は、バッファ160の出力を監視しながら、操作者の操作に従って、上述の制御を行えばよい。選択する具体的な手段は、アナログスイッチのような電子的なスイッチまたはリレーのような機械的なスイッチによる切り替えでもよいし、ダイオードなどを組み合わせた電気的な切り替えでもよい。
【0029】
図6に、選択部300の内部構造の例も示した本発明のエンベローブジェネレータの構成例を示す。選択部300は、6つのダイオード321〜326と制御部310を備える。制御部310は、出力電圧が高い状態と低い状態の2つの状態を選択できるアタック制御端子311、ディケイ・サステイン制御端子312、リリース制御端子313を有する。ダイオード321のアノードとダイオード322のアノードと充電回路100の充電電流通過点134が接続される。ダイオード323のカソードとダイオード324のカソードと放電回路200−1の放電電流通過点234−1が接続される。ダイオード325のカソードとダイオード326のカソードと放電回路200−2の放電電流通過点234−2が接続される。ダイオード321のカソードとダイオード323のアノードとダイオード325のアノードとコンデンサ150の一端とが接続される。ダイオード322のカソードが制御部310のアタック制御端子311に接続される。ダイオード324のアノードが制御部310のディケイ・サステイン制御端子312に接続される。ダイオード326のアノードが制御部310のリリース制御端子313に接続される。
【0030】
アタック制御端子311とディケイ・サステイン制御端子312とリリース制御端子313の出力電圧のすべてが高い状態のときに、充電回路100がコンデンサ150に電荷を充電する。アタック制御端子311とディケイ・サステイン制御端子312の出力電圧が低い状態で、リリース制御端子313の出力が高い状態のときに、放電回路200−1がコンデンサ150から電荷を放電する。アタック制御端子311とリリース制御端子313の出力電圧が低い状態で、ディケイ・サステイン制御端子312の出力電圧が高い状態のときに、放電回路200−2がコンデンサ150から電荷を放電する。また、アタック制御端子311の出力電圧が低い状態で、ディケイ・サステイン制御端子312とリリース制御端子313の出力電圧が高い状態のときに、コンデンサ150には充電も放電もされない。
【0031】
出力電圧が「高い状態」、「低い状態」とは、ダイオード321〜326に順方向の電流が流れるか流れないかを切り替える程度の「高い状態」と「低い状態」を意味している。具体的には、コンデンサ150の一端が取り得る電圧以上の電圧が「高い状態」であり、取り得る電圧以下の電圧が「低い状態」である。例えば、アタック制御端子311の出力電圧が低い状態では、ダイオード322には順方向に電流がなられる状態なので、ダイオード321のアノードの電圧も低い状態になる。したがって、ダイオード321には電流が流れないので、スイッチを切った状態と同じになる。つまり、アタック制御端子311の出力電圧を低い状態にすると、充電回路100は切り離されて状態と等価になる。逆に、アタック制御端子311の出力電圧を高い状態にすると、ダイオード322には電流が流れない(切断されたのと等価になる)。したがって、ダイオード321に流れる電流は充電回路100でコントロールできる。ディケイ・サステイン制御端子312の出力電圧を高い状態にすると、ダイオード324に電流が流れ、ダイオード323のカソードの電圧が高い状態になる。したがって、ダイオード323には電流が流れない。つまり、放電回路200−1は切り離された状態と等価になる。逆に、ディケイ・サステイン制御端子312の出力電圧を低い状態にすると、ダイオード324には電流は流れない(切断されたのと等価になる)。したがって、ダイオード323に流れる電流は放電回路200−1でコントロールできる。リリース制御端子313は、ディケイ・サステイン制御端子312と同じである。
【0032】
本発明のエンベローブジェネレータによれば、本発明の素子数を少なくできる充電回路と放電回路で構成できるので、全体の素子数を少なくできる。よって、ディスクリート回路で構成してもコストを低減できる。また、選択部300を、ダイオードを用いた構成にすれば、機械的な構成品を用いる必要もなくなる。したがって、ディスクリート回路で構成したときでも、小型かつ低コストに製造しやすい。