色んな用途で使う予定があって、電圧制御エンベロープジェネレータの設計の基礎検討をしています。
エンベロープジェネレータ回路は、アナログシンセサイザーの中では単純なほうですが、通常の単純な設計では電圧制御ができません。コンデンサへの充放電の速さを制御することで振る舞いを変えるので、可変抵抗器を使えば簡単に作れてしまうのですが、もっと速く細やかな制御をしたいときには可変抵抗の抵抗値で、というのはちょっと不都合です。そういうわけで電圧制御の必要性が出てきます。
電圧制御式のエンベロープジェネレータを作るには色々なアプローチが考えられます。いくつかを実際に試作して検討する予定ですが、まずはアナログ式を試してみました。
アナログ式では、可変抵抗に OTA を使ってみます。OTA で積分回路を組み、リニアカーブの過渡電圧発生器を作る例は良く見かけますが、ここでは自然な音量変化を目指して、指数カーブになるように設計します。
充放電回路
エンベロープジェネレータの指数関数カーブは、RC 充電回路を使うのが一般的です。で、R のところを可変抵抗器にすれば速くしたり遅くしたりできる、というわけですが、電圧制御する場合可変抵抗器を使うわけにはゆきません。そこで、OTA を抵抗器に見立てて RC 充電回路を組みます。Iabc によってトランスコンダクタンスを変えると抵抗値も変わるので、それで充放電のスピードを調整しよう、というのが狙いです。
これで実際に指数関数カーブの充放電ができるかどうかシミュレータで確認です。
大丈夫そうです。パチパチ
制御電圧と充放電時間の関係
計算式を展開して確認するのをさぼってしまいましたが、充放電の時定数は、OTA の制御電流と反比例するはずです。つまり普通に制御電圧回路を組むと時定数は制御電圧に反比例するわけで、どうもこれは使いにくそうです。
それでは、ということで、制御電圧と電流の関係を指数関数にしてみました。こんな感じになるはずです。制御電圧を増やすと指数関数的に制御電流が減るように反転させる想定です。
いい感じです。これで行くことにしましょう。ということで、試作モジュールはアンチログ回路つきです。
アナログ式電圧制御エンベロープジェネレータ回路
以上を踏まえて、Analog2.0 のエンベロープジェネレータを強引に以下のように改造しました。結果、冒頭の写真のようなひどい基板になってしまいました。
ちゃんと思惑通りに動くか確認するためのとりあえず回路なので、実用なんて話にならない、という程度のできです。
さて、試作回路を動かしてみたところ、とりあえずちゃんと想定どおりに動きました。
ではこの回路を採用?かというと、可能性は低いです。
利点(比較対象がないけど多分):
- カーブが自然で、ディジタル式独特のいやなじゃりじゃり感がない
ぐらいかな?うーむこれだけ?でも音だけとるとそうとう良い感じです。
欠点(比較対象がないけど多分):
- 回路がえらく複雑で部品点数が多い
- スムーズに動かすにはかなり調整が必要そう。
- ADSR であきたらず例えば AD1D2SR みたいなことをしようと思うと、もっともっと回路が複雑になる。ようは拡張性が低い。
- 拡張性がらみで、この回路をリニア式にさらに改造しようと思うとまたさらに複雑な改造が必要になってしまう。
ということで、製作面での欠点が多そうです。
アナログ式の検討はひとまずここまでです。