Steinberg VST SDK Qs [получение количества кадров]

Я искал по всему Интернету, чтобы получить это, но не напрасно.

Я работаю с VST SDK Steinberg на С++. Я разрабатываю плагин эффектов, и мне нужно знать длину звукового файла, то есть количество кадров в нем. Итак, я знаю размер блока или (sampleFrames) из функции processReplacing.

void processReplacing (float **inputs, float **outputs, VstInt32 sampleFrames)

Кто-нибудь знает, как получить общее количество кадров во всем звуковом файле?

Спасибо за помощь в продвижении,


person user1949253    schedule 04.01.2013    source источник


Ответы (2)


Я думаю, у вас неправильное представление о том, как реализованы плагины эффектов VST.

Как правило, VST настроен для обработки звука в реальном времени с повторными вызовами функции рендеринга со значением sampleFrames, которое связано с задержкой обработки системы и потенциально может быть в районе 256 или меньше.

При реализации processReplacing() вы записываете результаты обработки в буферы, на которые указывает outputs — которые передаются вам хост-приложением и в них гарантированно sampleFrames места.

person marko    schedule 04.01.2013

Я не думаю, что это возможно в эффекте. Вы думали сделать синтезатор, а не эффект? Таким образом, вы можете предоставить свои собственные сэмплы. «processReplacing» получает сэмплы только из хост-приложения, и это может быть что угодно (живая бесконечная музыка, сэмплы и т. д.). Возможно, вам придется переосмыслить дизайн вашего плагина.

person bitWorking    schedule 04.01.2013