创建包含多个音符(频率)的声音

时间:2014-08-10 20:14:13

标签: .net vb.net audio

这个网站上有很多问题,询问如何在给定频率下创建一个简单的正弦波。我想做的是拿一个阵列或列表或任何频率,并连续一起(不是和弦)顺利播放它们,听起来有点像旧的PC扬声器。我尝试过使用Console.Beep,但它会在音调之间产生无法接受的暂停。

如有必要,我会使用NAudio,但我想避开第三方库。

1 个答案:

答案 0 :(得分:1)

只需将声波写入.wav文件即可。不需要光盘上的文件,但内存中有一些声音wav数组,以便您以后可以播放它们。

如您所知,在代码中逐个播放声音会产生同步问题。当前线程必须等到声音结束才播放下一个声音。如果声音在播放之前已经汇总在一起,那么你只会播放一个声音,所以没有延迟。

至于技术上如何做,.wav文件的声音部分并不比字节数组简单。如果您已经知道如何使用正弦波进行一些研究,那么您应该能够在没有任何库的情况下找出确切的位数。