我想在C#中生成正弦扫描,我可以定义开始频率,结束频率和扫描持续时间。我查看了播放缓冲区的声音库,如DirectSound和ASIO。但是由于缓冲区大小的限制,当扫描的持续时间足够长以填充多个缓冲区时,我无法弄清楚如何控制扫描的持续时间。任何样本或指南都会非常有用。
答案 0 :(得分:2)
如果您对正在运行的程序感到满意而不自行编写,请查看The Audio Test File Generator。
这个小窗口EXE能够生成具有给定开始和结束频率的线性正弦扫描。
<小时/> 如果您想自己编写,则必须使用以下命令填充缓冲区:
sin(2*pi * f * n/sample_rate)
,其中
f
是以Hz为单位的当前正弦频率(想要扫描)
n
是缓冲区的样本索引
sample_rate
是以Hz为单位的采样率