我已经在互联网上到处寻找了,但没有徒劳。
我在C++中使用Steinberg的VST。我正在开发一个效果插件,我需要知道声音文件的长度,这意味着它的帧数。因此,我从processReplacing函数中知道了块大小或(sampleFrames)。
void processReplacing (float **inputs, float **outputs, VstInt32 sampleFrames)有谁知道如何获得整个声音文件中的总帧数?
提前感谢你的帮助,
发布于 2013-01-05 01:18:27
我认为您对VST effect插件的实现方式有误解。
通常,VST被设置用于实时音频处理,利用与系统的处理等待时间相关的值sampleFrames来重复调用渲染函数,并且可能潜在地在256或更小的区域内。
在实现processReplacing()时,您将处理结果写入到outputs指向的缓冲区中-这些缓冲区由主机应用程序传递给您,并保证其中有sampleFrames个空间。
发布于 2013-01-05 01:18:11
我认为这在某种效果上是不可能的。你有没有想过做一个合成器而不是一个特效?所以你可以提供你自己的样品.."processReplacing“只从主机应用程序获取样本,这可能是所有的东西(现场无休止的音乐,样本等)。也许你必须重新考虑你的插件设计。
https://stackoverflow.com/questions/14161498
复制相似问题