скомпиленная программа и библиотека portaudio в облаке https://cloud.mail.ru/public/e96c5a768ca5/ConsoleSoundAnalyzer
Программа захватывает звук с микрофона и выводит на консоль: *Значение мощности максимальной частоты *Основную частоту *Билайшую ноту, число из формат midi *Название ноты *Отклонение услышанной ноты от ближайшей идеальной
Принцип работы: *Звук захватывается с "устройства по умолчанию" 4096 семплов. *Применяется фильтр "скользящее среднее" для уменьшения высокочастотных составляющих. *Применяется "оконная функция" для ослабления сигнала по определенной огибающей. *Применяется FFT "быстрое преобразование фурье". Сигнал в спектр. *Ищем самое большое значение мощности в спектре частот. *При помощи параболы определяем более точное значение частоты. *По спектру определяется основная частота. (это самя проблемная часть программы, плохо работает на басовых нотах ниже 50) *При наличии достаточного звука частота преобразуется в число-ноту midi и параметры выводятся на консоль