我正在寻找对 JUCE 缓冲区内的信号进行过采样,该信号在 Visual Basic 上运行。 http://www.juce.com/about-juce
准确地说:通过过采样,我的意思是在相同的时间内增加样本数量。例如,如果原始文件为 44100 khz,我希望采样率增加到 88200khz。这对于衰减信号中可能出现的任何数字伪影很有用。
据我了解,Juce 对此有一个类: ResamplingAudioSource http://www.juce.com/api/classResamplingAudioSource.html#details 我的问题是我不知道如何实现该类。我试过像这样创建一个新的类实例:
类 PluginOversampler : public ResamplingAudioSource { public: PluginOversampler(); ~PluginOversampler();
void setResamplingRatio (double samplesInPerOutputSample)
}
我的想法是我可以调用 PluginOversampler::setResamplingRatio(这里指定比率) 来改变重采样率。
但是该项目不会在 Visual Basic 中编译。错误数不胜数,数以百计。其中一些与我在不同的 .cpp 和 .h 文件中使用的全局变量string22相关
std::string string22 = "";
当产生的错误是:
extern std::string string22;
1>c:\users\friendly2\downloads\final\ctrl\source\plugineditor.h(28): error C2377: 'std::string' : redefinition; typedef cannot be overloaded with any other symbol
当我省略声明时,项目编译得很好
PluginOversampler : public ResamplingAudioSource
其他错误消息表明 Juce 头文件没有正确定义类型,但我认为错误来自我自己的编程,而不是 Juce 文件,因为该程序运行良好(vst 文件在 DAW 中运行良好)之前我实现了这一点。
我已经实例化了另一个类:
class PluginAudioProcessor : public PluginProcessor
{
public:
//==============================================================================
PluginWidthCtrlAudioProcessor();
~PluginWidthCtrlAudioProcessor();
...
...
}
我是否需要让“PluginAudioProcessor”类继承“ResamplingAudioSource”中的函数?我很迷茫。