使用C#进行声音合成

5

是否有可能在C#中生成声音?我指的不仅仅是蜂鸣或者打开并播放波形文件。我指的是通过使用不同类型的波形(正弦、锯齿等)及其选项(频率、振幅等)来建立信号。


1
类似这样的吗?http://channel9.msdn.com/coding4fun/articles/Generating-Sound-Waves-with-C-Wave-Oscillators - Bob G
4个回答

10

请在GitHub上查看NAudio

NAudio是一个开源的.NET音频和MIDI库,其中包含数十个有用的音频相关类,旨在加速.NET中音频相关实用程序的开发。它自2001年以来一直在开发中,并已发展成为具有各种功能的工具。虽然该库的某些部分相对较新且不完整,但更成熟的功能经过广泛测试并可快速用于向现有.NET应用程序添加音频功能。

您可以直接使用该库,或查看其源代码以了解其底层工作原理。


谢谢!我会检查它的来源。 - Mr.D

4
这是我写的一篇关于如何使用NAudio创建正弦波的博客文章(how to create a sine wave with NAudio)。显然,这只是制作完整合成器的第一步,因为您还需要创建其他波形、ADSR包络、滤波器等,但至少可以帮助您入门。

1
我强烈建议您查看VST .Net平台。这将允许您在.Net中创建自己的VST插件。如果您想进行合成,您可能会发现创建一个VST并在您选择的DAW中托管它比创建一次性应用程序更容易。这是因为如果您创建了一个VST,您就不必担心处理音频接口驱动程序或ASIO等问题。 https://vstnet.codeplex.com/ 此外,您还需要一组用户界面控件。标准的Windows Forms或WPF控件可能可以胜任,但合成爱好者通常喜欢看到漂亮的皮肤控件。我最近发布了这些控件,它们表现得像正常的WPF控件,但专门设计用于合成: https://bitbucket.org/MelbourneDeveloper/vst-controls-.net/

0

你可以使用FLooping。它是一个用F#编写的库,为音频合成提供了常见的构建块,如振荡器、包络、滤波器等。目前处于实验阶段。

声明:我是FLooping的开发者。


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