前回はリングモジュレータを実装したのでもう少し細かく見てみようということで数式をあげながら理論を追ってみる
前回の記事は此方
gsmcustomeffects.hatenablog.com
原理
被変調波(原音)をと置くとリングモジュレーションは以下の式で示すことができる。
これを積和の公式(高校の加法定理とこで習う)を使って書き直すと
fcを1kHz,fmを2kHzとした時のことを考えてみる。
cosは偶関数なのでf(x) = f(-x)
というわけで0.5倍された1kHzのcos と3kHzのcosが出てきそうである。
Pythonでグラフだしてみると同じになった
実験室!
理論がだいたいわかったとこで変調かけた音がどういうふうに聞こえるか検証していく
今回もゆきょん(@Yukyoooon)君に音源とってもらいました。
twitter.com
変調とのことでアルペジオ音源です.
ちなみにグラフは
- 上段 : 原音
- 中段 : 変調波形
- 下段 : 加工音
原音
まずは原音から
100Hzのsin波形
高い周波数をかけすぎるとほんとに音程がわからなくなるので100Hz
[f:id:gsmcustomeffects:20180812204119p:plain]
10Hzのsin波形
[f:id:gsmcustomeffects:20180812204007p:plain]
5Hzのsin波形
[f:id:gsmcustomeffects:20180812212939p:plain]
1Hzのsin波形
[f:id:gsmcustomeffects:20180812212533p:plain]
これに関しては変調波形が遅いこともあってトレモロっぽい
5+10Hzの波形
- wave1 : 振幅0.5 5Hz
- wave2 : 振幅0.5 10Hz
[f:id:gsmcustomeffects:20180812214705p:plain]
1+10+100Hzの波形
- wave1 : 振幅0.3 1Hz
- wave2 : 振幅0.3 10Hz
- wave3 : 振幅0.3 100Hz
[f:id:gsmcustomeffects:20180812215151p:plain]
1+10+100Hzの波形その2
さっきのだと全部の成分の主張が激しすぎるのでバランス調整した時の音
- wave1 : 振幅0.7 1Hz
- wave2 : 振幅0.1 10Hz
- wave3 : 振幅0.1 100Hz
[f:id:gsmcustomeffects:20180812215544p:plain]
sin a * sin b * sin c + sin dの波形
- wave1 : 振幅 1.0 1Hz
- wave2 : 振幅 1.0 2Hz
- wave3 : 振幅 1.0 3Hz
- wave4 : 振幅 0.2 500Hz
wave1 * wave2 * wave3 +wave4って感じで積和の公式から変な周波数生成してそれに対して振幅弱めの高周波を加算するというアイデア
\begin{equation}
sin x sin 2x sin 3x = \frac{1}{4}(sin2x +sin4x - sin6x)
\end{equation}
前の三項はこういう感じに機能する。
波形の原型は3項がつかさどり味つけに4項目が効くという感じ
んで最後に音源
めんどくさいのでやらなかったアイデア
- 加法定理から高い音が加えられるということはなんとなくわかったのでフィルターを組み合わせると面白いのかなと思った
- 波形同士の引き算で倍音を消せるかも?
- 変調波形をLFOでFMするとか?
あとこの方のdome filterも面白いのかなと
まとめ
リングモジュレータの続きという形でもう少しまともにやってみた。
加法定理忘れてて焦った。
この辺までやっていろいろ面白いことが分かったのであとは実機でつまみいじりながら調整したいと思いました。
次回はトレモロでもやります。