Мониторинг звука в C ++ / Python - PullRequest
1 голос
/ 30 ноября 2009

Я ищу API (или некоторую информацию о том, где искать / начинать), который в конечном итоге позволит мне отслеживать звук, воспроизводимый компьютером.

Моя конечная цель (ну, наверняка, в конечном итоге станет ступенькой) - это осциллограф.

Где я должен начать искать (кроме Google, который дал неудовлетворительные результаты), чтобы узнать больше о звуке, обрабатываемом компьютерами (в частности, Mac) и как добраться до него .

Спасибо!

Ответы [ 2 ]

2 голосов
/ 30 ноября 2009

Как заметил @cobbal, в Mac OS X вам потребуется каким-то образом использовать PortAudio для получения звука во время воспроизведения. Единственный другой способ сделать это - использовать аудиоплеер, который имеет API плагинов, а затем написать свой код как плагин для этого одного плеера. Но решение CoreAudio должно позволить вам отслеживать все звуки, воспроизводимые на Mac.

Ваш код CoreAudio вообще не будет переносимым на Windows и Linux. В настоящее время нет портативного решения. В Windows вы, вероятно, захотите использовать API-интерфейс WaveIn / WaveOut, если у вас нет профессионального оборудования, в этом случае вы, вероятно, захотите использовать ASIO. В Linux я не уверен; Я думаю, что вы могли бы, вероятно, подключиться к ALSA / PulseAudio для захвата аудио. Если у вас нет профессионального снаряжения, в этом случае вы, вероятно, захотите использовать JACK.

Если вам нужно портативное решение, вы можете серьезно рассмотреть вариант с плагином. Найдите портативный медиаплеер с бесплатным программным обеспечением, который работает на всех ваших платформах, и создайте для этого плагин для охвата.

Для осциллографа вам понадобится книга по цифровой обработке сигналов («DSP»). Возможно, вы захотите использовать дискретное преобразование Фурье («ДПФ»), чтобы получить информацию о частоте из ваших дискретных аудиосэмплов; библиотека DFT, скорее всего, будет называться библиотекой «FFT» («FFT» означает «быстрое преобразование Фурье»).

Моя любимая отдельная книга о DSP: Понимание цифровой обработки сигналов Ричард Г. Лайонс.

РЕДАКТИРОВАТЬ: И, кстати, большинство медиаплееров имеют плагины «визуализации», и некоторые из них являются дисплеями, основанными на частотах. (У некоторых даже есть названия вроде «scope».) Возможно ли, что есть медиаплеер, который уже делает именно тот дисплей, который вам нужен?

1 голос
/ 30 ноября 2009

В прошлом я использовал комбинацию Soundflower и PyAudio для аналогичной цели.

Soundflower позволяет перенаправлять весь аудиовыход на вход, который затем может быть прочитан PyAudio.

Если вы хотите использовать c ++ вместо python, используйте PortAudio , библиотека PyAudio основана на.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...