使用C#进行声音合成

时间:2012-01-03 12:06:36

标签: c# .net audio signals synthesis

是否有可能在C#中生成声音?我的意思不仅仅是嘟嘟声或打开并播放波形文件。我的意思是使用不同种类的波(罪,锯等)及其选项(频率,振幅等)来构建信号。

4 个答案:

答案 0 :(得分:8)

在codeplex上查看NAudio

  

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

您可以直接使用该库,也可以查看其源代码,以了解它的工作原理。

答案 1 :(得分:4)

这是我撰写的关于how to create a sine wave with NAudio的博客文章。显然,这只是制作完整合成器的第一步,因为您还需要创建其他波形,ADSR包络,滤波器等,但它至少应该让您开始。

答案 2 :(得分:0)

我强烈建议您查看VST .Net平台。这将允许您在.Net中创建自己的VST。如果你想进行综合,你可能会发现更容易创建一个VST并将其托管在你选择的DAW中而不是创建一次性应用程序。这是因为如果你创建一个VST,你不必担心处理音频接口驱动程序或ASIO等。 https://vstnet.codeplex.com/

此外,您还需要一组用户界面控件。标准的Windows窗体或WPF控件可能会起作用,但合成爱好者通常喜欢看到很好的皮肤控件。我最近发布了这些控件,其行为类似于普通的WPF控件,但是专为合成而设计: https://bitbucket.org/MelbourneDeveloper/vst-controls-.net/

答案 3 :(得分:0)

您可以使用FLooping。它是一个用F#编写的库,为振荡器,信封,滤波器等音频合成提供了通用的构建模块。它目前处于实验状态。

披露:我是FLooping的开发者。