计算VST的三角波表

时间:2012-12-07 15:34:19

标签: c++ geometry waveform vst

我正在为一个项目创建一个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));

根据我所关注的书,这是一个有根据的猜测,但会产生扭曲的声音。

如果有人做了这样的事情可以提供帮助,或者指向一个新手教程的所有事情声音合成,其中包括波表生成等,我们将不胜感激。

感谢。

1 个答案:

答案 0 :(得分: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);