Я публикую этот вопрос после многих исследований и множества неудачных экспериментов.
Это оказалось намного сложнее, чем я ожидал.
Что я хочу сделать:
Считать выходные данные системного выхода, блок за блоком перекрывается с размером блока 50%, синхронизированным образом. Например, если я играю видео на YouTube или файл WAV на моем Raspberry Pi, я хотел бы передать это в мою реализацию C ++.
Затем возьмите блоки и БПФ преобразуйте их, чтобы визуализировать спектр, используя набор из 55 светодиодных индикаторов.
Что я уже сделал:
Я уже реализовал все, начиная с реализации FFT. Моя реализация работает, загружая сохраненный файл WAV отлично.
Проблема:
Однако, часть, где я пытаюсь прочитать вывод звуковой карты, является довольно сложной задачей.
В этот момент я разрываюсь между Jackaudio, ALSA или portaudio. Все они требуют реализации функции обратного вызова, с которой я не был знаком, но я вроде понял это. Я сталкиваюсь с ошибками, пытаясь запустить примеры функций ALSA и portaudio. Все еще не пробовал Джакаудио.
Мой вопрос:
Я хотел бы знать, удалось ли кому-то еще реализовать нечто подобное с помощью одного из этих пакетов. Если да, то какой из них вы бы порекомендовали с точки зрения простоты реализации и возможности синхронизации времени.
Причина вопроса:
Из-за моего ограниченного опыта использования C ++ мне понадобится много времени, чтобы запустить одну из примеров функций. Таким образом, получение подсказки о том, какой пакет является надежным и способен предоставить то, что мне нужно, заставит меня почувствовать уверенность в том, что я куда-то иду.
Похожие вопросы:
Этот является аналогичным вопросом еще с 2015 года, когда кто-то предположил, что это невозможно сделать в ответах.