VB.net现场频率检测
Posted
技术标签:
【中文标题】VB.net现场频率检测【英文标题】:VB.net live frequency detection 【发布时间】:2009-03-25 18:14:47 【问题描述】:我希望能够在 VB.net 中进行生命频率检测。我必须说我真的不知道从哪里开始。我查看了 BASS.net,但这似乎只适用于预先录制的音频。我需要能够近乎实时地检测通过线路输入或麦克风输入的音频频率。
提前致谢。
【问题讨论】:
【参考方案1】:也许NAudio,一个开源的 .NET 音频和 MIDI 库可以提供帮助。我还会查看this CodeProject article 以获得灵感。
【讨论】:
【参考方案2】:我有使用 BASS/C++ 进行现场频率检测的经验。它在 C++ 中基本上是这样的。我认为您可以轻松找到 .NET 等价物:
初始化:
// initialize BASS recording (default device)
if (!BASS_RecordInit(-1))
LOG("Can't initialize device")
exit(-1);
// start recording (44100hz mono 16-bit)
if (!(m_recChan = BASS_RecordStart(44100, 1, 0, &DuffRecording, 0)))
LOG("Can't start recording")
然后将计时器设置为每 50 毫秒检索一次频率数据。这是使用的代码。
float fft[4096];
BASS_ChannelGetData(m_recChan, fft, BASS_DATA_FFT8192); // get the FFT data
希望这会有所帮助。
【讨论】:
以上是关于VB.net现场频率检测的主要内容,如果未能解决你的问题,请参考以下文章