BBD使用エフェクタについて

はじめに、ここではBBD自体の原理についての説明は他に譲って、
BBDを使用した揺れモノエフェクタについての動作機序を重点的に
説明したいと思います。

BBDを使用したエフェクタの場合、
BBDに送るクロックでバッファの出し入れを制御するわけですが、
クロックを一定とした場合には、単純にバッファに信号が入ってから
出るまでの時間(=バッファのステップ÷クロック周波数)だけ
入力信号が遅延して出力されるディレイとして働きます。

このバッファのステップについてはBBDの品種によって異なります。例えば、
MN3005/3205やSAD4096は4096ステップ
MN3008/3208は2048ステップ
MN3007/3207は1024ステップ
MN3010やSAD1024は512ステップ×2系統

このときクロックの速さを変化させると、出力される音程も変化します。
例えばアナログディレイの場合、ディレイタイムのツマミでクロックの速さを設定しているので、ディレイ作動中にこのツマミをひねると、実際に音程が変化する様子が容易に確認できます。

とはいえ、無限にクロックを速く/遅く変化させ続けるというのも無理な話(説明については下記<クロックの速度変化と音程との関係>参照)なので、次に、LFOによりクロックの速さを(適正なクロックの範囲で)周期的に変える(FM変調)ことが考えられるようになったのだと推測します。
それがコーラス/フランジャー(あとBossVB-2Vibrato等)と呼ばれるエフェクタです。

コーラスとフランジャーの違いは本質的にはあまりなく、
コーラスにおけるディレイタイムが30〜60ms程度なのに対して、フランジャーのディレイタイムは0.5〜10ms程度であること、フランジャーにはコーラスにはあまり見られないフィードバックの機能がついていることぐらいになります。

なお、一部のフランジャーでは、ディレイタイムを最小 かつ LFOの振幅を最大にした場合、LFO波形の頭でBBDの動作不良が認められる(ノイズが出力される)ことがあります。


ce2.gif
実際のコーラスの回路において、BBDのクロックをLFOでモジュレートする方法は歴史的には幾通りかあるようですが、ここではBOSS CE-2で初めて採用されて現在ではコーラス回路のデファクトスタンダードになった(ような感のある)"双曲線VCO"回路(上図)の場合を中心に、LFOの波形と音程変化の関係を考えたいと思います。


Genri1.gif
双曲線VCO回路において上図のようにLFOの波形(=クロック周波数の変化)を
sin波にすると音程の変化はcos波になり(→音が揺れるコーラス)、
三角波にすると方形波に(→音の揺れがないコーラス)、
ノコギリ波にするとグリッチを含んだ直線に(→(グリッチの大きな)ピッチシフタ)、
方形波にするとパルス波(→(グリッチの大きな)ディレイ。意味なし!)となります。

以上より、クロックの速さと音程の変化との間には、微分(差分?)の関係が認められる事となります。(この辺もう少し突っ込んだ議論は、下記<双曲線VCO回路におけるLFOの波形と音程変化の関係>参照)

ちなみにBossのコーラスは、LFOの波形をきれいな三角波にすることで、BBDの出力の音程が(コーラスの出音も)揺れるのを防いでいるとの話です。


Genri2.gif
ここで、2系統のBBDを並列に用意してそれぞれに位相の反対な三角波を送った場合、それぞれのBBDの入力が同じならば、上図のように出力の音程変化は互い違いの方形波になりますが、それら出力をミックスした場合、結果的に一定の音程で上下にデチューンされたふたつの音になります。これがいわゆるディメンションの原理です。

またデチューンされた音の片方だけ取り出せば、上のノコギリ波の場合よりはグリッチの少ないアナログハーモナイザになります。

