Steinberg的VST SDK Qs [获取帧数]

时间:2013-01-04 17:04:09

标签: audio vst

我一直在网上搜索,但没有白费。

我正在使用Steinberg的CST VST SDK。我正在开发一个效果插件,我需要知道声音文件的长度,这意味着它内部的帧数。所以我知道processReplacing函数的块大小或(sampleFrames)。

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

任何人都知道如何获取整个声音文件中的总帧数?

提前感谢您的帮助,

2 个答案:

答案 0 :(得分:6)

我认为您对VST效果插件的实现方式存在误解。

通常,VST设置为实时音频处理,重复调用渲染函数,其值为sampleFrames,与系统的处理延迟有关,并且可能位于区域为256或更少。

实现processReplacing()时,将处理结果写入outputs指向的缓冲区 - 这些缓冲区由宿主应用程序传递给您,并保证有sampleFrames的空间在他们中。

答案 1 :(得分:2)

我认为这不可能产生影响。你有没有想过合成而不是效果? 所以你可以提供自己的样品.. “processReplacing”只能从主机应用程序获取样本,这可能是一切(现场无尽的音乐,样本等) 也许你必须重新考虑你的插件设计。