【发布时间】:2016-01-25 12:26:30
【问题描述】:
我正在为大学创建一个卷积混响插件,并且我设法让一个简单的插件工作,其中输出是通过脉冲响应的输入。我想知道如何更改代码以制作湿/干参数。
我为此添加了一个“混合”参数:
const float defaultBlend = 0.5f;
addParameter(blendParam = new FloatParameter (defaultBlend, "Blend"));
然后初始化卷积器:
convolver.init (512, buffer.getReadPointer(0), buffer.getNumSamples());
并在此处处理:
for (int channel = 0; channel < getNumInputChannels(); ++channel)
{
float* channelData = buffer.getWritePointer (channel);
const float* inputData = buffer.getReadPointer(channel);
for (int i = 0; i < buffer.getNumSamples(); ++i)
channelData[i] = inputData[i] * level / 20;
//convolver stuff
convolver.process (inputData, channelData, buffer.getNumSamples());
}
有什么想法吗?
【问题讨论】:
-
到目前为止您尝试过什么?你表明你已经添加了参数,但不是你试图用它做什么。
-
我不知道该怎么处理它。
-
你应该花点时间想想你想让它做什么;即给定特定的输入和“混合”,您期望会发生什么? Rubber ducking 也可以提供帮助。完成之后,您可能会发现自己对自己需要做的事情有了更清晰的了解。
-
我知道,当“blend”处于最小值时,输出会完全干,而当 blend 处于最大值时,您只会听到混响,根本听不到干信号。我已经考虑过了,但我不确定如何实现这一点。我知道我需要将输入日期和混响数据作为两个单独的变量,并使用 blend 参数在这些变量之间移动,就我所知。
标签: c++ audio signal-processing convolution juce