2

我一直在互联网上搜索以得到这个,但没有白费。

我正在使用 C++ 中的 Steinberg 的 VST SDK。我正在开发一个效果插件,我需要知道声音文件的长度,即其中的帧数。所以我从 processReplacing 函数中知道块大小或(sampleFrames)。

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

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

我在这里先向您的帮助表示感谢,

4

2 回答 2

6

我想你对 VST 效果插件的实现方式有误解。

一般来说,VST 是为实时音频处理而设置的,重复调用渲染函数,其值sampleFrames与系统的处理延迟有关,并且可能在 256 或更小的区域内。

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

于 2013-01-04T17:18:27.133 回答
2

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

于 2013-01-04T17:18:11.207 回答