1

プロジェクトのVSTを作成していますが、オシレーターを作成しようとすると、のこぎり波、パルス波、罪波、三角波が生成されます。私はいたるところを見てきましたが、本質的にそれを理解するのに苦労しているため、(私にとって)有用なものを見つけることができないようです。

これまでのところ...

 for (i=0;i<KWaveSize;i++)
 {
      sawtooth[i] = (float)(-1. + (2. * ((double)i / (double)kWaveSize)));
      pulse[i] = (i < wh) ? -1.f : 1.f;
      sine [i] (float)sin(twoPi * ((float)i /kWaveSize));
      triangle[i] = ....
 }

これを使って正しい波形を作成する方法に苦労しています。

私はやってみました:

 triangle[i] = (float)(1 -((twoPi / KWaveSize) * i));

これは私がフォローしていた本に基づいた知識に基づいた推測でしたが、歪んだ音を出します。

誰かがこのような助けになることをしたり、ウェーブテーブルシンセシスなどがカバーされているサウンドシンセシスの初心者向けチュートリアルを教えてくれたら、とてもありがたいです。

ありがとう。

4

1 に答える 1

1

方向を切り替える波が必要です。0から正に、kWaveSize/2そこからに負になりkWaveSizeます。

triangle[i] = i < kWaveSize/2 ? -1.0 + 2.0 * i / (kWaveSize*0.5) : 1.0 - 2.0 * i / (kWaveSize*0.5);
于 2012-12-07T16:53:37.963 に答える