<クロックの速度変化と音程との関係>
クロックの初速度をf0(Hz)とすると、1クロック(1ステップ)あたりかかる時間は1/f0秒になります。使用するBBDのステップ数をSとすると、音程がh倍になるためには、Sステップ後にクロックがh倍(Sステップ後の1クロックあたり時間は1/h倍)になっている必要があります。
よって、1ステップごとに1クロックあたり時間は1/h1/S倍になる計算になります。

ここで、トータル経過時間Tと、時間Tだけ経過した時の周波数f(Hz)を考えます。

T=1/f0+1/h1/S・1/f0+1/h2/S・1/f0+・・・+1/h(n-1)/S・1/f0
=(1-1/hn/S)/(1-1/h1/S)・1/f0
(等比級数の公式を使用)

このとき、1/f=1/f0・1/hn/Sなので、

∴T=1/(1-1/h1/S)・1/f0-(1/hn/S)/(1-1/h1/S)・1/f0
=(1/f0-1/f)/(1-1/h1/S)

f→∞のとき、T→(1/f0)/(1-1/h1/S)となり、有限の値に収束してしまいます。つまり、ずっと周波数をh倍し続けるという方法によるピッチシフトは、原理的に有限時間しか持続しないことになります。
(逆に、ずっと周波数を1/h倍し続ける方法によるピッチシフトは、いずれ入力信号がBBDを通り抜ける時間が∞になってしまう)

例えば、初速度f0=10kHz,音程2倍、BBDステップ数1024のとき、
T=(1/f0-1/f)/(1-1/h1/S)=0.147(秒)以上ピッチシフトを持続させることは理論上できません。

まあ、BBDのクロック周波数にも上限/下限周波数があるので、無限に周波数を上げ続ける(下げ続ける)ことなどもちろんできるわけがないのですが。


<双曲線VCO回路におけるLFOの波形と音程変化の関係>
ce2.gif

LFOによるCVはQ4でバッファリングされ、電流逆流防止用のダイオードD1を経てインバータの入力(MN3101の7ピン)の下限電位を決定します。電源電圧とこのCVによる下限電位との電位差 および R38で決まる電流が、C22に充電されます。なお、この回路のクロックジェネレータMN3101の縦列インバータ(シュミットトリガ)とC22は、リセット型VCOを構成しています。
 流れ込んだ電流がC22に充電されることにより、インバータ入力の電圧が上がります。この電圧がシュミットトリガのしきい値を超えると、出力(MN3101の5ピン)がHの状態になります。出力がONになると、Q5がONしてコレクタ電位が下がり、D2が導通してC22に溜まった電荷を放出して、結果的にインバータ入力が下限電位にリセットされ、出力もLの状態にリセットされます。

graph01.gif

この一連の動作におけるインバータの入力(MN3101の7ピン)の状態を図示したのが上図のグラフ上側です。aの傾きは単位時間あたりの充電量で、電源電圧とR38で発生する電流 および C22により決まります。(もちろんインバータ入力の電位が上がってくるとR38の両端にかかる電圧が下がるため、aの傾きもなまってくるはずですが、電源電圧がしきい値に対して十分高いならば、aはほぼ一定であると考えてしまってもよいように思います。)
充電により電圧がONしきい値V0を超えると、シュミットトリガの反応時間だけ遅れてQ5のベースに電圧がかかり、その後Q5のON時間だけ遅れてC22が放電されます。C22の放電により、入力の電圧がOFFしきい値を下回ると、出力は0Vにリセットされます。この一連の動作におけるシュミットトリガ出力は、グラフ下側のようなt0の幅をもったパルス波になりますが、外部からのCVがない場合は、上記の要因のみでこのパルス間隔tn(発振周波数の逆数)が決まります。

tn=V0/a+t0

graph02.gif

外部からのCVがある場合、 発振周波数f0≫LFOの周波数 ならば1サイクルを考えた時のCVの電位はほぼ一定と考えられます(上図の緑色の部分)。また、電源電圧≫CVの変化量 ならば、電源電圧とこのCVによりゲタをはかされた下限電位との電位差 および R38で決まる電流 ならびに 単位時間あたりの充電量aもほぼ一定と考えることができます。この場合において、LFOの波形をg(t)と置いてパルス間隔tn'を考えると、以下のようになります。

