Topページ > 波形に変化を与える2
次は 波形に変化を与える3
|
波形に変化を与える(ウェーブシェーピング14)
前回「波形に変化を与える(ウェーブシェーピング13)」では、数式「tanh(x/a)*5」を使ってウェーブシェーピングをすると曲線を「y=x」の直線から膨らませることが出来ました^^;。
- 数式「tanh(x/a)*5」において、aを3、1、0.1とした時の「Waveshaper2」上の曲線 -
|
- 数式「tanh(x/a)*5」において、aを3、1、0.1とした時の「Waveshaper2」上の曲線です。
- 曲線の膨らみ具合が次第に変わっています。
- (x,y)=(-5,-5)、(x,y)=(0,0)、(x,y)=(5,5)を満たしている感じですね^^;
|
この数式を見ると変数が2つ使われているので、SynthEditのモジュールで実現しようとすると、以前紹介したように、幾つかのモジュールに分ける必要があります。tanhの中の「x/a」を「Waveshaper2」の直前で処理すればいいですね。「a」は値を変えられる「Slider」モジュールを使えばいいかと思います(xはオシレータからの信号です)。割り算なので、「Divide(割り算)」モジュールを使います。因みに、割り算の分母になる数…除数は、0に出来ないので(0で割ると無限大になりますよね^^;)、「Slider」モジュールは、0以上の値になるように設定しておきます。
割り算の結果を、「Waveshaper2」の入力信号とします。tanhは、「Waveshaper2」で扱える演算子なので、そのまま使います(なければ、tanhはexp(x)で表現できるので、それがあれば出来るかもですね^^;)。X=x/aと置き換えると、tanh(x)*5とできます(「Waveshaper2」では、変数は「x」を使うので)。ということなので、モジュールを組み合わせると、こんな感じになります。
- ウェーブシェーピング「tanh(x/a)*5」のモジュールを組む -
|
- 数式「tanh(x/a)*5」のx/aの部分を「Waveshaper2」の前で処理しています。
- 図は、数式「tanh(x/a)*5」においてa=0.1とした時のウェーブシェーピングとなっています。
- 左端の「Scope2」は、ウェーブシェーピング後の波形です。
- オシレータは、440Hzサイン波を出力しています。
|
余談ですが、aの値が小数…例えば0.1になると、xの範囲は-5〜5なので、x/aは-50〜50になります。「Waveshaper2」では、入力値は-5〜5しか受け付けなかったりします。なので、不具合が出そうですけど、この数式では、x/aが5以上になった場合でも、その結果は、5(x/aが-5以下の場合は-5)であったほうがいいので^^;、特に問題ないと思ったりします。
図では、オシレータからサイン波440Hzを出力して、それをウェーブシェーピングしています。右端の「Scope2」では、処理後の波形を表示しています。図の左端下にある「Slider(a)」と書いてあるモジュールでaの値を変えたり出来ます。図では、aの値を1.00にした時です。処理後の波形は、台形っぽい感じですね。aの値をこれより大きくすると、サイン波に近い形へ変わっていきます(この時tanh(x/a)*5の曲線の膨らみが小さくなっていきます)。反対にaの値を小さくすると、四角い感じの波形になり、パルス幅50%のパルス波に近い形へ変わっていきます(この時tanh(x/a)*5の曲線の膨らみが大きくなって丸みもなくなって行きます)。
Copyright (C) FlawTips All Rights Reserved.
|
|
|