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 到 0 为正,从 0 到 0 为kWaveSize/2kWaveSize

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 回答