Вывод звука через M-Audio ProFire 610 - PullRequest
6 голосов
/ 14 февраля 2011

На работе я получил задание создать систему, которая сможет направлять звук на разные выходные каналы нашей звуковой карты.Мы используем M-Audio ProFire 610 , который имеет 8-канальный выход и подключается через FireWire.Мы также используем Mac Mini в качестве нашего хост-сервера, и я собираюсь работать в Xcode.

Вот диаграмма того, что я строю:

диаграмма http://img121.imageshack.us/img121/7865/diagramy.png

Сначала я подумал, что Java будет достаточно для этого проекта, однако позже я обнаружил, что Java не может передавать звук на другие выходные каналы звуковой карты по умолчанию, поэтому я решил переключиться на C ++.Проблема в том, что я веб-разработчик, и у меня нет никакого опыта работы с этим языком, поэтому я ищу помощь более опытных разработчиков.

Я нашел Core Audio Primer. для ios4, но не уверен, сколько из этого я могу использовать для своего проекта.Я тоже немного сбиваю с толку.

Какие шаги я должен предпринять, чтобы выполнить это задание?Какие рамки я должен использовать?Есть примеры кода?Я ищу любую помощь, советы, подсказки - ну все, что поможет мне завершить этот проект.

Ответы [ 2 ]

4 голосов
/ 14 февраля 2011

Если вы просто ищете аудиопродавец, вы можете захотеть взглянуть на то, что уже построено, например Jack , который создает программное аудиоустройство, которое выглядит и работает так же, как настоящее (вы можете установить его как вывод по умолчанию для вашего приложения), а затем позволяет направлять каждый канал куда угодно (включая другие приложения).

Если вы хотите / должны сделать свой собственный, определенно используйте C ++, для которого есть много учебных пособий (я узнал от cplusplus.com). CoreAudio - это низкоуровневый интерфейс C / C ++, как упоминал Джастин, но его действительно сложно изучить и использовать. PortAudio предоставляет гораздо более простой API, для которого я немного поработал над реализацией Mac. Посмотрите учебники там, сделайте что-то похожее для ввода и вывода по умолчанию, а затем для сопоставления каналов используйте PaMacCore_SetupChannelMap, который описан здесь . Вам нужно будет вызвать его дважды, один раз для входного потока и один раз для выходного потока. Присоединяйтесь к списку рассылки PortAudio, если вам нужно больше советов! Удачи!

3 голосов
/ 14 февраля 2011

первичные API-интерфейсы находятся на CoreAudio/AudioHardware.h

Большинство примеров / вспомогательного кода, предоставляемого Apple, находится на C ++.однако API-интерфейсы полностью C (не знаю, помогает ли это вам или нет).

вы захотите получить доступ к уровню аппаратной абстракции (он же HAL), подробнее в этом документе:

http://developer.apple.com/documentation/MusicAudio/Conceptual/CoreAudioOverview/CoreAudioOverview.pdf

для (довольно значительного количества) дополнительных образцов / использования, см. $DEVELOPER_DIR/Extras/CoreAudio/

...