У меня есть опыт работы с 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
Надеюсь, это поможет.