Расчет треугольной волновой таблицы для 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);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]