tn'=(V0-g(t))/a+t0

この時、BBDの入出力における周波数変化h(t) および 音程変化s(t)を考えると、

h(t)=fn[0]/fn[-1]=tn[-1]/tn[0]
s(t)=log(h(t))=log(tn[-1]/tn[0])

fn[0]:現在の周波数
fn[-1]:現在よりmステップ前の周波数
tn[0]:現在のパルス間隔
tn[-1]:現在よりmステップ前のパルス間隔
(m:BBDのステップ数)

ここで tn'=(V0-g(t))/a+t0 より、

tn[0]=(V0-g(t))/a+t0
tn[-1]=(V0-g(t-tn[0]))/a+t0
(t-tn[0]:現在よりmステップ前の時間)

tn[0]-tn[-1]=(V0-g(t))/a+t0-((V0-g(t-tn[0]))/a+t0)
=(-g(t)+g(t-tn[0]))/a
a(tn[0]-tn[-1])=-g(t)+g(t-tn[0])
a(tn[-1]-tn[0])=g(t)-g(t-tn[0])

∴a(tn[-1]/tn[0]-1)=(g(t)-g(t-tn[0]))/tn[0]

このとき右辺の式は、tn[0]が限りなく0に近いとすると、導関数g'(t)で近似できる。

a(tn[-1]/tn[0]-1)=(g(t)-g(t-tn[0]))/tn[0]=g'(t)
tn[-1]/tn[0]-1=g'(t)/a
tn[-1]/tn[0]=g'(t)/a+1

∴h(t)=tn[-1]/tn[0]=g'(t)/a+1

以上より、BBDのクロック周波数≫LFOの周波数 で、BBDのステップ数がそんなに長くなくて、かつ LFOの振幅がONしきい値に対して大き過ぎない場合は、fn[0]とfn[-1]の差分によりきちんとLFOの波形の接線が近似できるために、ほぼ微分の関係と捉えても問題ない状況になるのだと思います。

なお音程変化s(t)は、以下のようになります。

