Topページ > 波形に変化を与える2
次は 波形に変化を与える3
|
波形に変化を与える(ウェーブシェーピング15)
前回「波形に変化を与える(ウェーブシェーピング14)」では、数式「tanh(x/a)*5」をSynthEditのモジュールで組んでみるということでしたが、これでサイン波をウェーブシェーピングするとどうなるのかということで^^;、周波数分布図に表示してみると、こんな感じになります。
- 数式「tanh(x/a)*5」でサイン波(440Hz)をウェーブシェーピングした時のaの値による周波数分布図 -
|
- 上からa=10、3、1、0.3の時となっています。
- aの値が小さくなるにつれて、高次の奇数倍音が加わっています。
|
図は、上からaの値を10、3、1、0.3としたものです。aの値を小さくしていくと、高次の奇数倍音が加わって行ってますね。モジュール図からはわからないですけど、数式「tanh(x/a)*5」の曲線の膨らみが、aの値に連動して次第に増していってたりするんでしょうね。
ところで、前回「波形に変化を与える(ウェーブシェーピング14)」の数式「tanh(x/a)*5」のモジュール図を眺めていて、ふと気付いたんですが、このモジュールでは、「曲線の膨らみを変えるために」ということで、数式の中の「x/a」の部分の「a」を変えてウェーブシェーピングをしているんですよね。で、その部分は、変数が2つあるので「Waveshaper2」では、使えないので、「x/a」を、直前で処理しているんですね。その直前の処理は、単なる割り算なんですが、何を割っているのかというと、オシレータからの波形の振幅なんですよね。
振幅を変えていることなんで、別の言い方をすると、単に音量を変えているだけなんですよね^^;。そして、「Waveshaper2」では、数式「tanh(x)*5」でウェーブシェーピングをしているだけと考えられますね(「Waveshaper2」の入力信号値の仕様も考慮すると、直前の割り算との間に下限値-5、上限値5のクリップ・モジュールを入れているとも…^^;)、ということに気付きました^^;。「ウェーブシェーピングでの曲線の膨らみを変えるためのモジュール」ということで、組んだものですが、別の面から見ると、「ウェーブシェーピングの直前で音量調整とクリップをしているモジュール」とも言えたりするんですね。
数式「tanh(x/a)*5」の場合は、「Waveshaper2」のグラフ表示が範囲内におさまっているからそういう感じにも見えたりするのかもですね^^;。以前、紹介した数式「y=a*sin(x/b)」と「a=5/sin(5/b)」を使ったウェーブシェーピングのモジュールでは、
- 数式「y=a*sin(x/b)」と「a=5/sin(5/b)」を分けて演算する -
|
- 上の「Waveshaper2-2」では、sin(x/b)の演算をしています。(x/b)の演算はこの中ではできないので、
直前の「Divide(割り算)」モジュールで算出しています。
- 下の「Waveshaper2-1」では、5/sin(5/b)の演算をしています。
- 上下の「Waveshaper2」の出力を「Multiply(掛け算)」モジュールを使って、
数式「y=a*sin(x/b)」「a=5/sin(5/b)」の演算を実現しています。
- オシレータでは、サイン波440Hzを出力しています。
- Slider(b)モジュールは、可変値を出力します。この値が変わると曲線の膨らみ具合を変えられます。
- この図では、「5*sin(x/PI)」(PI=3.14)でウェーブシェーピングした時と同じ膨らみ具合になっています。
|
同じく「ウェーブシェーピングでの曲線の膨らみを変えるためのモジュール」ではありますが、「ウェーブシェーピングの直前で音量調整とクリップをしているモジュール」という感じには見えなかったりしますね^^;
Copyright (C) FlawTips All Rights Reserved.
|
|
|