在C#中生成正弦扫描

时间:2010-11-21 21:48:10

标签: c# asio directsound naudio

我想在C#中生成正弦扫描,我可以定义开始频率,结束频率和扫描持续时间。我查看了播放缓冲区的声音库,如DirectSound和ASIO。但是由于缓冲区大小的限制,当扫描的持续时间足够长以填充多个缓冲区时,我无法弄清楚如何控制扫描的持续时间。任何样本或指南都会非常有用。

1 个答案:

答案 0 :(得分:2)

如果您对正在运行的程序感到满意而不自行编写,请查看The Audio Test File Generator

这个小窗口EXE能够生成具有给定开始和结束频率的线性正弦扫描。

<小时/> 如果您想自己编写,则必须使用以下命令填充缓冲区:

sin(2*pi * f * n/sample_rate)

,其中

f是以Hz为单位的当前正弦频率(想要扫描) n是缓冲区的样本索引
sample_rate是以Hz为单位的采样率

example with f=10Hz