C++ VST插件是如何制作的?

C++ VST插件是如何制作的?,c++,audio,vst,C++,Audio,Vst,我想制作(或学习如何制作)VST插件。有专门的SDK吗?如何生成.vst而不是.exe?另外,如果你想为Logic Pro制作音频单元,那该怎么做呢? 谢谢从这里开始,我们可以访问wiki,解释它们是什么,并提供指向sdk的链接。 这里是一些关于开发的信息 如何编译插件-为了在C++Builder中制作VST插件,首先需要Steinberg提供的VST sdk。可从Yvan Grabit的网站上获取(链接位于页面顶部) 接下来需要做的是创建一个.def文件(例如:myplugin.def)。这至

我想制作(或学习如何制作)VST插件。有专门的SDK吗?如何生成.vst而不是.exe?另外,如果你想为Logic Pro制作音频单元,那该怎么做呢? 谢谢

从这里开始,我们可以访问wiki,解释它们是什么,并提供指向sdk的链接。 这里是一些关于开发的信息

如何编译插件-为了在C++Builder中制作VST插件,首先需要Steinberg提供的VST sdk。可从Yvan Grabit的网站上获取(链接位于页面顶部)

接下来需要做的是创建一个.def文件(例如:myplugin.def)。这至少需要包含以下行:

EXPORTS main=_main
Borland编译器在函数名中添加下划线,这将以VST主机所期望的方式导出
main()
函数。有关.def文件的更多信息,请参阅C++Builder帮助文件

但这还不够。如果要使用任何VCL元素(与表单或组件有关),必须注意插件不会使Cubase(或其他VST主机)崩溃。以下是方法:

  • 包括浮动
  • 在effect类的构造函数中,编写

    _control87(PC_64|MCW_EM,MCW_PC|MCW_EM);
    
  • 这应该能奏效

    以下是一些更有用的网站:


    通过如果你懂.NET语言(C#/VB.NET等),然后结帐。此框架允许您在.NET中创建(非托管)VST2.4插件。它附带了一个框架,可以构造和简化VST插件的创建,并支持参数、程序和持久性

    有几个示例演示了典型的插件场景。还有一些文档解释了如何开始以及VST.NET背后的一些概念

    希望能有帮助。 马克·雅各比(Marc Jacobi)

    我不久前写了一篇文章,详细介绍了为Windows平台创建基本插件所需的步骤(本文的Mac版本即将发布)。在Windows上,VST插件只是一个普通的DLL,但有许多“陷阱”,您需要使用一些特定的编译器/链接器开关构建插件,否则它将无法被某些主机识别

    至于Mac,VST插件只是一个带有.VST扩展名的捆绑包,不过也有一些设置必须正确配置才能生成有效的插件。您还可以下载我不久前制作的一套插件,它可以帮助您在该平台上编写一个工作插件

    至于AudioUnits,苹果提供了自己的项目模板,这些模板包含在Xcode中。苹果也有非常好的在线教程和文档:


    我还强烈建议您查看,它对创建跨平台VST/AU插件有极好的支持。如果你要开源,那么Juce是一个不需要动脑筋的人,但是如果你计划在没有源代码的情况下发布你的作品,你就需要为此支付许可费。

    我知道这已经三年了,但是对于现在读到这篇文章的每个人来说:不要坚持VST、AU或任何供应商的格式。斯坦伯格已经停止支持VST2,人们在将代码移植到更新的格式时遇到了麻烦,因为它与VST2的关系太紧密了


    包括创建在Win/Mac、32/64和所有插件格式上运行的插件。我意识到这是一篇非常古老的文章,但我已经成功地使用了JUCE库,它为主要IDE(如Xcode、VS和Codeblocks)构建项目,并自动构建VST/3、AU/v3、RTA和AAX


    您的两个链接未完成,请修复。该教程似乎仅适用于Mac。对于存在差异的部分,该教程涵盖Mac和Windows。不过,作者使用的是Mac电脑。对于那些想知道这是否是一条好路的人来说,遵循OSX教程并没有给我带来结果,只有错误。