VST на XCode 4.6 — Плагин дает высокую производительность непосредственно при загрузке

Я программирую VST-плагин Steinberg для XCode 4.6.

Я уже реализовал Highpass-фильтр, который работает правильно. Сейчас я пытаюсь сделать некоторое нелинейное искажение с помощью квадратичной функции. После того, как я реализовал несколько строчек ниже и загрузил плагин в хост, я сразу же получаю вывод от плагина — вы ничего не слышите, но индикатор слишком высок.

Я действительно не могу себе представить, почему. Функция processReplacing, в которой происходит математика, должна вызываться только при воспроизведении звука, а не при загрузке плагина. Когда я удаляю несколько строк кода ниже, все в порядке и звучит правильно, поэтому я предполагаю, что это не имеет никакого отношения к остальной части кода плагина.

Проблема имеет место в двух хостах, так что, вероятно, это не ошибка VST.
Кто-нибудь сталкивался с подобной проблемой?

Большое спасибо,
Fabian

void Exciter::processReplacing(float** inputs, float** outputs, VstInt32 sampleFrames){

for(int i = 0; i < sampleFrames; i++) {

tempsample = inputs[0][i];//Exciter - Transformation in positive region, quadratic distortion and backscaling

tempsample = tempsample + 1.0f;
tempsample = powf(tempsample, 2.0f);
tempsample = tempsample / 2.0f;
tempsample -= 1.0f;//Mix-Knob: Dry/Wet ------------------------------------------------

outputs[0][i] = mix*(tempsample) + (1-mix)*inputs[0][i];

РЕДАКТИРОВАТЬ: я добавил logfile-выходы для каждой функции, и получается, что функция processReplacing вызывается постоянно, а не только при включенном воспроизведении … Но почему?

1

Решение

Вы в значительной степени ответили на вопрос самостоятельно с помощью редактирования. processReplacing вызывается неоднократно. Это часть спецификации VST.

VST плагины предназначены для в реальном времени обработка эффектов. Не путайте и не истолковывайте это как предвидение. Под реальным временем я имею в виду вставку подключаемого модуля в канал и игру на инструменте во время записи DAW. Таким образом, вы можете видеть, что для уменьшения задержки хост всегда отправляет плагину аудио-буфер (независимо от того, тишина это или нет).

3

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

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

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