Chorus / Flanger


BBDが手に入ったのでコーラス/フランジャを作って見る。 (まるで旬のものが手に入ったから料理したみたいなかんじだなあ)

コーラス/フランジャはそれぞれ、ディレイ系のエフェクタだ。
ディレイタイムが入力されるオーディオ信号の1周期より短いとフランジャになる。たとえば、ギターなら、最低音は83Hz、一番高い音は2オクターブ上として333Hz、(音程と周波数の対応表というページが参考になる)。これは音程を決めている周波数で、音色に関して重要なのはもっと上、フェイズシフターを作った経験から1kHz周辺と考えれば、1ms(1kHz)から、0.25ms(2オクターブ上、周波数で4倍の4KHzあたり)程度遅れた音を元の音と混ぜることで、打ち消し合いが起きて音色つくりに強力なフィルターが形成されるんんじゃないかと想像する。
このf特カーブは、細かい間隔で沢山のピークとディップがまるでくし型を描くことからくし型フィルター(comb filter、残念ながら昆布じゃない、コームフィルタ)と言われる
一方、コーラスはこれよりディレイタイムが長くて、フィルターを形成することができなくなり複数の音が重なっているように聞こえる。

フランジャの場合、ディレイタイムを揺らすと、フィルタがf特カーブの上を左右に動き、独特の回転間のあるモジュレーションが得られる。フェイズシフターもちょっと違った原理だけどネタ音と混ぜることで打ち消し合いを起こさせてくし型フィルターを得るが、ピークとディップの数が、フランジャに比べ少なくのどかなのにくらべ、フランジャでは、鋭いピークとディップがたくさん並ぶ。聞感上はかなりシャープな印象になるはずだ。
一方、コーラスまでディレイタイムが長くなったところでディレイタイムを揺らすと、レコードや、テーブの回転数をずらしたの似た効果、つまり音程がずれた効果がえられる。

MN3207

MN3207 (1024 step)
DelayTime2.56ms - 51.2ms
Supply voltage4-10V
ClockRate200kHz-10kHz
S/N-73dB
THD0.4%
僕が手に入れたBBDはMN3207。現在製造中止になっており、国内では入手が難しいそうだが、セカンドソースがでており、海外通販などではまだ結構買えるらしい。最近、ライセンスを受けた海外のメーカーが再生産を始めたそうで、絶望的に入手の難しいチップではなくなってきているそうだ。 ディレイタイムは、

step /( 2 * fcp)

で計算する、fcpはクロック周波数。最速、200kHzでも2.56msということでフランジャ としてはきついかもしれない。また、クロックを10KHzとした時には、51.2ms遅れるが、クロック周波数がそのままサンプリングレートになることを考えると、f特的にはサンプリングの定理から、5kHzまでしか通らない。電話の音声並。CD並みを狙うのなら、44kHzでディレイタイムは11ms。
設計仕様
DelayTime2.56ms - 51.2ms
frequencyResponse成り行き〜12.5kHz
ClockRate200kHz-25kHz
まあ、CD並みの周波数特性はオーバースペックとしても、MP3並みの16kHzで十分と考えるならクロック周波数は32kHzmディレイタイムは16.5ms。キリのいいところでディレイタイムを20msまでとするなら、25kHz。f特の上限は12.5KHz。
とりあえず、ディレイタイムは、2.56msから20ms。同じ回路を並列にして、ディレイタイムを1mS以下にしないと、フランジャー効果は得られない気がする。

クロックは、かなり正確な矩形波、しかも、逆相のものも同時に必要なので、2倍の周波数を発振して、50kHzから400kHz、これをフリップフロップを通して位相の反転した矩形波を得る。4オクターブだから、オーディオ帯域のVCOの経験的には周波数が高い以外は問題なさそう。
BBDが原理的にサンプリングと一緒なので入力にはエイリアスノイズが出ないように、出力にはクロック漏れを切るためにフィルターが必要になる。(詳細は、filterの最適化参照)

フィルター

このプロジェクトの隠れた目的には、フィルタの動作に対する理解もあった。
完全理解は遥か彼方としても、今、なんとなく使える程度のレベルアップを図をりたい。まずは、自分が必要とする仕様を満たす定数の決定方法を理解する。僕はJKP's ROOMに紹介されている

