首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XCode 4.6上的VST -插件在加载时直接提供高输出

XCode 4.6上的VST -插件在加载时直接提供高输出
EN

Stack Overflow用户
提问于 2013-05-24 01:05:53
回答 1查看 205关注 0票数 1

我正在用XCode 4.6编写一个Steinberg VST插件。

我已经实现了一个可以正常工作的Highpass-filter。现在我试着用一个二次函数来做一些非线性失真。在我实现了下面的几行代码并将插件加载到主机中之后,我立即得到了插件的输出--你什么也听不到,但是计时器已经很高了。

我真的不知道为什么。发生数学运算的processReplacing函数应该只在播放声音时调用,而不是在加载插件时调用。当我删除下面的几行代码时,一切都是正常的,听起来也是正确的,所以我假设它与插件代码的其余部分没有任何关系。

这个问题发生在两台主机上,所以可能不是VST-bug。有没有人遇到过类似的问题?

非常感谢,法比安

代码语言:javascript
复制
void Exciter::processReplacing(float** inputs, float** outputs, VstInt32 sampleFrames){

  for(int i = 0; i < sampleFrames; i++) {

    tempsample = inputs[0][i];


//Exciter - Transformation in positive region, quadratic distortion and backscaling

    tempsample = tempsample + 1.0f;        
    tempsample = powf(tempsample, 2.0f);
    tempsample = tempsample / 2.0f;
    tempsample -= 1.0f;        


//Mix-Knob: Dry/Wet ------------------------------------------------

    outputs[0][i] = mix*(tempsample) + (1-mix)*inputs[0][i];

编辑:我添加了日志文件输出到每个函数,它发生了,processReplacing函数被永久调用,而不仅仅是当播放打开时……但是为什么呢?

EN

回答 1

Stack Overflow用户

发布于 2013-05-24 01:48:11

你用你的编辑几乎自己回答了这个问题。重复调用processReplacing。这是VST规范的一部分。

VST插件面向实时效果处理。不要将其混淆或误解为先行处理。所谓实时,我指的是将插件插入到通道中,并在DAW录制时播放乐器。因此,您可以看到,为了减少延迟,主机总是向插件发送音频缓冲区(无论是否处于静默状态)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16719881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档