基本的にはNE555を使ってGate信号から2つのH/Lの状態を作り出し、アナログ処理部の充放電によってADSRのエンベロープを生成しています。
EGのアナログ処理部のシミュレーション
シミュレーション回路図
「Attack」と論理反転した「InvAttack」と「Gate」の3つの論理値でアナログ処理部を制御します。
ADSRは「Rattack」「Rdecay」「Rsustain」「Rrelease」の4つのR値で設定します。
Q3は「InvAttack」信号によりスイッチング動作させるために入れています。NE555を使う場合はこのTrはNE555に内蔵されていて、Q3のコレクタがDischage端子に出ています。
入出力波形
NE555を使う場合は、V(attack)と、V(invattack)によるスイッチングがNE555から出力されます。
C1に流れる電流
I(R2)(緑の線)はAttack時にRattackからC1に流れ込む電流、I(R1)(青の線)はDecay時にC1からRdecayを通して流れ出す電流、I(R3)はRelease時にC1からRreleaseを通して流れ出す電流です。
Q3がONのときR4とR5の分圧でSustainレベルが設定されていて、Decay時に流れ出す電流I(R3)(赤色の線)はC1の電位がSustainレベルになるとストップします。
I(C1)(マゼンタの線)はC1の充放電のようすです。この充放電によってC1の電位V(out)の電位が変化しています。
作戦検討
このアナログ処理部に、Gate信号から、NE555か、楽をするためにマイコンで作った論理値を入力してもいけそうな気がします。
Nucleoで最初から最後までプログラムで処理して内蔵DACから出力する方法もあります。(時定数はプログラムで)
簡単に表で比較してみます。
エンベロープ・ジェネレーターの実装方法比較
方法 | 回路規模 | クロックノイズ | デジタル歪 | 柔軟性 |
---|---|---|---|---|
555+Analog | 大 | なし | なし | 小 |
マイコン+Analog | 中 | あり | なし | 中 |
Nucleo | 小 | あり | あり | 大 |
555は論理値を出力すると言ってもクロックを使わないのでクロックノイズは乗りません。マイコンの場合は実際の波形生成はアナログ回路で行うのでデジタル歪(波形のガタガタ)は乗りません。Nucleoの場合は出力にLPFを入れたりするぐらいで回路規模が小さく、プログラムを書き換えれば任意の波形が出せそうなので柔軟性は高いと思います。
悩ましいところです(^q^;;;
メモ:
検証はしていませんが、エンベロープ・ジェネレーターの回路は他にも、「フリップ・フロップとアナログスイッチを使ったもの」や「オペアンプを使ったもの」などがあるようです。Minimoogはなんとフルディスクリートでやっている(@@?
0 件のコメント:
コメントを投稿