2012-12-07 61 views
1

我正在爲一個項目創建一個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到kWaveSize/2爲正值,從那裏到負值爲kWaveSize

triangle[i] = i < kWaveSize/2 ? -1.0 + 2.0 * i/(kWaveSize*0.5) : 1.0 - 2.0 * i/(kWaveSize*0.5); 
+0

ofcourse !!!我不知道爲什麼這不會發生在我身上! –