如何在.NET框架上使用VST SDK

6
我喜欢使用计算机创作音乐,尤其喜欢使用合成器。网上有很多很棒的合成器插件可供下载。我已经下载了VST(Virtual Studio Technology)SDK,这是我所知道的大多数插件使用的平台。
我想知道是否可以在.NET框架上使用SDK编写插件;我只找到了C ++的文档和教程,但我对C ++并不熟悉。我可以学习使用C ++,我一周自学了C#,但使用未知语言并学习其他新概念似乎不是一个好的组合。
是否有人能够指导我如何入门,甚至告诉我是否可以使用.NET进行编程?
Charl问候

一个类似的问题,可能的答案在这里:https://dev59.com/1EzSa4cB1Zd3GeqPl1vR - vines
3个回答

6
许多初学者发现VST.NET是一个很好的选择来开始学习。它附带一些示例和VS2008 / VS2010项目模板,可以生成可用的插件。因此,这是一个很好的入门方式。 VST.NET提供了一个框架,将VST API结构化和分组成可管理的部分。开箱即用,它提供对常见功能(如插件参数和程序)的支持。
所以,请访问VST.NET codeplex site,我们将帮助您入门。
顺便说一句:据我所知,噪声项目已被放弃,尽管VST.NET可能看起来不太活跃,但我仍然继续回答在其codeplex网站上发布的问题。

1

我支持obiwanjacobi的观点。VST.Net是我所知道的唯一的.NET VST桥接器,并且社区非常出色。它是一个优秀的框架。

https://vstnet.codeplex.com/

关于这个说法:“怀疑.NET平台是否足够满足VST插件所需的原始性能”。这完全是不真实的。我的测试表明,在一台不错的电脑上,.Net可以很容易地处理基本的合成,甚至不会将CPU水平提高超过几个百分点。当然,对于非常复杂的合成,它无法匹配C++的性能,但在这种情况下,没有理由为什么不能退回到C++来完成更复杂的工作。事实上,这就是Vst.Net的优势所在。它允许您构建非常复杂的合成作为VST,然后在.Net中利用它。
同时,我认为你很难断言.NET不能同样做出非常复杂的合成。虽然我没有真正尝试过,但当你关注代码的性能时,没有真正的障碍,这也适用于任何编程平台。
除此之外,现在还有.NET本机化(.Net Native)加入到了这个画面中。.Net Native有可能与C++一样快。

另外,我最近发布了这些WPF/UWP控件。它们将是VST .Net的很好补充。它们试图复制C++库(如JUCE等)可用的功能。它们具有可皮肤和轻量级等特点:https://bitbucket.org/MelbourneDeveloper/vst-controls-.net - Christian Findlay

0

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

因此,我建议学习一点C++。是的,C++非常庞大和复杂,没有人能够掌握其所有功能。但是对于插件开发目的,您只需要实现几个方法即可。您可以从VST API提供的示例开始。无论您使用C#、C++或任何其他主流语言,音频DSP代码看起来都不会有太大区别。

如果您还想为插件实现GUI,则事情就开始变得棘手了。VSTGUI很简单,但缺少许多功能。我可以推荐WDL的iPlug框架,但这需要比基本的C++更多的知识。


感谢反馈,不幸的是正如我所想的那样。我在KVR论坛上搜寻了一下,只有关于C++的信息。我猜学习C++也无妨,即使只是从臭名昭著的“Hello World!”应用程序开始...但我会尝试noisevst,也许我会惊喜不已。 - ChP
不客气。我刚刚编辑了答案,并添加了VST.NET。你可能也想看看它。 - cyco130
“我真的怀疑.NET平台是否足够满足VST插件所需的原始性能。”这并不是真的。从我的经验来看,对于许多插件而言,.NET在性能方面表现良好。在.NET平台成为瓶颈之前,您的代码很快就会遇到性能问题。” - Josh Noe
@JoshNoe 这个回答已经有9年了。我很久没有研究音频DSP编程了,性能方面可能发生了很大的变化。请随意更新答案。 - cyco130

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接