電圧制御のエンベロープジェネレータを開発中ですが、今のところすべてマイクロプロセッサで計算して値を出力する予定。現実的ですがもうちょっとアナログでやれないのかとも考えました。以前から何度か挑戦しているんですが。アナログ式は難しいです。
前回検討した時には、簡易的な指数関数回路を使いましたが、あまりうまくゆきませんでした。確か、エンベロープの遷移の最短と最長の差があまり大きくならないのが最大の問題でした。どういうことなのか。シミュレータでちょっと調べてみました。いろいろとパラメータを調整してみましたが直線性と変化のレンジのバランスはこの辺が精いっぱいです。最小と最大で数百倍というところでしょうか。これでは全然足りず、充放電回路もシミュレーションしてみましたがやはり実用にならなさそうです。
ということで、もっときちっとした指数関数回路を使ってみましょう。
今度は直線性がずっと良いし制御電流のダイナミックレンジも1000倍を超えています。もっと大きなダイナミックレンジも取れましたが大きすぎるのもダメなのでの1000倍です。この回路ならいけそうな感じがします。ではこれを充放電回路と組み合わせてみましょう。制御するならマイクロプロセッサでやると思うので、制御電圧も充放電入力も 0 – 5V で設計しています。以下が制御電圧を最大 (5V) にした時の遷移
こちらは、制御電圧を中天にした場合 (2.5V)
こちらは最小にした場合です。
これなら使えそうな気がします。でもこれをマイクロプロセッサで制御するとなると結構面倒な回路になるしプログラミングはそれほど複雑にはならなさそうですが、PWM 出力を 2ch 占有するのはどうにもよろしくないような気もします。あとアタックからディケイへのフェーズ切り替えに比較機を外付けしないといけないし(プロセッサにも内蔵していますが AD 変換器と共有なのでタイミング制御にはちょっと使いたくない)、エンベロープをもっと複雑にしたかったらその比較機にも制御信号をぶち込まないといけないわけで、どうにも中途半端な感じがします。むしろアナログシーケンサみたいなものとつなげたほうがおもしろくならないかな?
ということで、回路を組むところまではやらないと思いますが検討にかなりの時間がかかったので記録に残しておきます。何か別のモジュールを思いついた時のために。