Steinberg 的 VST SDK Qs [获取帧数]

Posted

技术标签:

【中文标题】Steinberg 的 VST SDK Qs [获取帧数]【英文标题】:Steinberg's VST SDK Qs [getting number of frames] 【发布时间】:2013-01-04 17:04:08 【问题描述】:

我一直在互联网上搜索以获取此信息,但没有白费。

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

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

有人知道如何获取整个声音文件的总帧数吗?

提前感谢您的帮助,

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于Steinberg 的 VST SDK Qs [获取帧数]的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 4 和 VST 模块架构 SDK

如何编译 VST 插件?

foobar里怎么安装vst插件

是否可以在 linux 上编译 VST?

VST SDK & VST 模块 SDK

如何在.net框架上使用vst sdk