Topページ > 波形に変化を与える3
次は 偶数倍音列と奇数倍音列
|
波形に変化を与える(偶数倍音を自在に2)
偶数倍音を徐々に高次に渡って発生させるということで、前回「波形に変化を与える(偶数倍音を自在に)」の最後に標準正規分布の式「1/(√(2π))*exp(-x^2)」を出してきました。この式の描く線をちょうどウェーブシェーピングのグラフ内におさめるには、式を「exp(-1*x^2)*10-5」に変形します。その線は、こんな感じになります。
- 正規分布の式をウェーブシェーピングのグラフ内におさめたところ -
|
- 式は「exp(-1*x^2)*10-5」となっています。
|
この数式のexpの中のxの係数を変えると、y軸を中心に線が横方向に広がったり、狭くなったりします。それと連動して、倍音の数も変わります。係数を小さくすると線の幅が広がり、倍音の数は少なくなります。逆に係数を大きくすると狭くなり、倍音の数は多くなります。
ということなので、係数をaとして「exp(-a*x^2)*10-5」という数式にするとaの値を変えることで倍音の数を変えることが出来ます。SynthEditの「Waveshaper2」では、2つの変数を使うことが出来ないので、expの中身を前もって演算することになりますね。expの中の「-a*x^2」をそのまま前もって演算してもいいのですが、x^2の2乗計算では、値が大きくなってしまいます。「Waveshaper2」には、入力値の範囲の仕様が-5〜5になっているので、大きな値を入力すると正確なウェーブシェーピングをしてくれないので、x^2の計算結果をスケールダウンしなければならなかったりしますね。それは面倒なので^^;、expの中でx^2は計算してしまうのがいいかもです。
なので、expの中の「-a*x^2」を-1*((a*x)^2)として考えて、a*xを前もって計算するといいかもです。これでも、aの値によっては、「Waveshaper2」の入力値の制限を越えてしまうのですが、標準正規分布の線を見ると、-x<5の部分、x>5の部分は、ほとんど-5に近い値で続いているので、問題が無かったりします。例えば、x=-5の時であっても、x=-6の時であっても値は-5と変わらないので、xが-5より小さい値になって、-5で制限されても結果は同じになります(多分^^;)。
ということで、モジュールを組むと、こんな感じになります。
- 正規分布の式「exp(-a*x^2)*10-5」でモジュールを組み、aを変えた時の偶数倍音の発生具合 -
|
- 上がモジュール図で下がaを変えた時の倍音発生の周波数分布図です。
- サイン波440Hzをウェーブシェーピングしています。
- aの値を大きくすると高次に渡って倍音を発生します。
- 「Waveshaper2」の入力の制限は、-5〜5なのですが、数式「exp(-1*x^2)*10-5」の線が
制限外のx<-5、x>5の時も、x=-5、x=5の時とほぼ同じ値になるので、ウェーブシェーピングには
問題なかったりします(多分^^;)
|
図内の「Slider(a)」モジュールの値を変えた時の偶数倍音の発生数を周波数分布図に示しています。aの値が大きくなると倍音数が多くなっていますね。このモジュールは、不完全なもので、aの値を小さくすると、波形に直流成分が入ってきます。因みにオシレータは、440Hzのサイン波を出しています。
Copyright (C) FlawTips All Rights Reserved.
|
|
|