【问题标题】:How are VST Plugins made?VST 插件是如何制作的?
【发布时间】:2011-02-04 13:53:55
【问题描述】:

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

【问题讨论】:

    标签: c++ audio vst


    【解决方案1】:

    从这个link 开始到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 主机,就此而言)崩溃。方法如下:

    1. 包括 float.h。
    2. 在你的效果类的构造函数中,写

      _control87(PC_64|MCW_EM,MCW_PC|MCW_EM);
      

    这应该可以解决问题。

    这里有一些更有用的网站:

    http://www.steinberg.net/en/company/developer.html

    how to write a vst plugin (pdf) 通过http://www.asktoby.com/#vsttutorial

    【讨论】:

    • 你的两个链接没有完成,请修复。
    【解决方案2】:

    我知道这已经是 3 年了,但对于现在阅读本文的每个人来说:不要拘泥于 VST、AU 或任何供应商的格式。 Steinberg 已经停止支持 VST2,人们在将他们的代码移植到更新的格式时遇到了麻烦,因为它与 VST2 太绑定了。

    These tutorials 涵盖了创建可在 Win/Mac、32/64 上运行的插件,所有插件格式来自同一代码库。

    【讨论】:

    • 该教程似乎只适用于 Mac。
    • 对于有差异的部分,教程涵盖了Mac和Windows。作者使用的是 Mac。
    【解决方案3】:

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

    对于 Mac,VST 插件只是一个带有 .vst 扩展名的捆绑包,但也有一些设置必须正确配置才能生成有效的插件。你也可以下载一组我之前做的Xcode VST plugin project templates,它可以帮助你在那个平台上编写一个工作插件。

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

    我还强烈建议您查看Juce Framework,它为创建跨平台 VST/AU 插件提供了出色的支持。如果您要开源,那么 Juce 是不二之选,但如果您打算在没有源代码的情况下发布您的作品,则需要为此支付许可费。

    【讨论】:

      【解决方案4】:

      我意识到这是一篇很老的帖子,但我已经成功使用了 JUCE 库,它为 Xcode、VS 和 Codeblocks 等主要 IDE 构建项目并自动构建 VST/3、AU/v3、RTAS 和AAX。

      https://www.juce.com/

      【讨论】:

      • 对于那些想知道这是否是一条好路的人,遵循 OSX 教程并没有为我带来任何结果,只有错误。
      【解决方案5】:

      如果您了解 .NET 语言(C#/VB.NET 等),请查看 VST.NET。此框架允许您在 .NET 中创建(非托管)VST 2.4 插件。它带有一个框架,可以构建和简化 VST 插件的创建,并支持参数、程序和持久性。

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

      希望对您有所帮助。 马克·雅可比

      【讨论】:

        猜你喜欢
        • 2011-01-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-10
        • 1970-01-01
        • 2011-10-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多