用c#合成声音

本文关键字:声音 | 更新日期: 2023-09-27 18:19:22

是否有可能在c#中生成声音?我的意思是不只是哔哔声或打开并播放波文件。我的意思是使用不同类型的波(sin, saw等)及其选项(频率,振幅等)构建信号

用c#合成声音

在GitHub上查看NAudio。

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

您可以直接使用该库,或者查看其源代码以了解它在底层是如何工作的。

这是我写的一篇关于如何用NAudio创建正弦波的博文。显然,这只是制作一个完整的合成器的第一步,因为您还需要创建其他波形,ADSR包络,滤波器等,但它至少应该让您开始。

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

另外,您还需要一组用于用户界面的控件。标准的Windows Forms或WPF控件可能会达到这个目的,但synth爱好者通常喜欢看到外观漂亮的控件。我最近发布了这些控件,它们的行为就像普通的WPF控件,但它们是为合成而设计的:https://bitbucket.org/MelbourneDeveloper/vst-controls-.net/

您可以使用循环。它是一个用f#编写的库,为音频合成提供了常见的构建块,如振荡器,包络,滤波器等。它目前处于实验状态。

披露:我是FLooping的开发者。