VB.net обнаружение живой частоты - PullRequest
0 голосов
/ 25 марта 2009

Я надеюсь, что смогу определить частоту жизни в VB.net. Должен сказать, я не знаю, с чего начать. Я посмотрел на BASS.net, но, похоже, он работает только с предварительно записанным аудио. Мне нужно иметь возможность определять частоту звука, поступающего через линейный вход или микрофонный вход, почти в реальном времени.

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 25 марта 2009

Возможно NAudio , библиотека с открытым исходным кодом .NET audio и MIDI, может помочь. Я также проверил бы эту статью CodeProject для вдохновения.

0 голосов
/ 30 марта 2009

У меня есть опыт работы с 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

Надеюсь, это поможет.

...