Я начинаю создавать доказательство концепции для своей идеи, и на этом этапе мне нужны некоторые рекомендации относительно того, с чего мне следует начать.
Мне нужно выполнить выборку входного сигнала микрофона и обработать этот сигнал в реальном времени (подумайте об автонастройке, но работайте вживую), а не на какое-то время «запись».
Я делаю «своего рода» «микрофонный вход для конвертера MIDI», поэтому он должен реагировать довольно быстро.
Я немного исследовал в Интернете, и, по-видимому, лучше всего использовать DirectSound или функции API WaveIn *. Теперь, согласно тому, что я прочитал, API-интерфейсы WaveIn позволят мне заполнить буфер определенного размера, который подходит для записи и постобработки, но мне интересно ... Как мне выполнять обработку в реальном времени?
Могу ли я использовать буферы 10 мс и хранить круговой массив 50 мс или 100 мс сам, и я получаю функцию, которая запускает анализ каждые 10 мс? (который имеет доступ к последним 100 мс ввода, из которых только 10 мс являются новыми)
Я что-то упустил?
Кроме того, как это делается с помощью DirectSound? Дает ли это улучшенные возможности по сравнению с обычными API Win32?