s(t)=log(h(t))=log(g'(t)/a+1)=log(g'(t)+a)-log(a)
∴s(t)=log(g'(t)+a)-log(a)


(この項終わり)

投稿者 fff : 05:10 PM | コメント (0)

Maxon AD900 Analog Delay

この記事は備忘的なメモです。何書いてるかわからなかったらすいません。

SA571コンプレッサー → 3段バタワースローパスフィルター(fc=3.2kHzぐらい)→BBD(MN3005×2) → 5段バタワースローパスフィルター(fc=3kHzぐらい?)→SA571エキスパンダー

特に中開けて再認識したのは、BBD×2をまとめて後段の5段ローパスフィルターに通していること。
データシートより204.8msのときクロックが10kHz(のはず)なので、300msの場合、クロックは6.8kHzぐらい。5段ぐらい急峻なフィルターじゃないとノイズを落とし切れないんだろうか(BOSS DM-2も5段だけど)。それぞれのBBDにフィルタかけなくても大丈夫なのか?

投稿者 fff : 04:10 AM | コメント (0)

ものぐさ1点アース

ffffff.JPG

アースの引き回しに悩んだらこんな手抜きな方法も・・・

まあ迷信みたいに思われがちな1点アースですが、たとえばBigmuffとかであえてめちゃくちゃなグランドラインの引き回し(2段目と3段目のエミッタ抵抗を直結してからアースに落とす、とか)をしてみたりするとわりと簡単に発振するようになるので、特にFuzzfaceやBigmuffなど電源変動の影響を受けやすいシンプルなディスクリートものの場合は意識したほうがよいと思っています。

投稿者 fff : 01:08 AM | コメント (0)

単電源から±電源を生成する方法

単電源から±電源を生成するICとして、チャージポンプICと呼ばれる一連のICが
あります。これらチャージポンプICのうち、9V以上で使用可能な型番として、
ブーストモードなしのICL7660/7662,JRC7660等の7660系と、
ブーストモードありのLTC1044/1044A/1144,MAX1044等の1044系の2系統が
広く知られております。

ちなみにICL7662(絶対最大定格22V)はICL7660の高耐圧版、
LTC1044A(絶対最大定格13V),LTC1144(絶対最大定格18V(瞬間値20V))は
LTC1044の高耐圧版になります。

電圧をダウンレギュレーションするならまだしも、トランスなしで昇圧/±反転させるとは
どういうことでしょう? 説明のため、大雑把かつシンプルな図解をしてみます。

1044_1.gif<図1>

この切り替えのスピードをスイッチング周波数と言います。
スイッチでつなぎ替えられるコンデンサC1には、電源に接続されている間電荷が蓄えられるので、
スイッチング周波数が十分高い場合には、概ね下図のような感じになります。

1044_2.gif<図2>

よって、スイッチとコンデンサC1,C2の働きにより、単電源から±電源が生成されることになります。

次に、実際の±9V生成回路を図に示します。

1044.gif<図3>

1044/1044A/1144においては図中の赤い部分を結線してブーストモードとすることができます。
ブーストモード時にはスイッチング周波数が約6〜7倍になります。
(概ね30〜40kHz程度と言ったところでしょうか)

エフェクタ等音響機器の電源として使う場合、スイッチング周波数が人間の可聴帯域
(一般に20Hz〜20kHz)にかぶるとスイッチングノイズが電源から信号経路に漏れ出てしまいます。

ブーストモード採用によりスイッチング周波数を可聴帯域外に追いやることで、
この電源由来のピーノイズを聞こえなくすることができます。
また、周波数が上がることにより、電源インピーダンスも低減されます。
(ただし電源のリプルが消えるわけではない。)

スイッチング周波数については、とにかく可聴帯域外になる もしくは
電源インピーダンスが下がることが重要で、あまり正確さを求められない
用途が多いためか、結構個体によるばらつきはあるようです。
(余談ですが、スイッチング周波数を正確にコントロールしたい場合は、
外部のオシレータを使います)

他にこれらチャージポンプICを使った倍電圧へのコンバートも可能です。
(データシートにもそのものズバリの回路が載ってたりします)
ショットキーダイオードを使うと、ダイオードによる電圧降下が多少改善されます。


実装上の注意点としては、コンパクトエフェクタ用のアダプタを使用する場合には、
耐圧10Vの1044はそのままでは使えない、ということがあります。

エフェクタに使われる9V電源アダプタには、定電圧化されていないものもあります。
定電圧化されてないアダプタでは、無負荷状態では電圧が12V程度に達することも
あるようです。(手持ちのアダプタでも実測による確認済)

この状態で耐圧10VのICL7660/LTC1044を使うと過電圧で破壊されます。このような用途の場合は、ICL7662/LTC1144を使用しないといけません。
(LTC1044は耐圧が10Vで、少々オーバーぐらいでも故障する。アダプタによっては
絶対最大定格13VのLTC1044AでもOKかも)
自分の場合、楽器内蔵用には1044を、単体のエフェクタにはLTC1144を使うことにしています。


チャージポンプICの欠点として、回路の消費電流が増えると電圧降下が顕著に現れる点
(=電源インピーダンスが高い)があります。
(例えば、LTC1144のデータシート(下記リンク先参照)に消費電流と電圧降下の相関図が出ています)

リニアテクノロジのデータシートによると、電源インピーダンスは大雑把に言って
1/(fc/2)のオーダーとのことです。(f:スイッチング周波数,c:コンデンサの容量)
f:20kHz,c:10μFのときは10Ωになる計算となります。
ただスペック上では、例えばLTC1044ではf:10kHzの場合200Ω,f:10kHzの場合60Ω
となっており、あくまでも目安と考えた方がよさそうです。

この式からすると、コンデンサの容量を増やせばいくらでも電源インピーダンスを
減少させることができそうにも思えるのですが、正確にはこの辺の議論はかなり複雑で、
内部のCMOSスイッチ自身の抵抗やコンデンサのESR等もそれなりに効いてくる
(らしい)ので、一筋縄でいかないようです。
少なくとも、コンデンサのESRが周波数によって変化する点 および 特に
スイッチング周波数が高い場合、内部のCMOSスイッチのON抵抗が効いてくる点を
考慮する必要がありそうです。

上記程度の理由ですが、一応コンデンサはESRの低いOSコンを勧めておきます。
故障モードがショートなので(タンタルと同じ)、ちょっとやな感じですが。
容量が足りれば積層セラを使っても悪くないかもしれません。

また、内部のCMOSスイッチのON抵抗が電源インピーダンスに効いてくる場合には、
ICを2個並列に使用すれば単純に電源インピーダンスも1/2になるようです。
(これまたデータシートにそのものズバリの回路が載ってたりします)

<参考>メーカーおよびデータシートへのリンク
http://www.linear-tech.co.jp/
https://www.maximintegrated.com/jp.html

http://www.linear-tech.co.jp/product/LTC1144
http://www.linear-tech.co.jp/product/LTC1044
http://www.linear-tech.co.jp/product/LTC1044A
https://www.maximintegrated.com/jp/products/power/charge-pumps/MAX1044.html

投稿者 fff : 01:43 PM | コメント (0)

1巻線ラッチングリレー使用法

latching_relay_rev.gif


コンパクトエフェクタのトゥルーバイパス化 および 自作アナログスイッチャーの切替に際して、リレーを使う方法をかなり以前から模索しておりましたが、リレー自体の電力消費の多さに二の足を踏んでおりました。(電池駆動が現実的でなくなる。しかも地球にやさしくない)

ある時、「ラッチングリレーを使うと電力消費が切り替え時だけで済む」という記事を見かけ、試してみようと思い立ったのがこの項の端緒です。


<ラッチングリレーとは>
ふつーのリレーは、コイル(電磁石)に電気を入れっぱなしにしないとSET状態を保持できません(電気を消すとバネかなんかの力でRESET状態に戻る)。SET状態を続けるためにコイルに電力をかけ続けなくてはいけない分、電力の消費がかさみます。

ところがラッチングリレーの場合は、1回コイルに(パルス状の)電気を入れると、電気を消した後も(永久磁石かなんかの力で)その状態を保持します。SET状態を続けるためにコイルに電力をかけ続ける必要はなく、その分省電力であると言えます。

ラッチングリレーには、構造上1巻線型と2巻線型があります。1巻線型はコイルがひとつしかなく、コイルに正のパルスをかけたときにSET状態,負のパルスをかけたときにはRESET状態になります。
対して2巻線型はSET用およびRESET用のふたつのコイルがあります。SET用のコイルにパルスをかけたときにSET状態,RESET用のコイルにパルスをかけたときにはRESET状態になります。
(ここでは便宜上SET,RESETという表現をしておりますが、もちろん通常のON-ONスイッチと同様、2回路の切り替えもできます)

ただ、通電は切り替え時の一瞬のみ、という仕組み上、外部からの振動(たとえばライブの時にシールドを引っ張ってしまった、蹴っ飛ばしてしまった等)によりステータスが変わってしまうことが予想されます。どの程度振動に弱いかは、実装した後実際に使ってみて評価したいと思います。
→数年自作エフェクタ(OD-1改)に突っ込んでロードテスト(というほどのものでもないけど)をしましたが、特に反応が悪い印象はないです。また、誤って蹴ってしまってもスイッチを踏まない限りはリレーが切り替わることは滅多にないです。
切り替え損ねの頻度も少なく、切り替えができなくてもLED確認してもう一度踏めばいい話なので、あまり気になりませんでした。

ここでは、オムロンのHPに1巻線ラッチングリレーのドライブ回路が載っていたので、まずはそのまま利用させていただくこととします。
リレー 共通の注意事項 6.プリント基板用リレーに関して 6-10「1巻線ラッチングリレーの省消費電力ドライブ回路例」 参照。
(参考:初出は過去のオムロンの特許(特開昭62-055826、現在は特許満了))

<上の回路の説明>
最も手軽に入手できたという理由で、松下電工の1巻線ラッチングリレーATQ219(5V)を使用しました。オムロンならばG5AU-234PHになります。(いずれも動作は確認済ですが、最適な回路定数は若干異なる可能性あり)
リレーが5V用ですが、D1での電圧降下を考慮してここでは6Vの三端子レギュレータを使いました。きっちり電圧降下分だけ補償するならば、5V三端子レギュレータ+ダイオードでのグラウンド嵩上げでも大丈夫です。

R1,C2はチャタリング防止用です。スイッチにcarlingのモメンタリSWCarling110-PMを使った場合には、C2の値を0.1μFにした方がよいです。Bossのエフェクタに使用されているような軽量級(?)スイッチの場合は、0.01μFぐらいの方がよさそうです。この辺は実際のスイッチの特性に合わせて現物合わせ的に決定する必要がありそうです。
T-Flipflopはここでは4027(JK-Flipflop)を使って実現しましたが、4013(D-Flipflop)を使っても実現できるそうです。ただいずれにせよ2回路あるうちの片方しか使わないので不経済(?)です。RohmのBA634という専用ICは1回路T-Flipflopなのでエフェクタに内蔵する場合等スペースファクターが重視される場合には使い勝手がよさそうです。

スイッチを踏むごとにT-Flipflopにより出力信号が0→1→0→・・・と切り替わります。T-Flipflopの出力そのままではリレーを駆動できないので、間にBufferをはさみます。省スペースのためここではデジタルトランジスタを使用しています。
(実はこのBufferで信号が反転するのですが、今回はとにかくリレーが切り替わればよいので無問題とします)。

Relay Drive Moduleで重要なのはR3とC3の定数です(図中赤色の部分)。
D1での電圧降下を考慮した上記条件では、C3が33μFでもなんとか動きましたが、47-100μFくらいが無難と思います。
(D1での電圧降下を考慮しない場合、リレーにかかる電圧が4.5V程度になってしまうため、リレーの個体によってはC3が220μF程度必要になったケースもありました。)

また、R3の抵抗値が低いと、待機時の消費電流が増えます。動作に差し障りのない範囲でなるべく抵抗直を高くしたいところです。R3=27KΩまではギリ動きはしましたが、多少の余裕を見て今回は15kΩとしています。

Q3についてですが、2SC1815のランクYを使ったところ(hFE=135程度)C3の容量が100μFでは連続操作に耐えませんでした。2SC1345のランクF(hFE600-1200)に差し替えたところ、ストレスなく操作できるようになりました。Q3についてはhFEが高めのトランジスタを使用した方が安全と思います。

消費電力、といえば、LEDにつながるR6はもう少し高抵抗にすべきでしょう。LED光らせるのはエフェクタの主目的ではないので。

Relay Drive Moduleの動作機序は、切り替え時にC3への充放電によってパルスが生成すること、およびパルスによってQ3が一瞬ONになることを利用したものと思います。(詳しくは前述の特許参照)

個人的な感傷ではありますが、BOSSのエフェクターについて、トゥルーバイパスのためにあの筐体に機械式スイッチを無理やり組み込むのは見ててなんか痛いので、筐体およびスイッチはそのままでラッチングリレーを使ったトゥルーバイパスを組み込んだりした方がスマートな気がするのですが如何。

投稿者 fff : 12:53 AM | コメント (0)