我很难找到一个关于如何使用VST3.xSDK设置最小插件主机的基本示例。官方的文件绝对是冗长而简短的,我哪儿也找不到。我想:
这将是一个很好的开端:)
发布于 2014-06-30 08:10:44
是的,VST3相当神秘,而且文件记录也不多。好的例子不多,部分原因是除了斯坦伯格之外,没有多少公司真正关心VST3。但是,抛开所有的冷嘲热讽,最好的选择是看看Juce源代码,看看它们实现了一个VST3主机:
该包中还有其他几个与VST3 3相关的文件,值得检查。无论如何,这至少应该是足够的信息,让您开始使用VST3主机。
值得注意的是,Juce是GPL (除非您为许可证付费),所以除非您也使用GPL或拥有商业许可证,否则直接向它借用代码是一个很大的禁止-不。只是一个友好的提醒,当一个负责任的程序员时,看看GPL的代码在网上。:)
发布于 2021-08-20 16:09:10
VST中已经存在简单的VST3主机。增加它们并不困难,但有一些事情要记住。
以下代码足以加载插件提供程序(整个效果)。假设返回-1表示错误:
std::string error;
std::string path = "somepath/someeffect.vst3";
VST3::Hosting::Module::Ptr module = 
    VST3::Hosting::Module::create(path, error);
if (! module)
    return -1;
IPtr<PlugProvider> plugProvider; 
VST3::Optional<VST3::UID> effectID = std::move(uid);
for (auto& classInfo : module->
    getFactory().classInfos())
{
    if (classInfo.category() == kVstAudioEffectClass)
    {
        if (effectID)
        {
            if (*effectID != classInfo.ID())
                continue;
        }
            plugProvider = owned(new 
                PlugProvider(module->getFactory(), 
                classInfo, true));
            break;
    }
}
if (! plugProvider)
    return -1;之后,plugProvider->getComponent()和plugProvider->getController()给出了效果和GUI。当然,控制器必须显示在窗口中,这是在EditorHost中完成的。这些是IComponent、IAudioProcessor和IEditController在VST中的实现。
VST的源代码/VST/testsuite部分将向您展示这两个部分的全部功能(实际上,它将为您提供功能调用,您可以使用这些函数调用来完成您想做的任何事情)。
注意上面代码中加载的模块和plugprovider。如前所述,如果不保留模块指针,就无法保证plugprovider指针能够存活下来。很难跟踪在VST中发布了什么。
https://stackoverflow.com/questions/24478173
复制相似问题