如何在.net框架上使用vst sdk

Posted

技术标签:

【中文标题】如何在.net框架上使用vst sdk【英文标题】:How to use the vst sdk on the .net framework 【发布时间】:2011-09-24 23:39:08 【问题描述】:

我喜欢主要使用电脑制作音乐,尤其喜欢使用合成器。网上有很多非常棒的合成器插件。我已经下载了 VST(Virtual Studio Technology)SDK,这是我所知道的大多数插件都使用的平台。

我想知道你是否可以使用.Net框架上的SDK来编写插件;我能找到的唯一文档和教程是针对 C++ 的,我对 C++ 不太信任。我可以学会使用 C++,我在一周内自学了 C#,但是使用未知语言和学习其他新概念似乎不是一个好的组合。

任何人都可以就如何开始,即使可以使用 .Net 进行编程,给我指明正确的方向吗?

问候夏尔

【问题讨论】:

一个类似的问题,可能的答案是:***.com/questions/2380520/… 【参考方案1】:

许多初学者发现VST.NET 是开始的完美选择。它带有一些示例和产生工作插件的 VS2008/VS2010 项目模板。所以这是一个很好的开始方式。

VST.NET 提供了一个框架,可以将 VST API 构建和分组为可管理的部分。开箱即用,它为插件参数和程序等常用功能提供支持。

所以请访问VST.NET codeplex site,我们将帮助您开始。

顺便说一句:据我所知,noise 项目已被放弃,尽管 VST.NET 可能看起来不是很活跃,但我仍会继续对其 codeplex 网站上发布的问题作出反应。

【讨论】:

【参考方案2】:

我赞同obiwanjacobi 的观点。 VST.Net 是我所知道的唯一一个 .Net VST 桥,社区很棒。这是一个出色的框架。

https://vstnet.codeplex.com/

至于声明:“怀疑 .NET 平台是否足以满足 VST 插件所需的原始性能”。这是完全不真实的。我的测试表明,在一台不错的计算机上,.Net 可以非常轻松地处理基本合成,甚至无需将 CPU 级别提高到几个百分点以上。当然,对于非常复杂的综合,它不会与 C++ 的性能相匹配,但在这种情况下,没有理由不能依靠 C++ 来完成更复杂的事情。事实上,这正是 Vst.Net 擅长的地方。它允许您将非常复杂的合成构建为 VST,然后在 .Net 中加以利用。

同时,我认为您很难肯定地说 .Net 也不能​​进行非常复杂的合成。我还没有真正尝试过,但是当您注意代码的性能时并没有真正的障碍,这适用于任何编程平台。

除此之外,现在还有 .Net Native 可以添加到图片中。 .Net Native 有可能与 C++ 一样快。

【讨论】:

另外,我最近发布了这些 WPF/UWP 控件。它们将是对 VST .Net 的一个很好的赞美。他们试图复制 C++ 库(如 JUCE 等)提供的那种功能。它们可换肤且重量轻:bitbucket.org/MelbourneDeveloper/vst-controls-.net【参考方案3】:

我记得听说过 noisevst 和 VST.NET,这是 VST API 的两个 C# 包装器,但我不知道它们有多稳定。而且我真的怀疑 .NET 平台是否足以满足 VST 插件所需的原始性能。

所以我建议学习一点 C++。是的,C++ 如此庞大和复杂,以至于地球上没有人知道它的每一个特性。但是出于插件开发的目的,您需要做的就是实现几个方法。您可以从 VST API 中提供的示例开始。无论如何,如果您使用 C#、C++ 或任何其他主流语言,音频 DSP 代码看起来不会有太大不同。

如果您还想为您的插件实现 GUI,那就是事情开始变得棘手的地方。 VSTGUI 很简单,但缺少很多功能。我可以推荐WDL 的 iPlug 框架,但这需要的不仅仅是基本的 C++。

【讨论】:

感谢您的反馈,不幸的是,这和我想的一样。我搜遍了 KVR 论坛,也只有关于 C++ 的信息。我想这不会伤害学习 C++,即使只是从臭名昭著的“Hello World!”开始。应用程序...但是我会尝试一下noisevst,也许我会感到惊讶。 不客气。我刚刚编辑了答案并添加了 VST.NET。您可能也想看看。 “我真的怀疑 .NET 平台是否足以满足 VST 插件所需的原始性能。”这不是真的。我可以根据经验说 .NET 对于许多插件来说在性能方面都很好。早在 .NET 平台成为瓶颈之前,您的代码就会遇到性能问题。 @JoshNoe 这个答案已经 9 岁了。我已经很长时间没有研究音频 DSP 编程了,在性能方面可能已经发生了很大变化。随时更新答案。

以上是关于如何在.net框架上使用vst sdk的主要内容,如果未能解决你的问题,请参考以下文章

在 .NET 框架中使用 VST 插件效果

如何编译 VST 插件?

在 Windows 上设置 VST Steinberg SDK

Xcode 4 和 VST 模块架构 SDK

每个 VST SDK 似乎都是针对 C++ 的,那么 C# 呢?

每个 VST SDK 似乎都是针对 C++ 的,那么 C# 呢?