2007年11月27日

久々のVSTi作り〜

と言っても、ほとんどVSTi用のC++を忘れてしまいました。。。弱
こんな時に自分用にVSTi辞書を残しておいて良かった、良かった〜

未だにVSTiのSDKはバージョンアップしてなさそうなので、そのまま使用できてこれまた良かった、良かった〜


今回作ろうかと思っているのは、原点に戻り「8つの倍音正弦波を合成して1つのオシレータ波形を形成するシンセ」を作ろうかと考えています。
今まで作ったVSTiは倍音だけでなくピッチをずらした音も合成できたけど、これはノイズになってしまう欠点もある為、今回は「倍音のみ」としました。
オシレータは3基を予定しているので、合成する正弦波数は24になります。
これに、ノイズ専用オシレータ(?)を加えて減算処理(フィルタなど)をしようかと。。。

いろいろと実験をした結果、8つの正弦波で作れる波形は以下のとおりです。

■ 正弦波 Sine
sine.gif

y=sin(2πx/T)
1倍の正弦波のみで作成。
形は全く問題なし。

■ 鋸歯状波 SawTooth
sawtooth.gif

y=sin(2kπx/T)/k (k=1, 2, 3, 4, 5, 6, 7, 8)
1〜8倍の正弦波のみで作成。
本来は無限倍まで合成させるので、形はやや問題あり。。。

■ 矩形波 Square
square.gif

y=sin(2kπx/T)/k (k=1, 3, 5, 7, 9, 11, 13, 15)
奇数倍の正弦波、1〜15倍のみで作成。
こちらも無限倍まで合成させるので、形はやや問題あり。。。
でも、意外とこの波形は気に入っているのだ〜

■ 三角波 Triangle
triangle.gif

y=sin(2kπx/T)/(k*k) (k=1, 5, 9, 13)
y=-sin(2kπx/T)/(k*k) (k=3, 7, 11, 15)

奇数倍の正弦波だが、その値により正負が逆転する。
実は、これに気付くのにものすごく時間がかかった。。。
まさか正負が逆転するなんて思わないよなぁ。。。

フリーの優秀なFFTアナライザーのおかげで、やっと導き出すことが出来ました。。。ありがたや、ありがたや〜

efu's page

これも1〜15倍の奇数倍正弦波のみで作成しましたが、その割に美しい形をしていますね!


以上より、8種類の倍音正弦波を使用して様々な波形を作成できることが解ります。
今までは、Waveテーブル(出来上がった波形)を使用していましたが、今回は全てリアルタイムに波形を形成させる予定です。
これにより、Waveテーブルの問題である低域と高域でのノイズが生じない利点と、上記4種類の基本波形以外の複雑な波形を基波形として作り出すことができるわけです。
で、作成された3つの基波形を更に合成させます。

考えただけでもどんな音がするのかワクワクしますが、これでショボかったらショックですなぁ。。。


でも、更にオリジナル(?)アイデアも考えてあります。
それは、「波形を歪ませる」というアイデアなんですが、たった1つの正弦波を歪ませるだけで、自動的に倍音が増えてしまうというわけなんです。
何十個も倍音を合成しなくても良い利点はありますが、当然歪ませた為のノイズも含まれてしまいます。

Sine2.gifノーマルの正弦波

Sine3.gif少し歪ませた正弦波

以上より、周波数成分のグラフでケバケバが増えたのが解ります。
ケバケバの部分が倍音です。


これらの波形を使ったVSTiを作っていこうと思っているのですが、果たして無事完成するかどうか。。。謎
posted by Bumpyうるし at 23:46| Comment(0) | TrackBack(0) | ■ 開発中VST集
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/8137688

この記事へのトラックバック