Статью можно найти здесь. Часть 1. В первой части, мы создали базовый плагин, который имеет два параметра gain, bypass и настроили его для компиляции плагинов vst3 и clap. Примеры можно найти на github: Часть 1 в ветке gain, Часть 2 в ветке synth. Синтезатор Сегодня мы создадим полифонический синтезатор, который будет генерировать синусоидальную волну. Для него я создам отдельную структуру Synth, которая должна принимать midi-событие и возвращать сигнал. В методе process(), мы использовали буфер чтобы изменять в нем значения, тем самым мы создали эффект gain (усиление). Разница том, что мы принимали входные данные (const DEFAULT_INPUT_CHANNELS), чтобы использовать свою волну мы будем подменять значение. Пример 1 и 2 одинаковый, но во втором мы сможем подменить входные данные. Ещё нам понадобится получить частоту дискретизации будущего сигнала. Базовая волна.
Теперь, нам нужно создать функцию sine() -> f32 которая будет генерировать значение нашей синусоиды. При каждой итерации наша