创建 VST 插件 [关闭]

Posted

技术标签:

【中文标题】创建 VST 插件 [关闭]【英文标题】:Create VST plug-ins [closed] 【发布时间】:2021-01-05 12:04:19 【问题描述】:

我想为 Serato(DJ 软件)创建一个第三方插件。

我在他们的网站上搜索,发现 Serato 支持 VST (VST2) 插件。所以我现在的问题是,为了创建 VST 插件,我应该阅读什么内容?

提前谢谢你。

【问题讨论】:

您可以使用哪些语言进行编程?我是 VST.NET 的作者——如果你知道 C# 或 VB.NET——它在 github 上。 @obiwanjacobi 我非常熟悉 Python 和 C++。我还可以编写 Java 和 javascript Juce 是允许您构建插件的 C++ 框架。 [2c] 【参考方案1】:

VST 的 wikipedia 站点是一个很好的起点,如果您不熟悉这项技术,为了了解基础知识,首先您需要了解 VST 的创建者:Steinberg。

VST SDK 是一组基于底层 C API 的 C++ 类。这 SDK 可以从他们的网站下载。

因此,我建议从简单的事情开始。让我们回顾一下几个选项:

JUCE

这项技术之所以流行有几个原因,就像他们的主页上所说的那样:

JUCE 支持 PC、Mac 和 Linux,是 构建强大而复杂的应用程序。 JUCE 还支持 插件开发:VST、AU、AAX。运行你的桌面 手机应用!一键部署到安卓和ios (需要 android Studio 和 XCode)调整您的用户界面 使用 Projucer 实时编码引擎的应用程序使用最好的音频 性能可在 iOS 和 Android 上使用。

因此,这项技术的优点是大型社区、多平台并且是免费的,至少对于非商业开发而言是免费的(如果您想出售它,就必须付费)。缺点是你需要比 C++ 基础知识多一点才能开始,幸运的是,他们的页面、youtube 和互联网上有很多教程,社区正在成长,所以如果你有问题,你可以随时问.

SynthEdit 和 FL SynthMaker

如果您不想快速进入代码,可以开始练习这些,因为它们不需要编程专业知识,或者只需要一些基础知识。

SynthEdit 是一个框架和可视化电路设计,可让您 无需编程,只需拖放即可创建自己的合成器。 因此为您提供使用 DSP 算法的灵活性 在模块内部。

如果您想快速开始,这很酷,目前您可以在他们的官方网站上查看费用。

FL SynthMaker(又名 Flowstone)随 FL Studio 免费提供。它具有简单的拖放图形界面和广泛的组件。您可以使用它在 Ruby 中编写模块和 DSP 代码,并附带大量示例以快速入门,并且它能够帮助您在短时间内创建原型是一个优势。

FLowstone 是一个编程应用程序,用于创建虚拟 无需外部硬件的乐器效果和计算机控制 需要编写基本代码。您创建的乐器和效果器 在 SynthMaker 中可以在 FL Studio 中用作“本机”插件并共享 与其他 Flowstone 用户。

最大 MSP

Max,也称为 Max/MSP/Jitter,是一种用于音乐和多媒体的可视化编程语言,由位于旧金山的软件公司 Cycling '74 开发和维护。在其 30 多年的历史中,作曲家、表演者、软件设计师、研究人员和艺术家都使用它来创作录音、表演和装置。

Max 程序是模块化的,大多数例程都是共享的 图书馆。应用程序编程接口 (API) 允许 第三方开发新例程(命名为外部对象)。 因此,Max 拥有庞大的程序员用户群,与 Cycling '74 通过商业和软件增强软件 该程序的非商业扩展。因为这个可扩展 设计,同时代表程序的结构 及其图形用户界面 (GUI),Max 被描述为 用于开发交互式音乐表演软件的通用语。

灵魂

SOUL 项目正在为 编写和部署音频代码。它旨在解锁改进 延迟、性能、可移植性和易于开发 使用当前正在使用的主流技术是可能的。

SOUL 解锁原生级别的速度,即使托管在更慢、更安全的环境中 语言。 SOUL 语言使音频编码更易于访问,并且 不易出错,提高初学者和专家的工作效率 专业人士。

马克西米利安

是一个跨平台、多目标的音频合成和信号处理库。它是用 C++ 编写的,并提供与 Javascript 的绑定。它与 MacOS、Windows、Linux 和 iOS 系统以及基于浏览器的客户端应用程序的本机实现兼容。主要特点是:

示例播放、录制和循环播放 支持 WAV 和 OGG 文件。 一系列振荡器和滤波器包络 1、2、4 和 8 通道设置控制器的多通道混合 映射函数 效果包括延迟、失真、合唱、镶边颗粒 合成,包括时间和音高伸缩原子合成 实时音乐信息检索功能:频谱分析, 光谱特征、倍频程分析、树皮尺度分析和 MFCC 适用于 Windows 和 MacOS 的示例项目,使用命令行和 OpenFrameworks 环境 基于 Firefox 和 Chromium 的浏览器的示例项目,使用 网络音频 API ScriptProcessorNode(已弃用!) 使用 Web Audio API 的基于 Chromium 的浏览器的示例项目 AudioWorklet(例如 Chrome、Brave、Edge、Opera、Vivaldi)

附加功能

几个月前,我发现了这个专注于音频编程的社区。他们还有一个包含数百个教程的 Youtube 频道和一个不和谐的服务器,您可以在其中提问,甚至展示您的项目甚至找到工作。如果你感兴趣。它被称为“The audio Programmer”

希望这可以帮助您入门。我知道有很多选择,一开始可能会让您感到困惑,但我希望这个小指南可以帮助您根据自己的需求和目标选择一个好的起点,因为每种技术都提供不同的东西。

【讨论】:

以上是关于创建 VST 插件 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在 C#/C++ 中托管 VST/DX 仪器? [关闭]

如何使用 MFC 创建 VST 插件?

VST 插件创建多个窗口

如何在代码中实例化 Vst3 插件?对于 vst3 主机应用程序

为 OS X 和 Windows 创建既是音频单元又是 VST 的音频插件 UI 的“最佳”方法是啥?

iOS VST 音频插件支持