普段の製作で VCA が必要になると Analog2.0 のものを使ってきました。仕様上は手前味噌ながらバランスよくできていて使いやすいのですが、音は正直改善の余地があるなと考えています。書籍に入れてしまったので気軽には変えられないのですが、新たに Analog3 プロジェクトに使う VCA を考えるところから再検討を始めようかなと考えています。
主な不満点は二点
- 調整箇所が多すぎる (3か所もある)
- 音がもさったい (歪んでる?)
あともう一つ、Analog3 は最初の版ではデュオフォニックで組み、ゆくゆくはポリフォニックにしたいので、CV や信号を可変抵抗に通すことは避け、全て電圧制御する必要がありますが、そのためのパッケージングをどうするかまだ悩んでいるのでとりあえずは可変抵抗を省いて音処理のモジュールだけ考えることにします。
ということで、こんな回路にしようかなと考えていたのがこれです

部品点数も少ないし、特にオペアンプ 一個だけというのはうれしいです。シミュレータでも動くことを確認したし、やってみよう、とブレッドボード上に組んでみました。確かに動作します、が、何か変です。音は出るのですが、オフセットがどうしても取れず、CV 漏れが盛大に出ます。どうにも手に負えず仕方なく回路をいったん全部バラして出力段から順に一個一個動作確認しながら組みなおしてみたら、やっと原因がわかりました。R2 と R3 の上側が出力の差動増幅器に繋がっていますが、この電圧が、CV=0 の時、Q6 と Q7 は絶縁状態ですから R10、R11 と分圧して約-11V になっています。これが低すぎでオペアンプが正常動作していないわけです。シミュレータではそんなの出てきません。シミュレータに頼りすぎてはだめですね。どういうことかというと、以下が TL072 の回路図ですが

入力が P-JFET なので、ソース電圧が入力電圧よりも低いことが必要で、ゲート電圧が VCC- に近いと正しくバイアス電圧が取れないのが問題なようです。回路図を見て注意深ければ気が付くわけですが、ちゃんとデータシートに書いといてよー、と思ったら、Common-mode input voltage range として書いてありました。電源 +-15V で最低限 +-11V、通常は -12V から 15V までと。僕が知らなかっただけでした。もしかして常識?
回路図から理解した限り上は天井まで行ける気がしますが、まあでも設計時には最低限の方を考慮したほうが良いのでしょう。実際にはどうなのか測定してみました。以下の回路の入出力を測定します。抵抗値は実測値です。

この回路の出力がどうなるか、数式はけっこうややこしくこんなになります
ややこしいですが、R1P/R2P = R1N/R2N ならば Vout は 0 になります。これを期待値として、実測値と並べてみましょう

やはり上側は大丈夫ですが、下側は -10V を下回ったあたりからおかしくなります。次に、実測値と予想値の差を見てみましょう。データが暴れる部分は邪魔ですから切り除いて

そこそこ近い値になりました。この検討からわかったことは
- コモンモードを使う場合、正の電圧を使った方が無難
- オフセットを小さく抑えるにはコモンモード電圧を 0 V の近くに置くのが有効
これを踏まえて VCA 回路を考え直してみました。回路全体の極性をひっくり返して、作動増幅器に正のコモンモード電圧が入るようにしたのと、コモンモード電圧が低くなるように、Q6 Q7 のゲインブロックの天井を低くしたのが変更点です。天井はとりあえず 2.5V に設定。本当は 0V 近くにしたいのですが、この VCA は DC アンプなため入力はどうしても 0V 近傍にしないといけないので、 Q6 Q7 のコレクタ電圧はある程度 0V より上でないといけません。

まずはシミュレータで確認。ゲインブロックの天井はこの高さで大丈夫みたいです。多分 2V ぐらいまでは問題なく下げられそうですが少し余裕を持たせています。

回路を実際に組んでノコギリ波を入れてみました。ただ、D2・D3 の歪み補正ダイオードの効果を見たいので、まずはダイオードをつけずに組みました。-4V – +4V のノコギリ波を入れてみました。青線が入力、赤線が出力です。

この VCA は入力は -8V – 8V までを想定していますが、手持ちのオシレータの出力は +-4V です。手っ取り早く VCA の入力抵抗をいじって、疑似的に 8V の入力となるようにしてみました。

入力:ノコギリ波 疑似 -8V to 8V CV: 固定電圧 (歪み補正ダイオードなし)
やはり歪むようです。実はシミュレータでもこういう結果で知ってはいたんですけど。そこで補正ダイオードを入れてみます。

波形は、近くなったかな?ゲインを調整してもっとぴったり重ねてみましょう

あれなんか、上下にずれてますね。変なオフセットが出てしまったようです。補正ダイオードは OTA の LM13700 が元ネタですけれども、そちらの推奨回路でもオフセットを調整するように書いてあります。先日エンベロープ・ジェネレータに 13700 を取り付けた時も同様にオフセット調整が必要でした。
これはいけません。補正ダイオードをつけないことにしましょう。どうするか?入力の振幅を今より小さくすれば歪まないはず。ということで、回路定数を再調整して同じように疑似的に 8V を入れてみました。

んー少し、歪んでいるように見えますが、現実 8V もの入力を入れるのはやりすぎですから目をつぶりましょう。+-4V ぐらいにしておけば歪みももっと少ないでしょう。
念のため、CV の直線性も見てみます。ノコギリ波を CV の方に入れて、VCA の入力には直流電圧を入れます。

いいようです。CV 漏れもないか確認してみます。CV はそのままに入力を 0V に落とします。

オシロスコープで観測した限りないみたいです。このあと音でも聞いてみましたが特にボツボツいわなかったので大丈夫でしょう。
というわけで、現状の回路はこんなです。

部品がちょっと増えてしまいましたがいたしかたありません。無調整で動きますが、作るときにいくつか注意点があります。
- Q5・Q6 と Q8・Q9 のペアはマッチングがとれてないといけない。
今回は BC547 ではなく手元にあったペアトランジスタを使いました。 - R2 と R3 また R10 と R11 の値は揃える
0.1% ぐらいの誤差に収めました
そして試運転。ランプ波にフィルタをかけずに VCA に入れ、エンベロープジェネレータで音量加工です。音はもっとたくさん曲の中で使ってみないと本当のところはわかりませんが第一印象は良いです。
振幅の一番大きいところの録音波形を確認しました。特に波形がクリップすることもなく再生されています。

以上、素直に OTA を使えば?と言われちゃいそうですが、OTA は電流出力なので結局は出力バッファつける必要があるし、CV を制御電流に変換しないといけないのも同じだし、と色々周辺回路が必要なので、まあそんなに大差ないです。なにより手作り無調整 VCA やってみたかったのです。