低周波L.P.F.

というページで勉強した。フィルターは

  • カットオフ
  • Q
  • 位相
が考察のポイントになる。
カットオフ周波数は、比較的簡単に計算できる。切れ具合は何段重ねるかに支配されてて、1段ごとに-6dB/Oct。4段なら4倍の-24dB。
抵抗とコンデンサ1本づつ組合わせて形成するパッシブフィルターにはないけど、オペアンプなどを組合わせたアクティブフィルターには、かならず、Q(クオリティーのことらしい)がでてくる。特性が変化する部分(肩という)形を表現している。数字が小さければ、なで肩、大きくなれば錨肩になる。
この肩の形には色々あるのだろうけど、バタワース、ベッセル、チェビシェフという名前がついた代表的なモノがある。それぞれの詳細は、上記低周波L.P.F.の一番下、→フィルタの特性名称についてに紹介がある。
位相についてはまだ勉強が足りなくて全然わかんない。ここでは完全に保留しておく。
低周波L.P.F.を参考にいろいろ計算するのに便利な(実際自分で電卓を叩く手間を軽減するだけだけど)スクリプトも用意した。

sallen-key Filter Design Assistant

使い方としては、フィルタの特性をバタワース、ベッセル、チェビシェフのうちどれかを選ぶ。画面に出てる回路が2段分。これを2つ重ねれば、4段。別途

http://www.aleph.co.jp/~takeda/radio/tube/assistant/efw.swf

バタワース4次フィルタ 12kHz -24dB
1段目fc1=12.25k2段目fc1=12.98k
Q=0.57Q=1.30
C1=200pC1=680p
C2=150pC2=100p
R1=75kR1=47k
で設計したパッシブフィルターを追加すれば奇数段のフィルターも作れる。
パッシブフィルター設計支援ツールで表示される、f特グラフの計算は、簡易なもので実現したので、肩の部分の特性は実際にはもっとシャープになるはず。難しい漢字は飛ばして読める平仮名だけで夏目漱石を読んでいるようなもの、という前提で、利用して下さい。
2次フィルタ設計支援ツールは、フィルタの特性でそれぞれ計算で出てくるカットオフ周波数にバイアスを掛けるので、カットオフ周波数や、Qの数値が狙った特性になるように手に入る抵抗やコンデンサの値を入れて試行錯誤する


ベッセル4次フィルタ 12kHz -24dB
1段目fc1=12.51k2段目fc1=12.47k
Q=0.57Q=1.82
C1=200pC1=1n
C2=150pC2=75p
R1=105kR1=75k
Qの値は、Flashの画面に有る通り、C1とC2の比で作る。1より大きな値にしたければC1を(C2と比べて相対的に)大きな値に設定する。Qの値が決まったらおもむろに抵抗値を変えて周波数をあわせる。 特殊な値のコンデンサを捜すより、抵抗値を変える方が自由度は高い。フィルターを構成する部品のうち、コンデンサの値は大変重要なポイントだが、一般にコンデンサの値の誤差は10%から15%と、他の電子部品に比べてかなりでかい。シビアな数字を出しても余り意味が無いかもしれない。

動作の障害になるごみを取り除くのだからざっくり切れたほうがよさそうなのだけど、現状ではこのアプリケーションに使うにはどの特性が一番いいのかは分からない。
クロックジェネレーター、フィルターにそれぞれ、VCO、VCFを使いこれを同時に制御すれば、全域で、精一杯のf特が得られる。高い周波数に有効な、スイッチドキャパシタ式というフィルターも有るそうだ。ようするに、サンプルアンドホールドを高速でスイッチングして高い周波数は通さなくするというローパスフィルタ。良く考えたらBBDなんか、そのまんまスイッチドキャパシタフィルタな気がする。結局ローパスフィルタが追加で必要になるんじゃないかな?とか。

まずはセオリー通り、ローパスフィルタの実装の勉強と言う事で、とりあえず、上記の表のような定数をひねり出してみた。


次に進む

ホームメイドシンセのトップページに戻る
武田のホームページに戻る

"Chorus/Flanger" Copyright 2004, Motohiko Takeda, Crow Hill Laboratory
Motohiko Takeda Mail:takeda@aleph.co.jp